diff --git a/POAP-booth/bin/game.js b/POAP-booth/bin/game.js index a74813f..5835a69 100644 --- a/POAP-booth/bin/game.js +++ b/POAP-booth/bin/game.js @@ -3,4 +3,4 @@ /*! dcl-amd */; var loader;(function(e){"use strict";var r=1;var d=2;var i=[];var f={baseUrl:""};var c={};function n(e){if(typeof e==="object"){for(var n in e){if(e.hasOwnProperty(n)){f[n]=e[n]}}}}e.config=n;function l(t,e,o){var n=arguments.length;if(n===1){o=t;e=["require","exports","module"];t=null}else if(n===2){if(f.toString.call(t)==="[object Array]"){o=e;e=t;t=null}else{o=e;e=["require","exports","module"]}}if(!t){i.push([e,o]);return}function r(){var e,n;if(c[t]){e=c[t].handlers;n=c[t].context}var r=c[t]=typeof o==="function"?o.apply(null,i.slice.call(arguments,0))||c[t]||{}:o;r.dclamd=d;r.context=n;for(var l=0,a=e?e.length:0;l= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spread = (this && this.__spread) || function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n};\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/itransformcomponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/math/interpolation\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Interpolate = exports.InterpolationType = void 0;\r\n var InterpolationType;\r\n (function (InterpolationType) {\r\n InterpolationType[InterpolationType[\"LINEAR\"] = 0] = \"LINEAR\";\r\n InterpolationType[InterpolationType[\"EASEINQUAD\"] = 1] = \"EASEINQUAD\";\r\n InterpolationType[InterpolationType[\"EASEOUTQUAD\"] = 2] = \"EASEOUTQUAD\";\r\n InterpolationType[InterpolationType[\"EASEQUAD\"] = 3] = \"EASEQUAD\";\r\n })(InterpolationType = exports.InterpolationType || (exports.InterpolationType = {}));\r\n function Interpolate(type, t) {\r\n switch (type) {\r\n case InterpolationType.LINEAR:\r\n return InterpolateLinear(t);\r\n case InterpolationType.EASEINQUAD:\r\n return InterpolateEaseInQuad(t);\r\n case InterpolationType.EASEOUTQUAD:\r\n return InterpolateEaseOutQuad(t);\r\n case InterpolationType.EASEQUAD:\r\n return InterpolateEaseQuad(t);\r\n default:\r\n return InterpolateLinear(t);\r\n }\r\n }\r\n exports.Interpolate = Interpolate;\r\n function InterpolateLinear(t) {\r\n return t;\r\n }\r\n function InterpolateEaseInQuad(t) {\r\n return t * t;\r\n }\r\n function InterpolateEaseOutQuad(t) {\r\n return t * (2 - t);\r\n }\r\n function InterpolateEaseQuad(t) {\r\n return (t * t) / (2.0 * (t * t - t) + 1.0);\r\n }\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/rotate\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_1, interpolation_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.RotateTransformComponent = void 0;\r\n /**\r\n * Component to rotate entity from one rotation (start) to another (end) in an amount of time\r\n */\r\n var RotateTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a RotateTransformComponent instance to add as a component to a Entity\r\n * @param start starting rotation\r\n * @param end ending rotation\r\n * @param duration duration (in seconds) of start to end rotation\r\n * @param onFinishCallback called when rotation ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function RotateTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_1.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_1.TransformSystem.createAndAddToEngine();\r\n }\r\n RotateTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_1.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n RotateTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n RotateTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.rotation = Quaternion.Slerp(this.start, this.end, this.lerpTime);\r\n };\r\n RotateTransformComponent = __decorate([\r\n Component('rotateTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], RotateTransformComponent);\r\n return RotateTransformComponent;\r\n }());\r\n exports.RotateTransformComponent = RotateTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/scale\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_2, interpolation_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ScaleTransformComponent = void 0;\r\n /**\r\n * Component to scale entity from one value (start) to another (end) in an amount of time\r\n */\r\n var ScaleTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a ScaleTransformComponent instance to add as a component to a Entity\r\n * @param start starting scale\r\n * @param end ending scale\r\n * @param duration duration (in seconds) of start to end scaling\r\n * @param onFinishCallback called when scaling ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function ScaleTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_2.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_2.TransformSystem.createAndAddToEngine();\r\n }\r\n ScaleTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_2.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n ScaleTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n ScaleTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.scale = Vector3.Lerp(this.start, this.end, this.lerpTime);\r\n };\r\n ScaleTransformComponent = __decorate([\r\n Component('scaleTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], ScaleTransformComponent);\r\n return ScaleTransformComponent;\r\n }());\r\n exports.ScaleTransformComponent = ScaleTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/followpath\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\"], function (require, exports, transfromSystem_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.FollowPathComponent = void 0;\r\n /**\r\n * Component to move a entity down a fixed path in an amount of time\r\n */\r\n var FollowPathComponent = /** @class */ (function () {\r\n /**\r\n * Create a FollowPathComponent instance to add as a component to a Entity\r\n * @param points array of points for the path\r\n * @param duration duration of the movement through the path\r\n * @param onFinishCallback called when movement ends\r\n * @param onPointReachedCallback called everytime an entity reaches a point of the path\r\n */\r\n function FollowPathComponent(points, duration, onFinishCallback, onPointReachedCallback) {\r\n this.speed = [];\r\n this.normalizedTime = 0;\r\n this.currentIndex = 0;\r\n this.points = points;\r\n this.onFinishCallback = onFinishCallback;\r\n this.onPointReachedCallback = onPointReachedCallback;\r\n if (points.length < 2) {\r\n throw new Error('At least 2 points are needed for FollowPathComponent.');\r\n }\r\n if (duration > 0) {\r\n var sqTotalDist = 0;\r\n var sqPointsDist = [];\r\n for (var i = 0; i < points.length - 1; i++) {\r\n var sqDist = Vector3.DistanceSquared(points[i], points[i + 1]);\r\n sqTotalDist += sqDist;\r\n sqPointsDist.push(sqDist);\r\n }\r\n for (var i = 0; i < sqPointsDist.length; i++) {\r\n this.speed.push(1 / ((sqPointsDist[i] / sqTotalDist) * duration));\r\n }\r\n }\r\n else {\r\n this.normalizedTime = 1;\r\n this.currentIndex = points.length - 2;\r\n }\r\n transfromSystem_3.TransformSystem.createAndAddToEngine();\r\n }\r\n FollowPathComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed[this.currentIndex], 0, 1);\r\n if (this.normalizedTime >= 1 &&\r\n this.currentIndex < this.points.length - 2) {\r\n this.currentIndex++;\r\n this.normalizedTime = 0;\r\n if (this.onPointReachedCallback &&\r\n this.currentIndex < this.points.length - 1)\r\n this.onPointReachedCallback(this.points[this.currentIndex], this.points[this.currentIndex + 1]);\r\n }\r\n };\r\n FollowPathComponent.prototype.hasFinished = function () {\r\n return (this.currentIndex >= this.points.length - 2 && this.normalizedTime >= 1);\r\n };\r\n FollowPathComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.position = Vector3.Lerp(this.points[this.currentIndex], this.points[this.currentIndex + 1], this.normalizedTime);\r\n };\r\n FollowPathComponent = __decorate([\r\n Component('followPathComponent'),\r\n __metadata(\"design:paramtypes\", [Array, Number, Function, Function])\r\n ], FollowPathComponent);\r\n return FollowPathComponent;\r\n }());\r\n exports.FollowPathComponent = FollowPathComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/keeprotating\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\"], function (require, exports, transfromSystem_4) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.KeepRotatingComponent = void 0;\r\n /**\r\n * Component to rotate entity indefinitely until stop is called\r\n */\r\n var KeepRotatingComponent = /** @class */ (function () {\r\n /**\r\n * Rotates an entity continuously. The entity will keep rotating forever until it's explicitly stopped or the component is removed.\r\n * @param rotationVelocity a quaternion describing the desired rotation to perform each second second\r\n * @param onFinishCallback called when rotation ends\r\n */\r\n function KeepRotatingComponent(rotationVelocity, onFinishCallback) {\r\n this.rotationVelocity = rotationVelocity;\r\n this.onFinishCallback = onFinishCallback;\r\n this.rotation = Quaternion.Identity;\r\n this.finished = false;\r\n transfromSystem_4.TransformSystem.createAndAddToEngine();\r\n }\r\n KeepRotatingComponent.prototype.update = function (dt) {\r\n this.rotation = Quaternion.Slerp(Quaternion.Identity, this.rotationVelocity, dt);\r\n };\r\n KeepRotatingComponent.prototype.hasFinished = function () {\r\n return this.finished;\r\n };\r\n KeepRotatingComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.rotation = transform.rotation.multiply(this.rotation);\r\n };\r\n KeepRotatingComponent.prototype.stop = function () {\r\n this.finished = true;\r\n };\r\n KeepRotatingComponent = __decorate([\r\n Component('keepRotatingComponent'),\r\n __metadata(\"design:paramtypes\", [Quaternion, Function])\r\n ], KeepRotatingComponent);\r\n return KeepRotatingComponent;\r\n }());\r\n exports.KeepRotatingComponent = KeepRotatingComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/component/move\", \"node_modules/decentraland-ecs-utils/transform/component/rotate\", \"node_modules/decentraland-ecs-utils/transform/component/scale\", \"node_modules/decentraland-ecs-utils/transform/component/followpath\", \"node_modules/decentraland-ecs-utils/transform/component/keeprotating\"], function (require, exports, move_1, rotate_1, scale_1, followpath_1, keeprotating_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TransformSystem = void 0;\r\n var TransformSystem = /** @class */ (function () {\r\n function TransformSystem() {\r\n this._components = [];\r\n TransformSystem._instance = this;\r\n this._components.push(move_1.MoveTransformComponent);\r\n this._components.push(rotate_1.RotateTransformComponent);\r\n this._components.push(scale_1.ScaleTransformComponent);\r\n this._components.push(followpath_1.FollowPathComponent);\r\n this._components.push(keeprotating_1.KeepRotatingComponent);\r\n }\r\n TransformSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TransformSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n TransformSystem.registerCustomComponent = function (component) {\r\n this.createAndAddToEngine()._components.push(component);\r\n };\r\n TransformSystem.prototype.update = function (dt) {\r\n var _this = this;\r\n this._components.forEach(function (component) {\r\n _this.updateComponent(dt, component);\r\n });\r\n };\r\n TransformSystem.prototype.updateComponent = function (dt, component) {\r\n var group = engine.getComponentGroup(component, Transform);\r\n group.entities.forEach(function (entity) {\r\n var transform = entity.getComponent(Transform);\r\n var comp = entity.getComponent(component);\r\n comp.update(dt);\r\n comp.assignValueToTransform(transform);\r\n if (comp.hasFinished()) {\r\n entity.removeComponent(comp);\r\n if (comp.onFinishCallback != null)\r\n comp.onFinishCallback();\r\n }\r\n });\r\n };\r\n TransformSystem._instance = null;\r\n return TransformSystem;\r\n }());\r\n exports.TransformSystem = TransformSystem;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/move\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_5, interpolation_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.MoveTransformComponent = void 0;\r\n /**\r\n * Component to translate entity from one position (start) to another (end) in an amount of time\r\n */\r\n var MoveTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a MoveTransformComponent instance to add as a component to a Entity\r\n * @param start starting position\r\n * @param end ending position\r\n * @param duration duration (in seconds) of start to end translation\r\n * @param onFinishCallback called when translation ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function MoveTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_3.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_5.TransformSystem.createAndAddToEngine();\r\n }\r\n MoveTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_3.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n MoveTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n MoveTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.position = Vector3.Lerp(this.start, this.end, this.lerpTime);\r\n };\r\n MoveTransformComponent = __decorate([\r\n Component('moveTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], MoveTransformComponent);\r\n return MoveTransformComponent;\r\n }());\r\n exports.MoveTransformComponent = MoveTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/toggle/toggleComponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ToggleComponent = exports.ToggleState = void 0;\r\n var ToggleState;\r\n (function (ToggleState) {\r\n ToggleState[ToggleState[\"Off\"] = 0] = \"Off\";\r\n ToggleState[ToggleState[\"On\"] = 1] = \"On\";\r\n })(ToggleState = exports.ToggleState || (exports.ToggleState = {}));\r\n /**\r\n * Toggle component for entities with two states (ON or OFF)\r\n */\r\n var ToggleComponent = /** @class */ (function () {\r\n /**\r\n * Create an instance of a ToggleComponent\r\n * @param startingState starting state of the toggle (ON or OFF)\r\n * @param onValueChangedCallback called when toggle state changed\r\n */\r\n function ToggleComponent(startingState, onValueChangedCallback) {\r\n if (startingState === void 0) { startingState = ToggleState.On; }\r\n this.enabled = true;\r\n this.state = ToggleState.Off;\r\n this.set(startingState);\r\n if (onValueChangedCallback)\r\n this.setCallback(onValueChangedCallback);\r\n }\r\n /**\r\n * Set trigger to a state\r\n * @param state new state\r\n */\r\n ToggleComponent.prototype.set = function (state) {\r\n this.state = state;\r\n if (this.onValueChangedCallback)\r\n this.onValueChangedCallback(state);\r\n };\r\n /**\r\n * Toggle state of ToggleComponent\r\n */\r\n ToggleComponent.prototype.toggle = function () {\r\n if (this.enabled) {\r\n this.set(1 - this.state);\r\n }\r\n };\r\n /**\r\n * Get if current toggle state is ON\r\n */\r\n ToggleComponent.prototype.isOn = function () {\r\n return this.state == ToggleState.On;\r\n };\r\n /**\r\n * Set callback for when ToggleComponent state changed\r\n * @param onValueChangedCallback callback\r\n */\r\n ToggleComponent.prototype.setCallback = function (onValueChangedCallback) {\r\n this.onValueChangedCallback = onValueChangedCallback;\r\n };\r\n ToggleComponent = __decorate([\r\n Component('toggle'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], ToggleComponent);\r\n return ToggleComponent;\r\n }());\r\n exports.ToggleComponent = ToggleComponent;\r\n exports.default = {\r\n ToggleComponent: ToggleComponent,\r\n ToggleState: ToggleState\r\n };\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/itimercomponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/interval\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Interval = void 0;\r\n /**\r\n * Execute every X milliseconds\r\n */\r\n var Interval = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function Interval(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_1.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function () {\r\n _this.elapsedTime = 0;\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n };\r\n }\r\n Interval.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n Interval = __decorate([\r\n Component('timerInterval'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], Interval);\r\n return Interval;\r\n }());\r\n exports.Interval = Interval;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/expire\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ExpireIn = void 0;\r\n /**\r\n * Remove entity after X milliseconds\r\n */\r\n var ExpireIn = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function ExpireIn(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_2.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function (entity) {\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n entity.removeComponent(_this);\r\n engine.removeEntity(entity);\r\n };\r\n }\r\n ExpireIn.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n ExpireIn = __decorate([\r\n Component('timerExpireIn'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], ExpireIn);\r\n return ExpireIn;\r\n }());\r\n exports.ExpireIn = ExpireIn;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/system/timerSystem\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/component/interval\", \"node_modules/decentraland-ecs-utils/timer/component/delay\", \"node_modules/decentraland-ecs-utils/timer/component/expire\"], function (require, exports, interval_1, delay_1, expire_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TimerSystem = void 0;\r\n var TimerSystem = /** @class */ (function () {\r\n function TimerSystem() {\r\n this._components = [];\r\n TimerSystem._instance = this;\r\n this._components.push(interval_1.Interval);\r\n this._components.push(delay_1.Delay);\r\n this._components.push(expire_1.ExpireIn);\r\n }\r\n TimerSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TimerSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n TimerSystem.registerCustomComponent = function (component) {\r\n this.createAndAddToEngine()._components.push(component);\r\n };\r\n TimerSystem.prototype.update = function (dt) {\r\n var _this = this;\r\n this._components.forEach(function (component) {\r\n _this.updateComponent(dt, component);\r\n });\r\n };\r\n TimerSystem.prototype.updateComponent = function (dt, component) {\r\n var record = engine.getEntitiesWithComponent(component);\r\n for (var key in record) {\r\n if (record.hasOwnProperty(key)) {\r\n var entity = record[key];\r\n var timerComponent = entity.getComponent(component);\r\n timerComponent.elapsedTime += dt;\r\n if (timerComponent.elapsedTime >= timerComponent.targetTime) {\r\n timerComponent.onTargetTimeReached(entity);\r\n }\r\n }\r\n }\r\n };\r\n TimerSystem._instance = null;\r\n return TimerSystem;\r\n }());\r\n exports.TimerSystem = TimerSystem;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/delay\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Delay = void 0;\r\n /**\r\n * Execute once after X milliseconds\r\n */\r\n var Delay = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function Delay(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_3.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function (entity) {\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n entity.removeComponent(_this);\r\n };\r\n }\r\n Delay.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n Delay = __decorate([\r\n Component('timerDelay'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], Delay);\r\n return Delay;\r\n }());\r\n exports.Delay = Delay;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/triggers/triggerSystem\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TriggerSphereShape = exports.TriggerBoxShape = exports.TriggerComponent = exports.TriggerSystem = void 0;\r\n var TriggerSystem = /** @class */ (function () {\r\n function TriggerSystem() {\r\n this._triggers = {};\r\n TriggerSystem._instance = this;\r\n this._cameraTriggerWrapper = new CameraTrigger(new TriggerBoxShape(new Vector3(0.5, 1.8, 0.5), new Vector3(0, 0.91, 0)));\r\n }\r\n Object.defineProperty(TriggerSystem, \"instance\", {\r\n get: function () {\r\n return this.createAndAddToEngine();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TriggerSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n /**\r\n * set a custom trigger's shape for the camera\r\n * @param shape custom trigger's shape\r\n */\r\n TriggerSystem.prototype.setCameraTriggerShape = function (shape) {\r\n this._cameraTriggerWrapper.setShape(shape);\r\n };\r\n TriggerSystem.prototype.update = function () {\r\n var _this = this;\r\n //get entities with trigger component\r\n var entitiesWithTriggers = engine.getComponentGroup(TriggerComponent)\r\n .entities;\r\n //iterate through all entities with triggers and wrap entities that weren't wrapped yet\r\n entitiesWithTriggers.forEach(function (entity) {\r\n if (_this.shouldWrapTriggerEntity(entity)) {\r\n _this.wrapTriggerEntity(entity);\r\n }\r\n });\r\n //iterate through wrapped entities\r\n for (var key in this._triggers) {\r\n if (this._triggers.hasOwnProperty(key)) {\r\n var wrapper = this._triggers[key];\r\n //update debug entity\r\n if (wrapper.isDebugging()) {\r\n wrapper.updateDebugEntity();\r\n }\r\n if (!wrapper.isInEngine()) {\r\n //remove debugging\r\n if (wrapper.isDebugging()) {\r\n wrapper.removeDebugEntity();\r\n }\r\n //remove old collisions\r\n TriggerSystem.removeTriggerFromSystem(wrapper);\r\n //remove from record\r\n delete this._triggers[key];\r\n }\r\n else if (wrapper.trigger != null && wrapper.trigger.enabled) {\r\n //if was set as enabled in last frame\r\n if (!wrapper.wasEnabled) {\r\n if (wrapper.isDebugging()) {\r\n wrapper.addDebugEntity();\r\n }\r\n }\r\n //set as enabled\r\n wrapper.wasEnabled = true;\r\n //check collision camera\r\n if (wrapper.trigger.onCameraEnter || wrapper.trigger.onCameraExit) {\r\n this.checkCollisionAgainstCamera(wrapper);\r\n }\r\n //check collision with others\r\n if (wrapper.trigger.onTriggerEnter || wrapper.trigger.onTriggerExit) {\r\n this.checkCollisionAgainstOtherTriggers(wrapper);\r\n }\r\n }\r\n else if (wrapper.wasEnabled) {\r\n wrapper.wasEnabled = false;\r\n //remove debugging\r\n if (wrapper.isDebugging()) {\r\n wrapper.removeDebugEntity();\r\n }\r\n TriggerSystem.removeTriggerFromSystem(wrapper);\r\n }\r\n }\r\n }\r\n };\r\n TriggerSystem.prototype.shouldWrapTriggerEntity = function (entity) {\r\n return (this._triggers[entity.uuid] == undefined ||\r\n this._triggers[entity.uuid] == null);\r\n };\r\n TriggerSystem.prototype.wrapTriggerEntity = function (entity) {\r\n this._triggers[entity.uuid] = new TriggerWrapper(entity);\r\n };\r\n TriggerSystem.removeTriggerFromSystem = function (wrapper) {\r\n var activeCollisions = wrapper.getActiveCollisions();\r\n for (var i = 0; i < activeCollisions.length; i++) {\r\n if (activeCollisions[i].trigger.onTriggerExit && wrapper.entity)\r\n activeCollisions[i].trigger.onTriggerExit(wrapper.entity);\r\n activeCollisions[i].disengageActiveCollision(wrapper);\r\n wrapper.disengageActiveCollision(activeCollisions[i]);\r\n }\r\n };\r\n TriggerSystem.disengageCollision = function (t1, t2) {\r\n t1.disengageActiveCollision(t2);\r\n t2.disengageActiveCollision(t1);\r\n if (t1.trigger.onTriggerExit && t2.entity)\r\n t1.trigger.onTriggerExit(t2.entity);\r\n if (t2.trigger.onTriggerExit && t1.entity)\r\n t2.trigger.onTriggerExit(t1.entity);\r\n };\r\n TriggerSystem.engageCollision = function (t1, t2) {\r\n t1.engageCollision(t2);\r\n t2.engageCollision(t1);\r\n if (t1.trigger.onTriggerEnter && t2.entity)\r\n t1.trigger.onTriggerEnter(t2.entity);\r\n if (t2.trigger.onTriggerEnter && t1.entity)\r\n t2.trigger.onTriggerEnter(t1.entity);\r\n };\r\n TriggerSystem.prototype.checkCollisionAgainstCamera = function (wrapper) {\r\n var wereColliding = wrapper.hasActiveCollision(this._cameraTriggerWrapper);\r\n var areColliding = TriggerSystem.areColliding(wrapper, this._cameraTriggerWrapper);\r\n if (wereColliding && !areColliding) {\r\n wrapper.disengageActiveCollision(this._cameraTriggerWrapper);\r\n if (wrapper.trigger.onCameraExit)\r\n wrapper.trigger.onCameraExit();\r\n }\r\n else if (!wereColliding && areColliding) {\r\n wrapper.engageCollision(this._cameraTriggerWrapper);\r\n if (wrapper.trigger.onCameraEnter)\r\n wrapper.trigger.onCameraEnter();\r\n }\r\n };\r\n TriggerSystem.prototype.checkCollisionAgainstOtherTriggers = function (wrapper) {\r\n for (var key in this._triggers) {\r\n if (this._triggers.hasOwnProperty(key)) {\r\n if (key != wrapper.uuid && this._triggers[key].trigger.enabled) {\r\n if (TriggerSystem.canTriggersCollide(wrapper, this._triggers[key])) {\r\n var wereColliding = wrapper.hasActiveCollision(this._triggers[key]);\r\n var areColliding = TriggerSystem.areColliding(wrapper, this._triggers[key]);\r\n if (wereColliding && !areColliding)\r\n TriggerSystem.disengageCollision(wrapper, this._triggers[key]);\r\n else if (!wereColliding && areColliding)\r\n TriggerSystem.engageCollision(wrapper, this._triggers[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TriggerSystem.canTriggersCollide = function (t1, t2) {\r\n if (t1.trigger.triggeredByLayer == 0)\r\n return true;\r\n return (t2.trigger.layer & t1.trigger.triggeredByLayer) != 0;\r\n };\r\n TriggerSystem.areColliding = function (t1, t2) {\r\n if (t1.getShape() instanceof TriggerBoxShape &&\r\n t2.getShape() instanceof TriggerBoxShape) {\r\n return TriggerSystem.areCollidingAABB(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerSphereShape &&\r\n t2.getShape() instanceof TriggerSphereShape) {\r\n return TriggerSystem.areCollidingSphere(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerBoxShape &&\r\n t2.getShape() instanceof TriggerSphereShape) {\r\n return TriggerSystem.areCollidingAABBSphere(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerSphereShape &&\r\n t2.getShape() instanceof TriggerBoxShape) {\r\n return TriggerSystem.areCollidingAABBSphere(t2.getGlobalPosition(), t2.getShape(), t1.getGlobalPosition(), t1.getShape());\r\n }\r\n return false;\r\n };\r\n TriggerSystem.areCollidingAABB = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var t1 = TriggerSystem.getBoxShapeValues(t1GlobalPosition, t1Shape);\r\n var t2 = TriggerSystem.getBoxShapeValues(t2GlobalPosition, t2Shape);\r\n return (t1.min.x <= t2.max.x &&\r\n t1.max.x >= t2.min.x &&\r\n t1.min.y <= t2.max.y && t1.max.y >= t2.min.y &&\r\n t1.min.z <= t2.max.z && t1.max.z >= t2.min.z);\r\n };\r\n TriggerSystem.areCollidingSphere = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var sqDist = Vector3.DistanceSquared(t1GlobalPosition.add(t1Shape.position), t2GlobalPosition.add(t2Shape.position));\r\n return (sqDist < t1Shape.radius * t1Shape.radius + t2Shape.radius * t2Shape.radius);\r\n };\r\n TriggerSystem.areCollidingAABBSphere = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var box = TriggerSystem.getBoxShapeValues(t1GlobalPosition, t1Shape);\r\n var sphere = {\r\n center: t2GlobalPosition.add(t2Shape.position),\r\n radius: t2Shape.radius\r\n };\r\n var dmin = 0;\r\n if (sphere.center.x < box.min.x)\r\n dmin += (box.min.x - sphere.center.x) * (box.min.x - sphere.center.x);\r\n if (sphere.center.x > box.max.x)\r\n dmin += (sphere.center.x - box.max.x) * (sphere.center.x - box.max.x);\r\n if (sphere.center.y < box.min.y)\r\n dmin += (box.min.y - sphere.center.y) * (box.min.y - sphere.center.y);\r\n if (sphere.center.y > box.max.y)\r\n dmin += (sphere.center.y - box.max.y) * (sphere.center.y - box.max.y);\r\n if (sphere.center.z < box.min.z)\r\n dmin += (box.min.z - sphere.center.z) * (box.min.z - sphere.center.z);\r\n if (sphere.center.z > box.max.z)\r\n dmin += (sphere.center.z - box.max.z) * (sphere.center.z - box.max.z);\r\n return dmin < sphere.radius * sphere.radius;\r\n };\r\n TriggerSystem.getBoxShapeValues = function (entityGlobalPosition, shape) {\r\n var center = entityGlobalPosition.add(shape.position);\r\n return {\r\n center: center,\r\n min: center.subtract(shape.size.scale(0.5)),\r\n max: center.add(shape.size.scale(0.5))\r\n };\r\n };\r\n TriggerSystem._instance = null;\r\n return TriggerSystem;\r\n }());\r\n exports.TriggerSystem = TriggerSystem;\r\n var TriggerWrapper = /** @class */ (function () {\r\n function TriggerWrapper(entity) {\r\n this.wasEnabled = true;\r\n this._uuid = '';\r\n this._collidingWith = {};\r\n this._isDebug = false;\r\n this._debugEntity = null;\r\n this._entity = entity;\r\n if (entity) {\r\n this._trigger = entity.getComponent(TriggerComponent);\r\n this._uuid = entity.uuid;\r\n this._isDebug = this._trigger.debugEnabled;\r\n if (this._isDebug) {\r\n this.addDebugEntity();\r\n }\r\n }\r\n }\r\n Object.defineProperty(TriggerWrapper.prototype, \"entity\", {\r\n get: function () {\r\n return this._entity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriggerWrapper.prototype, \"trigger\", {\r\n get: function () {\r\n return this._trigger;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriggerWrapper.prototype, \"uuid\", {\r\n get: function () {\r\n return this._uuid;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerWrapper.prototype.getGlobalPosition = function () {\r\n if (this._entity)\r\n return TriggerWrapper.getEntityWorldPosition(this._entity);\r\n return Vector3.Zero();\r\n };\r\n TriggerWrapper.prototype.getShape = function () {\r\n return this._trigger.shape;\r\n };\r\n TriggerWrapper.prototype.isInEngine = function () {\r\n return this._entity != null && this._entity.isAddedToEngine();\r\n };\r\n TriggerWrapper.prototype.getActiveCollisions = function () {\r\n var ret = [];\r\n for (var key in this._collidingWith) {\r\n if (this._collidingWith.hasOwnProperty(key)) {\r\n ret.push(this._collidingWith[key]);\r\n }\r\n }\r\n return ret;\r\n };\r\n TriggerWrapper.prototype.hasActiveCollision = function (other) {\r\n return (this._collidingWith[other.uuid] != undefined &&\r\n this._collidingWith[other.uuid] != null);\r\n };\r\n TriggerWrapper.prototype.disengageActiveCollision = function (other) {\r\n delete this._collidingWith[other.uuid];\r\n };\r\n TriggerWrapper.prototype.engageCollision = function (other) {\r\n this._collidingWith[other.uuid] = other;\r\n };\r\n TriggerWrapper.prototype.isDebugging = function () {\r\n return this._isDebug;\r\n };\r\n TriggerWrapper.prototype.addDebugEntity = function () {\r\n if (!TriggerWrapper._debugMaterial) {\r\n TriggerWrapper._debugMaterial = new Material();\r\n TriggerWrapper._debugMaterial.alphaTest = 0.5;\r\n }\r\n if (this._debugEntity == null) {\r\n this._debugEntity = new Entity();\r\n var transform = new Transform();\r\n this._debugEntity.addComponent(transform);\r\n this._debugEntity.addComponent(TriggerWrapper._debugMaterial);\r\n if (this.getShape() instanceof TriggerBoxShape) {\r\n var shape = new BoxShape();\r\n shape.withCollisions = false;\r\n this._debugEntity.addComponent(shape);\r\n transform.scale = this.getShape().size;\r\n }\r\n if (this.getShape() instanceof TriggerSphereShape) {\r\n var shape = new SphereShape();\r\n shape.withCollisions = false;\r\n this._debugEntity.addComponent(shape);\r\n var rad = this.getShape().radius;\r\n transform.scale = new Vector3(rad, rad, rad);\r\n }\r\n }\r\n engine.addEntity(this._debugEntity);\r\n };\r\n TriggerWrapper.prototype.removeDebugEntity = function () {\r\n if (this._debugEntity != null)\r\n engine.removeEntity(this._debugEntity);\r\n };\r\n TriggerWrapper.prototype.updateDebugEntity = function () {\r\n if (this._debugEntity) {\r\n this._debugEntity.getComponent(Transform).position = this.getGlobalPosition().add(this.getShape().position);\r\n }\r\n };\r\n TriggerWrapper.getEntityWorldPosition = function (entity) {\r\n var entityPosition = entity.hasComponent(Transform)\r\n ? entity.getComponent(Transform).position\r\n : Vector3.Zero();\r\n var parentEntity = entity.getParent();\r\n if (parentEntity != null) {\r\n var parentRotation = parentEntity.hasComponent(Transform)\r\n ? parentEntity.getComponent(Transform).rotation\r\n : Quaternion.Identity;\r\n return this.getEntityWorldPosition(parentEntity).add(entityPosition.rotate(parentRotation));\r\n }\r\n return entityPosition;\r\n };\r\n TriggerWrapper._debugMaterial = null;\r\n return TriggerWrapper;\r\n }());\r\n var CameraTrigger = /** @class */ (function (_super) {\r\n __extends(CameraTrigger, _super);\r\n function CameraTrigger(shape) {\r\n var _this = _super.call(this) || this;\r\n _this._shape = shape;\r\n _this._uuid = 'cameraTrigger';\r\n return _this;\r\n }\r\n CameraTrigger.prototype.getGlobalPosition = function () {\r\n return Camera.instance.position;\r\n };\r\n CameraTrigger.prototype.getShape = function () {\r\n return this._shape;\r\n };\r\n CameraTrigger.prototype.setShape = function (shape) {\r\n this._shape = shape;\r\n };\r\n CameraTrigger.prototype.isInEngine = function () {\r\n return false;\r\n };\r\n CameraTrigger.prototype.hasActiveCollision = function (other) {\r\n return false;\r\n };\r\n CameraTrigger.prototype.disengageActiveCollision = function (other) { };\r\n CameraTrigger.prototype.engageCollision = function (other) { };\r\n CameraTrigger.prototype.isDebugging = function () {\r\n return false;\r\n };\r\n return CameraTrigger;\r\n }(TriggerWrapper));\r\n var TriggerComponent = /** @class */ (function () {\r\n /**\r\n *\r\n * @param shape shape of the triggering collider area\r\n * @param layer layer of the Trigger, useful to discriminate between trigger events. You can set multiple layers by using a | symbol.\r\n * @param triggeredByLayer against which layers to check collisions\r\n * @param onTriggerEnter callback when an entity of a valid layer enters the trigger area\r\n * @param onTriggerExit callback when an entity of a valid layer leaves the trigger area\r\n * @param onCameraEnter callback when the player enters the trigger area\r\n * @param onCameraExit callback when the player leaves the trigger area\r\n * @param enableDebug when true makes the trigger area visible for debug purposes.\r\n */\r\n function TriggerComponent(shape, layer, triggeredByLayer, onTriggerEnter, onTriggerExit, onCameraEnter, onCameraExit, enableDebug) {\r\n if (layer === void 0) { layer = 0; }\r\n if (triggeredByLayer === void 0) { triggeredByLayer = 0; }\r\n if (enableDebug === void 0) { enableDebug = false; }\r\n /**\r\n * is trigger enable?\r\n */\r\n this.enabled = true;\r\n /**\r\n * bit layer of the Tigger (usefull to discriminate between trigger events)\r\n */\r\n this.layer = 0;\r\n /**\r\n * against which layer are we going to check trigger's collisions\r\n */\r\n this.triggeredByLayer = 0;\r\n TriggerSystem.createAndAddToEngine();\r\n this.shape = shape;\r\n this.layer = layer;\r\n this.triggeredByLayer = triggeredByLayer;\r\n this.onTriggerEnter = onTriggerEnter;\r\n this.onTriggerExit = onTriggerExit;\r\n this.onCameraEnter = onCameraEnter;\r\n this.onCameraExit = onCameraExit;\r\n this._debugEnabled = enableDebug;\r\n }\r\n Object.defineProperty(TriggerComponent.prototype, \"debugEnabled\", {\r\n /**\r\n * get if debug is enabled\r\n */\r\n get: function () {\r\n return this._debugEnabled;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerComponent = __decorate([\r\n Component('triggerComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Number, Number, Function, Function, Function, Function, Boolean])\r\n ], TriggerComponent);\r\n return TriggerComponent;\r\n }());\r\n exports.TriggerComponent = TriggerComponent;\r\n var TriggerBoxShape = /** @class */ (function () {\r\n function TriggerBoxShape(size, position) {\r\n this.size = size;\r\n this.position = position;\r\n }\r\n return TriggerBoxShape;\r\n }());\r\n exports.TriggerBoxShape = TriggerBoxShape;\r\n var TriggerSphereShape = /** @class */ (function () {\r\n function TriggerSphereShape(radius, position) {\r\n this.radius = radius;\r\n this.position = position;\r\n }\r\n return TriggerSphereShape;\r\n }());\r\n exports.TriggerSphereShape = TriggerSphereShape;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/actionsSequenceSystem/actionsSequenceSystem\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ActionsSequenceSystem = void 0;\r\n var ActionsSequenceSystem = /** @class */ (function () {\r\n function ActionsSequenceSystem(sequenceBuilt) {\r\n this.beginSequenceNode = null;\r\n this.currentSequenceNode = null;\r\n this.running = false;\r\n this.started = false;\r\n if (sequenceBuilt) {\r\n this.startSequence(sequenceBuilt);\r\n }\r\n }\r\n ActionsSequenceSystem.prototype.startSequence = function (sequenceBuilt) {\r\n this.beginSequenceNode = sequenceBuilt.beginSequenceNode;\r\n this.currentSequenceNode = this.beginSequenceNode;\r\n this.running = true;\r\n this.started = false;\r\n };\r\n ActionsSequenceSystem.prototype.setOnFinishCallback = function (onFinishCallback) {\r\n this.onFinishCallback = onFinishCallback;\r\n };\r\n ActionsSequenceSystem.prototype.isRunning = function () {\r\n return this.running;\r\n };\r\n ActionsSequenceSystem.prototype.stop = function () {\r\n this.running = false;\r\n };\r\n ActionsSequenceSystem.prototype.resume = function () {\r\n if (this.beginSequenceNode != null) {\r\n this.running = true;\r\n }\r\n };\r\n ActionsSequenceSystem.prototype.reset = function () {\r\n this.currentSequenceNode = this.beginSequenceNode;\r\n this.running = true;\r\n this.started = false;\r\n };\r\n ActionsSequenceSystem.prototype.getRunningAction = function () {\r\n var currentNode = this.currentSequenceNode;\r\n if (this.currentSequenceNode instanceof SubSequenceNode) {\r\n do {\r\n currentNode = currentNode.currentInnerSequence;\r\n } while (currentNode instanceof SubSequenceNode);\r\n }\r\n return currentNode.action;\r\n };\r\n ActionsSequenceSystem.prototype.update = function (dt) {\r\n if (this.running) {\r\n if (!this.started) {\r\n ;\r\n this.currentSequenceNode.onStart();\r\n this.started = true;\r\n }\r\n else {\r\n if (!this.currentSequenceNode.hasFinish()) {\r\n ;\r\n this.currentSequenceNode.update(dt);\r\n }\r\n else {\r\n ;\r\n this.currentSequenceNode.onFinish();\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.next;\r\n if (this.currentSequenceNode) {\r\n this.currentSequenceNode.onStart();\r\n }\r\n else {\r\n this.running = false;\r\n if (this.onFinishCallback)\r\n this.onFinishCallback();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return ActionsSequenceSystem;\r\n }());\r\n exports.ActionsSequenceSystem = ActionsSequenceSystem;\r\n (function (ActionsSequenceSystem) {\r\n var SequenceBuilder = /** @class */ (function () {\r\n function SequenceBuilder() {\r\n this.currentSequenceNode = null;\r\n this.beginSequenceNode = null;\r\n this.whileNodeStack = [];\r\n }\r\n SequenceBuilder.prototype.then = function (action) {\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = new SequenceNode();\r\n this.currentSequenceNode.action = action;\r\n this.beginSequenceNode = this.currentSequenceNode;\r\n }\r\n else {\r\n var next = new SequenceNode();\r\n next.action = action;\r\n this.currentSequenceNode = this.currentSequenceNode.then(next);\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.if = function (condition) {\r\n var ifSeq = new IfSequenceNode(condition);\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = ifSeq;\r\n this.beginSequenceNode = ifSeq;\r\n }\r\n else {\r\n this.currentSequenceNode = this.currentSequenceNode.then(ifSeq);\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.else = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof IfSequenceNode) {\r\n seq.closed = true;\r\n var elseSeq = new ElseSequenceNode(seq);\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.then(elseSeq);\r\n }\r\n else {\r\n throw new Error('IF statement is needed to be called before ELSE statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.endIf = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof IfSequenceNode || seq instanceof ElseSequenceNode) {\r\n seq.closed = true;\r\n }\r\n else {\r\n throw new Error('IF statement is needed to be called before ENDIF statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.while = function (condition) {\r\n var whileSeq = new WhileSequenceNode(condition);\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = whileSeq;\r\n this.beginSequenceNode = whileSeq;\r\n }\r\n else {\r\n this.currentSequenceNode = this.currentSequenceNode.then(whileSeq);\r\n }\r\n this.whileNodeStack.push(whileSeq);\r\n return this;\r\n };\r\n SequenceBuilder.prototype.endWhile = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof WhileSequenceNode) {\r\n seq.closed = true;\r\n if (this.whileNodeStack.length > 0) {\r\n this.whileNodeStack.splice(this.whileNodeStack.length - 1, 1);\r\n }\r\n }\r\n else {\r\n throw new Error('WHILE statement is needed to be called before ENDWHILE statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.breakWhile = function () {\r\n if (this.whileNodeStack.length > 0) {\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.then(new BreakWhileSequenceNode(this.whileNodeStack[this.whileNodeStack.length - 1]));\r\n }\r\n else {\r\n throw new Error('WHILE statement is needed to be called before BREAKWHILE statement.');\r\n }\r\n return this;\r\n };\r\n return SequenceBuilder;\r\n }());\r\n ActionsSequenceSystem.SequenceBuilder = SequenceBuilder;\r\n })(ActionsSequenceSystem = exports.ActionsSequenceSystem || (exports.ActionsSequenceSystem = {}));\r\n exports.ActionsSequenceSystem = ActionsSequenceSystem;\r\n var SequenceNode = /** @class */ (function () {\r\n function SequenceNode() {\r\n this.action = null;\r\n this.next = null;\r\n }\r\n SequenceNode.prototype.then = function (next) {\r\n this.next = next;\r\n return next;\r\n };\r\n SequenceNode.prototype.onStart = function () {\r\n if (this.action)\r\n this.action.onStart();\r\n };\r\n SequenceNode.prototype.update = function (dt) {\r\n if (this.action)\r\n this.action.update(dt);\r\n };\r\n SequenceNode.prototype.onFinish = function () {\r\n if (this.action)\r\n this.action.onFinish();\r\n };\r\n SequenceNode.prototype.hasFinish = function () {\r\n if (this.action)\r\n return this.action.hasFinished;\r\n else\r\n return true;\r\n };\r\n SequenceNode.prototype.getSequence = function () {\r\n return this;\r\n };\r\n return SequenceNode;\r\n }());\r\n var SubSequenceNode = /** @class */ (function (_super) {\r\n __extends(SubSequenceNode, _super);\r\n function SubSequenceNode() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.currentInnerSequence = null;\r\n _this.startingInnerSequence = null;\r\n _this.closed = false;\r\n return _this;\r\n }\r\n SubSequenceNode.prototype.then = function (next) {\r\n if (this.currentInnerSequence == null) {\r\n this.currentInnerSequence = next;\r\n this.startingInnerSequence = next;\r\n }\r\n else {\r\n if (this.closed) {\r\n this.next = next;\r\n return next;\r\n }\r\n else {\r\n this.currentInnerSequence = this.currentInnerSequence.then(next);\r\n }\r\n }\r\n return this;\r\n };\r\n SubSequenceNode.prototype.onStart = function () {\r\n this.currentInnerSequence = this.startingInnerSequence;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n };\r\n SubSequenceNode.prototype.update = function (dt) {\r\n if (this.currentInnerSequence) {\r\n if (!this.currentInnerSequence.hasFinish()) {\r\n this.currentInnerSequence.update(dt);\r\n }\r\n else {\r\n this.currentInnerSequence.onFinish();\r\n this.currentInnerSequence = this.currentInnerSequence.next;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n }\r\n }\r\n };\r\n SubSequenceNode.prototype.onFinish = function () {\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onFinish();\r\n };\r\n SubSequenceNode.prototype.hasFinish = function () {\r\n return this.currentInnerSequence == null;\r\n };\r\n SubSequenceNode.prototype.getSequence = function () {\r\n if (this.currentInnerSequence) {\r\n var innerSeq = this.currentInnerSequence.getSequence();\r\n if (innerSeq instanceof SubSequenceNode) {\r\n if (!innerSeq.closed) {\r\n return innerSeq;\r\n }\r\n }\r\n }\r\n return this;\r\n };\r\n return SubSequenceNode;\r\n }(SequenceNode));\r\n var IfSequenceNode = /** @class */ (function (_super) {\r\n __extends(IfSequenceNode, _super);\r\n function IfSequenceNode(condition) {\r\n var _this = _super.call(this) || this;\r\n _this.result = false;\r\n _this.condition = condition;\r\n return _this;\r\n }\r\n IfSequenceNode.prototype.onStart = function () {\r\n this.result = this.condition();\r\n if (this.result)\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n return IfSequenceNode;\r\n }(SubSequenceNode));\r\n var ElseSequenceNode = /** @class */ (function (_super) {\r\n __extends(ElseSequenceNode, _super);\r\n function ElseSequenceNode(ifSequence) {\r\n var _this = _super.call(this) || this;\r\n _this.ifSequence = null;\r\n _this.ifSequence = ifSequence;\r\n return _this;\r\n }\r\n ElseSequenceNode.prototype.onStart = function () {\r\n if (this.ifSequence && !this.ifSequence.result)\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n return ElseSequenceNode;\r\n }(SubSequenceNode));\r\n var WhileSequenceNode = /** @class */ (function (_super) {\r\n __extends(WhileSequenceNode, _super);\r\n function WhileSequenceNode(condition) {\r\n var _this = _super.call(this) || this;\r\n _this.breakWhile = false;\r\n _this.condition = condition;\r\n return _this;\r\n }\r\n WhileSequenceNode.prototype.onStart = function () {\r\n this.breakWhile = false;\r\n if (this.condition())\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n WhileSequenceNode.prototype.update = function (dt) {\r\n if (this.currentInnerSequence) {\r\n if (!this.currentInnerSequence.hasFinish()) {\r\n this.currentInnerSequence.update(dt);\r\n }\r\n else {\r\n this.currentInnerSequence.onFinish();\r\n this.currentInnerSequence = this.currentInnerSequence.next;\r\n if (this.currentInnerSequence == null)\r\n this.currentInnerSequence = this.startingInnerSequence;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n }\r\n }\r\n };\r\n WhileSequenceNode.prototype.hasFinish = function () {\r\n return this.breakWhile || !this.condition();\r\n };\r\n return WhileSequenceNode;\r\n }(SubSequenceNode));\r\n var BreakWhileSequenceNode = /** @class */ (function (_super) {\r\n __extends(BreakWhileSequenceNode, _super);\r\n function BreakWhileSequenceNode(whileNode) {\r\n var _this = _super.call(this) || this;\r\n _this.whileNode = whileNode;\r\n return _this;\r\n }\r\n BreakWhileSequenceNode.prototype.onStart = function () {\r\n this.whileNode.breakWhile = true;\r\n };\r\n return BreakWhileSequenceNode;\r\n }(SequenceNode));\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/index\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/component/move\", \"node_modules/decentraland-ecs-utils/transform/component/rotate\", \"node_modules/decentraland-ecs-utils/transform/component/scale\", \"node_modules/decentraland-ecs-utils/transform/component/followpath\", \"node_modules/decentraland-ecs-utils/transform/component/keeprotating\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\", \"node_modules/decentraland-ecs-utils/toggle/toggleComponent\", \"node_modules/decentraland-ecs-utils/timer/component/delay\", \"node_modules/decentraland-ecs-utils/timer/component/expire\", \"node_modules/decentraland-ecs-utils/timer/component/interval\", \"node_modules/decentraland-ecs-utils/triggers/triggerSystem\", \"node_modules/decentraland-ecs-utils/actionsSequenceSystem/actionsSequenceSystem\"], function (require, exports, move_2, rotate_2, scale_2, followpath_2, keeprotating_2, transfromSystem_6, interpolation_4, toggleComponent_1, delay_2, expire_2, interval_2, triggerSystem_1, actionsSequenceSystem_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = {\r\n TransformSystem: transfromSystem_6.TransformSystem,\r\n MoveTransformComponent: move_2.MoveTransformComponent,\r\n RotateTransformComponent: rotate_2.RotateTransformComponent,\r\n ScaleTransformComponent: scale_2.ScaleTransformComponent,\r\n FollowPathComponent: followpath_2.FollowPathComponent,\r\n KeepRotatingComponent: keeprotating_2.KeepRotatingComponent,\r\n Interpolate: interpolation_4.Interpolate,\r\n InterpolationType: interpolation_4.InterpolationType,\r\n ToggleComponent: toggleComponent_1.ToggleComponent,\r\n ToggleState: toggleComponent_1.ToggleState,\r\n Delay: delay_2.Delay,\r\n ExpireIn: expire_2.ExpireIn,\r\n Interval: interval_2.Interval,\r\n TriggerComponent: triggerSystem_1.TriggerComponent,\r\n TriggerSystem: triggerSystem_1.TriggerSystem,\r\n TriggerSphereShape: triggerSystem_1.TriggerSphereShape,\r\n TriggerBoxShape: triggerSystem_1.TriggerBoxShape,\r\n ActionsSequenceSystem: actionsSequenceSystem_1.ActionsSequenceSystem\r\n };\r\n});\r\ndefine(\"node_modules/eth-connect/eth-connect.esm\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n var ethconnect = function (t) { var e = {}; function r(n) { if (e[n])\r\n return e[n].exports; var o = e[n] = { i: n, l: !1, exports: {} }; return t[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports; } return r.m = t, r.c = e, r.d = function (t, e, n) { r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }); }, r.r = function (t) { \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(t, \"__esModule\", { value: !0 }); }, r.t = function (t, e) { if (1 & e && (t = r(t)), 8 & e)\r\n return t; if (4 & e && \"object\" == typeof t && t && t.__esModule)\r\n return t; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, \"default\", { enumerable: !0, value: t }), 2 & e && \"string\" != typeof t)\r\n for (var o in t)\r\n r.d(n, o, function (e) { return t[e]; }.bind(null, o)); return n; }, r.n = function (t) { var e = t && t.__esModule ? function () { return t.default; } : function () { return t; }; return r.d(e, \"a\", e), e; }, r.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e); }, r.p = \"\", r(r.s = 28); }([function (t, e, r) { var n; t.exports = (n = n || function (t, e) { var r = Object.create || function () { function t() { } return function (e) { var r; return t.prototype = e, r = new t, t.prototype = null, r; }; }(), n = {}, o = n.lib = {}, i = o.Base = { extend: function (t) { var e = r(this); return t && e.mixIn(t), e.hasOwnProperty(\"init\") && this.init !== e.init || (e.init = function () { e.$super.init.apply(this, arguments); }), e.init.prototype = e, e.$super = this, e; }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t; }, init: function () { }, mixIn: function (t) { for (var e in t)\r\n t.hasOwnProperty(e) && (this[e] = t[e]); t.hasOwnProperty(\"toString\") && (this.toString = t.toString); }, clone: function () { return this.init.prototype.extend(this); } }, s = o.WordArray = i.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 4 * t.length; }, toString: function (t) { return (t || c).stringify(this); }, concat: function (t) { var e = this.words, r = t.words, n = this.sigBytes, o = t.sigBytes; if (this.clamp(), n % 4)\r\n for (var i = 0; i < o; i++) {\r\n var s = r[i >>> 2] >>> 24 - i % 4 * 8 & 255;\r\n e[n + i >>> 2] |= s << 24 - (n + i) % 4 * 8;\r\n }\r\n else\r\n for (var i = 0; i < o; i += 4)\r\n e[n + i >>> 2] = r[i >>> 2]; return this.sigBytes += o, this; }, clamp: function () { var e = this.words, r = this.sigBytes; e[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, e.length = t.ceil(r / 4); }, clone: function () { var t = i.clone.call(this); return t.words = this.words.slice(0), t; }, random: function (e) { for (var r, n = [], o = function (e) { var e = e, r = 987654321, n = 4294967295; return function () { var o = ((r = 36969 * (65535 & r) + (r >> 16) & n) << 16) + (e = 18e3 * (65535 & e) + (e >> 16) & n) & n; return o /= 4294967296, (o += .5) * (t.random() > .5 ? 1 : -1); }; }, i = 0; i < e; i += 4) {\r\n var a = o(4294967296 * (r || t.random()));\r\n r = 987654071 * a(), n.push(4294967296 * a() | 0);\r\n } return new s.init(n, e); } }), a = n.enc = {}, c = a.Hex = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o++) {\r\n var i = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;\r\n n.push((i >>> 4).toString(16)), n.push((15 & i).toString(16));\r\n } return n.join(\"\"); }, parse: function (t) { for (var e = t.length, r = [], n = 0; n < e; n += 2)\r\n r[n >>> 3] |= parseInt(t.substr(n, 2), 16) << 24 - n % 8 * 4; return new s.init(r, e / 2); } }, u = a.Latin1 = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o++) {\r\n var i = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;\r\n n.push(String.fromCharCode(i));\r\n } return n.join(\"\"); }, parse: function (t) { for (var e = t.length, r = [], n = 0; n < e; n++)\r\n r[n >>> 2] |= (255 & t.charCodeAt(n)) << 24 - n % 4 * 8; return new s.init(r, e); } }, l = a.Utf8 = { stringify: function (t) { try {\r\n return decodeURIComponent(escape(u.stringify(t)));\r\n }\r\n catch (t) {\r\n throw new Error(\"Malformed UTF-8 data\");\r\n } }, parse: function (t) { return u.parse(unescape(encodeURIComponent(t))); } }, h = o.BufferedBlockAlgorithm = i.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0; }, _append: function (t) { \"string\" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; }, _process: function (e) { var r = this._data, n = r.words, o = r.sigBytes, i = this.blockSize, a = 4 * i, c = o / a, u = (c = e ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0)) * i, l = t.min(4 * u, o); if (u) {\r\n for (var h = 0; h < u; h += i)\r\n this._doProcessBlock(n, h);\r\n var f = n.splice(0, u);\r\n r.sigBytes -= l;\r\n } return new s.init(f, l); }, clone: function () { var t = i.clone.call(this); return t._data = this._data.clone(), t; }, _minBufferSize: 0 }), f = (o.Hasher = h.extend({ cfg: i.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset(); }, reset: function () { h.reset.call(this), this._doReset(); }, update: function (t) { return this._append(t), this._process(), this; }, finalize: function (t) { t && this._append(t); var e = this._doFinalize(); return e; }, blockSize: 16, _createHelper: function (t) { return function (e, r) { return new t.init(r).finalize(e); }; }, _createHmacHelper: function (t) { return function (e, r) { return new f.HMAC.init(t, r).finalize(e); }; } }), n.algo = {}); return n; }(Math), n); }, function (t, e, r) { var n; t.exports = (n = r(0), r(5), void (n.lib.Cipher || function (t) { var e = n, r = e.lib, o = r.Base, i = r.WordArray, s = r.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), u = e.algo, l = u.EvpKDF, h = r.Cipher = s.extend({ cfg: o.extend(), createEncryptor: function (t, e) { return this.create(this._ENC_XFORM_MODE, t, e); }, createDecryptor: function (t, e) { return this.create(this._DEC_XFORM_MODE, t, e); }, init: function (t, e, r) { this.cfg = this.cfg.extend(r), this._xformMode = t, this._key = e, this.reset(); }, reset: function () { s.reset.call(this), this._doReset(); }, process: function (t) { return this._append(t), this._process(); }, finalize: function (t) { t && this._append(t); var e = this._doFinalize(); return e; }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return \"string\" == typeof t ? F : w; } return function (e) { return { encrypt: function (r, n, o) { return t(n).encrypt(e, r, n, o); }, decrypt: function (r, n, o) { return t(n).decrypt(e, r, n, o); } }; }; }() }), f = (r.StreamCipher = h.extend({ _doFinalize: function () { var t = this._process(!0); return t; }, blockSize: 1 }), e.mode = {}), p = r.BlockCipherMode = o.extend({ createEncryptor: function (t, e) { return this.Encryptor.create(t, e); }, createDecryptor: function (t, e) { return this.Decryptor.create(t, e); }, init: function (t, e) { this._cipher = t, this._iv = e; } }), d = f.CBC = function () { var e = p.extend(); function r(e, r, n) { var o = this._iv; if (o) {\r\n var i = o;\r\n this._iv = t;\r\n }\r\n else\r\n var i = this._prevBlock; for (var s = 0; s < n; s++)\r\n e[r + s] ^= i[s]; } return e.Encryptor = e.extend({ processBlock: function (t, e) { var n = this._cipher, o = n.blockSize; r.call(this, t, e, o), n.encryptBlock(t, e), this._prevBlock = t.slice(e, e + o); } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var n = this._cipher, o = n.blockSize, i = t.slice(e, e + o); n.decryptBlock(t, e), r.call(this, t, e, o), this._prevBlock = i; } }), e; }(), m = e.pad = {}, y = m.Pkcs7 = { pad: function (t, e) { for (var r = 4 * e, n = r - t.sigBytes % r, o = n << 24 | n << 16 | n << 8 | n, s = [], a = 0; a < n; a += 4)\r\n s.push(o); var c = i.create(s, n); t.concat(c); }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, g = (r.BlockCipher = h.extend({ cfg: h.cfg.extend({ mode: d, padding: y }), reset: function () { h.reset.call(this); var t = this.cfg, e = t.iv, r = t.mode; if (this._xformMode == this._ENC_XFORM_MODE)\r\n var n = r.createEncryptor;\r\n else {\r\n var n = r.createDecryptor;\r\n this._minBufferSize = 1;\r\n } this._mode && this._mode.__creator == n ? this._mode.init(this, e && e.words) : (this._mode = n.call(r, this, e && e.words), this._mode.__creator = n); }, _doProcessBlock: function (t, e) { this._mode.processBlock(t, e); }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) {\r\n t.pad(this._data, this.blockSize);\r\n var e = this._process(!0);\r\n }\r\n else {\r\n var e = this._process(!0);\r\n t.unpad(e);\r\n } return e; }, blockSize: 4 }), r.CipherParams = o.extend({ init: function (t) { this.mixIn(t); }, toString: function (t) { return (t || this.formatter).stringify(this); } })), _ = e.format = {}, v = _.OpenSSL = { stringify: function (t) { var e = t.ciphertext, r = t.salt; if (r)\r\n var n = i.create([1398893684, 1701076831]).concat(r).concat(e);\r\n else\r\n var n = e; return n.toString(c); }, parse: function (t) { var e = c.parse(t), r = e.words; if (1398893684 == r[0] && 1701076831 == r[1]) {\r\n var n = i.create(r.slice(2, 4));\r\n r.splice(0, 4), e.sigBytes -= 16;\r\n } return g.create({ ciphertext: e, salt: n }); } }, w = r.SerializableCipher = o.extend({ cfg: o.extend({ format: v }), encrypt: function (t, e, r, n) { n = this.cfg.extend(n); var o = t.createEncryptor(r, n), i = o.finalize(e), s = o.cfg; return g.create({ ciphertext: i, key: r, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: n.format }); }, decrypt: function (t, e, r, n) { n = this.cfg.extend(n), e = this._parse(e, n.format); var o = t.createDecryptor(r, n).finalize(e.ciphertext); return o; }, _parse: function (t, e) { return \"string\" == typeof t ? e.parse(t, this) : t; } }), b = e.kdf = {}, B = b.OpenSSL = { execute: function (t, e, r, n) { n || (n = i.random(8)); var o = l.create({ keySize: e + r }).compute(t, n), s = i.create(o.words.slice(e), 4 * r); return o.sigBytes = 4 * e, g.create({ key: o, iv: s, salt: n }); } }, F = r.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: B }), encrypt: function (t, e, r, n) { var o = (n = this.cfg.extend(n)).kdf.execute(r, t.keySize, t.ivSize); n.iv = o.iv; var i = w.encrypt.call(this, t, e, o.key, n); return i.mixIn(o), i; }, decrypt: function (t, e, r, n) { n = this.cfg.extend(n), e = this._parse(e, n.format); var o = n.kdf.execute(r, t.keySize, t.ivSize, e.salt); n.iv = o.iv; var i = w.decrypt.call(this, t, e, o.key, n); return i; } }); }())); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(17), o = r(3), i = r(14), s = r(25);\r\n function a(t) { n.BigNumber.config(i.ETH_BIGNUMBER_ROUNDING_MODE); var e = o.padLeft(o.toTwosComplement(t).toString(16), 64); return new s.SolidityParam(e); }\r\n function c(t) { return \"1\" === new n.BigNumber(t.substr(0, 1), 16).toString(2).substr(0, 1); }\r\n function u(t) { var e = t.staticPart() || \"0\"; return c(e) ? new n.BigNumber(e, 16).minus(new n.BigNumber(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 16)).minus(1) : new n.BigNumber(e, 16); }\r\n function l(t) { var e = t.staticPart() || \"0\"; return new n.BigNumber(e, 16); }\r\n e.formatInputInt = a, e.formatInputBytes = function (t) { var e = o.toHex(t).substr(2), r = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * r), new s.SolidityParam(e); }, e.formatInputDynamicBytes = function (t) { var e = o.toHex(t).substr(2), r = e.length / 2, n = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * n), new s.SolidityParam(a(r).value + e); }, e.formatInputString = function (t) { var e = o.fromUtf8(t).substr(2), r = e.length / 2, n = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * n), new s.SolidityParam(a(r).value + e); }, e.formatInputBool = function (t) { var e = \"000000000000000000000000000000000000000000000000000000000000000\" + (t ? \"1\" : \"0\"); return new s.SolidityParam(e); }, e.formatInputReal = function (t) { return a(new n.BigNumber(t).times(new n.BigNumber(2).pow(128))); }, e.signedIsNegative = c, e.formatOutputInt = u, e.formatOutputUInt = l, e.formatOutputReal = function (t) { return u(t).dividedBy(new n.BigNumber(2).pow(128)); }, e.formatOutputUReal = function (t) { return l(t).dividedBy(new n.BigNumber(2).pow(128)); }, e.formatOutputBool = function (t) { return \"0000000000000000000000000000000000000000000000000000000000000001\" === t.staticPart(); }, e.formatOutputBytes = function (t, e) { var r = e.match(/^bytes([0-9]*)/), n = parseInt(r[1], 10); return \"0x\" + t.staticPart().slice(0, 2 * n); }, e.formatOutputDynamicBytes = function (t) { var e = 2 * new n.BigNumber(t.dynamicPart().slice(0, 64), 16).toNumber(); return \"0x\" + t.dynamicPart().substr(64, e); }, e.formatOutputString = function (t) { var e = 2 * new n.BigNumber(t.dynamicPart().slice(0, 64), 16).toNumber(); return o.toUtf8(t.dynamicPart().substr(64, e)); }, e.formatOutputAddress = function (t) { var e = t.staticPart(); return \"0x\" + e.slice(e.length - 40, e.length); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(17), o = r(31), i = r(32), s = r(20);\r\n function a(t, e) { var r = t; return e && \"hex\" === e.encoding && (r.length > 2 && \"0x\" === r.substr(0, 2) && (r = r.substr(2)), r = i.enc.Hex.parse(r)), s(r, { outputLength: 256 }).toString(); }\r\n e.sha3 = a;\r\n var c = { noether: \"0\", wei: \"1\", kwei: \"1000\", Kwei: \"1000\", babbage: \"1000\", femtoether: \"1000\", mwei: \"1000000\", Mwei: \"1000000\", lovelace: \"1000000\", picoether: \"1000000\", gwei: \"1000000000\", Gwei: \"1000000000\", shannon: \"1000000000\", nanoether: \"1000000000\", nano: \"1000000000\", szabo: \"1000000000000\", microether: \"1000000000000\", micro: \"1000000000000\", finney: \"1000000000000000\", milliether: \"1000000000000000\", milli: \"1000000000000000\", ether: \"1000000000000000000\", kether: \"1000000000000000000000\", grand: \"1000000000000000000000\", mether: \"1000000000000000000000000\", gether: \"1000000000000000000000000000\", tether: \"1000000000000000000000000000000\" };\r\n function u(t, e, r) { return new Array(e - t.length + 1).join(r || \"0\") + t; }\r\n function l(t, e) {\r\n if (e === void 0) { e = !1; }\r\n var r = o.encode(t), n = \"\";\r\n for (var t_1 = 0; t_1 < r.length; t_1++) {\r\n var o_1 = r.charCodeAt(t_1);\r\n if (0 === o_1) {\r\n if (!e)\r\n break;\r\n n += \"00\";\r\n }\r\n else {\r\n var t_2 = o_1.toString(16);\r\n n += t_2.length < 2 ? \"0\" + t_2 : t_2;\r\n }\r\n }\r\n return \"0x\" + n;\r\n }\r\n function h(t) { var e = d(t), r = e.toString(16); return e.isLessThan(0) ? \"-0x\" + r.substr(1) : \"0x\" + r; }\r\n function f(t) { if (v(t))\r\n return h(+t); if (g(t))\r\n return h(t); if (\"object\" == typeof t)\r\n return l(JSON.stringify(t)); if (_(t)) {\r\n var e_1 = t;\r\n if (0 === e_1.indexOf(\"-0x\"))\r\n return h(e_1);\r\n if (0 === e_1.indexOf(\"0x\"))\r\n return e_1;\r\n if (!isFinite(e_1))\r\n return l(e_1, !0);\r\n } return h(t); }\r\n function p(t) { var e = t ? t.toLowerCase() : \"ether\", r = c[e]; if (void 0 === r)\r\n throw new Error(\"This unit doesn't exists, please use the one of the following units\" + JSON.stringify(c, null, 2)); return new n.BigNumber(r, 10); }\r\n function d(t) { var e = t || 0; return g(e) ? e : \"string\" != typeof e || 0 !== e.indexOf(\"0x\") && 0 !== e.indexOf(\"-0x\") ? new n.BigNumber(e.toString(10), 10) : new n.BigNumber(e.replace(\"0x\", \"\"), 16); }\r\n function m(t) { return /^0x[0-9a-f]{40}$/i.test(t); }\r\n function y(t) { var e = t.replace(\"0x\", \"\"); var r = a(e.toLowerCase()); for (var t_3 = 0; t_3 < 40; t_3++)\r\n if (parseInt(r[t_3], 16) > 7 && e[t_3].toUpperCase() !== e[t_3] || parseInt(r[t_3], 16) <= 7 && e[t_3].toLowerCase() !== e[t_3])\r\n return !1; return !0; }\r\n function g(t) { return t instanceof n.BigNumber; }\r\n function _(t) { return \"string\" == typeof t || t && t.constructor && \"String\" === t.constructor.name; }\r\n function v(t) { return \"boolean\" == typeof t; }\r\n e.padLeft = u, e.padRight = function (t, e, r) { return t + new Array(e - t.length + 1).join(r || \"0\"); }, e.toUtf8 = function (t) { var e = \"\", r = 0, n = t.length; for (\"0x\" === t.substring(0, 2) && (r = 2); r < n; r += 2) {\r\n var n_1 = parseInt(t.substr(r, 2), 16);\r\n if (0 === n_1)\r\n break;\r\n e += String.fromCharCode(n_1);\r\n } return o.decode(e); }, e.toAscii = function (t) { var e = \"\", r = 0, n = t.length; for (\"0x\" === t.substring(0, 2) && (r = 2); r < n; r += 2) {\r\n var n_2 = parseInt(t.substr(r, 2), 16);\r\n e += String.fromCharCode(n_2);\r\n } return e; }, e.fromUtf8 = l, e.fromAscii = function (t, e) {\r\n if (e === void 0) { e = 0; }\r\n var r = \"\";\r\n for (var e_2 = 0; e_2 < t.length; e_2++) {\r\n var n_3 = t.charCodeAt(e_2).toString(16);\r\n r += n_3.length < 2 ? \"0\" + n_3 : n_3;\r\n }\r\n return \"0x\" + r.padEnd(e, \"0\");\r\n }, e.transformToFullName = function (t) { if (-1 !== t.name.indexOf(\"(\"))\r\n return t.name; var e = t.inputs.map(function (t) { return t.type; }).join(); return t.name + \"(\" + e + \")\"; }, e.extractDisplayName = function (t) { var e = t.indexOf(\"(\"), r = t.indexOf(\")\"); return -1 !== e && -1 !== r ? t.substr(0, e) : t; }, e.extractTypeName = function (t) { var e = t.indexOf(\"(\"), r = t.indexOf(\")\"); return -1 !== e && -1 !== r ? t.substr(e + 1, r - e - 1).replace(\" \", \"\") : \"\"; }, e.isHex = function (t) { return \"string\" == typeof t && /^0x[0-9a-fA-F]+$/.test(t); }, e.toNullDecimal = function (t) { return null == t ? t : d(t).toNumber(); }, e.toDecimal = function (t) { return d(t).toNumber(); }, e.toString = function (t) { return g(t) ? t.toString(10) : \"\" + t; }, e.toData = function (t) { return \"string\" == typeof t && !t.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t) ? \"0x\" + t : f(t); }, e.toBoolean = function (t) { return \"boolean\" == typeof t ? t : 0 !== d(t).toNumber(); }, e.fromDecimal = h, e.toHex = f, e.getValueOfUnit = p, e.fromWei = function (t, e) { var r = d(t).dividedBy(p(e)); return g(t) ? r : r.toString(10); }, e.toWei = function (t, e) { var r = d(t).times(p(e)); return g(t) ? r : r.toString(10); }, e.toBigNumber = d, e.toTwosComplement = function (t) { var e = d(t).integerValue(); return e.isLessThan(0) ? new n.BigNumber(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 16).plus(e).plus(1) : e; }, e.isStrictAddress = m, e.isAddress = function (t) { return !!/^(0x)?[0-9a-f]{40}$/i.test(t) && (!(!/^(0x)?[0-9a-f]{40}$/.test(t) && !/^(0x)?[0-9A-F]{40}$/.test(t)) || y(t)); }, e.isChecksumAddress = y, e.toChecksumAddress = function (t) { if (void 0 === t)\r\n return \"\"; var e = t.toLowerCase().replace(\"0x\", \"\"), r = a(e); var n = \"0x\"; for (var t_4 = 0; t_4 < e.length; t_4++)\r\n parseInt(r[t_4], 16) > 7 ? n += e[t_4].toUpperCase() : n += e[t_4]; return n; }, e.toArray = function (t) { if (!Array.isArray(t))\r\n throw new Error(\"Value was not an array: \" + JSON.stringify(t)); return t; }, e.toAddress = function (t) { return m(t) ? t : /^[0-9a-f]{40}$/.test(t) ? \"0x\" + t : \"0x\" + u(f(t).substr(2), 40); }, e.isBigNumber = g, e.isString = _, e.isFunction = function (t) { return \"function\" == typeof t; }, e.isObject = function (t) { return null !== t && !Array.isArray(t) && \"object\" == typeof t; }, e.isBoolean = v, e.isArray = function (t) { return Array.isArray(t); }, e.isJson = function (t) { try {\r\n return !!JSON.parse(t);\r\n }\r\n catch (t) {\r\n return !1;\r\n } }, e.isBloom = function (t) { return !(!/^(0x)?[0-9a-f]{512}$/i.test(t) || !/^(0x)?[0-9a-f]{512}$/.test(t) && !/^(0x)?[0-9A-F]{512}$/.test(t)); }, e.isTopic = function (t) { return !(!/^(0x)?[0-9a-f]{64}$/i.test(t) || !/^(0x)?[0-9a-f]{64}$/.test(t) && !/^(0x)?[0-9A-F]{64}$/.test(t)); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(25);\r\n e.SolidityType = /** @class */ (function () {\r\n function SolidityType(t) {\r\n this._inputFormatter = t.inputFormatter, this._outputFormatter = t.outputFormatter;\r\n }\r\n SolidityType.prototype.isType = function (t) { throw new Error(\"this method should be overrwritten for type \" + t); };\r\n SolidityType.prototype.staticPartLength = function (t) { return (this.nestedTypes(t) || [\"[1]\"]).map(function (t) { return parseInt(t.slice(1, -1), 10) || 1; }).reduce(function (t, e) { return t * e; }, 32); };\r\n SolidityType.prototype.isDynamicArray = function (t) { var e = this.nestedTypes(t); return !!e && !e[e.length - 1].match(/[0-9]{1,}/g); };\r\n SolidityType.prototype.isStaticArray = function (t) { var e = this.nestedTypes(t); return !!e && !!e[e.length - 1].match(/[0-9]{1,}/g); };\r\n SolidityType.prototype.staticArrayLength = function (t) { var e = this.nestedTypes(t); if (e) {\r\n var t_5 = e[e.length - 1].match(/[0-9]{1,}/g);\r\n return parseInt(t_5[t_5.length - 1] || \"1\", 10);\r\n } return 1; };\r\n SolidityType.prototype.nestedName = function (t) { var e = this.nestedTypes(t); return e ? t.substr(0, t.length - e[e.length - 1].length) : t; };\r\n SolidityType.prototype.isDynamicType = function (t) { return !1; };\r\n SolidityType.prototype.nestedTypes = function (t) { return t.match(/(\\[[0-9]*\\])/g); };\r\n SolidityType.prototype.encode = function (t, e) {\r\n var _this = this;\r\n if (this.isDynamicArray(e)) {\r\n var r_1 = t.length, o_2 = this.nestedName(e), i_1 = [];\r\n return i_1.push(n.formatInputInt(r_1).encode()), t.forEach(function (t) { i_1.push(_this.encode(t, o_2)); }), i_1;\r\n }\r\n if (this.isStaticArray(e)) {\r\n var r_2 = this.staticArrayLength(e), n_4 = this.nestedName(e), o_3 = [];\r\n for (var e_3 = 0; e_3 < r_2; e_3++)\r\n o_3.push(this.encode(t[e_3], n_4));\r\n return o_3;\r\n }\r\n return this._inputFormatter(t, e).encode();\r\n };\r\n SolidityType.prototype.decode = function (t, e, r) { if (this.isDynamicArray(r)) {\r\n var n_5 = parseInt(\"0x\" + t.substr(2 * e, 64), 16), o_4 = parseInt(\"0x\" + t.substr(2 * n_5, 64), 16), i_2 = n_5 + 32, s = this.nestedName(r), a = this.staticPartLength(s), c = 32 * Math.floor((a + 31) / 32), u = [];\r\n for (var e_4 = 0; e_4 < o_4 * c; e_4 += c)\r\n u.push(this.decode(t, i_2 + e_4, s));\r\n return u;\r\n } if (this.isStaticArray(r)) {\r\n var n_6 = this.staticArrayLength(r), o_5 = e, i_3 = this.nestedName(r), s = this.staticPartLength(i_3), a = 32 * Math.floor((s + 31) / 32), c = [];\r\n for (var e_5 = 0; e_5 < n_6 * a; e_5 += a)\r\n c.push(this.decode(t, o_5 + e_5, i_3));\r\n return c;\r\n } if (this.isDynamicType(r)) {\r\n var n_7 = parseInt(\"0x\" + t.substr(2 * e, 64), 16), i_4 = parseInt(\"0x\" + t.substr(2 * n_7, 64), 16), s = Math.floor((i_4 + 31) / 32), a = new o.SolidityParam(t.substr(2 * n_7, 64 * (1 + s)), 0);\r\n return this._outputFormatter(a, r);\r\n } var n = this.staticPartLength(r), i = new o.SolidityParam(t.substr(2 * e, 2 * n)); return this._outputFormatter(i, r); };\r\n return SolidityType;\r\n }());\r\n }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), r(11), r(12), i = (o = n).lib, s = i.Base, a = i.WordArray, c = o.algo, u = c.MD5, l = c.EvpKDF = s.extend({ cfg: s.extend({ keySize: 4, hasher: u, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t); }, compute: function (t, e) { for (var r = this.cfg, n = r.hasher.create(), o = a.create(), i = o.words, s = r.keySize, c = r.iterations; i.length < s;) {\r\n u && n.update(u);\r\n var u = n.update(t).finalize(e);\r\n n.reset();\r\n for (var l = 1; l < c; l++)\r\n u = n.finalize(u), n.reset();\r\n o.concat(u);\r\n } return o.sigBytes = 4 * s, o; } }), o.EvpKDF = function (t, e, r) { return l.create(r).compute(t, e); }, n.EvpKDF); }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), i = (o = n).lib.WordArray, o.enc.Base64 = { stringify: function (t) { var e = t.words, r = t.sigBytes, n = this._map; t.clamp(); for (var o = [], i = 0; i < r; i += 3)\r\n for (var s = (e[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (e[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | e[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, a = 0; a < 4 && i + .75 * a < r; a++)\r\n o.push(n.charAt(s >>> 6 * (3 - a) & 63)); var c = n.charAt(64); if (c)\r\n for (; o.length % 4;)\r\n o.push(c); return o.join(\"\"); }, parse: function (t) { var e = t.length, r = this._map, n = this._reverseMap; if (!n) {\r\n n = this._reverseMap = [];\r\n for (var o = 0; o < r.length; o++)\r\n n[r.charCodeAt(o)] = o;\r\n } var s = r.charAt(64); if (s) {\r\n var a = t.indexOf(s);\r\n -1 !== a && (e = a);\r\n } return function (t, e, r) { for (var n = [], o = 0, s = 0; s < e; s++)\r\n if (s % 4) {\r\n var a = r[t.charCodeAt(s - 1)] << s % 4 * 2, c = r[t.charCodeAt(s)] >>> 6 - s % 4 * 2;\r\n n[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++;\r\n } return i.create(n, o); }(t, e, n); }, _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\" }, n.enc.Base64); }, function (t, e, r) { var n; t.exports = (n = r(0), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = []; !function () { for (var e = 0; e < 64; e++)\r\n a[e] = 4294967296 * t.abs(t.sin(e + 1)) | 0; }(); var c = s.MD5 = i.extend({ _doReset: function () { this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878]); }, _doProcessBlock: function (t, e) { for (var r = 0; r < 16; r++) {\r\n var n = e + r, o = t[n];\r\n t[n] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\r\n } var i = this._hash.words, s = t[e + 0], c = t[e + 1], p = t[e + 2], d = t[e + 3], m = t[e + 4], y = t[e + 5], g = t[e + 6], _ = t[e + 7], v = t[e + 8], w = t[e + 9], b = t[e + 10], B = t[e + 11], F = t[e + 12], N = t[e + 13], k = t[e + 14], x = t[e + 15], S = i[0], A = i[1], O = i[2], T = i[3]; S = u(S, A, O, T, s, 7, a[0]), T = u(T, S, A, O, c, 12, a[1]), O = u(O, T, S, A, p, 17, a[2]), A = u(A, O, T, S, d, 22, a[3]), S = u(S, A, O, T, m, 7, a[4]), T = u(T, S, A, O, y, 12, a[5]), O = u(O, T, S, A, g, 17, a[6]), A = u(A, O, T, S, _, 22, a[7]), S = u(S, A, O, T, v, 7, a[8]), T = u(T, S, A, O, w, 12, a[9]), O = u(O, T, S, A, b, 17, a[10]), A = u(A, O, T, S, B, 22, a[11]), S = u(S, A, O, T, F, 7, a[12]), T = u(T, S, A, O, N, 12, a[13]), O = u(O, T, S, A, k, 17, a[14]), S = l(S, A = u(A, O, T, S, x, 22, a[15]), O, T, c, 5, a[16]), T = l(T, S, A, O, g, 9, a[17]), O = l(O, T, S, A, B, 14, a[18]), A = l(A, O, T, S, s, 20, a[19]), S = l(S, A, O, T, y, 5, a[20]), T = l(T, S, A, O, b, 9, a[21]), O = l(O, T, S, A, x, 14, a[22]), A = l(A, O, T, S, m, 20, a[23]), S = l(S, A, O, T, w, 5, a[24]), T = l(T, S, A, O, k, 9, a[25]), O = l(O, T, S, A, d, 14, a[26]), A = l(A, O, T, S, v, 20, a[27]), S = l(S, A, O, T, N, 5, a[28]), T = l(T, S, A, O, p, 9, a[29]), O = l(O, T, S, A, _, 14, a[30]), S = h(S, A = l(A, O, T, S, F, 20, a[31]), O, T, y, 4, a[32]), T = h(T, S, A, O, v, 11, a[33]), O = h(O, T, S, A, B, 16, a[34]), A = h(A, O, T, S, k, 23, a[35]), S = h(S, A, O, T, c, 4, a[36]), T = h(T, S, A, O, m, 11, a[37]), O = h(O, T, S, A, _, 16, a[38]), A = h(A, O, T, S, b, 23, a[39]), S = h(S, A, O, T, N, 4, a[40]), T = h(T, S, A, O, s, 11, a[41]), O = h(O, T, S, A, d, 16, a[42]), A = h(A, O, T, S, g, 23, a[43]), S = h(S, A, O, T, w, 4, a[44]), T = h(T, S, A, O, F, 11, a[45]), O = h(O, T, S, A, x, 16, a[46]), S = f(S, A = h(A, O, T, S, p, 23, a[47]), O, T, s, 6, a[48]), T = f(T, S, A, O, _, 10, a[49]), O = f(O, T, S, A, k, 15, a[50]), A = f(A, O, T, S, y, 21, a[51]), S = f(S, A, O, T, F, 6, a[52]), T = f(T, S, A, O, d, 10, a[53]), O = f(O, T, S, A, b, 15, a[54]), A = f(A, O, T, S, c, 21, a[55]), S = f(S, A, O, T, v, 6, a[56]), T = f(T, S, A, O, x, 10, a[57]), O = f(O, T, S, A, g, 15, a[58]), A = f(A, O, T, S, N, 21, a[59]), S = f(S, A, O, T, m, 6, a[60]), T = f(T, S, A, O, B, 10, a[61]), O = f(O, T, S, A, p, 15, a[62]), A = f(A, O, T, S, w, 21, a[63]), i[0] = i[0] + S | 0, i[1] = i[1] + A | 0, i[2] = i[2] + O | 0, i[3] = i[3] + T | 0; }, _doFinalize: function () { var e = this._data, r = e.words, n = 8 * this._nDataBytes, o = 8 * e.sigBytes; r[o >>> 5] |= 128 << 24 - o % 32; var i = t.floor(n / 4294967296), s = n; r[15 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), r[14 + (o + 64 >>> 9 << 4)] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), e.sigBytes = 4 * (r.length + 1), this._process(); for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {\r\n var l = c[u];\r\n c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8);\r\n } return a; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); function u(t, e, r, n, o, i, s) { var a = t + (e & r | ~e & n) + o + s; return (a << i | a >>> 32 - i) + e; } function l(t, e, r, n, o, i, s) { var a = t + (e & n | r & ~n) + o + s; return (a << i | a >>> 32 - i) + e; } function h(t, e, r, n, o, i, s) { var a = t + (e ^ r ^ n) + o + s; return (a << i | a >>> 32 - i) + e; } function f(t, e, r, n, o, i, s) { var a = t + (r ^ (e | ~n)) + o + s; return (a << i | a >>> 32 - i) + e; } e.MD5 = i._createHelper(c), e.HmacMD5 = i._createHmacHelper(c); }(Math), n.MD5); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(14);\r\n function i(t) { return \"latest\" === t || \"pending\" === t || \"earliest\" === t; }\r\n function s(t) { if (void 0 !== t && null != t)\r\n return i(t) ? t : n.toHex(t); }\r\n function a(t) { return t ? (null !== t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), null !== t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.nonce = n.toDecimal(t.nonce), t.gas = n.toDecimal(t.gas), t.gasPrice = n.toBigNumber(t.gasPrice), t.value = n.toBigNumber(t.value), t) : null; }\r\n function c(t) { return t ? (t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.logIndex && (t.logIndex = n.toDecimal(t.logIndex)), t) : null; }\r\n function u(t) { if (n.isStrictAddress(t))\r\n return t; if (n.isAddress(t))\r\n return \"0x\" + t; throw new Error(\"Invalid address: \" + JSON.stringify(t)); }\r\n e.outputBigNumberFormatter = function (t) { return n.toBigNumber(t); }, e.isPredefinedBlockNumber = i, e.inputDefaultBlockNumberFormatter = function (t) { return void 0 === t ? o.defaultBlock : s(t); }, e.inputBlockNumberFormatter = s, e.inputCallFormatter = function (t) { return t.from = t.from, t.from && (t.from = u(t.from)), t.to && (t.to = u(t.to)), [\"gasPrice\", \"gas\", \"value\", \"nonce\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (e) { t[e] = n.fromDecimal(t[e]); }), t.data && !t.data.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t.data) && (t.data = \"0x\" + t.data), t; }, e.inputTransactionFormatter = function (t) { if (\"object\" != typeof t)\r\n throw new Error(\"Did not provide transaction options\"); if (!t.from)\r\n throw new Error('Missing \"from\" in transaction options'); return t.from = u(t.from), t.to && (t.to = u(t.to)), [\"gasPrice\", \"gas\", \"value\", \"nonce\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (e) { t[e] = n.fromDecimal(t[e]); }), t.data && !t.data.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t.data) && (t.data = \"0x\" + t.data), t; }, e.outputTransactionFormatter = a, e.outputTransactionReceiptFormatter = function (t) { return t ? (null !== t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), null !== t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.cumulativeGasUsed = n.toDecimal(t.cumulativeGasUsed), t.gasUsed = n.toDecimal(t.gasUsed), n.isArray(t.logs) && (t.logs = t.logs.map(function (t) { return c(t); })), t.status = n.toDecimal(t.status), t) : null; }, e.outputBlockFormatter = function (t) { return t ? (t.gasLimit = n.toDecimal(t.gasLimit), t.gasUsed = n.toDecimal(t.gasUsed), t.size = n.toDecimal(t.size), t.timestamp = n.toDecimal(t.timestamp), null !== t.number && (t.number = n.toDecimal(t.number)), t.difficulty = n.toBigNumber(t.difficulty), t.totalDifficulty = n.toBigNumber(t.totalDifficulty), n.isArray(t.transactions) && t.transactions.forEach(function (t) { if (!n.isString(t))\r\n return a(t); }), t) : null; }, e.outputLogFormatter = c, e.inputPostFormatter = function (t) { return t ? (t.ttl = n.fromDecimal(t.ttl), t.workToProve = n.fromDecimal(t.workToProve), t.priority = n.fromDecimal(t.priority), n.isArray(t.topics) || (t.topics = t.topics ? [t.topics] : []), t.topics = t.topics.map(function (t) { return 0 === t.indexOf(\"0x\") ? t : n.fromUtf8(t); }), t) : null; }, e.outputPostFormatter = function (t) { return t ? (t.expiry = n.toDecimal(t.expiry), t.sent = n.toDecimal(t.sent), t.ttl = n.toDecimal(t.ttl), t.workProved = n.toDecimal(t.workProved), t.topics || (t.topics = []), t.topics = t.topics.map(function (t) { return n.toAscii(t); }), t) : null; }, e.inputAddressFormatter = u, e.outputSyncingFormatter = function (t) { return t ? (t.startingBlock = n.toDecimal(t.startingBlock), t.currentBlock = n.toDecimal(t.currentBlock), t.highestBlock = n.toDecimal(t.highestBlock), t.knownStates && (t.knownStates = n.toDecimal(t.knownStates), t.pulledStates = n.toDecimal(t.pulledStates)), t) : t; };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n function n() { var t, e; var r = new Promise(function (n, o) { t = (function (t) { n(t), r.isPending = !1; }), e = (function (t) { o(t), r.isPending = !1; }); }).catch(function (t) { return Promise.reject(t); }); return r.resolve = t, r.reject = e, \"finally\" in r || (r.finally = (function (t) { r.then(t), r.catch(t); })), r.isPending = !0, r; }\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.future = n, e.default = n;\r\n }, function (t, e, r) { var n, o, i, s, a, c; t.exports = (n = r(0), i = (o = n).lib, s = i.Base, a = i.WordArray, (c = o.x64 = {}).Word = s.extend({ init: function (t, e) { this.high = t, this.low = e; } }), c.WordArray = s.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 8 * t.length; }, toX32: function () { for (var t = this.words, e = t.length, r = [], n = 0; n < e; n++) {\r\n var o = t[n];\r\n r.push(o.high), r.push(o.low);\r\n } return a.create(r, this.sigBytes); }, clone: function () { for (var t = s.clone.call(this), e = t.words = this.words.slice(0), r = e.length, n = 0; n < r; n++)\r\n e[n] = e[n].clone(); return t; } }), n); }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), i = (o = n).lib, s = i.WordArray, a = i.Hasher, c = o.algo, u = [], l = c.SHA1 = a.extend({ _doReset: function () { this._hash = new s.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], c = 0; c < 80; c++) {\r\n if (c < 16)\r\n u[c] = 0 | t[e + c];\r\n else {\r\n var l = u[c - 3] ^ u[c - 8] ^ u[c - 14] ^ u[c - 16];\r\n u[c] = l << 1 | l >>> 31;\r\n }\r\n var h = (n << 5 | n >>> 27) + a + u[c];\r\n h += c < 20 ? 1518500249 + (o & i | ~o & s) : c < 40 ? 1859775393 + (o ^ i ^ s) : c < 60 ? (o & i | o & s | i & s) - 1894007588 : (o ^ i ^ s) - 899497514, a = s, s = i, i = o << 30 | o >>> 2, o = n, n = h;\r\n } r[0] = r[0] + n | 0, r[1] = r[1] + o | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0; }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[14 + (n + 64 >>> 9 << 4)] = Math.floor(r / 4294967296), e[15 + (n + 64 >>> 9 << 4)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash; }, clone: function () { var t = a.clone.call(this); return t._hash = this._hash.clone(), t; } }), o.SHA1 = a._createHelper(l), o.HmacSHA1 = a._createHmacHelper(l), n.SHA1); }, function (t, e, r) { var n, o, i, s, a, c, u; t.exports = (n = r(0), i = (o = n).lib, s = i.Base, a = o.enc, c = a.Utf8, u = o.algo, void (u.HMAC = s.extend({ init: function (t, e) { t = this._hasher = new t.init, \"string\" == typeof e && (e = c.parse(e)); var r = t.blockSize, n = 4 * r; e.sigBytes > n && (e = t.finalize(e)), e.clamp(); for (var o = this._oKey = e.clone(), i = this._iKey = e.clone(), s = o.words, a = i.words, u = 0; u < r; u++)\r\n s[u] ^= 1549556828, a[u] ^= 909522486; o.sigBytes = i.sigBytes = n, this.reset(); }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey); }, update: function (t) { return this._hasher.update(t), this; }, finalize: function (t) { var e = this._hasher, r = e.finalize(t); e.reset(); var n = e.finalize(this._oKey.clone().concat(r)); return n; } }))); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.InvalidNumberOfSolidityArgs = function (t, e) { return new Error(\"Invalid number of arguments to Solidity function. given: \" + t + \", expected: \" + e); }, e.InvalidNumberOfRPCParams = function (t, e, r) { return new Error(\"Invalid number of input parameters to RPC method \\\"\" + t + \"\\\" given: \" + e + \", expected: \" + r); }, e.InvalidConnection = function (t) { return new Error(\"CONNECTION ERROR: Couldn't connect to node \" + t + \".\"); }, e.InvalidProvider = function () { return new Error(\"Provider not set or invalid\"); }, e.InvalidResponse = function (t) { var e = t && t.error && t.error.message ? t.error.message : \"Invalid JSON RPC response: \" + JSON.stringify(t); return new Error(e); }, e.ConnectionTimeout = function (t) { return new Error(\"CONNECTION TIMEOUT: timeout of \" + t + \" ms achived\"); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(57);\r\n e.ETH_UNITS = [\"wei\", \"kwei\", \"Mwei\", \"Gwei\", \"szabo\", \"finney\", \"femtoether\", \"picoether\", \"nanoether\", \"microether\", \"milliether\", \"nano\", \"micro\", \"milli\", \"ether\", \"grand\", \"Mether\", \"Gether\", \"Tether\", \"Pether\", \"Eether\", \"Zether\", \"Yether\", \"Nether\", \"Dether\", \"Vether\", \"Uether\"], e.ETH_PADDING = 32, e.ETH_SIGNATURE_LENGTH = 4, e.ETH_BIGNUMBER_ROUNDING_MODE = { ROUNDING_MODE: n.BigNumberRoundingMode.ROUND_DOWN }, e.ETH_POLLING_TIMEOUT = 500, e.defaultBlock = \"latest\";\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(61), i = r(62), s = r(63), a = r(64), c = r(65), u = r(66), l = r(67), h = r(68), f = r(69);\r\n function p(t, e) { return t.isDynamicType(e) || t.isDynamicArray(e); }\r\n var d = /** @class */ (function () {\r\n function d(t) {\r\n this._types = t;\r\n }\r\n d.prototype._requireType = function (t) { var e = this._types.filter(function (e) { return e.isType(t); })[0]; if (!e)\r\n throw Error(\"invalid solidity type!: \" + t); return e; };\r\n d.prototype.encodeParam = function (t, e) { return this.encodeParams([t], [e]); };\r\n d.prototype.encodeParams = function (t, e) { var r = this.getSolidityTypes(t), n = r.map(function (r, n) { return r.encode(e[n], t[n]); }), o = r.reduce(function (e, n, o) { var i = n.staticPartLength(t[o]), s = 32 * Math.floor((i + 31) / 32); return e + (p(r[o], t[o]) ? 32 : s); }, 0); return this.encodeMultiWithOffset(t, r, n, o); };\r\n d.prototype.encodeMultiWithOffset = function (t, e, r, o) {\r\n var _this = this;\r\n var i = o, s = \"\";\r\n return t.forEach(function (o, a) { if (p(e[a], t[a])) {\r\n s += n.formatInputInt(i).encode();\r\n var o_6 = _this.encodeWithOffset(t[a], e[a], r[a], i);\r\n i += o_6.length / 2;\r\n }\r\n else\r\n s += _this.encodeWithOffset(t[a], e[a], r[a], i); }), t.forEach(function (n, o) { if (p(e[o], t[o])) {\r\n var n_8 = _this.encodeWithOffset(t[o], e[o], r[o], i);\r\n i += n_8.length / 2, s += n_8;\r\n } }), s;\r\n };\r\n d.prototype.encodeWithOffset = function (t, e, r, o) { var i = 1, s = 2, a = 3, c = e.isDynamicArray(t) ? i : e.isStaticArray(t) ? s : a; if (c !== a) {\r\n var a_1 = e.nestedName(t), u_1 = e.staticPartLength(a_1), l_1 = c === i ? r[0] : \"\";\r\n if (e.isDynamicArray(a_1)) {\r\n var t_6 = c === i ? 2 : 0;\r\n for (var e_6 = 0; e_6 < r.length; e_6++)\r\n c === i ? t_6 += +r[e_6 - 1][0] || 0 : c === s && (t_6 += +(r[e_6 - 1] || [])[0] || 0), l_1 += n.formatInputInt(o + e_6 * u_1 + 32 * t_6).encode();\r\n }\r\n var h_1 = c === i ? r.length - 1 : r.length;\r\n for (var t_7 = 0; t_7 < h_1; t_7++) {\r\n var n_9 = l_1 / 2;\r\n c === i ? l_1 += this.encodeWithOffset(a_1, e, r[t_7 + 1], o + n_9) : c === s && (l_1 += this.encodeWithOffset(a_1, e, r[t_7], o + n_9));\r\n }\r\n return l_1;\r\n } return r; };\r\n d.prototype.decodeParam = function (t, e) { return this.decodeParams([t], e)[0]; };\r\n d.prototype.decodeParams = function (t, e) { var r = this.getSolidityTypes(t), n = this.getOffsets(t, r); return r.map(function (r, o) { return r.decode(e, n[o], t[o]); }); };\r\n d.prototype.getOffsets = function (t, e) { var r = e.map(function (e, r) { return e.staticPartLength(t[r]); }); for (var t_8 = 1; t_8 < r.length; t_8++)\r\n r[t_8] += r[t_8 - 1]; return r.map(function (r, n) { return r - e[n].staticPartLength(t[n]); }); };\r\n d.prototype.getSolidityTypes = function (t) {\r\n var _this = this;\r\n return t.map(function (t) { return _this._requireType(t); });\r\n };\r\n return d;\r\n }());\r\n e.SolidityCoder = d, e.coder = new d([new o.SolidityTypeAddress, new i.SolidityTypeBool, new s.SolidityTypeInt, new a.SolidityTypeUInt, new c.SolidityTypeDynamicBytes, new f.SolidityTypeBytes, new u.SolidityTypeString, new l.SolidityTypeReal, new h.SolidityTypeUReal]);\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.toRPC = function (t) { if (t.jsonrpc = \"2.0\", !t.id || \"number\" != typeof t.id || Math.floor(t.id) !== t.id)\r\n throw new Error(\"Invalid RPC message(invalid id) message: \" + JSON.stringify(t)); if (!t.method || \"string\" != typeof t.method || 0 === t.method.trim().length)\r\n throw new Error(\"Invalid RPC message(invalid method) message: \" + JSON.stringify(t)); if (!t.params || \"object\" != typeof t.params)\r\n throw new Error(\"Invalid RPC message(invalid params) message: \" + JSON.stringify(t)); return t; };\r\n }, function (t, e, r) { var n; !function (o) {\r\n \"use strict\";\r\n var i, s = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i, a = Math.ceil, c = Math.floor, u = \"[BigNumber Error] \", l = u + \"Number primitive has more than 15 significant digits: \", h = 1e14, f = 14, p = 9007199254740991, d = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], m = 1e7, y = 1e9;\r\n function g(t) { var e = 0 | t; return t > 0 || t === e ? e : e - 1; }\r\n function _(t) { for (var e, r, n = 1, o = t.length, i = t[0] + \"\"; n < o;) {\r\n for (e = t[n++] + \"\", r = f - e.length; r--; e = \"0\" + e)\r\n ;\r\n i += e;\r\n } for (o = i.length; 48 === i.charCodeAt(--o);)\r\n ; return i.slice(0, o + 1 || 1); }\r\n function v(t, e) { var r, n, o = t.c, i = e.c, s = t.s, a = e.s, c = t.e, u = e.e; if (!s || !a)\r\n return null; if (r = o && !o[0], n = i && !i[0], r || n)\r\n return r ? n ? 0 : -a : s; if (s != a)\r\n return s; if (r = s < 0, n = c == u, !o || !i)\r\n return n ? 0 : !o ^ r ? 1 : -1; if (!n)\r\n return c > u ^ r ? 1 : -1; for (a = (c = o.length) < (u = i.length) ? c : u, s = 0; s < a; s++)\r\n if (o[s] != i[s])\r\n return o[s] > i[s] ^ r ? 1 : -1; return c == u ? 0 : c > u ^ r ? 1 : -1; }\r\n function w(t, e, r, n) { if (t < e || t > r || t !== (t < 0 ? a(t) : c(t)))\r\n throw Error(u + (n || \"Argument\") + (\"number\" == typeof t ? t < e || t > r ? \" out of range: \" : \" not an integer: \" : \" not a primitive number: \") + t); }\r\n function b(t) { return \"[object Array]\" == Object.prototype.toString.call(t); }\r\n function B(t) { var e = t.c.length - 1; return g(t.e / f) == e && t.c[e] % 2 != 0; }\r\n function F(t, e) { return (t.length > 1 ? t.charAt(0) + \".\" + t.slice(1) : t) + (e < 0 ? \"e\" : \"e+\") + e; }\r\n function N(t, e, r) { var n, o; if (e < 0) {\r\n for (o = r + \".\"; ++e; o += r)\r\n ;\r\n t = o + t;\r\n }\r\n else if (++e > (n = t.length)) {\r\n for (o = r, e -= n; --e; o += r)\r\n ;\r\n t += o;\r\n }\r\n else\r\n e < n && (t = t.slice(0, e) + \".\" + t.slice(e)); return t; }\r\n (i = function t(e) { var r, n, o, i, k, x, S, A, O, T = W.prototype = { constructor: W, toString: null, valueOf: null }, P = new W(1), M = 20, C = 4, E = -7, D = 21, R = -1e7, I = 1e7, H = !1, j = 1, U = 0, L = { decimalSeparator: \".\", groupSeparator: \",\", groupSize: 3, secondaryGroupSize: 0, fractionGroupSeparator: \" \", fractionGroupSize: 0 }, z = \"0123456789abcdefghijklmnopqrstuvwxyz\"; function W(t, e) { var r, i, a, u, h, d, m, y = this; if (!(y instanceof W))\r\n return new W(t, e); if (null == e) {\r\n if (t instanceof W)\r\n return y.s = t.s, y.e = t.e, void (y.c = (t = t.c) ? t.slice() : t);\r\n if ((h = \"number\" == typeof t) && 0 * t == 0) {\r\n if (y.s = 1 / t < 0 ? (t = -t, -1) : 1, t === ~~t) {\r\n for (a = 0, u = t; u >= 10; u /= 10, a++)\r\n ;\r\n return y.e = a, void (y.c = [t]);\r\n }\r\n m = t + \"\";\r\n }\r\n else {\r\n if (!s.test(m = t + \"\"))\r\n return o(y, m, h);\r\n y.s = 45 == m.charCodeAt(0) ? (m = m.slice(1), -1) : 1;\r\n }\r\n }\r\n else {\r\n if (w(e, 2, z.length, \"Base\"), m = t + \"\", 10 == e)\r\n return V(y = new W(t instanceof W ? t : m), M + y.e + 1, C);\r\n if (h = \"number\" == typeof t) {\r\n if (0 * t != 0)\r\n return o(y, m, h, e);\r\n if (y.s = 1 / t < 0 ? (m = m.slice(1), -1) : 1, W.DEBUG && m.replace(/^0\\.0*|\\./, \"\").length > 15)\r\n throw Error(l + t);\r\n h = !1;\r\n }\r\n else\r\n y.s = 45 === m.charCodeAt(0) ? (m = m.slice(1), -1) : 1, e > 10 && e < 37 && (m = m.toLowerCase());\r\n for (r = z.slice(0, e), a = u = 0, d = m.length; u < d; u++)\r\n if (r.indexOf(i = m.charAt(u)) < 0) {\r\n if (\".\" == i && u > a) {\r\n a = d;\r\n continue;\r\n }\r\n return o(y, t + \"\", h, e);\r\n }\r\n m = n(m, e, 10, y.s);\r\n } for ((a = m.indexOf(\".\")) > -1 && (m = m.replace(\".\", \"\")), (u = m.search(/e/i)) > 0 ? (a < 0 && (a = u), a += +m.slice(u + 1), m = m.substring(0, u)) : a < 0 && (a = m.length), u = 0; 48 === m.charCodeAt(u); u++)\r\n ; for (d = m.length; 48 === m.charCodeAt(--d);)\r\n ; if (m = m.slice(u, ++d)) {\r\n if (d -= u, h && W.DEBUG && d > 15 && (t > p || t !== c(t)))\r\n throw Error(l + y.s * t);\r\n if ((a = a - u - 1) > I)\r\n y.c = y.e = null;\r\n else if (a < R)\r\n y.c = [y.e = 0];\r\n else {\r\n if (y.e = a, y.c = [], u = (a + 1) % f, a < 0 && (u += f), u < d) {\r\n for (u && y.c.push(+m.slice(0, u)), d -= f; u < d;)\r\n y.c.push(+m.slice(u, u += f));\r\n m = m.slice(u), u = f - m.length;\r\n }\r\n else\r\n u -= d;\r\n for (; u--; m += \"0\")\r\n ;\r\n y.c.push(+m);\r\n }\r\n }\r\n else\r\n y.c = [y.e = 0]; } function q(t, e, r, n) { var o, i, s, a, c; if (null == r ? r = C : w(r, 0, 8), !t.c)\r\n return t.toString(); if (o = t.c[0], s = t.e, null == e)\r\n c = _(t.c), c = 1 == n || 2 == n && s <= E ? F(c, s) : N(c, s, \"0\");\r\n else if (i = (t = V(new W(t), e, r)).e, a = (c = _(t.c)).length, 1 == n || 2 == n && (e <= i || i <= E)) {\r\n for (; a < e; c += \"0\", a++)\r\n ;\r\n c = F(c, i);\r\n }\r\n else if (e -= s, c = N(c, i, \"0\"), i + 1 > a) {\r\n if (--e > 0)\r\n for (c += \".\"; e--; c += \"0\")\r\n ;\r\n }\r\n else if ((e += i - a) > 0)\r\n for (i + 1 == a && (c += \".\"); e--; c += \"0\")\r\n ; return t.s < 0 && o ? \"-\" + c : c; } function $(t, e) { var r, n, o = 0; for (b(t[0]) && (t = t[0]), r = new W(t[0]); ++o < t.length;) {\r\n if (!(n = new W(t[o])).s) {\r\n r = n;\r\n break;\r\n }\r\n e.call(r, n) && (r = n);\r\n } return r; } function G(t, e, r) { for (var n = 1, o = e.length; !e[--o]; e.pop())\r\n ; for (o = e[0]; o >= 10; o /= 10, n++)\r\n ; return (r = n + r * f - 1) > I ? t.c = t.e = null : r < R ? t.c = [t.e = 0] : (t.e = r, t.c = e), t; } function V(t, e, r, n) { var o, i, s, u, l, p, m, y = t.c, g = d; if (y) {\r\n t: {\r\n for (o = 1, u = y[0]; u >= 10; u /= 10, o++)\r\n ;\r\n if ((i = e - o) < 0)\r\n i += f, s = e, m = (l = y[p = 0]) / g[o - s - 1] % 10 | 0;\r\n else if ((p = a((i + 1) / f)) >= y.length) {\r\n if (!n)\r\n break t;\r\n for (; y.length <= p; y.push(0))\r\n ;\r\n l = m = 0, o = 1, s = (i %= f) - f + 1;\r\n }\r\n else {\r\n for (l = u = y[p], o = 1; u >= 10; u /= 10, o++)\r\n ;\r\n m = (s = (i %= f) - f + o) < 0 ? 0 : l / g[o - s - 1] % 10 | 0;\r\n }\r\n if (n = n || e < 0 || null != y[p + 1] || (s < 0 ? l : l % g[o - s - 1]), n = r < 4 ? (m || n) && (0 == r || r == (t.s < 0 ? 3 : 2)) : m > 5 || 5 == m && (4 == r || n || 6 == r && (i > 0 ? s > 0 ? l / g[o - s] : 0 : y[p - 1]) % 10 & 1 || r == (t.s < 0 ? 8 : 7)), e < 1 || !y[0])\r\n return y.length = 0, n ? (e -= t.e + 1, y[0] = g[(f - e % f) % f], t.e = -e || 0) : y[0] = t.e = 0, t;\r\n if (0 == i ? (y.length = p, u = 1, p--) : (y.length = p + 1, u = g[f - i], y[p] = s > 0 ? c(l / g[o - s] % g[s]) * u : 0), n)\r\n for (;;) {\r\n if (0 == p) {\r\n for (i = 1, s = y[0]; s >= 10; s /= 10, i++)\r\n ;\r\n for (s = y[0] += u, u = 1; s >= 10; s /= 10, u++)\r\n ;\r\n i != u && (t.e++, y[0] == h && (y[0] = 1));\r\n break;\r\n }\r\n if (y[p] += u, y[p] != h)\r\n break;\r\n y[p--] = 0, u = 1;\r\n }\r\n for (i = y.length; 0 === y[--i]; y.pop())\r\n ;\r\n }\r\n t.e > I ? t.c = t.e = null : t.e < R && (t.c = [t.e = 0]);\r\n } return t; } return W.clone = t, W.ROUND_UP = 0, W.ROUND_DOWN = 1, W.ROUND_CEIL = 2, W.ROUND_FLOOR = 3, W.ROUND_HALF_UP = 4, W.ROUND_HALF_DOWN = 5, W.ROUND_HALF_EVEN = 6, W.ROUND_HALF_CEIL = 7, W.ROUND_HALF_FLOOR = 8, W.EUCLID = 9, W.config = W.set = function (t) { var e, r; if (null != t) {\r\n if (\"object\" != typeof t)\r\n throw Error(u + \"Object expected: \" + t);\r\n if (t.hasOwnProperty(e = \"DECIMAL_PLACES\") && (w(r = t[e], 0, y, e), M = r), t.hasOwnProperty(e = \"ROUNDING_MODE\") && (w(r = t[e], 0, 8, e), C = r), t.hasOwnProperty(e = \"EXPONENTIAL_AT\") && (b(r = t[e]) ? (w(r[0], -y, 0, e), w(r[1], 0, y, e), E = r[0], D = r[1]) : (w(r, -y, y, e), E = -(D = r < 0 ? -r : r))), t.hasOwnProperty(e = \"RANGE\"))\r\n if (b(r = t[e]))\r\n w(r[0], -y, -1, e), w(r[1], 1, y, e), R = r[0], I = r[1];\r\n else {\r\n if (w(r, -y, y, e), !r)\r\n throw Error(u + e + \" cannot be zero: \" + r);\r\n R = -(I = r < 0 ? -r : r);\r\n }\r\n if (t.hasOwnProperty(e = \"CRYPTO\")) {\r\n if ((r = t[e]) !== !!r)\r\n throw Error(u + e + \" not true or false: \" + r);\r\n if (r) {\r\n if (\"undefined\" == typeof crypto || !crypto || !crypto.getRandomValues && !crypto.randomBytes)\r\n throw H = !r, Error(u + \"crypto unavailable\");\r\n H = r;\r\n }\r\n else\r\n H = r;\r\n }\r\n if (t.hasOwnProperty(e = \"MODULO_MODE\") && (w(r = t[e], 0, 9, e), j = r), t.hasOwnProperty(e = \"POW_PRECISION\") && (w(r = t[e], 0, y, e), U = r), t.hasOwnProperty(e = \"FORMAT\")) {\r\n if (\"object\" != typeof (r = t[e]))\r\n throw Error(u + e + \" not an object: \" + r);\r\n L = r;\r\n }\r\n if (t.hasOwnProperty(e = \"ALPHABET\")) {\r\n if (\"string\" != typeof (r = t[e]) || /^.$|\\.|(.).*\\1/.test(r))\r\n throw Error(u + e + \" invalid: \" + r);\r\n z = r;\r\n }\r\n } return { DECIMAL_PLACES: M, ROUNDING_MODE: C, EXPONENTIAL_AT: [E, D], RANGE: [R, I], CRYPTO: H, MODULO_MODE: j, POW_PRECISION: U, FORMAT: L, ALPHABET: z }; }, W.isBigNumber = function (t) { return t instanceof W || t && !0 === t._isBigNumber || !1; }, W.maximum = W.max = function () { return $(arguments, T.lt); }, W.minimum = W.min = function () { return $(arguments, T.gt); }, W.random = (i = 9007199254740992 * Math.random() & 2097151 ? function () { return c(9007199254740992 * Math.random()); } : function () { return 8388608 * (1073741824 * Math.random() | 0) + (8388608 * Math.random() | 0); }, function (t) { var e, r, n, o, s, l = 0, h = [], p = new W(P); if (null == t ? t = M : w(t, 0, y), o = a(t / f), H)\r\n if (crypto.getRandomValues) {\r\n for (e = crypto.getRandomValues(new Uint32Array(o *= 2)); l < o;)\r\n (s = 131072 * e[l] + (e[l + 1] >>> 11)) >= 9e15 ? (r = crypto.getRandomValues(new Uint32Array(2)), e[l] = r[0], e[l + 1] = r[1]) : (h.push(s % 1e14), l += 2);\r\n l = o / 2;\r\n }\r\n else {\r\n if (!crypto.randomBytes)\r\n throw H = !1, Error(u + \"crypto unavailable\");\r\n for (e = crypto.randomBytes(o *= 7); l < o;)\r\n (s = 281474976710656 * (31 & e[l]) + 1099511627776 * e[l + 1] + 4294967296 * e[l + 2] + 16777216 * e[l + 3] + (e[l + 4] << 16) + (e[l + 5] << 8) + e[l + 6]) >= 9e15 ? crypto.randomBytes(7).copy(e, l) : (h.push(s % 1e14), l += 7);\r\n l = o / 7;\r\n } if (!H)\r\n for (; l < o;)\r\n (s = i()) < 9e15 && (h[l++] = s % 1e14); for (o = h[--l], t %= f, o && t && (s = d[f - t], h[l] = c(o / s) * s); 0 === h[l]; h.pop(), l--)\r\n ; if (l < 0)\r\n h = [n = 0];\r\n else {\r\n for (n = -1; 0 === h[0]; h.splice(0, 1), n -= f)\r\n ;\r\n for (l = 1, s = h[0]; s >= 10; s /= 10, l++)\r\n ;\r\n l < f && (n -= f - l);\r\n } return p.e = n, p.c = h, p; }), n = function () { function t(t, e, r, n) { for (var o, i, s = [0], a = 0, c = t.length; a < c;) {\r\n for (i = s.length; i--; s[i] *= e)\r\n ;\r\n for (s[0] += n.indexOf(t.charAt(a++)), o = 0; o < s.length; o++)\r\n s[o] > r - 1 && (null == s[o + 1] && (s[o + 1] = 0), s[o + 1] += s[o] / r | 0, s[o] %= r);\r\n } return s.reverse(); } return function (e, n, o, i, s) { var a, c, u, l, h, f, p, d, m = e.indexOf(\".\"), y = M, g = C; for (m >= 0 && (l = U, U = 0, e = e.replace(\".\", \"\"), f = (d = new W(n)).pow(e.length - m), U = l, d.c = t(N(_(f.c), f.e, \"0\"), 10, o, \"0123456789\"), d.e = d.c.length), u = l = (p = t(e, n, o, s ? (a = z, \"0123456789\") : (a = \"0123456789\", z))).length; 0 == p[--l]; p.pop())\r\n ; if (!p[0])\r\n return a.charAt(0); if (m < 0 ? --u : (f.c = p, f.e = u, f.s = i, p = (f = r(f, d, y, g, o)).c, h = f.r, u = f.e), m = p[c = u + y + 1], l = o / 2, h = h || c < 0 || null != p[c + 1], h = g < 4 ? (null != m || h) && (0 == g || g == (f.s < 0 ? 3 : 2)) : m > l || m == l && (4 == g || h || 6 == g && 1 & p[c - 1] || g == (f.s < 0 ? 8 : 7)), c < 1 || !p[0])\r\n e = h ? N(a.charAt(1), -y, a.charAt(0)) : a.charAt(0);\r\n else {\r\n if (p.length = c, h)\r\n for (--o; ++p[--c] > o;)\r\n p[c] = 0, c || (++u, p = [1].concat(p));\r\n for (l = p.length; !p[--l];)\r\n ;\r\n for (m = 0, e = \"\"; m <= l; e += a.charAt(p[m++]))\r\n ;\r\n e = N(e, u, a.charAt(0));\r\n } return e; }; }(), r = function () { function t(t, e, r) { var n, o, i, s, a = 0, c = t.length, u = e % m, l = e / m | 0; for (t = t.slice(); c--;)\r\n a = ((o = u * (i = t[c] % m) + (n = l * i + (s = t[c] / m | 0) * u) % m * m + a) / r | 0) + (n / m | 0) + l * s, t[c] = o % r; return a && (t = [a].concat(t)), t; } function e(t, e, r, n) { var o, i; if (r != n)\r\n i = r > n ? 1 : -1;\r\n else\r\n for (o = i = 0; o < r; o++)\r\n if (t[o] != e[o]) {\r\n i = t[o] > e[o] ? 1 : -1;\r\n break;\r\n } return i; } function r(t, e, r, n) { for (var o = 0; r--;)\r\n t[r] -= o, o = t[r] < e[r] ? 1 : 0, t[r] = o * n + t[r] - e[r]; for (; !t[0] && t.length > 1; t.splice(0, 1))\r\n ; } return function (n, o, i, s, a) { var u, l, p, d, m, y, _, v, w, b, B, F, N, k, x, S, A, O = n.s == o.s ? 1 : -1, T = n.c, P = o.c; if (!(T && T[0] && P && P[0]))\r\n return new W(n.s && o.s && (T ? !P || T[0] != P[0] : P) ? T && 0 == T[0] || !P ? 0 * O : O / 0 : NaN); for (w = (v = new W(O)).c = [], O = i + (l = n.e - o.e) + 1, a || (a = h, l = g(n.e / f) - g(o.e / f), O = O / f | 0), p = 0; P[p] == (T[p] || 0); p++)\r\n ; if (P[p] > (T[p] || 0) && l--, O < 0)\r\n w.push(1), d = !0;\r\n else {\r\n for (k = T.length, S = P.length, p = 0, O += 2, (m = c(a / (P[0] + 1))) > 1 && (P = t(P, m, a), T = t(T, m, a), S = P.length, k = T.length), N = S, B = (b = T.slice(0, S)).length; B < S; b[B++] = 0)\r\n ;\r\n A = P.slice(), A = [0].concat(A), x = P[0], P[1] >= a / 2 && x++;\r\n do {\r\n if (m = 0, (u = e(P, b, S, B)) < 0) {\r\n if (F = b[0], S != B && (F = F * a + (b[1] || 0)), (m = c(F / x)) > 1)\r\n for (m >= a && (m = a - 1), _ = (y = t(P, m, a)).length, B = b.length; 1 == e(y, b, _, B);)\r\n m--, r(y, S < _ ? A : P, _, a), _ = y.length, u = 1;\r\n else\r\n 0 == m && (u = m = 1), _ = (y = P.slice()).length;\r\n if (_ < B && (y = [0].concat(y)), r(b, y, B, a), B = b.length, -1 == u)\r\n for (; e(P, b, S, B) < 1;)\r\n m++, r(b, S < B ? A : P, B, a), B = b.length;\r\n }\r\n else\r\n 0 === u && (m++, b = [0]);\r\n w[p++] = m, b[0] ? b[B++] = T[N] || 0 : (b = [T[N]], B = 1);\r\n } while ((N++ < k || null != b[0]) && O--);\r\n d = null != b[0], w[0] || w.splice(0, 1);\r\n } if (a == h) {\r\n for (p = 1, O = w[0]; O >= 10; O /= 10, p++)\r\n ;\r\n V(v, i + (v.e = p + l * f - 1) + 1, s, d);\r\n }\r\n else\r\n v.e = l, v.r = +d; return v; }; }(), k = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i, x = /^([^.]+)\\.$/, S = /^\\.([^.]+)$/, A = /^-?(Infinity|NaN)$/, O = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g, o = function (t, e, r, n) { var o, i = r ? e : e.replace(O, \"\"); if (A.test(i))\r\n t.s = isNaN(i) ? null : i < 0 ? -1 : 1, t.c = t.e = null;\r\n else {\r\n if (!r && (i = i.replace(k, function (t, e, r) { return o = \"x\" == (r = r.toLowerCase()) ? 16 : \"b\" == r ? 2 : 8, n && n != o ? t : e; }), n && (o = n, i = i.replace(x, \"$1\").replace(S, \"0.$1\")), e != i))\r\n return new W(i, o);\r\n if (W.DEBUG)\r\n throw Error(u + \"Not a\" + (n ? \" base \" + n : \"\") + \" number: \" + e);\r\n t.c = t.e = t.s = null;\r\n } }, T.absoluteValue = T.abs = function () { var t = new W(this); return t.s < 0 && (t.s = 1), t; }, T.comparedTo = function (t, e) { return v(this, new W(t, e)); }, T.decimalPlaces = T.dp = function (t, e) { var r, n, o, i = this; if (null != t)\r\n return w(t, 0, y), null == e ? e = C : w(e, 0, 8), V(new W(i), t + i.e + 1, e); if (!(r = i.c))\r\n return null; if (n = ((o = r.length - 1) - g(this.e / f)) * f, o = r[o])\r\n for (; o % 10 == 0; o /= 10, n--)\r\n ; return n < 0 && (n = 0), n; }, T.dividedBy = T.div = function (t, e) { return r(this, new W(t, e), M, C); }, T.dividedToIntegerBy = T.idiv = function (t, e) { return r(this, new W(t, e), 0, 1); }, T.exponentiatedBy = T.pow = function (t, e) { var r, n, o, i, s, l, h, p = this; if ((t = new W(t)).c && !t.isInteger())\r\n throw Error(u + \"Exponent not an integer: \" + t); if (null != e && (e = new W(e)), i = t.e > 14, !p.c || !p.c[0] || 1 == p.c[0] && !p.e && 1 == p.c.length || !t.c || !t.c[0])\r\n return h = new W(Math.pow(+p.valueOf(), i ? 2 - B(t) : +t)), e ? h.mod(e) : h; if (s = t.s < 0, e) {\r\n if (e.c ? !e.c[0] : !e.s)\r\n return new W(NaN);\r\n (n = !s && p.isInteger() && e.isInteger()) && (p = p.mod(e));\r\n }\r\n else {\r\n if (t.e > 9 && (p.e > 0 || p.e < -1 || (0 == p.e ? p.c[0] > 1 || i && p.c[1] >= 24e7 : p.c[0] < 8e13 || i && p.c[0] <= 9999975e7)))\r\n return o = p.s < 0 && B(t) ? -0 : 0, p.e > -1 && (o = 1 / o), new W(s ? 1 / o : o);\r\n U && (o = a(U / f + 2));\r\n } for (i ? (r = new W(.5), l = B(t)) : l = t % 2, s && (t.s = 1), h = new W(P);;) {\r\n if (l) {\r\n if (!(h = h.times(p)).c)\r\n break;\r\n o ? h.c.length > o && (h.c.length = o) : n && (h = h.mod(e));\r\n }\r\n if (i) {\r\n if (V(t = t.times(r), t.e + 1, 1), !t.c[0])\r\n break;\r\n i = t.e > 14, l = B(t);\r\n }\r\n else {\r\n if (!(t = c(t / 2)))\r\n break;\r\n l = t % 2;\r\n }\r\n p = p.times(p), o ? p.c && p.c.length > o && (p.c.length = o) : n && (p = p.mod(e));\r\n } return n ? h : (s && (h = P.div(h)), e ? h.mod(e) : o ? V(h, U, C, void 0) : h); }, T.integerValue = function (t) { var e = new W(this); return null == t ? t = C : w(t, 0, 8), V(e, e.e + 1, t); }, T.isEqualTo = T.eq = function (t, e) { return 0 === v(this, new W(t, e)); }, T.isFinite = function () { return !!this.c; }, T.isGreaterThan = T.gt = function (t, e) { return v(this, new W(t, e)) > 0; }, T.isGreaterThanOrEqualTo = T.gte = function (t, e) { return 1 === (e = v(this, new W(t, e))) || 0 === e; }, T.isInteger = function () { return !!this.c && g(this.e / f) > this.c.length - 2; }, T.isLessThan = T.lt = function (t, e) { return v(this, new W(t, e)) < 0; }, T.isLessThanOrEqualTo = T.lte = function (t, e) { return -1 === (e = v(this, new W(t, e))) || 0 === e; }, T.isNaN = function () { return !this.s; }, T.isNegative = function () { return this.s < 0; }, T.isPositive = function () { return this.s > 0; }, T.isZero = function () { return !!this.c && 0 == this.c[0]; }, T.minus = function (t, e) { var r, n, o, i, s = this, a = s.s; if (e = (t = new W(t, e)).s, !a || !e)\r\n return new W(NaN); if (a != e)\r\n return t.s = -e, s.plus(t); var c = s.e / f, u = t.e / f, l = s.c, p = t.c; if (!c || !u) {\r\n if (!l || !p)\r\n return l ? (t.s = -e, t) : new W(p ? s : NaN);\r\n if (!l[0] || !p[0])\r\n return p[0] ? (t.s = -e, t) : new W(l[0] ? s : 3 == C ? -0 : 0);\r\n } if (c = g(c), u = g(u), l = l.slice(), a = c - u) {\r\n for ((i = a < 0) ? (a = -a, o = l) : (u = c, o = p), o.reverse(), e = a; e--; o.push(0))\r\n ;\r\n o.reverse();\r\n }\r\n else\r\n for (n = (i = (a = l.length) < (e = p.length)) ? a : e, a = e = 0; e < n; e++)\r\n if (l[e] != p[e]) {\r\n i = l[e] < p[e];\r\n break;\r\n } if (i && (o = l, l = p, p = o, t.s = -t.s), (e = (n = p.length) - (r = l.length)) > 0)\r\n for (; e--; l[r++] = 0)\r\n ; for (e = h - 1; n > a;) {\r\n if (l[--n] < p[n]) {\r\n for (r = n; r && !l[--r]; l[r] = e)\r\n ;\r\n --l[r], l[n] += h;\r\n }\r\n l[n] -= p[n];\r\n } for (; 0 == l[0]; l.splice(0, 1), --u)\r\n ; return l[0] ? G(t, l, u) : (t.s = 3 == C ? -1 : 1, t.c = [t.e = 0], t); }, T.modulo = T.mod = function (t, e) { var n, o, i = this; return t = new W(t, e), !i.c || !t.s || t.c && !t.c[0] ? new W(NaN) : !t.c || i.c && !i.c[0] ? new W(i) : (9 == j ? (o = t.s, t.s = 1, n = r(i, t, 0, 3), t.s = o, n.s *= o) : n = r(i, t, 0, j), (t = i.minus(n.times(t))).c[0] || 1 != j || (t.s = i.s), t); }, T.multipliedBy = T.times = function (t, e) { var r, n, o, i, s, a, c, u, l, p, d, y, _, v, w, b = this, B = b.c, F = (t = new W(t, e)).c; if (!(B && F && B[0] && F[0]))\r\n return !b.s || !t.s || B && !B[0] && !F || F && !F[0] && !B ? t.c = t.e = t.s = null : (t.s *= b.s, B && F ? (t.c = [0], t.e = 0) : t.c = t.e = null), t; for (n = g(b.e / f) + g(t.e / f), t.s *= b.s, (c = B.length) < (p = F.length) && (_ = B, B = F, F = _, o = c, c = p, p = o), o = c + p, _ = []; o--; _.push(0))\r\n ; for (v = h, w = m, o = p; --o >= 0;) {\r\n for (r = 0, d = F[o] % w, y = F[o] / w | 0, i = o + (s = c); i > o;)\r\n r = ((u = d * (u = B[--s] % w) + (a = y * u + (l = B[s] / w | 0) * d) % w * w + _[i] + r) / v | 0) + (a / w | 0) + y * l, _[i--] = u % v;\r\n _[i] = r;\r\n } return r ? ++n : _.splice(0, 1), G(t, _, n); }, T.negated = function () { var t = new W(this); return t.s = -t.s || null, t; }, T.plus = function (t, e) { var r, n = this, o = n.s; if (e = (t = new W(t, e)).s, !o || !e)\r\n return new W(NaN); if (o != e)\r\n return t.s = -e, n.minus(t); var i = n.e / f, s = t.e / f, a = n.c, c = t.c; if (!i || !s) {\r\n if (!a || !c)\r\n return new W(o / 0);\r\n if (!a[0] || !c[0])\r\n return c[0] ? t : new W(a[0] ? n : 0 * o);\r\n } if (i = g(i), s = g(s), a = a.slice(), o = i - s) {\r\n for (o > 0 ? (s = i, r = c) : (o = -o, r = a), r.reverse(); o--; r.push(0))\r\n ;\r\n r.reverse();\r\n } for ((o = a.length) - (e = c.length) < 0 && (r = c, c = a, a = r, e = o), o = 0; e;)\r\n o = (a[--e] = a[e] + c[e] + o) / h | 0, a[e] = h === a[e] ? 0 : a[e] % h; return o && (a = [o].concat(a), ++s), G(t, a, s); }, T.precision = T.sd = function (t, e) { var r, n, o, i = this; if (null != t && t !== !!t)\r\n return w(t, 1, y), null == e ? e = C : w(e, 0, 8), V(new W(i), t, e); if (!(r = i.c))\r\n return null; if (n = (o = r.length - 1) * f + 1, o = r[o]) {\r\n for (; o % 10 == 0; o /= 10, n--)\r\n ;\r\n for (o = r[0]; o >= 10; o /= 10, n++)\r\n ;\r\n } return t && i.e + 1 > n && (n = i.e + 1), n; }, T.shiftedBy = function (t) { return w(t, -p, p), this.times(\"1e\" + t); }, T.squareRoot = T.sqrt = function () { var t, e, n, o, i, s = this, a = s.c, c = s.s, u = s.e, l = M + 4, h = new W(\"0.5\"); if (1 !== c || !a || !a[0])\r\n return new W(!c || c < 0 && (!a || a[0]) ? NaN : a ? s : 1 / 0); if (0 == (c = Math.sqrt(+s)) || c == 1 / 0 ? (((e = _(a)).length + u) % 2 == 0 && (e += \"0\"), c = Math.sqrt(e), u = g((u + 1) / 2) - (u < 0 || u % 2), n = new W(e = c == 1 / 0 ? \"1e\" + u : (e = c.toExponential()).slice(0, e.indexOf(\"e\") + 1) + u)) : n = new W(c + \"\"), n.c[0])\r\n for ((c = (u = n.e) + l) < 3 && (c = 0);;)\r\n if (i = n, n = h.times(i.plus(r(s, i, l, 1))), _(i.c).slice(0, c) === (e = _(n.c)).slice(0, c)) {\r\n if (n.e < u && --c, \"9999\" != (e = e.slice(c - 3, c + 1)) && (o || \"4999\" != e)) {\r\n +e && (+e.slice(1) || \"5\" != e.charAt(0)) || (V(n, n.e + M + 2, 1), t = !n.times(n).eq(s));\r\n break;\r\n }\r\n if (!o && (V(i, i.e + M + 2, 0), i.times(i).eq(s))) {\r\n n = i;\r\n break;\r\n }\r\n l += 4, c += 4, o = 1;\r\n } return V(n, n.e + M + 1, C, t); }, T.toExponential = function (t, e) { return null != t && (w(t, 0, y), t++), q(this, t, e, 1); }, T.toFixed = function (t, e) { return null != t && (w(t, 0, y), t = t + this.e + 1), q(this, t, e); }, T.toFormat = function (t, e) { var r = this.toFixed(t, e); if (this.c) {\r\n var n, o = r.split(\".\"), i = +L.groupSize, s = +L.secondaryGroupSize, a = L.groupSeparator, c = o[0], u = o[1], l = this.s < 0, h = l ? c.slice(1) : c, f = h.length;\r\n if (s && (n = i, i = s, s = n, f -= n), i > 0 && f > 0) {\r\n for (n = f % i || i, c = h.substr(0, n); n < f; n += i)\r\n c += a + h.substr(n, i);\r\n s > 0 && (c += a + h.slice(n)), l && (c = \"-\" + c);\r\n }\r\n r = u ? c + L.decimalSeparator + ((s = +L.fractionGroupSize) ? u.replace(new RegExp(\"\\\\d{\" + s + \"}\\\\B\", \"g\"), \"$&\" + L.fractionGroupSeparator) : u) : c;\r\n } return r; }, T.toFraction = function (t) { var e, n, o, i, s, a, c, l, h, p, m, y, g = this, v = g.c; if (null != t && (!(l = new W(t)).isInteger() && (l.c || 1 !== l.s) || l.lt(P)))\r\n throw Error(u + \"Argument \" + (l.isInteger() ? \"out of range: \" : \"not an integer: \") + t); if (!v)\r\n return g.toString(); for (n = new W(P), p = o = new W(P), i = h = new W(P), y = _(v), a = n.e = y.length - g.e - 1, n.c[0] = d[(c = a % f) < 0 ? f + c : c], t = !t || l.comparedTo(n) > 0 ? a > 0 ? n : p : l, c = I, I = 1 / 0, l = new W(y), h.c[0] = 0; m = r(l, n, 0, 1), 1 != (s = o.plus(m.times(i))).comparedTo(t);)\r\n o = i, i = s, p = h.plus(m.times(s = p)), h = s, n = l.minus(m.times(s = n)), l = s; return s = r(t.minus(o), i, 0, 1), h = h.plus(s.times(p)), o = o.plus(s.times(i)), h.s = p.s = g.s, e = r(p, i, a *= 2, C).minus(g).abs().comparedTo(r(h, o, a, C).minus(g).abs()) < 1 ? [p.toString(), i.toString()] : [h.toString(), o.toString()], I = c, e; }, T.toNumber = function () { return +this; }, T.toPrecision = function (t, e) { return null != t && w(t, 1, y), q(this, t, e, 2); }, T.toString = function (t) { var e, r = this, o = r.s, i = r.e; return null === i ? o ? (e = \"Infinity\", o < 0 && (e = \"-\" + e)) : e = \"NaN\" : (e = _(r.c), null == t ? e = i <= E || i >= D ? F(e, i) : N(e, i, \"0\") : (w(t, 2, z.length, \"Base\"), e = n(N(e, i, \"0\"), 10, t, o, !0)), o < 0 && r.c[0] && (e = \"-\" + e)), e; }, T.valueOf = T.toJSON = function () { var t, e = this, r = e.e; return null === r ? e.toString() : (t = _(e.c), t = r <= E || r >= D ? F(t, r) : N(t, r, \"0\"), e.s < 0 ? \"-\" + t : t); }, T._isBigNumber = !0, null != e && W.set(e), W; }()).default = i.BigNumber = i, void 0 === (n = function () { return i; }.call(e, r, e, t)) || (t.exports = n);\r\n }(); }, function (t, e, r) { var n; t.exports = (n = r(0), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = [], c = []; !function () { function e(e) { for (var r = t.sqrt(e), n = 2; n <= r; n++)\r\n if (!(e % n))\r\n return !1; return !0; } function r(t) { return 4294967296 * (t - (0 | t)) | 0; } for (var n = 2, o = 0; o < 64;)\r\n e(n) && (o < 8 && (a[o] = r(t.pow(n, .5))), c[o] = r(t.pow(n, 1 / 3)), o++), n++; }(); var u = [], l = s.SHA256 = i.extend({ _doReset: function () { this._hash = new o.init(a.slice(0)); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], f = r[7], p = 0; p < 64; p++) {\r\n if (p < 16)\r\n u[p] = 0 | t[e + p];\r\n else {\r\n var d = u[p - 15], m = (d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3, y = u[p - 2], g = (y << 15 | y >>> 17) ^ (y << 13 | y >>> 19) ^ y >>> 10;\r\n u[p] = m + u[p - 7] + g + u[p - 16];\r\n }\r\n var _ = n & o ^ n & i ^ o & i, v = (n << 30 | n >>> 2) ^ (n << 19 | n >>> 13) ^ (n << 10 | n >>> 22), w = f + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & l ^ ~a & h) + c[p] + u[p];\r\n f = h, h = l, l = a, a = s + w | 0, s = i, i = o, o = n, n = w + (v + _) | 0;\r\n } r[0] = r[0] + n | 0, r[1] = r[1] + o | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0, r[5] = r[5] + l | 0, r[6] = r[6] + h | 0, r[7] = r[7] + f | 0; }, _doFinalize: function () { var e = this._data, r = e.words, n = 8 * this._nDataBytes, o = 8 * e.sigBytes; return r[o >>> 5] |= 128 << 24 - o % 32, r[14 + (o + 64 >>> 9 << 4)] = t.floor(n / 4294967296), r[15 + (o + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * r.length, this._process(), this._hash; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); e.SHA256 = i._createHelper(l), e.HmacSHA256 = i._createHmacHelper(l); }(Math), n.SHA256); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), function () { var t = n, e = t.lib.Hasher, r = t.x64, o = r.Word, i = r.WordArray, s = t.algo; function a() { return o.create.apply(o, arguments); } var c = [a(1116352408, 3609767458), a(1899447441, 602891725), a(3049323471, 3964484399), a(3921009573, 2173295548), a(961987163, 4081628472), a(1508970993, 3053834265), a(2453635748, 2937671579), a(2870763221, 3664609560), a(3624381080, 2734883394), a(310598401, 1164996542), a(607225278, 1323610764), a(1426881987, 3590304994), a(1925078388, 4068182383), a(2162078206, 991336113), a(2614888103, 633803317), a(3248222580, 3479774868), a(3835390401, 2666613458), a(4022224774, 944711139), a(264347078, 2341262773), a(604807628, 2007800933), a(770255983, 1495990901), a(1249150122, 1856431235), a(1555081692, 3175218132), a(1996064986, 2198950837), a(2554220882, 3999719339), a(2821834349, 766784016), a(2952996808, 2566594879), a(3210313671, 3203337956), a(3336571891, 1034457026), a(3584528711, 2466948901), a(113926993, 3758326383), a(338241895, 168717936), a(666307205, 1188179964), a(773529912, 1546045734), a(1294757372, 1522805485), a(1396182291, 2643833823), a(1695183700, 2343527390), a(1986661051, 1014477480), a(2177026350, 1206759142), a(2456956037, 344077627), a(2730485921, 1290863460), a(2820302411, 3158454273), a(3259730800, 3505952657), a(3345764771, 106217008), a(3516065817, 3606008344), a(3600352804, 1432725776), a(4094571909, 1467031594), a(275423344, 851169720), a(430227734, 3100823752), a(506948616, 1363258195), a(659060556, 3750685593), a(883997877, 3785050280), a(958139571, 3318307427), a(1322822218, 3812723403), a(1537002063, 2003034995), a(1747873779, 3602036899), a(1955562222, 1575990012), a(2024104815, 1125592928), a(2227730452, 2716904306), a(2361852424, 442776044), a(2428436474, 593698344), a(2756734187, 3733110249), a(3204031479, 2999351573), a(3329325298, 3815920427), a(3391569614, 3928383900), a(3515267271, 566280711), a(3940187606, 3454069534), a(4118630271, 4000239992), a(116418474, 1914138554), a(174292421, 2731055270), a(289380356, 3203993006), a(460393269, 320620315), a(685471733, 587496836), a(852142971, 1086792851), a(1017036298, 365543100), a(1126000580, 2618297676), a(1288033470, 3409855158), a(1501505948, 4234509866), a(1607167915, 987167468), a(1816402316, 1246189591)], u = []; !function () { for (var t = 0; t < 80; t++)\r\n u[t] = a(); }(); var l = s.SHA512 = e.extend({ _doReset: function () { this._hash = new i.init([new o.init(1779033703, 4089235720), new o.init(3144134277, 2227873595), new o.init(1013904242, 4271175723), new o.init(2773480762, 1595750129), new o.init(1359893119, 2917565137), new o.init(2600822924, 725511199), new o.init(528734635, 4215389547), new o.init(1541459225, 327033209)]); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], f = r[7], p = n.high, d = n.low, m = o.high, y = o.low, g = i.high, _ = i.low, v = s.high, w = s.low, b = a.high, B = a.low, F = l.high, N = l.low, k = h.high, x = h.low, S = f.high, A = f.low, O = p, T = d, P = m, M = y, C = g, E = _, D = v, R = w, I = b, H = B, j = F, U = N, L = k, z = x, W = S, q = A, $ = 0; $ < 80; $++) {\r\n var G = u[$];\r\n if ($ < 16)\r\n var V = G.high = 0 | t[e + 2 * $], J = G.low = 0 | t[e + 2 * $ + 1];\r\n else {\r\n var K = u[$ - 15], X = K.high, Z = K.low, Y = (X >>> 1 | Z << 31) ^ (X >>> 8 | Z << 24) ^ X >>> 7, Q = (Z >>> 1 | X << 31) ^ (Z >>> 8 | X << 24) ^ (Z >>> 7 | X << 25), tt = u[$ - 2], et = tt.high, rt = tt.low, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ et >>> 6, ot = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ (rt >>> 6 | et << 26), it = u[$ - 7], st = it.high, at = it.low, ct = u[$ - 16], ut = ct.high, lt = ct.low;\r\n V = (V = (V = Y + st + ((J = Q + at) >>> 0 < Q >>> 0 ? 1 : 0)) + nt + ((J += ot) >>> 0 < ot >>> 0 ? 1 : 0)) + ut + ((J += lt) >>> 0 < lt >>> 0 ? 1 : 0), G.high = V, G.low = J;\r\n }\r\n var ht, ft = I & j ^ ~I & L, pt = H & U ^ ~H & z, dt = O & P ^ O & C ^ P & C, mt = T & M ^ T & E ^ M & E, yt = (O >>> 28 | T << 4) ^ (O << 30 | T >>> 2) ^ (O << 25 | T >>> 7), gt = (T >>> 28 | O << 4) ^ (T << 30 | O >>> 2) ^ (T << 25 | O >>> 7), _t = (I >>> 14 | H << 18) ^ (I >>> 18 | H << 14) ^ (I << 23 | H >>> 9), vt = (H >>> 14 | I << 18) ^ (H >>> 18 | I << 14) ^ (H << 23 | I >>> 9), wt = c[$], bt = wt.high, Bt = wt.low, Ft = W + _t + ((ht = q + vt) >>> 0 < q >>> 0 ? 1 : 0), Nt = gt + mt;\r\n W = L, q = z, L = j, z = U, j = I, U = H, I = D + (Ft = (Ft = (Ft = Ft + ft + ((ht += pt) >>> 0 < pt >>> 0 ? 1 : 0)) + bt + ((ht += Bt) >>> 0 < Bt >>> 0 ? 1 : 0)) + V + ((ht += J) >>> 0 < J >>> 0 ? 1 : 0)) + ((H = R + ht | 0) >>> 0 < R >>> 0 ? 1 : 0) | 0, D = C, R = E, C = P, E = M, P = O, M = T, O = Ft + (yt + dt + (Nt >>> 0 < gt >>> 0 ? 1 : 0)) + ((T = ht + Nt | 0) >>> 0 < ht >>> 0 ? 1 : 0) | 0;\r\n } d = n.low = d + T, n.high = p + O + (d >>> 0 < T >>> 0 ? 1 : 0), y = o.low = y + M, o.high = m + P + (y >>> 0 < M >>> 0 ? 1 : 0), _ = i.low = _ + E, i.high = g + C + (_ >>> 0 < E >>> 0 ? 1 : 0), w = s.low = w + R, s.high = v + D + (w >>> 0 < R >>> 0 ? 1 : 0), B = a.low = B + H, a.high = b + I + (B >>> 0 < H >>> 0 ? 1 : 0), N = l.low = N + U, l.high = F + j + (N >>> 0 < U >>> 0 ? 1 : 0), x = h.low = x + z, h.high = k + L + (x >>> 0 < z >>> 0 ? 1 : 0), A = f.low = A + q, f.high = S + W + (A >>> 0 < q >>> 0 ? 1 : 0); }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[30 + (n + 128 >>> 10 << 5)] = Math.floor(r / 4294967296), e[31 + (n + 128 >>> 10 << 5)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash.toX32(); }, clone: function () { var t = e.clone.call(this); return t._hash = this._hash.clone(), t; }, blockSize: 32 }); t.SHA512 = e._createHelper(l), t.HmacSHA512 = e._createHmacHelper(l); }(), n.SHA512); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.x64.Word, a = e.algo, c = [], u = [], l = []; !function () { for (var t = 1, e = 0, r = 0; r < 24; r++) {\r\n c[t + 5 * e] = (r + 1) * (r + 2) / 2 % 64;\r\n var n = (2 * t + 3 * e) % 5;\r\n t = e % 5, e = n;\r\n } for (t = 0; t < 5; t++)\r\n for (e = 0; e < 5; e++)\r\n u[t + 5 * e] = e + (2 * t + 3 * e) % 5 * 5; for (var o = 1, i = 0; i < 24; i++) {\r\n for (var a = 0, h = 0, f = 0; f < 7; f++) {\r\n if (1 & o) {\r\n var p = (1 << f) - 1;\r\n p < 32 ? h ^= 1 << p : a ^= 1 << p - 32;\r\n }\r\n 128 & o ? o = o << 1 ^ 113 : o <<= 1;\r\n }\r\n l[i] = s.create(a, h);\r\n } }(); var h = []; !function () { for (var t = 0; t < 25; t++)\r\n h[t] = s.create(); }(); var f = a.SHA3 = i.extend({ cfg: i.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], e = 0; e < 25; e++)\r\n t[e] = new s.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; }, _doProcessBlock: function (t, e) { for (var r = this._state, n = this.blockSize / 2, o = 0; o < n; o++) {\r\n var i = t[e + 2 * o], s = t[e + 2 * o + 1];\r\n i = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), (A = r[o]).high ^= s, A.low ^= i;\r\n } for (var a = 0; a < 24; a++) {\r\n for (var f = 0; f < 5; f++) {\r\n for (var p = 0, d = 0, m = 0; m < 5; m++)\r\n p ^= (A = r[f + 5 * m]).high, d ^= A.low;\r\n var y = h[f];\r\n y.high = p, y.low = d;\r\n }\r\n for (f = 0; f < 5; f++) {\r\n var g = h[(f + 4) % 5], _ = h[(f + 1) % 5], v = _.high, w = _.low;\r\n for (p = g.high ^ (v << 1 | w >>> 31), d = g.low ^ (w << 1 | v >>> 31), m = 0; m < 5; m++)\r\n (A = r[f + 5 * m]).high ^= p, A.low ^= d;\r\n }\r\n for (var b = 1; b < 25; b++) {\r\n var B = (A = r[b]).high, F = A.low, N = c[b];\r\n N < 32 ? (p = B << N | F >>> 32 - N, d = F << N | B >>> 32 - N) : (p = F << N - 32 | B >>> 64 - N, d = B << N - 32 | F >>> 64 - N);\r\n var k = h[u[b]];\r\n k.high = p, k.low = d;\r\n }\r\n var x = h[0], S = r[0];\r\n for (x.high = S.high, x.low = S.low, f = 0; f < 5; f++)\r\n for (m = 0; m < 5; m++) {\r\n var A = r[b = f + 5 * m], O = h[b], T = h[(f + 1) % 5 + 5 * m], P = h[(f + 2) % 5 + 5 * m];\r\n A.high = O.high ^ ~T.high & P.high, A.low = O.low ^ ~T.low & P.low;\r\n }\r\n A = r[0];\r\n var M = l[a];\r\n A.high ^= M.high, A.low ^= M.low;\r\n } }, _doFinalize: function () { var e = this._data, r = e.words, n = (this._nDataBytes, 8 * e.sigBytes), i = 32 * this.blockSize; r[n >>> 5] |= 1 << 24 - n % 32, r[(t.ceil((n + 1) / i) * i >>> 5) - 1] |= 128, e.sigBytes = 4 * r.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, u = [], l = 0; l < c; l++) {\r\n var h = s[l], f = h.high, p = h.low;\r\n f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), p = 16711935 & (p << 8 | p >>> 24) | 4278255360 & (p << 24 | p >>> 8), u.push(p), u.push(f);\r\n } return new o.init(u, a); }, clone: function () { for (var t = i.clone.call(this), e = t._state = this._state.slice(0), r = 0; r < 25; r++)\r\n e[r] = e[r].clone(); return t; } }); e.SHA3 = i._createHelper(f), e.HmacSHA3 = i._createHmacHelper(f); }(Math), n.SHA3); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(8), o = r(3), i = r(22), s = r(23);\r\n !function (t) { t.eth_getBalance = new i.Method({ callName: \"eth_getBalance\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: n.outputBigNumberFormatter }), t.eth_getStorageAt = new i.Method({ callName: \"eth_getStorageAt\", params: 3, inputFormatter: [n.inputAddressFormatter, o.toHex, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_getCode = new i.Method({ callName: \"eth_getCode\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_getBlockByHash = new i.Method({ callName: \"eth_getBlockByHash\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, function (t) { return !!t; }], outputFormatter: n.outputBlockFormatter }), t.eth_getBlockByNumber = new i.Method({ callName: \"eth_getBlockByNumber\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, function (t) { return !!t; }], outputFormatter: n.outputBlockFormatter }), t.eth_getUncleByBlockHashAndIndex = new i.Method({ callName: \"eth_getUncleByBlockHashAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputBlockFormatter }), t.eth_getUncleByBlockNumberAndIndex = new i.Method({ callName: \"eth_getUncleByBlockNumberAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputBlockFormatter }), t.eth_getBlockTransactionCountByHash = new i.Method({ callName: \"eth_getBlockTransactionCountByHash\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getBlockTransactionCountByNumber = new i.Method({ callName: \"eth_getBlockTransactionCountByNumber\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getUncleCountByBlockHash = new i.Method({ callName: \"eth_getUncleCountByBlockHash\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getUncleCountByBlockNumber = new i.Method({ callName: \"eth_getUncleCountByBlockNumber\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getTransactionByHash = new i.Method({ callName: \"eth_getTransactionByHash\", params: 1, outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionByBlockHashAndIndex = new i.Method({ callName: \"eth_getTransactionByBlockHashAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionByBlockNumberAndIndex = new i.Method({ callName: \"eth_getTransactionByBlockNumberAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionReceipt = new i.Method({ callName: \"eth_getTransactionReceipt\", params: 1, outputFormatter: n.outputTransactionReceiptFormatter }), t.eth_getTransactionCount = new i.Method({ callName: \"eth_getTransactionCount\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_sendRawTransaction = new i.Method({ callName: \"eth_sendRawTransaction\", params: 1, inputFormatter: [null], outputFormatter: o.toData }), t.web3_sha3 = new i.Method({ callName: \"web3_sha3\", params: 1, inputFormatter: [null], outputFormatter: o.toData }), t.eth_sendTransaction = new i.Method({ callName: \"eth_sendTransaction\", params: 1, inputFormatter: [n.inputTransactionFormatter], outputFormatter: o.toData }), t.eth_sign = new i.Method({ callName: \"eth_sign\", params: 2, inputFormatter: [n.inputAddressFormatter, null], outputFormatter: o.toData }), t.eth_call = new i.Method({ callName: \"eth_call\", params: 2, inputFormatter: [n.inputCallFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_estimateGas = new i.Method({ callName: \"eth_estimateGas\", params: 1, inputFormatter: [n.inputCallFormatter], outputFormatter: o.toDecimal }), t.eth_submitWork = new i.Method({ callName: \"eth_submitWork\", params: 3, outputFormatter: o.toBoolean }), t.eth_getWork = new i.Method({ callName: \"eth_getWork\", params: 1, outputFormatter: o.toArray }), t.eth_coinbase = new s.Property({ getter: \"eth_coinbase\", outputFormatter: o.toAddress }), t.eth_mining = new s.Property({ getter: \"eth_mining\", outputFormatter: o.toBoolean }), t.eth_hashrate = new s.Property({ getter: \"eth_hashrate\", outputFormatter: o.toDecimal }), t.eth_syncing = new s.Property({ getter: \"eth_syncing\", outputFormatter: n.outputSyncingFormatter }), t.eth_gasPrice = new s.Property({ getter: \"eth_gasPrice\", outputFormatter: n.outputBigNumberFormatter }), t.eth_accounts = new s.Property({ getter: \"eth_accounts\", outputFormatter: o.toArray }), t.eth_blockNumber = new s.Property({ getter: \"eth_blockNumber\", outputFormatter: o.toDecimal }), t.eth_protocolVersion = new s.Property({ getter: \"eth_protocolVersion\", outputFormatter: o.toDecimal }), t.web3_clientVersion = new s.Property({ getter: \"web3_clientVersion\", outputFormatter: o.toString }), t.net_version = new s.Property({ getter: \"net_version\", outputFormatter: o.toString }), t.shh_version = new i.Method({ callName: \"shh_version\", params: 0, outputFormatter: o.toDecimal }), t.shh_post = new i.Method({ callName: \"shh_post\", params: 1, inputFormatter: [null], outputFormatter: o.toBoolean }), t.personal_newAccount = new i.Method({ callName: \"personal_newAccount\", params: 1, inputFormatter: [null], outputFormatter: o.toAddress }), t.personal_importRawKey = new i.Method({ callName: \"personal_importRawKey\", params: 2, outputFormatter: o.toAddress }), t.personal_sign = new i.Method({ callName: \"personal_sign\", params: 3, inputFormatter: [null, n.inputAddressFormatter, null], outputFormatter: o.toData }), t.personal_ecRecover = new i.Method({ callName: \"personal_ecRecover\", params: 2, outputFormatter: o.toAddress }), t.personal_unlockAccount = new i.Method({ callName: \"personal_unlockAccount\", params: 3, inputFormatter: [n.inputAddressFormatter, null, o.toNullDecimal], outputFormatter: o.toBoolean }), t.personal_sendTransaction = new i.Method({ callName: \"personal_sendTransaction\", params: 2, inputFormatter: [n.inputTransactionFormatter, null], outputFormatter: o.toData }), t.personal_lockAccount = new i.Method({ callName: \"personal_lockAccount\", params: 1, inputFormatter: [n.inputAddressFormatter], outputFormatter: o.toBoolean }), t.personal_listAccounts = new s.Property({ getter: \"personal_listAccounts\", outputFormatter: o.toArray }), t.net_listening = new s.Property({ getter: \"net_listening\", outputFormatter: o.toBoolean }), t.net_peerCount = new s.Property({ getter: \"net_peerCount\", outputFormatter: o.toDecimal }), t.eth_newFilter = new i.Method({ callName: \"eth_newFilter\", params: 1, outputFormatter: o.toHex }), t.eth_getLogs = new i.Method({ callName: \"eth_getLogs\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_newBlockFilter = new i.Method({ callName: \"eth_newBlockFilter\", params: 0, outputFormatter: o.toHex }), t.eth_newPendingTransactionFilter = new i.Method({ callName: \"eth_newPendingTransactionFilter\", params: 0, outputFormatter: o.toHex }), t.eth_uninstallFilter = new i.Method({ callName: \"eth_uninstallFilter\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toBoolean }), t.eth_getFilterLogs = new i.Method({ callName: \"eth_getFilterLogs\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_getFilterChanges = new i.Method({ callName: \"eth_getFilterChanges\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_submitHashrate = new i.Method({ callName: \"eth_submitHashrate\", params: 2, outputFormatter: o.toBoolean }), t.shh_newIdentity = new i.Method({ callName: \"shh_newIdentity\", params: 0, outputFormatter: o.toData }), t.shh_hasIdentity = new i.Method({ callName: \"shh_hasIdentity\", params: 1, outputFormatter: o.toBoolean }), t.shh_newGroup = new i.Method({ callName: \"shh_newGroup\", params: 0, outputFormatter: o.toData }), t.shh_addToGroup = new i.Method({ callName: \"shh_addToGroup\", params: 1, outputFormatter: o.toBoolean }), t.shh_newFilter = new i.Method({ callName: \"shh_newFilter\", params: 1, outputFormatter: o.toHex }), t.shh_uninstallFilter = new i.Method({ callName: \"shh_uninstallFilter\", params: 1, outputFormatter: o.toBoolean }), t.shh_getLogs = new i.Method({ callName: \"shh_getLogs\", params: 1, outputFormatter: o.toArray }), t.shh_getFilterMessages = new i.Method({ callName: \"shh_getFilterMessages\", params: 1, outputFormatter: o.toArray }), t.shh_getFilterChanges = new i.Method({ callName: \"shh_getFilterChanges\", params: 1, outputFormatter: o.toArray }), t.shh_getMessages = new i.Method({ callName: \"shh_getMessages\", params: 1, outputFormatter: o.toArray }); }(e.eth || (e.eth = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(13);\r\n e.Method = /** @class */ (function () {\r\n function class_1(t) {\r\n this.callName = t.callName, this.params = t.params || 0, this.inputFormatter = t.inputFormatter || null, this.outputFormatter = t.outputFormatter, this.requestManager = null;\r\n }\r\n class_1.prototype.validateArgs = function (t) { if (t.length !== this.params)\r\n throw n.InvalidNumberOfRPCParams(this.callName, t.length, this.params); };\r\n class_1.prototype.formatInput = function (t) { return this.inputFormatter ? this.inputFormatter.map(function (e, r) { return e ? e(t[r]) : t[r]; }) : t; };\r\n class_1.prototype.formatOutput = function (t) { return null !== t ? this.outputFormatter(t) : null; };\r\n class_1.prototype.toPayload = function (t) { var e = this.formatInput(t); return this.validateArgs(e), { method: this.callName, params: e }; };\r\n class_1.prototype.execute = function (t) {\r\n var e = [];\r\n for (var _a = 1; _a < arguments.length; _a++) {\r\n e[_a - 1] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var r, n; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n r = this.toPayload(e);\r\n if (!t)\r\n throw new Error(\"Missing RequestManager in method#exec\");\r\n return [4 /*yield*/, t.sendAsync(r)];\r\n case 1:\r\n n = _c.sent();\r\n return [2 /*return*/, this.formatOutput(n)];\r\n }\r\n }); });\r\n };\r\n return class_1;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n e.Property = /** @class */ (function () {\r\n function class_2(t) {\r\n this.getter = t.getter, this.outputFormatter = t.outputFormatter;\r\n }\r\n class_2.prototype.formatOutput = function (t) { return this.outputFormatter(t); };\r\n class_2.prototype.execute = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, t.sendAsync({ method: this.getter, params: [] })];\r\n case 1:\r\n e = _a.sent();\r\n return [2 /*return*/, this.formatOutput(e)];\r\n }\r\n }); });\r\n };\r\n return class_2;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(60), o = r(26), i = r(70);\r\n e.Contract = /** @class */ (function () {\r\n function Contract(t, e, r) {\r\n var s;\r\n this.requestManager = t, this.abi = e, this.address = r, this.events = {}, this.transactionHash = null, this.transactionHash = null, this.address = r, this.abi = e, (s = this).abi.filter(function (t) { return \"function\" === t.type; }).map(function (t) { return new n.SolidityFunction(s.requestManager, t, s.address); }).forEach(function (t) { t.attachToContract(s); }), function (t) { var e = t.abi.filter(function (t) { return \"event\" === t.type; }); new i.AllSolidityEvents(t.requestManager, e, t.address).attachToContract(t), e.map(function (e) { return new o.SolidityEvent(t.requestManager, e, t.address); }).forEach(function (e) { e.attachToContract(t); }); }(this);\r\n }\r\n return Contract;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3);\r\n e.SolidityParam = /** @class */ (function () {\r\n function SolidityParam(t, e) {\r\n this.offset = void 0, this.value = t || \"\", this.offset = e;\r\n }\r\n SolidityParam.prototype.isDynamic = function () { return void 0 !== this.offset; };\r\n SolidityParam.prototype.offsetAsBytes = function () { return this.isDynamic() ? n.padLeft(n.toTwosComplement(this.offset).toString(16), 64) : \"\"; };\r\n SolidityParam.prototype.staticPart = function () { return this.isDynamic() ? this.offsetAsBytes() : this.value; };\r\n SolidityParam.prototype.dynamicPart = function () { return this.isDynamic() ? this.value : \"\"; };\r\n SolidityParam.prototype.encode = function () { return this.staticPart() + this.dynamicPart(); };\r\n return SolidityParam;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(15), s = r(27);\r\n e.SolidityEvent = /** @class */ (function () {\r\n function class_3(t, e, r) {\r\n this.requestManager = t, this.address = r, this._anonymous = !1, this._params = e.inputs, this._name = n.transformToFullName(e), this._anonymous = e.anonymous;\r\n }\r\n class_3.prototype.types = function (t) { return this._params.filter(function (e) { return e.indexed === t; }).map(function (t) { return t.type; }); };\r\n class_3.prototype.displayName = function () { return n.extractDisplayName(this._name); };\r\n class_3.prototype.typeName = function () { return n.extractTypeName(this._name) || \"void\"; };\r\n class_3.prototype.signature = function () { return n.sha3(this._name); };\r\n class_3.prototype.encode = function (t, e) {\r\n if (t === void 0) { t = {}; }\r\n if (e === void 0) { e = {}; }\r\n var r = { topics: [], address: this.address };\r\n [\"fromBlock\", \"toBlock\"].filter(function (t) { return void 0 !== e[t]; }).forEach(function (t) { r[t] = o.inputBlockNumberFormatter(e[t]); }), this._anonymous || r.topics.push(\"0x\" + this.signature());\r\n var s = this._params.filter(function (t) { return !0 === t.indexed; }).map(function (e) { var r = t[e.name]; return null == r ? null : n.isArray(r) ? r.map(function (t) { return \"0x\" + i.coder.encodeParam(e.type, t); }) : \"0x\" + i.coder.encodeParam(e.type, r); });\r\n return r.topics = r.topics.concat(s), r;\r\n };\r\n class_3.prototype.decode = function (t) { t.data = t.data || \"\", t.topics = t.topics || []; var e = (this._anonymous ? t.topics : t.topics.slice(1)).map(function (t) { return t.slice(2); }).join(\"\"), r = i.coder.decodeParams(this.types(!0), e), n = t.data.slice(2), s = i.coder.decodeParams(this.types(!1), n), a = o.outputLogFormatter(t); return a.event = this.displayName(), a.address = t.address, a.args = this._params.reduce(function (t, e) { return t[e.name] = e.indexed ? r.shift() : s.shift(), t; }, {}), delete a.data, delete a.topics, a; };\r\n class_3.prototype.execute = function (t, e) {\r\n return __awaiter(this, void 0, void 0, function () { var r, n; return __generator(this, function (_a) {\r\n r = this.encode(t, e), n = this.decode.bind(this);\r\n return [2 /*return*/, new s.EthFilter(this.requestManager, r, n)];\r\n }); });\r\n };\r\n class_3.prototype.attachToContract = function (t) { var e = this.execute.bind(this), r = this.displayName(); t.events[r] || (t.events[r] = e), t.events[r][this.typeName()] = this.execute.bind(this, t); };\r\n return class_3;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(14), s = r(9);\r\n function a(t) { if (null == t)\r\n return null; var e = String(t).toString(); return 0 === e.indexOf(\"0x\") ? e : n.fromUtf8(e); }\r\n var c = /** @class */ (function () {\r\n function c(t) {\r\n this.requestManager = t, this.isStarted = !1, this.isDisposed = !1, this.filterId = s.future(), this.callbacks = [], this.stopSemaphore = s.future();\r\n }\r\n c.prototype.watch = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var _a, _c; return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (this.isDisposed)\r\n throw new Error(\"The filter was disposed\");\r\n _a = t;\r\n if (!_a) return [3 /*break*/, 3];\r\n this.callbacks.push(t);\r\n _c = this.isStarted;\r\n if (_c) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.start()];\r\n case 1:\r\n _c = (_d.sent());\r\n _d.label = 2;\r\n case 2:\r\n _a = (_c);\r\n _d.label = 3;\r\n case 3:\r\n _a;\r\n return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.start = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t_10, t_9; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (this.isDisposed)\r\n throw new Error(\"The filter was disposed\");\r\n if (!!this.isStarted) return [3 /*break*/, 6];\r\n this.isStarted = !0;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.getNewFilter()];\r\n case 2:\r\n t_10 = _a.sent();\r\n if (!t_10)\r\n throw new Error(\"Could not create a filter, response: \" + JSON.stringify(t_10));\r\n this.filterId.resolve(t_10);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n t_9 = _a.sent();\r\n throw t_9;\r\n case 4:\r\n this.stopSemaphore = s.future();\r\n return [4 /*yield*/, this.poll()];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.stop = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t, _a, _c; return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (!this.isStarted)\r\n return [2 /*return*/];\r\n if (this.isDisposed)\r\n return [2 /*return*/];\r\n this.isDisposed = !0;\r\n return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _d.sent();\r\n this.isStarted = !1;\r\n _a = this.stopSemaphore;\r\n if (!_a) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.stopSemaphore];\r\n case 2:\r\n _a = (_d.sent());\r\n _d.label = 3;\r\n case 3:\r\n _a;\r\n _c = !0;\r\n return [4 /*yield*/, this.uninstall()];\r\n case 4:\r\n if (_c !== (_d.sent()))\r\n throw new Error(\"Couldn't stop the eth filter: \" + t);\r\n return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.poll = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var t_11, t;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.isStarted) return [3 /*break*/, 3];\r\n if (!this.callbacks.length) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.getChanges()];\r\n case 1:\r\n t_11 = _a.sent();\r\n this.callbacks.forEach(function (e) { _this.formatter ? t_11.forEach(function (t) { e(_this.formatter(t)); }) : t_11.forEach(function (t) { return e(t); }); });\r\n _a.label = 2;\r\n case 2:\r\n this.stopSemaphore.resolve(1), this.isStarted && (this.stopSemaphore = s.future(), setTimeout((t = (function () { return _this.poll(); }), function () { t().catch(function (t) { return console.error(t); }); }), i.ETH_POLLING_TIMEOUT));\r\n return [3 /*break*/, 4];\r\n case 3:\r\n this.stopSemaphore.resolve(1);\r\n _a.label = 4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return c;\r\n }());\r\n e.AbstractFilter = c;\r\n e.SHHFilter = /** @class */ (function (_super) {\r\n __extends(class_4, _super);\r\n function class_4(t, e) {\r\n var _this = this;\r\n _this = _super.call(this, t) || this, _this.requestManager = t, _this.options = e, _this.options = _this.options || { topics: [] }, _this.options.topics = _this.options.topics || [], _this.options.topics = _this.options.topics.map(function (t) { return a(t); }), _this.options = { topics: _this.options.topics, to: _this.options.to };\r\n return _this;\r\n }\r\n class_4.prototype.getMessages = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_getMessages(t)];\r\n }\r\n }); });\r\n };\r\n class_4.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.shh_newFilter(this.options)];\r\n }); });\r\n };\r\n class_4.prototype.getChanges = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_getFilterChanges(t)];\r\n }\r\n }); });\r\n };\r\n class_4.prototype.uninstall = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_uninstallFilter(t)];\r\n }\r\n }); });\r\n };\r\n return class_4;\r\n }(c));\r\n var u = /** @class */ (function (_super) {\r\n __extends(u, _super);\r\n function u(t, e, r) {\r\n if (r === void 0) { r = (function (t) { return t; }); }\r\n var _this = this;\r\n _this = _super.call(this, t) || this, _this.requestManager = t, _this.options = e, _this.formatter = r, _this.options = _this.options || {}, _this.options.topics = _this.options.topics || [], _this.options.topics = _this.options.topics.map(function (t) { return a(t); }), _this.options = { topics: _this.options.topics, address: _this.options.address ? _this.options.address : void 0, fromBlock: \"number\" == typeof _this.options.fromBlock || \"string\" == typeof _this.options.fromBlock ? o.inputBlockNumberFormatter(_this.options.fromBlock) : \"latest\", toBlock: \"number\" == typeof _this.options.toBlock || \"string\" == typeof _this.options.toBlock ? o.inputBlockNumberFormatter(_this.options.toBlock) : \"latest\" };\r\n return _this;\r\n }\r\n u.prototype.getLogs = function () {\r\n return __awaiter(this, void 0, void 0, function () { var _a, t; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _a = this.isStarted;\r\n if (_a) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.start()];\r\n case 1:\r\n _a = (_c.sent());\r\n _c.label = 2;\r\n case 2:\r\n _a;\r\n return [4 /*yield*/, this.filterId];\r\n case 3:\r\n t = _c.sent();\r\n return [2 /*return*/, this.requestManager.eth_getFilterLogs(t)];\r\n }\r\n }); });\r\n };\r\n u.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newFilter(this.options)];\r\n }); });\r\n };\r\n u.prototype.getChanges = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.eth_getFilterChanges(t)];\r\n }\r\n }); });\r\n };\r\n u.prototype.uninstall = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.eth_uninstallFilter(t)];\r\n }\r\n }); });\r\n };\r\n return u;\r\n }(c));\r\n e.EthFilter = u;\r\n e.EthPendingTransactionFilter = /** @class */ (function (_super) {\r\n __extends(class_5, _super);\r\n function class_5(t) {\r\n return _super.call(this, t, null, function (t) { return t; }) || this;\r\n }\r\n class_5.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newPendingTransactionFilter()];\r\n }); });\r\n };\r\n return class_5;\r\n }(u));\r\n e.EthBlockFilter = /** @class */ (function (_super) {\r\n __extends(class_6, _super);\r\n function class_6(t) {\r\n return _super.call(this, t, null, function (t) { return t; }) || this;\r\n }\r\n class_6.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newBlockFilter()];\r\n }); });\r\n };\r\n return class_6;\r\n }(u));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(29);\r\n e.HTTPProvider = n.HTTPProvider;\r\n var o = r(30);\r\n e.WebSocketProvider = o.WebSocketProvider, function (t) { for (var r in t)\r\n e.hasOwnProperty(r) || (e[r] = t[r]); }(r(3));\r\n var i = r(55);\r\n e.RequestManager = i.RequestManager;\r\n var s = r(24);\r\n e.Contract = s.Contract;\r\n var a = r(71);\r\n e.ContractFactory = a.ContractFactory;\r\n var c = r(22);\r\n e.Method = c.Method;\r\n var u = r(23);\r\n e.Property = u.Property;\r\n var l = r(21);\r\n e.eth = l.eth;\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(16);\r\n e.HTTPProvider = /** @class */ (function () {\r\n function class_7(t, e) {\r\n if (e === void 0) { e = {}; }\r\n this.host = t, this.options = e, this.debug = !1, this.host = t || \"http://localhost:8545\";\r\n }\r\n class_7.prototype.send = function () { throw new Error(\"Sync requests are deprecated\"); };\r\n class_7.prototype.sendAsync = function (t, e) {\r\n var _this = this;\r\n try {\r\n var r_3 = null;\r\n if (r_3 = t instanceof Array ? t.map(function (t) { return n.toRPC(t); }) : n.toRPC(t), \"undefined\" == typeof fetch)\r\n throw new Error(\"There is no global fetch object. Please install and import isomorphic-fetch\");\r\n var o = { body: JSON.stringify(r_3), method: \"POST\", headers: Object.assign({}, this.options.headers, { \"Content-Type\": \"application/json\" }) };\r\n this.debug && console.log(\"SEND >> \" + o.body), fetch(this.host, o).then(function (t) { return __awaiter(_this, void 0, void 0, function () { var r_4; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!t.ok) return [3 /*break*/, 2];\r\n return [4 /*yield*/, t.json()];\r\n case 1:\r\n r_4 = _a.sent();\r\n this.debug && console.log(\"RECV << \" + JSON.stringify(r_4)), r_4.error ? e(Object.assign(new Error(r_4.error.json || r_4.error), r_4.error)) : e(null, r_4);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(new Error(\"External error. response code: \" + t.status));\r\n _a.label = 3;\r\n case 3: return [2 /*return*/];\r\n }\r\n }); }); }, function (t) { _this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(t); });\r\n }\r\n catch (t) {\r\n this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(t);\r\n }\r\n };\r\n return class_7;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(16), o = r(9);\r\n var i = /** @class */ (function () {\r\n function i(t, e) {\r\n if (e === void 0) { e = {}; }\r\n this.url = t, this.options = e, this.isDisposed = !1, this.responseCallbacks = new Map, this.notificationCallbacks = new Set, this.debug = !1, this.lastChunk = \"\", this.connect();\r\n }\r\n i.prototype.dispose = function () { this.isDisposed = !0; var t = this.connection; this.timeout(new Error(\"Provider disposed.\")), t.then(function (t) { return t.close(); }); };\r\n i.prototype.send = function () { throw new Error(\"Sync requests are deprecated\"); };\r\n i.prototype.sendAsync = function (t, e) {\r\n var _this = this;\r\n var r = [];\r\n var i;\r\n if (t instanceof Array)\r\n i = Promise.all(t.map(function (t) { var e = o.future(); try {\r\n var o_7 = n.toRPC(t);\r\n r.push(o_7), _this.responseCallbacks.set(o_7.id, e);\r\n }\r\n catch (t) {\r\n e.reject(t);\r\n } return e; }));\r\n else {\r\n var e_7 = o.future();\r\n try {\r\n var o_8 = n.toRPC(t);\r\n r.push(o_8), this.responseCallbacks.set(o_8.id, e_7);\r\n }\r\n catch (t) {\r\n e_7.reject(t);\r\n }\r\n i = e_7;\r\n }\r\n i.then(function (t) { return e(null, t); }, function (t) { return e(t); }), this.connection.then(function (t) { r.forEach(function (e) { var r = JSON.stringify(e); _this.debug && console.log(\"SEND >> \" + r), t.send(r); }); }, function (t) { e(t); });\r\n };\r\n i.prototype.parseResponse = function (t) {\r\n var _this = this;\r\n var e = [];\r\n return t.replace(/\\}[\\n\\r]?\\{/g, \"}|--|{\").replace(/\\}\\][\\n\\r]?\\[\\{/g, \"}]|--|[{\").replace(/\\}[\\n\\r]?\\[\\{/g, \"}|--|[{\").replace(/\\}\\][\\n\\r]?\\{/g, \"}]|--|{\").split(\"|--|\").forEach(function (t) { var r = t; _this.lastChunk && (r = _this.lastChunk + r); var n = null; try {\r\n n = JSON.parse(r);\r\n }\r\n catch (t) {\r\n return _this.lastChunk = r, clearTimeout(_this.lastChunkTimeout), void (_this.lastChunkTimeout = setTimeout(function () { _this.timeout(); }, 15e3));\r\n } clearTimeout(_this.lastChunkTimeout), _this.lastChunk = null, n && e.push(n); }), e;\r\n };\r\n i.prototype.processMessage = function (t) { if (\"id\" in t) {\r\n var e_8 = t.id, r_5 = this.responseCallbacks.get(e_8);\r\n if (!r_5)\r\n return void console.error(\"Error: Received a response for an unknown request\", t);\r\n this.responseCallbacks.delete(e_8), \"error\" in t ? r_5.reject(Object.assign(new Error(t.error.message || t.error), t.error)) : \"result\" in t && r_5.resolve(t);\r\n }\r\n else\r\n this.notificationCallbacks.forEach(function (e) { return e(null, t); }); };\r\n i.prototype.timeout = function (t) { this.connection && this.connection.isPending || (this.connection = o.future()); var e = t || new Error(\"Connection timeout\"); this.responseCallbacks.forEach(function (t) { return t.reject(e); }), this.responseCallbacks.clear(), this.isDisposed || this.connect(); };\r\n i.prototype.connect = function () {\r\n var _this = this;\r\n this.connection && !this.connection.isPending && this.connection.then(function (t) { return t.close(); }), this.connection && this.connection.isPending || (this.connection = o.future()), this.lastChunk = \"\";\r\n var t = this.options.WebSocketConstructor || (\"undefined\" != typeof WebSocket ? WebSocket : void 0);\r\n if (!t)\r\n throw new Error(\"Please provide a WebSocketConstructor\");\r\n var e = new t(this.url, this.options.protocol);\r\n e.onopen = (function () { _this.connection.resolve(e); }), e.onerror = (function (t) { _this.timeout(t); }), e.onclose = (function (t) { _this.timeout(new Error(\"Connection closed (\" + (t && t.reason || \"Unknown reason\") + \")\")); }), e.onmessage = (function (t) { var e = \"string\" == typeof t.data ? t.data : \"\"; _this.debug && console.log(\"RECV << \" + t.data), _this.parseResponse(e).forEach(function (t) { t instanceof Array ? t.forEach(function (t) { return _this.processMessage(t); }) : _this.processMessage(t); }); });\r\n };\r\n return i;\r\n }());\r\n e.WebSocketProvider = i, e.default = i;\r\n }, function (t, e, r) { !function (t) { var e, r, n, o = String.fromCharCode; function i(t) { for (var e, r, n = [], o = 0, i = t.length; o < i;)\r\n (e = t.charCodeAt(o++)) >= 55296 && e <= 56319 && o < i ? 56320 == (64512 & (r = t.charCodeAt(o++))) ? n.push(((1023 & e) << 10) + (1023 & r) + 65536) : (n.push(e), o--) : n.push(e); return n; } function s(t) { if (t >= 55296 && t <= 57343)\r\n throw Error(\"Lone surrogate U+\" + t.toString(16).toUpperCase() + \" is not a scalar value\"); } function a(t, e) { return o(t >> e & 63 | 128); } function c(t) { if (0 == (4294967168 & t))\r\n return o(t); var e = \"\"; return 0 == (4294965248 & t) ? e = o(t >> 6 & 31 | 192) : 0 == (4294901760 & t) ? (s(t), e = o(t >> 12 & 15 | 224), e += a(t, 6)) : 0 == (4292870144 & t) && (e = o(t >> 18 & 7 | 240), e += a(t, 12), e += a(t, 6)), e += o(63 & t | 128); } function u() { if (n >= r)\r\n throw Error(\"Invalid byte index\"); var t = 255 & e[n]; if (n++, 128 == (192 & t))\r\n return 63 & t; throw Error(\"Invalid continuation byte\"); } function l() { var t, o; if (n > r)\r\n throw Error(\"Invalid byte index\"); if (n == r)\r\n return !1; if (t = 255 & e[n], n++, 0 == (128 & t))\r\n return t; if (192 == (224 & t)) {\r\n if ((o = (31 & t) << 6 | u()) >= 128)\r\n return o;\r\n throw Error(\"Invalid continuation byte\");\r\n } if (224 == (240 & t)) {\r\n if ((o = (15 & t) << 12 | u() << 6 | u()) >= 2048)\r\n return s(o), o;\r\n throw Error(\"Invalid continuation byte\");\r\n } if (240 == (248 & t) && (o = (7 & t) << 18 | u() << 12 | u() << 6 | u()) >= 65536 && o <= 1114111)\r\n return o; throw Error(\"Invalid UTF-8 detected\"); } t.version = \"3.0.0\", t.encode = function (t) { for (var e = i(t), r = e.length, n = -1, o = \"\"; ++n < r;)\r\n o += c(e[n]); return o; }, t.decode = function (t) { e = i(t), r = e.length, n = 0; for (var s, a = []; !1 !== (s = l());)\r\n a.push(s); return function (t) { for (var e, r = t.length, n = -1, i = \"\"; ++n < r;)\r\n (e = t[n]) > 65535 && (i += o((e -= 65536) >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), i += o(e); return i; }(a); }; }(e); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), r(33), r(34), r(6), r(7), r(11), r(18), r(35), r(19), r(36), r(20), r(37), r(12), r(38), r(5), r(1), r(39), r(40), r(41), r(42), r(43), r(44), r(45), r(46), r(47), r(48), r(49), r(50), r(51), r(52), r(53), r(54), n); }, function (t, e, r) { var n; t.exports = (n = r(0), function () { if (\"function\" == typeof ArrayBuffer) {\r\n var t = n.lib.WordArray, e = t.init;\r\n (t.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || \"undefined\" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) {\r\n for (var r = t.byteLength, n = [], o = 0; o < r; o++)\r\n n[o >>> 2] |= t[o] << 24 - o % 4 * 8;\r\n e.call(this, n, r);\r\n }\r\n else\r\n e.apply(this, arguments); }).prototype = t;\r\n } }(), n.lib.WordArray); }, function (t, e, r) { var n; t.exports = (n = r(0), function () { var t = n, e = t.lib.WordArray, r = t.enc; function o(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935; } r.Utf16 = r.Utf16BE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o += 2) {\r\n var i = e[o >>> 2] >>> 16 - o % 4 * 8 & 65535;\r\n n.push(String.fromCharCode(i));\r\n } return n.join(\"\"); }, parse: function (t) { for (var r = t.length, n = [], o = 0; o < r; o++)\r\n n[o >>> 1] |= t.charCodeAt(o) << 16 - o % 2 * 16; return e.create(n, 2 * r); } }, r.Utf16LE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], i = 0; i < r; i += 2) {\r\n var s = o(e[i >>> 2] >>> 16 - i % 4 * 8 & 65535);\r\n n.push(String.fromCharCode(s));\r\n } return n.join(\"\"); }, parse: function (t) { for (var r = t.length, n = [], i = 0; i < r; i++)\r\n n[i >>> 1] |= o(t.charCodeAt(i) << 16 - i % 2 * 16); return e.create(n, 2 * r); } }; }(), n.enc.Utf16); }, function (t, e, r) { var n, o, i, s, a, c; t.exports = (n = r(0), r(18), i = (o = n).lib.WordArray, s = o.algo, a = s.SHA256, c = s.SHA224 = a.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); }, _doFinalize: function () { var t = a._doFinalize.call(this); return t.sigBytes -= 4, t; } }), o.SHA224 = a._createHelper(c), o.HmacSHA224 = a._createHmacHelper(c), n.SHA224); }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), r(10), r(19), i = (o = n).x64, s = i.Word, a = i.WordArray, c = o.algo, u = c.SHA512, l = c.SHA384 = u.extend({ _doReset: function () { this._hash = new a.init([new s.init(3418070365, 3238371032), new s.init(1654270250, 914150663), new s.init(2438529370, 812702999), new s.init(355462360, 4144912697), new s.init(1731405415, 4290775857), new s.init(2394180231, 1750603025), new s.init(3675008525, 1694076839), new s.init(1203062813, 3204075428)]); }, _doFinalize: function () { var t = u._doFinalize.call(this); return t.sigBytes -= 16, t; } }), o.SHA384 = u._createHelper(l), o.HmacSHA384 = u._createHmacHelper(l), n.SHA384); }, function (t, e, r) {\r\n var n;\r\n t.exports = (n = r(0),\r\n /** @preserve\r\n (c) 2012 by Cédric Mesnil. All rights reserved.\r\n \n Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\r\n \n - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\r\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\r\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\r\n function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = o.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), c = o.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), u = o.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), l = o.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), h = o.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), f = o.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), p = s.RIPEMD160 = i.extend({ _doReset: function () { this._hash = o.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); }, _doProcessBlock: function (t, e) { for (var r = 0; r < 16; r++) {\r\n var n = e + r, o = t[n];\r\n t[n] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\r\n } var i, s, p, w, b, B, F, N, k, x, S, A = this._hash.words, O = h.words, T = f.words, P = a.words, M = c.words, C = u.words, E = l.words; for (B = i = A[0], F = s = A[1], N = p = A[2], k = w = A[3], x = b = A[4], r = 0; r < 80; r += 1)\r\n S = i + t[e + P[r]] | 0, S += r < 16 ? d(s, p, w) + O[0] : r < 32 ? m(s, p, w) + O[1] : r < 48 ? y(s, p, w) + O[2] : r < 64 ? g(s, p, w) + O[3] : _(s, p, w) + O[4], S = (S = v(S |= 0, C[r])) + b | 0, i = b, b = w, w = v(p, 10), p = s, s = S, S = B + t[e + M[r]] | 0, S += r < 16 ? _(F, N, k) + T[0] : r < 32 ? g(F, N, k) + T[1] : r < 48 ? y(F, N, k) + T[2] : r < 64 ? m(F, N, k) + T[3] : d(F, N, k) + T[4], S = (S = v(S |= 0, E[r])) + x | 0, B = x, x = k, k = v(N, 10), N = F, F = S; S = A[1] + p + k | 0, A[1] = A[2] + w + x | 0, A[2] = A[3] + b + B | 0, A[3] = A[4] + i + F | 0, A[4] = A[0] + s + N | 0, A[0] = S; }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32, e[14 + (n + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var o = this._hash, i = o.words, s = 0; s < 5; s++) {\r\n var a = i[s];\r\n i[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8);\r\n } return o; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); function d(t, e, r) { return t ^ e ^ r; } function m(t, e, r) { return t & e | ~t & r; } function y(t, e, r) { return (t | ~e) ^ r; } function g(t, e, r) { return t & r | e & ~r; } function _(t, e, r) { return t ^ (e | ~r); } function v(t, e) { return t << e | t >>> 32 - e; } e.RIPEMD160 = i._createHelper(p), e.HmacRIPEMD160 = i._createHmacHelper(p); }(Math), n.RIPEMD160);\r\n }, function (t, e, r) { var n, o, i, s, a, c, u, l, h; t.exports = (n = r(0), r(11), r(12), i = (o = n).lib, s = i.Base, a = i.WordArray, c = o.algo, u = c.SHA1, l = c.HMAC, h = c.PBKDF2 = s.extend({ cfg: s.extend({ keySize: 4, hasher: u, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t); }, compute: function (t, e) { for (var r = this.cfg, n = l.create(r.hasher, t), o = a.create(), i = a.create([1]), s = o.words, c = i.words, u = r.keySize, h = r.iterations; s.length < u;) {\r\n var f = n.update(e).finalize(i);\r\n n.reset();\r\n for (var p = f.words, d = p.length, m = f, y = 1; y < h; y++) {\r\n m = n.finalize(m), n.reset();\r\n for (var g = m.words, _ = 0; _ < d; _++)\r\n p[_] ^= g[_];\r\n }\r\n o.concat(f), c[0]++;\r\n } return o.sigBytes = 4 * u, o; } }), o.PBKDF2 = function (t, e, r) { return h.create(r).compute(t, e); }, n.PBKDF2); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.mode.CFB = function () { var t = n.lib.BlockCipherMode.extend(); function e(t, e, r, n) { var o = this._iv; if (o) {\r\n var i = o.slice(0);\r\n this._iv = void 0;\r\n }\r\n else\r\n i = this._prevBlock; n.encryptBlock(i, 0); for (var s = 0; s < r; s++)\r\n t[e + s] ^= i[s]; } return t.Encryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize; e.call(this, t, r, o, n), this._prevBlock = t.slice(r, r + o); } }), t.Decryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize, i = t.slice(r, r + o); e.call(this, t, r, o, n), this._prevBlock = i; } }), t; }(), n.mode.CFB); }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), r(1), n.mode.CTR = (o = n.lib.BlockCipherMode.extend(), i = o.Encryptor = o.extend({ processBlock: function (t, e) { var r = this._cipher, n = r.blockSize, o = this._iv, i = this._counter; o && (i = this._counter = o.slice(0), this._iv = void 0); var s = i.slice(0); r.encryptBlock(s, 0), i[n - 1] = i[n - 1] + 1 | 0; for (var a = 0; a < n; a++)\r\n t[e + a] ^= s[a]; } }), o.Decryptor = i, o), n.mode.CTR); }, function (t, e, r) {\r\n var n;\r\n t.exports = (n = r(0), r(1),\r\n /** @preserve\r\n * Counter block mode compatible with Dr Brian Gladman fileenc.c\r\n * derived from CryptoJS.mode.CTR\r\n * Jan Hruby jhruby.web@gmail.com\r\n */\r\n n.mode.CTRGladman = function () { var t = n.lib.BlockCipherMode.extend(); function e(t) { if (255 == (t >> 24 & 255)) {\r\n var e = t >> 16 & 255, r = t >> 8 & 255, n = 255 & t;\r\n 255 === e ? (e = 0, 255 === r ? (r = 0, 255 === n ? n = 0 : ++n) : ++r) : ++e, t = 0, t += e << 16, t += r << 8, t += n;\r\n }\r\n else\r\n t += 1 << 24; return t; } var r = t.Encryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize, i = this._iv, s = this._counter; i && (s = this._counter = i.slice(0), this._iv = void 0), function (t) { 0 === (t[0] = e(t[0])) && (t[1] = e(t[1])); }(s); var a = s.slice(0); n.encryptBlock(a, 0); for (var c = 0; c < o; c++)\r\n t[r + c] ^= a[c]; } }); return t.Decryptor = r, t; }(), n.mode.CTRGladman);\r\n }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), r(1), n.mode.OFB = (o = n.lib.BlockCipherMode.extend(), i = o.Encryptor = o.extend({ processBlock: function (t, e) { var r = this._cipher, n = r.blockSize, o = this._iv, i = this._keystream; o && (i = this._keystream = o.slice(0), this._iv = void 0), r.encryptBlock(i, 0); for (var s = 0; s < n; s++)\r\n t[e + s] ^= i[s]; } }), o.Decryptor = i, o), n.mode.OFB); }, function (t, e, r) { var n, o; t.exports = (n = r(0), r(1), n.mode.ECB = ((o = n.lib.BlockCipherMode.extend()).Encryptor = o.extend({ processBlock: function (t, e) { this._cipher.encryptBlock(t, e); } }), o.Decryptor = o.extend({ processBlock: function (t, e) { this._cipher.decryptBlock(t, e); } }), o), n.mode.ECB); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.AnsiX923 = { pad: function (t, e) { var r = t.sigBytes, n = 4 * e, o = n - r % n, i = r + o - 1; t.clamp(), t.words[i >>> 2] |= o << 24 - i % 4 * 8, t.sigBytes += o; }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, n.pad.Ansix923); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.Iso10126 = { pad: function (t, e) { var r = 4 * e, o = r - t.sigBytes % r; t.concat(n.lib.WordArray.random(o - 1)).concat(n.lib.WordArray.create([o << 24], 1)); }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, n.pad.Iso10126); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.Iso97971 = { pad: function (t, e) { t.concat(n.lib.WordArray.create([2147483648], 1)), n.pad.ZeroPadding.pad(t, e); }, unpad: function (t) { n.pad.ZeroPadding.unpad(t), t.sigBytes--; } }, n.pad.Iso97971); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.ZeroPadding = { pad: function (t, e) { var r = 4 * e; t.clamp(), t.sigBytes += r - (t.sigBytes % r || r); }, unpad: function (t) { for (var e = t.words, r = t.sigBytes - 1; !(e[r >>> 2] >>> 24 - r % 4 * 8 & 255);)\r\n r--; t.sigBytes = r + 1; } }, n.pad.ZeroPadding); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.NoPadding = { pad: function () { }, unpad: function () { } }, n.pad.NoPadding); }, function (t, e, r) { var n, o, i, s; t.exports = (n = r(0), r(1), i = (o = n).lib.CipherParams, s = o.enc.Hex, o.format.Hex = { stringify: function (t) { return t.ciphertext.toString(s); }, parse: function (t) { var e = s.parse(t); return i.create({ ciphertext: e }); } }, n.format.Hex); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.BlockCipher, r = t.algo, o = [], i = [], s = [], a = [], c = [], u = [], l = [], h = [], f = [], p = []; !function () { for (var t = [], e = 0; e < 256; e++)\r\n t[e] = e < 128 ? e << 1 : e << 1 ^ 283; var r = 0, n = 0; for (e = 0; e < 256; e++) {\r\n var d = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4;\r\n d = d >>> 8 ^ 255 & d ^ 99, o[r] = d, i[d] = r;\r\n var m = t[r], y = t[m], g = t[y], _ = 257 * t[d] ^ 16843008 * d;\r\n s[r] = _ << 24 | _ >>> 8, a[r] = _ << 16 | _ >>> 16, c[r] = _ << 8 | _ >>> 24, u[r] = _, _ = 16843009 * g ^ 65537 * y ^ 257 * m ^ 16843008 * r, l[d] = _ << 24 | _ >>> 8, h[d] = _ << 16 | _ >>> 16, f[d] = _ << 8 | _ >>> 24, p[d] = _, r ? (r = m ^ t[t[t[g ^ m]]], n ^= t[t[n]]) : r = n = 1;\r\n } }(); var d = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], m = r.AES = e.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) {\r\n for (var t = this._keyPriorReset = this._key, e = t.words, r = t.sigBytes / 4, n = 4 * ((this._nRounds = r + 6) + 1), i = this._keySchedule = [], s = 0; s < n; s++)\r\n if (s < r)\r\n i[s] = e[s];\r\n else {\r\n var a = i[s - 1];\r\n s % r ? r > 6 && s % r == 4 && (a = o[a >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a]) : (a = o[(a = a << 8 | a >>> 24) >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a], a ^= d[s / r | 0] << 24), i[s] = i[s - r] ^ a;\r\n }\r\n for (var c = this._invKeySchedule = [], u = 0; u < n; u++)\r\n s = n - u, a = u % 4 ? i[s] : i[s - 4], c[u] = u < 4 || s <= 4 ? a : l[o[a >>> 24]] ^ h[o[a >>> 16 & 255]] ^ f[o[a >>> 8 & 255]] ^ p[o[255 & a]];\r\n } }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._keySchedule, s, a, c, u, o); }, decryptBlock: function (t, e) { var r = t[e + 1]; t[e + 1] = t[e + 3], t[e + 3] = r, this._doCryptBlock(t, e, this._invKeySchedule, l, h, f, p, i), r = t[e + 1], t[e + 1] = t[e + 3], t[e + 3] = r; }, _doCryptBlock: function (t, e, r, n, o, i, s, a) { for (var c = this._nRounds, u = t[e] ^ r[0], l = t[e + 1] ^ r[1], h = t[e + 2] ^ r[2], f = t[e + 3] ^ r[3], p = 4, d = 1; d < c; d++) {\r\n var m = n[u >>> 24] ^ o[l >>> 16 & 255] ^ i[h >>> 8 & 255] ^ s[255 & f] ^ r[p++], y = n[l >>> 24] ^ o[h >>> 16 & 255] ^ i[f >>> 8 & 255] ^ s[255 & u] ^ r[p++], g = n[h >>> 24] ^ o[f >>> 16 & 255] ^ i[u >>> 8 & 255] ^ s[255 & l] ^ r[p++], _ = n[f >>> 24] ^ o[u >>> 16 & 255] ^ i[l >>> 8 & 255] ^ s[255 & h] ^ r[p++];\r\n u = m, l = y, h = g, f = _;\r\n } m = (a[u >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & f]) ^ r[p++], y = (a[l >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ r[p++], g = (a[h >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & l]) ^ r[p++], _ = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & h]) ^ r[p++], t[e] = m, t[e + 1] = y, t[e + 2] = g, t[e + 3] = _; }, keySize: 8 }); t.AES = e._createHelper(m); }(), n.AES); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib, r = e.WordArray, o = e.BlockCipher, i = t.algo, s = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], a = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], c = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], u = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], l = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], h = i.DES = o.extend({ _doReset: function () { for (var t = this._key.words, e = [], r = 0; r < 56; r++) {\r\n var n = s[r] - 1;\r\n e[r] = t[n >>> 5] >>> 31 - n % 32 & 1;\r\n } for (var o = this._subKeys = [], i = 0; i < 16; i++) {\r\n var u = o[i] = [], l = c[i];\r\n for (r = 0; r < 24; r++)\r\n u[r / 6 | 0] |= e[(a[r] - 1 + l) % 28] << 31 - r % 6, u[4 + (r / 6 | 0)] |= e[28 + (a[r + 24] - 1 + l) % 28] << 31 - r % 6;\r\n for (u[0] = u[0] << 1 | u[0] >>> 31, r = 1; r < 7; r++)\r\n u[r] = u[r] >>> 4 * (r - 1) + 3;\r\n u[7] = u[7] << 5 | u[7] >>> 27;\r\n } var h = this._invSubKeys = []; for (r = 0; r < 16; r++)\r\n h[r] = o[15 - r]; }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._subKeys); }, decryptBlock: function (t, e) { this._doCryptBlock(t, e, this._invSubKeys); }, _doCryptBlock: function (t, e, r) { this._lBlock = t[e], this._rBlock = t[e + 1], f.call(this, 4, 252645135), f.call(this, 16, 65535), p.call(this, 2, 858993459), p.call(this, 8, 16711935), f.call(this, 1, 1431655765); for (var n = 0; n < 16; n++) {\r\n for (var o = r[n], i = this._lBlock, s = this._rBlock, a = 0, c = 0; c < 8; c++)\r\n a |= u[c][((s ^ o[c]) & l[c]) >>> 0];\r\n this._lBlock = s, this._rBlock = i ^ a;\r\n } var h = this._lBlock; this._lBlock = this._rBlock, this._rBlock = h, f.call(this, 1, 1431655765), p.call(this, 8, 16711935), p.call(this, 2, 858993459), f.call(this, 16, 65535), f.call(this, 4, 252645135), t[e] = this._lBlock, t[e + 1] = this._rBlock; }, keySize: 2, ivSize: 2, blockSize: 2 }); function f(t, e) { var r = (this._lBlock >>> t ^ this._rBlock) & e; this._rBlock ^= r, this._lBlock ^= r << t; } function p(t, e) { var r = (this._rBlock >>> t ^ this._lBlock) & e; this._lBlock ^= r, this._rBlock ^= r << t; } t.DES = o._createHelper(h); var d = i.TripleDES = o.extend({ _doReset: function () { var t = this._key.words; this._des1 = h.createEncryptor(r.create(t.slice(0, 2))), this._des2 = h.createEncryptor(r.create(t.slice(2, 4))), this._des3 = h.createEncryptor(r.create(t.slice(4, 6))); }, encryptBlock: function (t, e) { this._des1.encryptBlock(t, e), this._des2.decryptBlock(t, e), this._des3.encryptBlock(t, e); }, decryptBlock: function (t, e) { this._des3.decryptBlock(t, e), this._des2.encryptBlock(t, e), this._des1.decryptBlock(t, e); }, keySize: 6, ivSize: 2, blockSize: 2 }); t.TripleDES = o._createHelper(d); }(), n.TripleDES); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = r.RC4 = e.extend({ _doReset: function () { for (var t = this._key, e = t.words, r = t.sigBytes, n = this._S = [], o = 0; o < 256; o++)\r\n n[o] = o; o = 0; for (var i = 0; o < 256; o++) {\r\n var s = o % r, a = e[s >>> 2] >>> 24 - s % 4 * 8 & 255;\r\n i = (i + n[o] + a) % 256;\r\n var c = n[o];\r\n n[o] = n[i], n[i] = c;\r\n } this._i = this._j = 0; }, _doProcessBlock: function (t, e) { t[e] ^= i.call(this); }, keySize: 8, ivSize: 0 }); function i() { for (var t = this._S, e = this._i, r = this._j, n = 0, o = 0; o < 4; o++) {\r\n r = (r + t[e = (e + 1) % 256]) % 256;\r\n var i = t[e];\r\n t[e] = t[r], t[r] = i, n |= t[(t[e] + t[r]) % 256] << 24 - 8 * o;\r\n } return this._i = e, this._j = r, n; } t.RC4 = e._createHelper(o); var s = r.RC4Drop = o.extend({ cfg: o.cfg.extend({ drop: 192 }), _doReset: function () { o._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)\r\n i.call(this); } }); t.RC4Drop = e._createHelper(s); }(), n.RC4); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = [], i = [], s = [], a = r.Rabbit = e.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, r = 0; r < 4; r++)\r\n t[r] = 16711935 & (t[r] << 8 | t[r] >>> 24) | 4278255360 & (t[r] << 24 | t[r] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; for (this._b = 0, r = 0; r < 4; r++)\r\n c.call(this); for (r = 0; r < 8; r++)\r\n o[r] ^= n[r + 4 & 7]; if (e) {\r\n var i = e.words, s = i[0], a = i[1], u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), h = u >>> 16 | 4294901760 & l, f = l << 16 | 65535 & u;\r\n for (o[0] ^= u, o[1] ^= h, o[2] ^= l, o[3] ^= f, o[4] ^= u, o[5] ^= h, o[6] ^= l, o[7] ^= f, r = 0; r < 4; r++)\r\n c.call(this);\r\n } }, _doProcessBlock: function (t, e) { var r = this._X; c.call(this), o[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, o[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, o[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, o[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16; for (var n = 0; n < 4; n++)\r\n o[n] = 16711935 & (o[n] << 8 | o[n] >>> 24) | 4278255360 & (o[n] << 24 | o[n] >>> 8), t[e + n] ^= o[n]; }, blockSize: 4, ivSize: 2 }); function c() { for (var t = this._X, e = this._C, r = 0; r < 8; r++)\r\n i[r] = e[r]; for (e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {\r\n var n = t[r] + e[r], o = 65535 & n, a = n >>> 16, c = ((o * o >>> 17) + o * a >>> 15) + a * a, u = ((4294901760 & n) * n | 0) + ((65535 & n) * n | 0);\r\n s[r] = c ^ u;\r\n } t[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, t[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, t[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, t[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, t[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, t[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, t[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, t[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0; } t.Rabbit = e._createHelper(a); }(), n.Rabbit); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = [], i = [], s = [], a = r.RabbitLegacy = e.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, r = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)\r\n c.call(this); for (o = 0; o < 8; o++)\r\n n[o] ^= r[o + 4 & 7]; if (e) {\r\n var i = e.words, s = i[0], a = i[1], u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), h = u >>> 16 | 4294901760 & l, f = l << 16 | 65535 & u;\r\n for (n[0] ^= u, n[1] ^= h, n[2] ^= l, n[3] ^= f, n[4] ^= u, n[5] ^= h, n[6] ^= l, n[7] ^= f, o = 0; o < 4; o++)\r\n c.call(this);\r\n } }, _doProcessBlock: function (t, e) { var r = this._X; c.call(this), o[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, o[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, o[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, o[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16; for (var n = 0; n < 4; n++)\r\n o[n] = 16711935 & (o[n] << 8 | o[n] >>> 24) | 4278255360 & (o[n] << 24 | o[n] >>> 8), t[e + n] ^= o[n]; }, blockSize: 4, ivSize: 2 }); function c() { for (var t = this._X, e = this._C, r = 0; r < 8; r++)\r\n i[r] = e[r]; for (e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {\r\n var n = t[r] + e[r], o = 65535 & n, a = n >>> 16, c = ((o * o >>> 17) + o * a >>> 15) + a * a, u = ((4294901760 & n) * n | 0) + ((65535 & n) * n | 0);\r\n s[r] = c ^ u;\r\n } t[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, t[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, t[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, t[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, t[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, t[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, t[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, t[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0; } t.RabbitLegacy = e._createHelper(a); }(), n.RabbitLegacy); }, function (t, e, r) {\r\n \"use strict\";\r\n var n = this && this.__decorate || function (t, e, r, n) { var o, i = arguments.length, s = i < 3 ? e : null === n ? n = Object.getOwnPropertyDescriptor(e, r) : n; if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate)\r\n s = Reflect.decorate(t, e, r, n);\r\n else\r\n for (var a = t.length - 1; a >= 0; a--)\r\n (o = t[a]) && (s = (i < 3 ? o(s) : i > 3 ? o(e, r, s) : o(e, r)) || s); return i > 3 && s && Object.defineProperty(e, r, s), s; }, o = this && this.__metadata || function (t, e) { if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.metadata)\r\n return Reflect.metadata(t, e); };\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var i = r(56), s = r(13), a = r(9), c = r(21), u = r(58), l = r(59);\r\n function h(t, e) { var r = c.eth[e]; if (!r)\r\n throw new Error(\"Could not find the method/property named \" + e.toString()); Object.defineProperty(t, e, { value: function () {\r\n var _a;\r\n return (_a = r.execute).call.apply(_a, __spread([r, this], arguments));\r\n } }); }\r\n e.TRANSACTION_FETCH_DELAY = 2e3, e.inject = h;\r\n var f = /** @class */ (function () {\r\n function f(t) {\r\n this.provider = t, this.requests = new Map;\r\n }\r\n f.prototype.sendAsync = function (t) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e, r;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n if (!this.provider)\r\n throw s.InvalidProvider();\r\n e = i.toPayload(t.method, t.params);\r\n r = a.future();\r\n return [2 /*return*/, (this.requests.set(e.id, r), this.provider.sendAsync(e, function (t, n) { _this.requests.delete(e.id), t ? r.reject(t) : i.isValidResponse(n) ? r.resolve(n.result) : r.reject(s.InvalidResponse(n)); }), r)];\r\n });\r\n });\r\n };\r\n f.prototype.setProvider = function (t) { this.provider = t; };\r\n f.prototype.getConfirmedTransaction = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.waitForCompletion(t)];\r\n case 1:\r\n e = _a.sent();\r\n if (this.isFailure(e))\r\n throw new Error(\"Transaction \\\"\" + t + \"\\\" failed\");\r\n return [2 /*return*/, e];\r\n }\r\n }); });\r\n };\r\n f.prototype.waitForCompletion = function (t, r) {\r\n return __awaiter(this, void 0, void 0, function () { var e_9, r_6; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.isTxDropped(t, r)];\r\n case 1:\r\n if (!_a.sent()) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 2:\r\n e_9 = _a.sent();\r\n return [2 /*return*/, Object.assign({}, e_9, { status: u.TransactionStatus.failed })];\r\n case 3: return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 4:\r\n r_6 = _a.sent();\r\n if (!this.isPending(r_6) && r_6.receipt)\r\n return [2 /*return*/, Object.assign({}, r_6, { status: this.isFailure(r_6) ? u.TransactionStatus.failed : u.TransactionStatus.confirmed })];\r\n return [4 /*yield*/, l.sleep(e.TRANSACTION_FETCH_DELAY)];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 3];\r\n case 7: return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n f.prototype.getTransaction = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e, r, n, t_15, _a, t_12, _c, t_13, _d, t_14; return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n _e.trys.push([0, 4, , 5]);\r\n return [4 /*yield*/, this.eth_accounts()];\r\n case 1:\r\n t_15 = (_e.sent())[0];\r\n _a = t_15;\r\n if (!_a) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.eth_getTransactionCount(t_15, \"latest\")];\r\n case 2:\r\n _a = (e = _e.sent());\r\n _e.label = 3;\r\n case 3:\r\n _a;\r\n return [3 /*break*/, 5];\r\n case 4:\r\n t_12 = _e.sent();\r\n e = null;\r\n return [3 /*break*/, 5];\r\n case 5:\r\n _e.trys.push([5, 7, , 8]);\r\n _c = null;\r\n return [4 /*yield*/, this.eth_getTransactionByHash(t)];\r\n case 6:\r\n if (_c == (r = _e.sent()))\r\n return [2 /*return*/, null];\r\n return [3 /*break*/, 8];\r\n case 7:\r\n t_13 = _e.sent();\r\n return [2 /*return*/, null];\r\n case 8:\r\n if (null == r.blockNumber) {\r\n if (null != e) {\r\n if (r.nonce < e) {\r\n return [2 /*return*/, { hash: t, type: u.TransactionType.replaced, nonce: r.nonce }];\r\n }\r\n if (r.nonce > e) {\r\n return [2 /*return*/, { hash: t, type: u.TransactionType.queued, nonce: r.nonce }];\r\n }\r\n }\r\n return [2 /*return*/, Object.assign({ type: u.TransactionType.pending }, r)];\r\n }\r\n _e.label = 9;\r\n case 9:\r\n _e.trys.push([9, 11, , 12]);\r\n _d = null;\r\n return [4 /*yield*/, this.eth_getTransactionReceipt(t)];\r\n case 10:\r\n if (_d == (n = _e.sent()) || 0 === n.status) {\r\n return [2 /*return*/, Object.assign({ type: u.TransactionType.reverted }, r)];\r\n }\r\n return [3 /*break*/, 12];\r\n case 11:\r\n t_14 = _e.sent();\r\n return [2 /*return*/, null];\r\n case 12: return [2 /*return*/, Object.assign({ type: u.TransactionType.confirmed }, r, { receipt: n })];\r\n }\r\n }); });\r\n };\r\n f.prototype.isTxDropped = function (t, r) {\r\n if (r === void 0) { r = 15; }\r\n return __awaiter(this, void 0, void 0, function () { var n, _a; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n n = r;\r\n _c.label = 1;\r\n case 1:\r\n if (!(n > 0)) return [3 /*break*/, 5];\r\n _a = null;\r\n return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 2:\r\n if (_a !== (_c.sent()))\r\n return [2 /*return*/, !1];\r\n n -= 1;\r\n return [4 /*yield*/, l.sleep(e.TRANSACTION_FETCH_DELAY)];\r\n case 3:\r\n _c.sent();\r\n _c.label = 4;\r\n case 4: return [3 /*break*/, 1];\r\n case 5: return [2 /*return*/, !0];\r\n }\r\n }); });\r\n };\r\n f.prototype.getTransactionAndReceipt = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var _a, e, r; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0: return [4 /*yield*/, Promise.all([this.eth_getTransactionByHash(t), this.eth_getTransactionReceipt(t)])];\r\n case 1:\r\n _a = __read.apply(void 0, [_c.sent(), 2]), e = _a[0], r = _a[1];\r\n return [2 /*return*/, e ? Object.assign({}, e, { receipt: r }) : null];\r\n }\r\n }); });\r\n };\r\n f.prototype.isPending = function (t) { return t && null === t.blockNumber; };\r\n f.prototype.isFailure = function (t) { return t && (!t.receipt || 0 === t.receipt.status); };\r\n return f;\r\n }());\r\n n([h, o(\"design:type\", Function)], f.prototype, \"web3_clientVersion\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"web3_sha3\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_version\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_peerCount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_listening\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_protocolVersion\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_syncing\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_coinbase\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_mining\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_hashrate\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_gasPrice\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_accounts\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_blockNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBalance\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getStorageAt\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionCount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockTransactionCountByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockTransactionCountByNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleCountByBlockHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleCountByBlockNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getCode\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sign\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sendTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sendRawTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_call\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_estimateGas\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockByNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByBlockHashAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByBlockNumberAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionReceipt\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleByBlockHashAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleByBlockNumberAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newBlockFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newPendingTransactionFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_uninstallFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getFilterChanges\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getFilterLogs\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getLogs\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getWork\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_submitWork\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_submitHashrate\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_post\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_version\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newIdentity\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_hasIdentity\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newGroup\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_addToGroup\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_uninstallFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_getFilterChanges\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_getMessages\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_unlockAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_newAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_listAccounts\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_lockAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_importRawKey\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_sendTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_sign\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_ecRecover\", void 0), e.RequestManager = f;\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n function n(t, r) { if (!t)\r\n throw new Error(\"jsonrpc method should be specified!\"); if (\"string\" != typeof t)\r\n throw new Error(\"jsonrpc must be a string, got \" + typeof t + \"!\"); return e.messageId++, { jsonrpc: \"2.0\", id: e.messageId, method: t, params: r || [] }; }\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.messageId = 0, e.toPayload = n, e.isValidResponse = function (t) { return Array.isArray(t) ? t.every(e) : e(t); function e(t) { return !(!t || t.error || \"2.0\" !== t.jsonrpc || \"number\" != typeof t.id || null == t.result && void 0 === t.result); } }, e.toBatchPayload = function (t) { return t.map(function (t) { return n(t.method, t.params); }); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function (t) { t[t.ROUND_UP = 0] = \"ROUND_UP\", t[t.ROUND_DOWN = 1] = \"ROUND_DOWN\", t[t.ROUND_CE = 2] = \"ROUND_CE\", t[t.ROUND_FLOOR = 3] = \"ROUND_FLOOR\", t[t.ROUND_HALF_UP = 4] = \"ROUND_HALF_UP\", t[t.ROUND_HALF_DOWN = 5] = \"ROUND_HALF_DOWN\", t[t.ROUND_HALF_EVEN = 6] = \"ROUND_HALF_EVEN\", t[t.ROUND_HALF_CEIL = 7] = \"ROUND_HALF_CEIL\", t[t.ROUND_HALF_FLOOR = 8] = \"ROUND_HALF_FLOOR\"; }(e.BigNumberRoundingMode || (e.BigNumberRoundingMode = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function (t) { t.pending = \"pending\", t.confirmed = \"confirmed\", t.failed = \"failed\"; }(e.TransactionStatus || (e.TransactionStatus = {})), function (t) { t.queued = \"queued\", t.dropped = \"dropped\", t.replaced = \"replaced\", t.pending = \"pending\", t.reverted = \"reverted\", t.confirmed = \"confirmed\"; }(e.TransactionType || (e.TransactionType = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.sleep = function (t) { return new Promise(function (e) { return setTimeout(e, t); }); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(13), s = r(15);\r\n e.SolidityFunction = /** @class */ (function () {\r\n function class_8(t, e, r) {\r\n this.requestManager = t, this.json = e, this._inputTypes = e.inputs.map(function (t) { return t.type; }), this._outputTypes = e.outputs.map(function (t) { return t.type; }), this._constant = e.constant, this._payable = e.payable, this.needsToBeTransaction = \"payable\" in e && e.payable || \"constant\" in e && !e.constant || \"stateMutability\" in e && \"nonpayable\" === e.stateMutability, this._name = n.transformToFullName(e), this._address = r;\r\n }\r\n class_8.prototype.extractDefaultBlock = function (t) { if (t.length > this._inputTypes.length && !n.isObject(t[t.length - 1]))\r\n return o.inputDefaultBlockNumberFormatter(t.pop()); };\r\n class_8.prototype.validateArgs = function (t) { if (t.some(function (t) { return void 0 === t; }))\r\n throw new Error(\"Invalid call, some arguments are undefined\"); var e = t.filter(function (t) { return !(!0 === n.isObject(t) && !1 === n.isArray(t) && !1 === n.isBigNumber(t)); }); if (e.length !== this._inputTypes.length)\r\n throw i.InvalidNumberOfSolidityArgs(e.length, this._inputTypes.length); };\r\n class_8.prototype.toPayload = function (t) { var e = { to: void 0, data: void 0, value: void 0, from: void 0 }; return t.length > this._inputTypes.length && n.isObject(t[t.length - 1]) && (e = t[t.length - 1]), this.validateArgs(t), e.to = this._address, e.data = \"0x\" + this.signature() + s.coder.encodeParams(this._inputTypes, t), e; };\r\n class_8.prototype.signature = function () { return n.sha3(this._name).slice(0, 8); };\r\n class_8.prototype.unpackOutput = function (t) { if (!t)\r\n return; var e = t.length >= 2 ? t.slice(2) : t; var r = s.coder.decodeParams(this._outputTypes, e); return 1 === r.length ? r[0] : r; };\r\n class_8.prototype.execute = function (t) {\r\n var e = [];\r\n for (var _a = 1; _a < arguments.length; _a++) {\r\n e[_a - 1] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var r_7, r_8, n_10, o_9; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n if (!t)\r\n throw new Error(\"Cannot call function \" + this.displayName() + \" because there is no requestManager\");\r\n if (!this.needsToBeTransaction) return [3 /*break*/, 2];\r\n r_7 = this.toPayload(e);\r\n if (r_7.value > 0 && !this._payable)\r\n throw new Error(\"Cannot send value to non-payable function\");\r\n if (!r_7.from)\r\n throw new Error('Missing \"from\" in transaction options');\r\n return [4 /*yield*/, t.eth_sendTransaction(r_7)];\r\n case 1: return [2 /*return*/, _c.sent()];\r\n case 2:\r\n r_8 = this.extractDefaultBlock(e), n_10 = this.toPayload(e);\r\n return [4 /*yield*/, t.eth_call(n_10, r_8)];\r\n case 3:\r\n o_9 = _c.sent();\r\n return [2 /*return*/, this.unpackOutput(o_9)];\r\n }\r\n }); });\r\n };\r\n class_8.prototype.estimateGas = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n var e = this.toPayload(t);\r\n return this.requestManager.eth_estimateGas(e);\r\n };\r\n class_8.prototype.getData = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return this.toPayload(t).data;\r\n };\r\n class_8.prototype.displayName = function () { return n.extractDisplayName(this._name); };\r\n class_8.prototype.typeName = function () { return n.extractTypeName(this._name) || \"void\"; };\r\n class_8.prototype.attachToContract = function (t) { var e = this.displayName(); var r = this, n = Object.assign(function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n var e = this.requestManager || r.requestManager;\r\n return r.execute.apply(r, __spread([e], t));\r\n }, { estimateGas: this.estimateGas.bind(this) }); t[e] || (t[e] = n), t[e][this.typeName()] = n; };\r\n return class_8;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeAddress = /** @class */ (function (_super) {\r\n __extends(SolidityTypeAddress, _super);\r\n function SolidityTypeAddress() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputAddress }) || this;\r\n }\r\n SolidityTypeAddress.prototype.isType = function (t) { return !!t.match(/address(\\[([0-9]*)\\])?/); };\r\n return SolidityTypeAddress;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeBool = /** @class */ (function (_super) {\r\n __extends(SolidityTypeBool, _super);\r\n function SolidityTypeBool() {\r\n return _super.call(this, { inputFormatter: n.formatInputBool, outputFormatter: n.formatOutputBool }) || this;\r\n }\r\n SolidityTypeBool.prototype.isType = function (t) { return !!t.match(/^bool(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeBool;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeInt = /** @class */ (function (_super) {\r\n __extends(SolidityTypeInt, _super);\r\n function SolidityTypeInt() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputInt }) || this;\r\n }\r\n SolidityTypeInt.prototype.isType = function (t) { return !!t.match(/^int([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeInt;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeUInt = /** @class */ (function (_super) {\r\n __extends(SolidityTypeUInt, _super);\r\n function SolidityTypeUInt() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputUInt }) || this;\r\n }\r\n SolidityTypeUInt.prototype.isType = function (t) { return !!t.match(/^uint([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeUInt;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeDynamicBytes = /** @class */ (function (_super) {\r\n __extends(SolidityTypeDynamicBytes, _super);\r\n function SolidityTypeDynamicBytes() {\r\n return _super.call(this, { inputFormatter: n.formatInputDynamicBytes, outputFormatter: n.formatOutputDynamicBytes }) || this;\r\n }\r\n SolidityTypeDynamicBytes.prototype.isType = function (t) { return !!t.match(/^bytes(\\[([0-9]*)\\])*$/); };\r\n SolidityTypeDynamicBytes.prototype.isDynamicType = function () { return !0; };\r\n return SolidityTypeDynamicBytes;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeString = /** @class */ (function (_super) {\r\n __extends(SolidityTypeString, _super);\r\n function SolidityTypeString() {\r\n return _super.call(this, { inputFormatter: n.formatInputString, outputFormatter: n.formatOutputString }) || this;\r\n }\r\n SolidityTypeString.prototype.isType = function (t) { return !!t.match(/^string(\\[([0-9]*)\\])*$/); };\r\n SolidityTypeString.prototype.isDynamicType = function () { return !0; };\r\n return SolidityTypeString;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeReal = /** @class */ (function (_super) {\r\n __extends(SolidityTypeReal, _super);\r\n function SolidityTypeReal() {\r\n return _super.call(this, { inputFormatter: n.formatInputReal, outputFormatter: n.formatOutputReal }) || this;\r\n }\r\n SolidityTypeReal.prototype.isType = function (t) { return !!t.match(/real([0-9]*)?(\\[([0-9]*)\\])?/); };\r\n return SolidityTypeReal;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeUReal = /** @class */ (function (_super) {\r\n __extends(SolidityTypeUReal, _super);\r\n function SolidityTypeUReal() {\r\n return _super.call(this, { inputFormatter: n.formatInputReal, outputFormatter: n.formatOutputUReal }) || this;\r\n }\r\n SolidityTypeUReal.prototype.isType = function (t) { return !!t.match(/^ureal([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeUReal;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeBytes = /** @class */ (function (_super) {\r\n __extends(SolidityTypeBytes, _super);\r\n function SolidityTypeBytes() {\r\n return _super.call(this, { inputFormatter: n.formatInputBytes, outputFormatter: n.formatOutputBytes }) || this;\r\n }\r\n SolidityTypeBytes.prototype.isType = function (t) { return !!t.match(/^bytes([0-9]{1,})(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeBytes;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(26), s = r(27);\r\n e.AllSolidityEvents = /** @class */ (function () {\r\n function class_9(t, e, r) {\r\n this._requestManager = t, this._json = e, this._address = r;\r\n }\r\n class_9.prototype.encode = function (t) {\r\n if (t === void 0) { t = {}; }\r\n var e = { address: this._address };\r\n return [\"fromBlock\", \"toBlock\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (r) { e[r] = o.inputBlockNumberFormatter(t[r]); }), e;\r\n };\r\n class_9.prototype.decode = function (t) { t.data = t.data || \"\"; var e = n.isArray(t.topics) && n.isString(t.topics[0]) ? t.topics[0].slice(2) : \"\", r = this._json.filter(function (t) { return e === n.sha3(n.transformToFullName(t)); })[0]; return r ? new i.SolidityEvent(this._requestManager, r, this._address).decode(t) : o.outputLogFormatter(t); };\r\n class_9.prototype.execute = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e, r; return __generator(this, function (_a) {\r\n e = this.encode(t), r = this.decode.bind(this);\r\n return [2 /*return*/, new s.EthFilter(this._requestManager, e, r)];\r\n }); });\r\n };\r\n class_9.prototype.attachToContract = function (t) { var e = this.execute.bind(this); t.allEvents = e; };\r\n return class_9;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(15), i = r(24), s = r(9);\r\n function a(t, e) { return t.filter(function (t) { return \"constructor\" === t.type && t.inputs.length === e.length; }).map(function (t) { return t.inputs.map(function (t) { return t.type; }); }).map(function (t) { return o.coder.encodeParams(t, e); })[0] || \"\"; }\r\n e.ContractFactory = /** @class */ (function () {\r\n function class_10(t, e) {\r\n this.requestManager = t, this.abi = e;\r\n }\r\n class_10.prototype.deploy = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var e, r, o, _c, _d, i, c, u; return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n r = t[t.length - 1];\r\n if (n.isObject(r) && !n.isArray(r) && (e = t.pop()), !e)\r\n throw new Error(\"Missing options object\");\r\n if (!e.data || \"string\" != typeof e.data)\r\n throw new Error(\"Invalid options.data\");\r\n if (e.value > 0 && !(this.abi.filter(function (e) { return \"constructor\" === e.type && e.inputs.length === t.length; })[0] || {}).payable)\r\n throw new Error(\"Cannot send value to non-payable constructor\");\r\n o = a(this.abi, t);\r\n e.data += o;\r\n _c = e.gas;\r\n if (_c) return [3 /*break*/, 2];\r\n _d = e;\r\n return [4 /*yield*/, this.requestManager.eth_estimateGas(e)];\r\n case 1:\r\n _c = (_d.gas = _e.sent());\r\n _e.label = 2;\r\n case 2:\r\n _c;\r\n return [4 /*yield*/, this.requestManager.eth_sendTransaction(e)];\r\n case 3:\r\n i = _e.sent();\r\n return [4 /*yield*/, function (t, e) {\r\n return __awaiter(this, void 0, void 0, function () { var r, n, o, i, a; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n r = s.future();\r\n n = 0;\r\n o = function () { ++n > 50 ? r.reject(new Error(\"Contract transaction couldn't be found after 50 blocks\")) : t.eth_getTransactionReceipt(e).then(function (t) { t && t.blockHash ? r.resolve(t) : setTimeout(o, 1e3); }, function (t) { return r.reject(t); }); };\r\n o();\r\n return [4 /*yield*/, r];\r\n case 1:\r\n i = _a.sent();\r\n return [4 /*yield*/, t.eth_getCode(i.contractAddress, \"latest\")];\r\n case 2:\r\n a = _a.sent();\r\n if (a.length > 3)\r\n return [2 /*return*/, i.contractAddress];\r\n throw Object.assign(new Error(\"The contract code couldn't be stored, please check your gas amount.\"), { response: a, receipt: i });\r\n }\r\n }); });\r\n }(this.requestManager, i)];\r\n case 4:\r\n c = _e.sent();\r\n return [4 /*yield*/, this.at(c)];\r\n case 5:\r\n u = _e.sent();\r\n return [2 /*return*/, (u.transactionHash = i, u)];\r\n }\r\n }); });\r\n };\r\n class_10.prototype.at = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n if (!n.isAddress(t))\r\n throw new TypeError(\"Invalid address \" + JSON.stringify(t));\r\n return [2 /*return*/, new i.Contract(this.requestManager, this.abi, t)];\r\n }); });\r\n };\r\n class_10.prototype.getData = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var e, r, o; return __generator(this, function (_c) {\r\n e = { data: void 0 };\r\n r = t[t.length - 1];\r\n if (n.isObject(r) && !n.isArray(r) && (e = t.pop()), !e)\r\n throw new Error(\"Missing options object\");\r\n if (!e.data || \"string\" != typeof e.data)\r\n throw new Error(\"Invalid options.data\");\r\n o = a(this.abi, t);\r\n return [2 /*return*/, (e.data += o, e.data)];\r\n }); });\r\n };\r\n return class_10;\r\n }());\r\n }]);\r\n exports.default = ethconnect;\r\n});\r\n// tslint:disable\r\ndefine(\"node_modules/eth-connect/esm\", [\"require\", \"exports\", \"node_modules/eth-connect/eth-connect.esm\"], function (require, exports, eth_connect_esm_1) {\r\n \"use strict\";\r\n var EthConnect = eth_connect_esm_1.default;\r\n return EthConnect;\r\n});\r\ndefine(\"src/abis/PoapDelegateMint\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = [\r\n {\r\n inputs: [\r\n {\r\n internalType: 'address',\r\n name: '_poapContractAddress',\r\n type: 'address',\r\n },\r\n { internalType: 'address', name: '_validSigner', type: 'address' },\r\n ],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'constructor',\r\n },\r\n {\r\n anonymous: false,\r\n inputs: [\r\n {\r\n indexed: false,\r\n internalType: 'bytes',\r\n name: '_signedMessage',\r\n type: 'bytes',\r\n },\r\n ],\r\n name: 'VerifiedSignature',\r\n type: 'event',\r\n },\r\n {\r\n constant: false,\r\n inputs: [\r\n { internalType: 'uint256', name: 'event_id', type: 'uint256' },\r\n { internalType: 'address', name: 'receiver', type: 'address' },\r\n { internalType: 'bytes', name: 'signedMessage', type: 'bytes' },\r\n ],\r\n name: 'mintToken',\r\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'name',\r\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'owner',\r\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [{ internalType: 'bytes', name: '', type: 'bytes' }],\r\n name: 'processed',\r\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'validSigner',\r\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n ];\r\n});\r\ndefine(\"src/game\", [\"require\", \"exports\", \"src/dispenser\"], function (require, exports, dispenser_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.sceneMessageBus = void 0;\r\n exports.sceneMessageBus = new MessageBus();\r\n var POAPBooth = new dispenser_1.Dispenser(new GLTFShape('models/POAP_dispenser.glb'), {\r\n position: new Vector3(8, 0, 8),\r\n });\r\n exports.sceneMessageBus.on('activatePoap', function () {\r\n POAPBooth.activate();\r\n });\r\n});\r\n// let POAPBooth = new Entity()\r\n// POAPBooth.addComponent(new Transform()).position = new Vector3(8, 0, 8)\r\n// POAPBooth.addComponent(new GLTFShape('models/dispenser.glb'))\r\n// engine.addEntity(POAPBooth)\r\n// POAPBooth.addComponent(\r\n// new OnPointerDown((e) => {\r\n// makeTransaction()\r\n// })\r\n// )\r\ndefine(\"src/poapHandler\", [\"require\", \"exports\", \"@decentraland/Identity\", \"node_modules/eth-connect/esm\", \"@decentraland/EthereumController\", \"@decentraland/web3-provider\", \"src/abis/PoapDelegateMint\", \"src/game\"], function (require, exports, Identity_1, eth, EthereumController, web3_provider_1, PoapDelegateMint_1, game_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.makeTransaction = exports.callAPI = exports.ethController = void 0;\r\n exports.ethController = EthereumController;\r\n var poapSignerAddress = '0xa4b4b7b9bbaf770af51f491f11f72cdfe253eb02';\r\n var userData;\r\n function fetchUserData() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Identity_1.getUserData()];\r\n case 1:\r\n data = _a.sent();\r\n log(data.displayName);\r\n return [2 /*return*/, data];\r\n }\r\n });\r\n });\r\n }\r\n function callAPI(user) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, response, json, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n url = 'http://localhost:5001/non-dcl-experiments/us-central1/app/get-poap-code?playerid=' +\r\n user +\r\n '&code=2';\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(url)];\r\n case 2:\r\n response = _b.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n json = _b.sent();\r\n log(json);\r\n return [2 /*return*/, json];\r\n case 4:\r\n _a = _b.sent();\r\n log('error fetching from POAP handling server ', url);\r\n return [3 /*break*/, 5];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.callAPI = callAPI;\r\n function makeTransaction() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var userId, json, signature, event, signer, provider, rm, poapTokenFactory, PoapDelegatedMint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n userId = '0xe2b6024873d218B2E83B462D3658D8D7C3f55a18';\r\n if (!!userData) return [3 /*break*/, 2];\r\n return [4 /*yield*/, fetchUserData()];\r\n case 1:\r\n userData = _a.sent();\r\n userId = userData.userId;\r\n _a.label = 2;\r\n case 2:\r\n if (!userData.hasConnectedWeb3) {\r\n log('no wallet');\r\n //return\r\n }\r\n return [4 /*yield*/, callAPI(userId)];\r\n case 3:\r\n json = _a.sent();\r\n signature = json.signedCode;\r\n event = json.event;\r\n signer = json.signer;\r\n return [4 /*yield*/, web3_provider_1.getProvider()];\r\n case 4:\r\n provider = _a.sent();\r\n rm = new eth.RequestManager(provider);\r\n return [4 /*yield*/, new eth.ContractFactory(rm, PoapDelegateMint_1.default)];\r\n case 5:\r\n poapTokenFactory = _a.sent();\r\n return [4 /*yield*/, poapTokenFactory.at(\r\n //ropsten: '0x2f3c23b50396EcB55C73956B069CF04e493bdEf9'\r\n '0xAac2497174f2Ec4069A98375A67D798db8a05337')];\r\n case 6:\r\n PoapDelegatedMint = (_a.sent());\r\n return [4 /*yield*/, PoapDelegatedMint.mintToken(event, userId, signature, {\r\n from: poapSignerAddress,\r\n }).then(game_1.sceneMessageBus.emit('activatePoap', {}))];\r\n case 7:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.makeTransaction = makeTransaction;\r\n});\r\ndefine(\"src/dispenser\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/index\", \"src/poapHandler\", \"src/game\"], function (require, exports, index_1, poapHandler_1, game_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Dispenser = void 0;\r\n var Dispenser = /** @class */ (function (_super) {\r\n __extends(Dispenser, _super);\r\n function Dispenser(model, transform, wearableName, id\r\n //,sound: AudioClip\r\n ) {\r\n var _this = _super.call(this) || this;\r\n _this.idleAnim = new AnimationState('Idle_POAP', { looping: true });\r\n _this.buyAnim = new AnimationState('Action_POAP', { looping: false });\r\n _this.buttonAnim = new AnimationState('Button_Action', { looping: false });\r\n engine.addEntity(_this);\r\n _this.addComponent(model);\r\n _this.addComponent(new Transform(transform));\r\n _this.addComponent(new Animator());\r\n _this.getComponent(Animator).addClip(_this.idleAnim);\r\n _this.getComponent(Animator).addClip(_this.buyAnim);\r\n _this.idleAnim.play();\r\n _this.id = id;\r\n var button = new Entity();\r\n button.addComponent(new GLTFShape('models/POAP_button.glb'));\r\n button.addComponent(new Animator());\r\n button.getComponent(Animator).addClip(_this.buttonAnim);\r\n button.setParent(_this);\r\n button.addComponent(new OnPointerDown(function (e) {\r\n button.getComponent(Animator).getClip('Action').stop();\r\n button.getComponent(Animator).getClip('Action').play();\r\n game_2.sceneMessageBus.emit('activatePoap', {});\r\n poapHandler_1.makeTransaction();\r\n //openUI1(wearableName, this)\r\n }, { hoverText: 'Get Attendance Token' }));\r\n engine.addEntity(button);\r\n return _this;\r\n //this.addComponent(new AudioSource(sound))\r\n }\r\n Dispenser.prototype.activate = function () {\r\n var anim = this.getComponent(Animator);\r\n anim.getClip('Idle_POAP').stop();\r\n anim.getClip('Action_POAP').stop();\r\n anim.getClip('Action_POAP').play();\r\n this.addComponentOrReplace(new index_1.default.Delay(4000, function () {\r\n anim.getClip('Action_POAP').stop();\r\n anim.getClip('Idle_POAP').play();\r\n }));\r\n };\r\n return Dispenser;\r\n }(Entity));\r\n exports.Dispenser = Dispenser;\r\n});\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9jb21wb25lbnQvaXRyYW5zZm9ybWNvbXBvbmVudC50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9tYXRoL2ludGVycG9sYXRpb24udHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L3JvdGF0ZS50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9jb21wb25lbnQvc2NhbGUudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L2ZvbGxvd3BhdGgudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L2tlZXByb3RhdGluZy50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9zeXN0ZW0vdHJhbnNmcm9tU3lzdGVtLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdHJhbnNmb3JtL2NvbXBvbmVudC9tb3ZlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdG9nZ2xlL3RvZ2dsZUNvbXBvbmVudC50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RpbWVyL2NvbXBvbmVudC9pdGltZXJjb21wb25lbnQudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90aW1lci9jb21wb25lbnQvaW50ZXJ2YWwudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90aW1lci9jb21wb25lbnQvZXhwaXJlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdGltZXIvc3lzdGVtL3RpbWVyU3lzdGVtLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdGltZXIvY29tcG9uZW50L2RlbGF5LnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdHJpZ2dlcnMvdHJpZ2dlclN5c3RlbS50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL2FjdGlvbnNTZXF1ZW5jZVN5c3RlbS9hY3Rpb25zU2VxdWVuY2VTeXN0ZW0udHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy9pbmRleC50cyIsIi4uL25vZGVfbW9kdWxlcy9ldGgtY29ubmVjdC9ldGgtY29ubmVjdC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvZXRoLWNvbm5lY3QvZXNtLnRzIiwiLi4vc3JjL2FiaXMvUG9hcERlbGVnYXRlTWludC5qcyIsIi4uL3NyYy9nYW1lLnRzIiwiLi4vc3JjL3BvYXBIYW5kbGVyLnRzIiwiLi4vc3JjL2Rpc3BlbnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0FBLElBQVksaUJBS1g7SUFMRCxXQUFZLGlCQUFpQjtRQUMzQiw2REFBTSxDQUFBO1FBQ04scUVBQVUsQ0FBQTtRQUNWLHVFQUFXLENBQUE7UUFDWCxpRUFBUSxDQUFBO0lBQ1YsQ0FBQyxFQUxXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBSzVCO0lBRUQsU0FBZ0IsV0FBVyxDQUFDLElBQXVCLEVBQUUsQ0FBUztRQUM1RCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssaUJBQWlCLENBQUMsTUFB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QUMsSUFBRSxXQUFXLElBQUUsT0FBTyxNQUFNLElBQUUsTUFBTSxDQUFDLFdBQVcsSUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxNQUFNLENBQUMsV0FBVyxFQUFDLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7UUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxVQUFVO1FBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUM7UUFBQyxLQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUEsY0FBVyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLGNBQVcsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxNQUFNLENBQUMsTUFBTSxJQUFFLGNBQVcsU0FBUyxDQUFDLEtBQUcsQ0FBQyxDQUFBLE9BQU8sVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLElBQUksRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUUsSUFBSSxDQUFDLElBQUksS0FBRyxDQUFDLENBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxjQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxJQUFJLEVBQUMsY0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLElBQUksQ0FBQztnQkFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUEsQ0FBQSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsSUFBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2lCQUFDOztnQkFBSyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO29CQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUUsQ0FBQyxFQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxVQUFVLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxVQUFVLENBQUMsQ0FBQSxPQUFPLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxHQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLFVBQVUsRUFBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFDLFNBQVMsRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBRztnQkFBQyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDO1lBQUEsT0FBTSxDQUFDLEVBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsUUFBUSxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztvQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsSUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxhQUFhLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUUsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsYUFBYSxFQUFDLGNBQVcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxJQUFFLE9BQU0sRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7U0FBQzs7WUFBSyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxHQUFDLEVBQUMsR0FBRyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO2dCQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsSUFBSSxDQUFDLFVBQVUsSUFBRSxJQUFJLENBQUMsZUFBZTtnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO2lCQUFJO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7Z0JBQUEsSUFBSSxDQUFDLGNBQWMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxLQUFLLElBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUEsSUFBRyxJQUFJLENBQUMsVUFBVSxJQUFFLElBQUksQ0FBQyxlQUFlLEVBQUM7Z0JBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQztpQkFBSTtnQkFBQyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Z0JBQUssSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUEsSUFBRyxVQUFVLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLFVBQVUsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLElBQUUsRUFBRSxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTSxHQUFHLEtBQUcsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLElBQUUsR0FBRyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrRUFBa0UsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFFLEdBQUcsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsY0FBYyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsdUJBQXVCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLGlFQUFpRSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUEsQ0FBQyxDQUFBLEdBQUcsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxrRUFBa0UsS0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLEtBQUssS0FBRyxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLElBQUUsSUFBSSxLQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFDLFlBQVksRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQztZQUFBLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxZQUFZLEVBQUMsSUFBSSxFQUFDLFlBQVksRUFBQyxPQUFPLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsSUFBSSxFQUFDLFlBQVksRUFBQyxLQUFLLEVBQUMsZUFBZSxFQUFDLFVBQVUsRUFBQyxlQUFlLEVBQUMsS0FBSyxFQUFDLGVBQWUsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsVUFBVSxFQUFDLGtCQUFrQixFQUFDLEtBQUssRUFBQyxrQkFBa0IsRUFBQyxLQUFLLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxFQUFDLHdCQUF3QixFQUFDLEtBQUssRUFBQyx3QkFBd0IsRUFBQyxNQUFNLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxFQUFDLDhCQUE4QixFQUFDLE1BQU0sRUFBQyxpQ0FBaUMsRUFBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFFLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBSTtnQkFBSixrQkFBQSxFQUFBLEtBQUcsQ0FBQztnQkFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7Z0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsR0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFDLENBQUMsQ0FBQztvQkFBQSxJQUFHLENBQUMsS0FBRyxHQUFDLEVBQUM7d0JBQUMsSUFBRyxDQUFDLENBQUM7NEJBQUMsTUFBTTt3QkFBQSxDQUFDLElBQUUsSUFBSSxDQUFBO3FCQUFDO3lCQUFJO3dCQUFDLElBQUksR0FBQyxHQUFDLEdBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQUEsQ0FBQyxJQUFFLEdBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLEdBQUMsR0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFDLENBQUE7cUJBQUM7aUJBQUM7Z0JBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFBO1lBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEtBQUssR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsUUFBUSxJQUFFLE9BQU8sQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFNLEdBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLEtBQUcsR0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLEtBQUcsR0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQUMsT0FBTyxHQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLFFBQVEsQ0FBQyxHQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsR0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQSxDQUFDLENBQUEsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLEtBQUssQ0FBQyxLQUFHLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLEVBQUUsRUFBQyxHQUFDLEVBQUU7Z0JBQUMsSUFBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDO29CQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBRSxRQUFRLEtBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sU0FBUyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsR0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFFLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxLQUFJLElBQUksS0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxHQUFDLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxLQUFHLEdBQUM7b0JBQUMsTUFBTTtnQkFBQSxDQUFDLElBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxLQUFJLElBQUksS0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxHQUFDLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFBLENBQUMsSUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUc7Z0JBQUgsa0JBQUEsRUFBQSxLQUFHO2dCQUFFLElBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQztnQkFBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxHQUFDLEVBQUUsRUFBQztvQkFBQyxJQUFJLEdBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFBQSxDQUFDLElBQUUsR0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUcsR0FBQyxHQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUMsQ0FBQTtpQkFBQztnQkFBQSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQTtZQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sUUFBUSxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sU0FBUyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLGtFQUFrRSxFQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUcsS0FBSyxDQUFDLEtBQUcsQ0FBQztnQkFBQyxPQUFNLEVBQUUsQ0FBQyxDQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxHQUFDLEVBQUU7Z0JBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUEyQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxVQUFVLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksS0FBRyxDQUFDLElBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUc7Z0JBQUMsT0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDO1lBQUEsT0FBTSxDQUFDLEVBQUM7Z0JBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFB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TyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsUUFBUSxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsR0FBQyxHQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsR0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEdBQUMsR0FBQyxHQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7b0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxJQUFFLENBQUM7d0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsR0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsT0FBTyxDQUFDLENBQUE7aUJBQUMsQ0FBQSxJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQztvQkFBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLElBQUUsQ0FBQzt3QkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxHQUFDLEVBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxPQUFPLENBQUMsQ0FBQTtpQkFBQyxDQUFBLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFBQyxJQUFJLEdBQUMsR0FBQyxRQUFRLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxHQUFDLEdBQUMsUUFBUSxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxHQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxHQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSxtQkFBQztZQUFELENBQUMsQUFBOTVELEdBQTg1RCxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxHQUFFO2dCQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUM7Z0JBQUMsT0FBSyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUM7b0JBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEdBQUMsRUFBRSxDQUFDO2dCQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLElBQUcsQ0FBQyxHQUFDLENBQUMsRUFBQztvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUE7aUJBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsSUFBSSxFQUFDLG1FQUFtRSxFQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sUUFBUSxLQUFHLENBQUMsSUFBRSxTQUFTLEtBQUcsQ0FBQyxJQUFFLFVBQVUsS0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUcsS0FBSyxDQUFDLEtBQUcsQ0FBQyxJQUFFLElBQUksSUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUksS0FBRyxDQUFDLENBQUMsV0FBVyxJQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLElBQUksS0FBRyxDQUFDLENBQUMsZ0JBQWdCLElBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLElBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUEsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLENBQUMsQ0FBQyx3QkFBd0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHVCQUF1QixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0NBQWdDLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMseUJBQXlCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLElBQUksR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyx5QkFBeUIsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLFFBQVEsSUFBRSxPQUFPLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsMEJBQTBCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQ0FBaUMsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLGdCQUFnQixJQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxvQkFBb0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksS0FBRyxDQUFDLENBQUMsTUFBTSxJQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsS0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLElBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMscUJBQXFCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsYUFBYSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxJQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLFNBQVMsQ0FBQyxLQUFHLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLElBQU0sQ0FBQyxHQUFDLElBQUksT0FBTyxDQUFDLFVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxVQUFBLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLFVBQUEsQ0FBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBQSxDQUFDLElBQUUsT0FBQSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFqQixDQUFpQixDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLFNBQVMsSUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsVUFBQSxDQUFDLElBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLEdBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQUk7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQztvQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFBO2lCQUFDO2dCQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsUUFBUSxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQywyQkFBMkIsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyw4REFBNEQsQ0FBQyxvQkFBZSxDQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsd0JBQXdCLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksS0FBSyxD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R0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDO29CQUFBLElBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFDLENBQUMsRUFBQzt3QkFBQyxJQUFJLEdBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQzt3QkFBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxHQUFDLEVBQUU7NEJBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBQyxJQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFDLEdBQUMsR0FBQyxHQUFDLEdBQUMsRUFBRSxHQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO3FCQUFDO29CQUFBLElBQUksR0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDO29CQUFBLEtBQUksSUFBSSxHQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxHQUFDLEVBQUMsR0FBQyxFQUFFLEVBQUM7d0JBQUMsSUFBSSxHQUFDLEdBQUMsR0FBQyxHQUFDLENBQUMs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LENBQUMsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBNEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUcsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUUsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWdELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWdELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLFVBQVMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyw0Q0FBNEMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsb0JBQW9CLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyx3REFBd0QsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLGdCQUFnQixFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBRTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQztvQkFBQyxDQUFDO2dCQUFBLENBQUMsSUFBRSxDQUFDLENBQUE7YUFBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLFVBQVUsQ0FBQyxHQUFDLENBQUMsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLGlCQUFpQixDQUFBLENBQUMsQ0FBQSxtQkFBbUIsQ0FBQSxDQUFDLENBQUEsMkJBQTJCLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTSxnQkFBZ0IsSUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztvQkFBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUM7aUJBQUssSUFBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLElBQUUsQ0FBQyxDQUFBO2FBQUM7O2dCQUFLLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLENBQUMsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLEVBQUMsV0FBVyxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUMsZ0JBQWdCLEVBQUMsR0FBRyxFQUFDLGNBQWMsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxrQkFBa0IsRUFBQyxDQUFDLEVBQUMsc0JBQXNCLEVBQUMsR0FBRyxFQUFDLGlCQUFpQixFQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxzQ0FBc0MsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLFlBQVksQ0FBQztvQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLEdBQUMsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7b0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUM7d0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTs0QkFBQyxDQUFDO3dCQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO3FCQUFDO29CQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFBO2lCQUFDO3FCQUFJO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDO3dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUE7aUJBQUM7YUFBQztpQkFBSTtnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsRUFBRSxJQUFFLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxHQUFDLFFBQVEsSUFBRSxPQUFPLENBQUMsRUFBQztvQkFBQyxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQzt3QkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLElBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFDLEVBQUU7d0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQzs7b0JBQUssQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLElBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzt3QkFBQyxJQUFHLEdBQUcsSUFBRSxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzs0QkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDOzRCQUFBLFNBQVE7eUJBQUM7d0JBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO3FCQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLEtBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBSyxJQUFFLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7b0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQztxQkFBSyxJQUFHLENBQUMsR0FBQyxDQUFDO29CQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUFJO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7d0JBQUMsS0FBSSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7NEJBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7cUJBQUM7O3dCQUFLLENBQUMsSUFBRSxDQUFDLENBQUM7b0JBQUEsT0FBSyxDQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsR0FBRzt3QkFBQyxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUM7YUFBQzs7Z0JBQUssQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxJQUFFLENBQUM7Z0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQztpQkFBSyxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDO2dCQUFDLE9BQUssQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsR0FBRyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUM7aUJBQUssSUFBRyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQztnQkFBQyxJQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUM7b0JBQUMsS0FBSSxDQUFDLElBQUUsR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsSUFBRSxHQUFHO3dCQUFDLENBQUM7YUFBQztpQkFBSyxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsR0FBRyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxJQUFFLEdBQUc7b0JBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFFO2dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFBLE1BQUs7aUJBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLENBQUMsRUFBQztvQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO3dCQUFDLENBQUM7b0JBQUEsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQzt3QkFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDO3lCQUFLLElBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBQzt3QkFBQyxJQUFHLENBQUMsQ0FBQzs0QkFBQyxNQUFNLENBQUMsQ0FBQzt3QkFBQSxPQUFLLENBQUMsQ0FBQyxNQUFNLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUFDLENBQUM7d0JBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtxQkFBQzt5QkFBSTt3QkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTs0QkFBQyxDQUFDO3dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFBO3FCQUFDO29CQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO29CQUFBLElBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDO3dCQUFDLFNBQU87NEJBQUMsSUFBRyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dDQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0NBQUMsQ0FBQztnQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTtvQ0FBQyxDQUFDO2dDQUFBLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUFBLE1BQUs7NkJBQUM7NEJBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDO2dDQUFDLE1BQU07NEJBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7eUJBQUM7b0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTt3QkFBQyxDQUFDO2lCQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUcsUUFBUSxJQUFFLE9BQU8sQ0FBQztvQkFBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEdBQUMsbUJBQW1CLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxnQkFBZ0IsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsZUFBZSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxnQkFBZ0IsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxPQUFPLENBQUM7b0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQUk7d0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7NEJBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxtQkFBbUIsR0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FB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QyxDQUFDLEdBQUcsR0FBQyxjQUFXLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBQyxnQkFBZ0IsR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQSxjQUFXLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxjQUFXLE9BQU8sT0FBTyxHQUFDLENBQUMsVUFBVSxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLE9BQU8sR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7Z0JBQUMsSUFBRyxNQUFNLENBQUMsZUFBZSxFQUFDO29CQUFDLEtBQUksQ0FBQyxHQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7d0JBQUUsQ0FBQyxDQUFDLEdBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2lCQUFDO3FCQUFJO29CQUFDLElBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVzt3QkFBQyxNQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQUEsS0FBSSxDQUFDLEdBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7d0JBQUUsQ0FBQyxDQUFDLEdBQUMsZUFBZSxHQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQSxDQUFDLENBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtpQkFBQyxDQUFBLElBQUcsQ0FBQyxDQUFDO2dCQUFDLE9BQUssQ0FBQyxHQUFDLENBQUM7b0JBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFJO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLGNBQVcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBRTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDO29CQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLFlBQVksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxZQUFZLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQUk7Z0JBQUMsSUFBRyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDO29CQUFDLEtBQUksRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDO3dCQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFBRSxDQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxjQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsRUFBRTtnQkFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDO2dCQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDOztnQkFBSyxLQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzt3QkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQzt3QkFBQSxNQUFLO3FCQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDO2dCQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFJO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsRUFBRSxDQUFDO2dCQUFBLEdBQUU7b0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzt3QkFBQyxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7NEJBQUMsS0FBSSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7Z0NBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQzs7NEJBQUssQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQzt3QkFBQSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQzs0QkFBQyxPQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDO2dDQUFFLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO3FCQUFDOzt3QkFBSyxDQUFDLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQyxRQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxJQUFFLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFBQSxDQUFDLEdBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUMsRUFBQztnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQzs7Z0JBQUssQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLDZCQUE2QixFQUFDLENBQUMsR0FBQyxhQUFhLEVBQUMsQ0FBQyxHQUFDLGFBQWEsRUFBQyxDQUFDLEdBQUMsb0JBQW9CLEVBQUMsQ0FBQyxHQUFDLDRCQUE0QixFQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUM7aUJBQUk7Z0JBQUMsSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLEdBQUcsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsQ0FBQSxHQUFHLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztvQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFHLENBQUMsQ0FBQyxLQUFLO29CQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLFFBQVEsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxHQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQUssQ0FBQyxHQUFDLEVBQUUsSUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7Z0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLDJCQUEyQixHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDO2lCQUFJO2dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsU0FBUyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLEtBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFHO2dCQUFDLElBQUcsQ0FBQyxFQUFDO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxNQUFNO29CQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsSUFBRyxDQUFDLEVBQUM7b0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxNQUFNO29CQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDO3FCQUFJO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFDLE1BQU07b0JBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLGNBQVcsT0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHNCQUFzQixHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsY0FBVyxPQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxjQUFXLE9BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsY0FBVyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsY0FBVyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsY0FBVyxPQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztvQkFBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQztnQkFBQyxLQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO2FBQUM7O2dCQUFLLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDO3dCQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLE1BQUs7cUJBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFDLENBQUM7Z0JBQUMsT0FBSyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDO29CQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUU7Z0JBQUMsSUFBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDO3dCQUFDLENBQUM7b0JBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFLLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDO2dCQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxJQUFFLENBQUMsR0FBRTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7b0JBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7b0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQztnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7YUFBQyxDQUFBLEtBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDO2dCQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQztnQkFBQyxPQUFLLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQzthQUFDLENBQUEsT0FBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxjQUFXLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUcsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsR0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLEtBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7b0JBQUcsSUFBRyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUM7d0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsRUFBQyxNQUFNLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLE1BQU0sSUFBRSxDQUFDLENBQUMsRUFBQzs0QkFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFBQSxNQUFLO3lCQUFDO3dCQUFBLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDOzRCQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7NEJBQUEsTUFBSzt5QkFBQzt3QkFBQSxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtxQkFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFBQSxJQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM7b0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7d0JBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUMsQ0FBQyxHQUFDLE1BQU0sRUFBQyxHQUFHLENBQUMsRUFBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQSxDQUFDLENBQUEsZ0JBQWdCLENBQUEsQ0FBQyxDQUFBLGtCQUFrQixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLGNBQVcsT0FBTSxDQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxVQUFVLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEtBQUssQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLGNBQVcsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxjQUFXLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsRUFBRTtZQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU8sVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUU7WUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFHLENBQUMsR0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztxQkFBSTtvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsU0FBUyxDQUFDLEtBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLEdBQUMsRUFBRTtvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUFJO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLElBQUksRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFFLEdBQUMsQ0FBQyxFQUFFLEtBQUcsRUFBRSxHQUFDLEVBQUUsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUMsRUFBRSxLQUFHLEVBQUUsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsRUFBRSxLQUFHLEVBQUUsR0FBQyxFQUFFLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLEVBQUUsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUUsS0FBRyxDQUFDLEdBQUMsRUFBRSxJQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBRyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO29CQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsS0FBRyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxJQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxFQUFFLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFFLElBQUUsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBRSxFQUFFLENBQUMsS0FBRyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsS0FBRyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLEtBQUcsRUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLEtBQUcsRUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtTQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFHLENBQUMsR0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsR0FBQyxFQUFFLENBQUE7aUJBQUM7Z0JBQUEsR0FBRyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsR0FBRyxDQUFBLENBQUMsQ0FBQSxDQUFDLEtBQUcsQ0FBQyxDQUFBO2FBQUM7WUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFJLENBQUMsU0FBUyxHQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUUsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7b0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO3dCQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBRSxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQzt3QkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7cUJBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFBQSxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFD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LENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFDLElBQUksQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGdCQUFnQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxhQUFhLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxzQkFBc0IsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsd0JBQXdCLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGFBQWEsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsYUFBYSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLElBQUksQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHFCQUFxQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxxQkFBcUIsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsZUFBZSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBQyxJQUFJLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHdCQUF3QixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyx3QkFBd0IsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLEVBQUMsSUFBSSxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxvQkFBb0IsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLHFCQUFxQixHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyx1QkFBdUIsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsZUFBZSxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxlQUFlLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGVBQWUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxhQUFhLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLCtCQUErQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHFCQUFxQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLG1CQUFtQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsb0JBQW9CLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHNCQUFzQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLG9CQUFvQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQWMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxlQUFlLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxxQkFBcUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxhQUFhLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLHFCQUFxQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyx1QkFBdUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsb0JBQW9CLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHNCQUFzQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFB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QUM7b0JBQUEsSUFBSSxDQUFDLGNBQWMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxFQUFFLEVBQUMsSUFBSSxDQUFDLGVBQWUsR0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLGVBQWUsR0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLFVBQVUsS0FBRyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sT0FBTyxLQUFHLENBQUMsQ0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FB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QyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7b0JBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsT0FBTyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7b0JBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQTtnQkFBQSxDQUFDO2dCQUFBLHdCQUFNLEdBQU4sVUFBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsSUFBSSxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLElBQUUsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxF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LEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsaUJBQWlCLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLElBQUksQ0FBQztnQkFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGNBQWMsR0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFD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QUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQztZQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFFLEtBQUssSUFBRSxDQUFDLElBQUUsS0FBSyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEtBQUssSUFBRSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxJQUFFLEtBQUssSUFBRSxDQUFDLElBQUUsS0FBSztZQUFDLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUMsd0JBQXdCLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxHQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsSUFBRSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxHQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxFQUFFLEdBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsS0FBRyxJQUFHLENBQUMsSUFBRSxDQUFDO1lBQUMsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBRSxFQUFDLEdBQUcsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUM7WUFBQyxPQUFPLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQSxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUM7WUFBQyxNQUFNLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztZQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBLElBQUcsR0FBRyxJQUFFLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxFQUFDO1lBQUMsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsSUFBRSxHQUFHO2dCQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQUEsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtTQUFDLENBQUEsSUFBRyxHQUFHLElBQUUsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEVBQUM7WUFBQyxJQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsSUFBRSxJQUFJO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLE1BQU0sS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUE7U0FBQyxDQUFBLElBQUcsR0FBRyxJQUFFLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEVBQUUsSUFBRSxFQUFFLEdBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLElBQUUsS0FBSyxJQUFFLENBQUMsSUFBRSxPQUFPO1lBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQztZQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQztZQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQztZQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsS0FBSyxDQUFDLEtBQUcsRUFBRSxHQUFDLElBQUksR0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLElBQUksR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBRyxVQUFVLElBQUUsT0FBTyxXQUFXLEVBQUM7WUFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLENBQUMsWUFBWSxXQUFXLElBQUUsQ0FBQyxDQUFDLEdBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxTQUFTLElBQUUsV0FBVyxJQUFFLE9BQU8saUJBQWlCLElBQUUsQ0FBQyxZQUFZLGlCQUFpQixJQUFFLENBQUMsWUFBWSxVQUFVLElBQUUsQ0FBQyxZQUFZLFdBQVcsSUFBRSxDQUFDLFlBQVksVUFBVSxJQUFFLENBQUMsWUFBWSxXQUFXLElBQUUsQ0FBQyxZQUFZLFlBQVksSUFBRSxDQUFDLFlBQVksWUFBWSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsWUFBWSxVQUFVLEVBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUM7O2dCQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQTtTQUFDLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxRQUFRLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxRQUFRLElBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLElBQUksQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsd2lGOzs7Ozs7Ozs7c0JBU0c7Z0JBQ0gsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7d0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQTtxQkFBQyxDQUFBLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsQ0FBQzt3QkFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7d0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQTtxQkFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsR0FBRTtnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO29CQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFHLEdBQUMsS0FBSyxDQUFDLENBQUE7U0FBQzs7WUFBSyxDQUFDLEdBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLElBQUksQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeGxJOzs7O3VCQUlJO2dCQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRyxHQUFHLElBQUUsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLEdBQUcsQ0FBQyxFQUFDO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQztvQkFBQSxHQUFHLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQTtpQkFBQzs7b0JBQUssQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxVQUFTLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFDLEVBQUMsR0FBRyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLElBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFDLEVBQUMsR0FBRyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7Z0JBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUMsRUFBQyxHQUFHLEVBQUMsY0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBQyxFQUFDLFNBQVMsRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsRUFBRTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxHQUFHLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFFLElBQUksQ0FBQyxjQUFjLEtBQUcsSUFBSSxDQUFDLElBQUksRUFBQztnQkFBQyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxjQUFjLEdBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxZQUFZLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQzt3QkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUFJO3dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtxQkFBQztnQkFBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxlQUFlLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGFBQWEsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQTthQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsR0FBQyxFQUFFLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxhQUFhLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQSxJQUFJLENBQUMsT0FBTyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsT0FBTyxJQUFFLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsT0FBTyxJQUFFLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxJQUFJLENBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztZQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxVQUFVLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsU0FBUyxDQUFDLEtBQUcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztZQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtTQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsVUFBVSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxJQUFJLENBQUMsR0FBQyxJQUFJLElBQUUsSUFBSSxDQUFDLFVBQVUsSUFBRSxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsU0FBUyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsSUFBRyxRQUFRLElBQUUsT0FBTyxPQUFPLElBQUUsVUFBVSxJQUFFLE9BQU8sT0FBTyxDQUFDLFFBQVE7Z0JBQUMsQ0FBQyxHQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7O2dCQUFLLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksSUFBRSxJQUFJLENBQUMsVUFB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RUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsZUFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHFCQUFxQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsWUFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGtCQUFrQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHlCQUF5QixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG9DQUFvQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHNDQUFzQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLDhCQUE4QixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGdDQUFnQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsd0JBQXdCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG9CQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHNCQUFzQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLDBCQUEwQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHVDQUF1QyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHlDQUF5QyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLDJCQUEyQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlDQUFpQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG1DQUFtQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGVBQWUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxvQkFBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQ0FBaUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG9CQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGVBQWUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQkFBaUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx3QkFBd0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx1QkFBdUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx1QkFBdUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQywwQkFBMEIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsb0JBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxHQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxRQUFRLElBQUUsT0FBTyxDQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQWlDLE9BQU8sQ0FBQyxNQUFHLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFDLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFLLElBQUUsS0FBSyxLQUFHLENBQUMsQ0FBQyxPQUFPLElBQUUsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBRSxJQUFJLElBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBRSxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxZQUFZLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxHQUFDLGFBQWEsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsR0FBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLEdBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLEdBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLEdBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLENBQUMsR0FBQyxrQkFBa0IsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLElBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxRQUFRLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixJQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxXQUFXLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBZixDQUFlLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxD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Q0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7UUFDSCxnQkFBQztJQUFELENBQUMsQUFoRUQsQ0FBK0IsTUFBTSxHQWdFcEM7SUFoRVksOEJBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElUcmFuc2Zvcm1Db21wb25lbnQge1xuICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuICB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWRcbiAgaGFzRmluaXNoZWQoKTogYm9vbGVhblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKTogdm9pZFxufVxuIiwiZXhwb3J0IGVudW0gSW50ZXJwb2xhdGlvblR5cGUge1xuICBMSU5FQVIsXG4gIEVBU0VJTlFVQUQsXG4gIEVBU0VPVVRRVUFELFxuICBFQVNFUVVBRFxufVxuXG5leHBvcnQgZnVuY3Rpb24gSW50ZXJwb2xhdGUodHlwZTogSW50ZXJwb2xhdGlvblR5cGUsIHQ6IG51bWJlcik6IG51bWJlciB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuTElORUFSOlxuICAgICAgcmV0dXJuIEludGVycG9sYXRlTGluZWFyKHQpXG4gICAgY2FzZSBJbnRlcnBvbGF0aW9uVHlwZS5FQVNFSU5RVUFEOlxuICAgICAgcmV0dXJuIEludGVycG9sYXRlRWFzZUluUXVhZCh0KVxuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuRUFTRU9VVFFVQUQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVFYXNlT3V0UXVhZCh0KVxuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuRUFTRVFVQUQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVFYXNlUXVhZCh0KVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVMaW5lYXIodClcbiAgfVxufVxuZnVuY3Rpb24gSW50ZXJwb2xhdGVMaW5lYXIodDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHRcbn1cbmZ1bmN0aW9uIEludGVycG9sYXRlRWFzZUluUXVhZCh0OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gdCAqIHRcbn1cbmZ1bmN0aW9uIEludGVycG9sYXRlRWFzZU91dFF1YWQodDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHQgKiAoMiAtIHQpXG59XG5mdW5jdGlvbiBJbnRlcnBvbGF0ZUVhc2VRdWFkKHQ6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiAodCAqIHQpIC8gKDIuMCAqICh0ICogdCAtIHQpICsgMS4wKVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHJvdGF0ZSBlbnRpdHkgZnJvbSBvbmUgcm90YXRpb24gKHN0YXJ0KSB0byBhbm90aGVyIChlbmQpIGluIGFuIGFtb3VudCBvZiB0aW1lXG4gKi9cbkBDb21wb25lbnQoJ3JvdGF0ZVRyYW5zZm9ybUNvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhcnQ6IFJlYWRPbmx5UXVhdGVybmlvblxuICBwcml2YXRlIGVuZDogUmVhZE9ubHlRdWF0ZXJuaW9uXG4gIHByaXZhdGUgc3BlZWQ6IG51bWJlclxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGVcbiAgcHJpdmF0ZSBsZXJwVGltZTogbnVtYmVyXG5cbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IGluc3RhbmNlIHRvIGFkZCBhcyBhIGNvbXBvbmVudCB0byBhIEVudGl0eVxuICAgKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgcm90YXRpb25cbiAgICogQHBhcmFtIGVuZCBlbmRpbmcgcm90YXRpb25cbiAgICogQHBhcmFtIGR1cmF0aW9uIGR1cmF0aW9uIChpbiBzZWNvbmRzKSBvZiBzdGFydCB0byBlbmQgcm90YXRpb25cbiAgICogQHBhcmFtIG9uRmluaXNoQ2FsbGJhY2sgY2FsbGVkIHdoZW4gcm90YXRpb24gZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVF1YXRlcm5pb24sXG4gICAgZW5kOiBSZWFkT25seVF1YXRlcm5pb24sXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnJvdGF0aW9uID0gUXVhdGVybmlvbi5TbGVycCh0aGlzLnN0YXJ0LCB0aGlzLmVuZCwgdGhpcy5sZXJwVGltZSlcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHNjYWxlIGVudGl0eSBmcm9tIG9uZSB2YWx1ZSAoc3RhcnQpIHRvIGFub3RoZXIgKGVuZCkgaW4gYW4gYW1vdW50IG9mIHRpbWVcbiAqL1xuQENvbXBvbmVudCgnc2NhbGVUcmFuc2Zvcm1Db21wb25lbnQnKVxuZXhwb3J0IGNsYXNzIFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhcnQ6IFJlYWRPbmx5VmVjdG9yM1xuICBwcml2YXRlIGVuZDogUmVhZE9ubHlWZWN0b3IzXG4gIHByaXZhdGUgc3BlZWQ6IG51bWJlclxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGVcbiAgcHJpdmF0ZSBsZXJwVGltZTogbnVtYmVyXG5cbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQgaW5zdGFuY2UgdG8gYWRkIGFzIGEgY29tcG9uZW50IHRvIGEgRW50aXR5XG4gICAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzY2FsZVxuICAgKiBAcGFyYW0gZW5kIGVuZGluZyBzY2FsZVxuICAgKiBAcGFyYW0gZHVyYXRpb24gZHVyYXRpb24gKGluIHNlY29uZHMpIG9mIHN0YXJ0IHRvIGVuZCBzY2FsaW5nXG4gICAqIEBwYXJhbSBvbkZpbmlzaENhbGxiYWNrIGNhbGxlZCB3aGVuIHNjYWxpbmcgZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVZlY3RvcjMsXG4gICAgZW5kOiBSZWFkT25seVZlY3RvcjMsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnNjYWxlID0gVmVjdG9yMy5MZXJwKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLmxlcnBUaW1lKVxuICB9XG59XG4iLCJpbXBvcnQgeyBJVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gbW92ZSBhIGVudGl0eSBkb3duIGEgZml4ZWQgcGF0aCBpbiBhbiBhbW91bnQgb2YgdGltZVxuICovXG5AQ29tcG9uZW50KCdmb2xsb3dQYXRoQ29tcG9uZW50JylcbmV4cG9ydCBjbGFzcyBGb2xsb3dQYXRoQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcG9pbnRzOiBWZWN0b3IzW11cbiAgcHJpdmF0ZSBzcGVlZDogbnVtYmVyW10gPSBbXVxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBjdXJyZW50SW5kZXg6IG51bWJlclxuXG4gIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXG4gIG9uUG9pbnRSZWFjaGVkQ2FsbGJhY2s/OiAoY3VycmVudFBvaW50OiBWZWN0b3IzLCBuZXh0UG9pbnQ6IFZlY3RvcjMpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgRm9sbG93UGF0aENvbXBvbmVudCBpbnN0YW5jZSB0byBhZGQgYXMgYSBjb21wb25lbnQgdG8gYSBFbnRpdHlcbiAgICogQHBhcmFtIHBvaW50cyBhcnJheSBvZiBwb2ludHMgZm9yIHRoZSBwYXRoXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBkdXJhdGlvbiBvZiB0aGUgbW92ZW1lbnQgdGhyb3VnaCB0aGUgcGF0aFxuICAgKiBAcGFyYW0gb25GaW5pc2hDYWxsYmFjayBjYWxsZWQgd2hlbiBtb3ZlbWVudCBlbmRzXG4gICAqIEBwYXJhbSBvblBvaW50UmVhY2hlZENhbGxiYWNrIGNhbGxlZCBldmVyeXRpbWUgYW4gZW50aXR5IHJlYWNoZXMgYSBwb2ludCBvZiB0aGUgcGF0aFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcG9pbnRzOiBWZWN0b3IzW10sXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBvblBvaW50UmVhY2hlZENhbGxiYWNrPzogKGN1cnJlbnRQb2ludDogVmVjdG9yMywgbmV4dFBvaW50OiBWZWN0b3IzKSA9PiB2b2lkXG4gICkge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAwXG4gICAgdGhpcy5jdXJyZW50SW5kZXggPSAwXG4gICAgdGhpcy5wb2ludHMgPSBwb2ludHNcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5vblBvaW50UmVhY2hlZENhbGxiYWNrID0gb25Qb2ludFJlYWNoZWRDYWxsYmFja1xuXG4gICAgaWYgKHBvaW50cy5sZW5ndGggPCAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IDIgcG9pbnRzIGFyZSBuZWVkZWQgZm9yIEZvbGxvd1BhdGhDb21wb25lbnQuJylcbiAgICB9XG5cbiAgICBpZiAoZHVyYXRpb24gPiAwKSB7XG4gICAgICBsZXQgc3FUb3RhbERpc3QgPSAwXG4gICAgICBsZXQgc3FQb2ludHNEaXN0ID0gW11cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBsZXQgc3FEaXN0ID0gVmVjdG9yMy5EaXN0YW5jZVNxdWFyZWQocG9pbnRzW2ldLCBwb2ludHNbaSArIDFdKVxuICAgICAgICBzcVRvdGFsRGlzdCArPSBzcURpc3RcbiAgICAgICAgc3FQb2ludHNEaXN0LnB1c2goc3FEaXN0KVxuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcVBvaW50c0Rpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5zcGVlZC5wdXNoKDEgLyAoKHNxUG9pbnRzRGlzdFtpXSAvIHNxVG90YWxEaXN0KSAqIGR1cmF0aW9uKSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDFcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gcG9pbnRzLmxlbmd0aCAtIDJcbiAgICB9XG5cbiAgICBUcmFuc2Zvcm1TeXN0ZW0uY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gU2NhbGFyLkNsYW1wKFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSArIGR0ICogdGhpcy5zcGVlZFt0aGlzLmN1cnJlbnRJbmRleF0sXG4gICAgICAwLFxuICAgICAgMVxuICAgIClcbiAgICBpZiAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID49IDEgJiZcbiAgICAgIHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5wb2ludHMubGVuZ3RoIC0gMlxuICAgICkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXgrK1xuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDBcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5vblBvaW50UmVhY2hlZENhbGxiYWNrICYmXG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5wb2ludHMubGVuZ3RoIC0gMVxuICAgICAgKVxuICAgICAgICB0aGlzLm9uUG9pbnRSZWFjaGVkQ2FsbGJhY2soXG4gICAgICAgICAgdGhpcy5wb2ludHNbdGhpcy5jdXJyZW50SW5kZXhdLFxuICAgICAgICAgIHRoaXMucG9pbnRzW3RoaXMuY3VycmVudEluZGV4ICsgMV1cbiAgICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGhhc0ZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCA+PSB0aGlzLnBvaW50cy5sZW5ndGggLSAyICYmIHRoaXMubm9ybWFsaXplZFRpbWUgPj0gMVxuICAgIClcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pIHtcbiAgICB0cmFuc2Zvcm0ucG9zaXRpb24gPSBWZWN0b3IzLkxlcnAoXG4gICAgICB0aGlzLnBvaW50c1t0aGlzLmN1cnJlbnRJbmRleF0sXG4gICAgICB0aGlzLnBvaW50c1t0aGlzLmN1cnJlbnRJbmRleCArIDFdLFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZVxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHJvdGF0ZSBlbnRpdHkgaW5kZWZpbml0ZWx5IHVudGlsIHN0b3AgaXMgY2FsbGVkXG4gKi9cbkBDb21wb25lbnQoJ2tlZXBSb3RhdGluZ0NvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgS2VlcFJvdGF0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXG5cbiAgcHJpdmF0ZSByb3RhdGlvblZlbG9jaXR5OiBRdWF0ZXJuaW9uXG4gIHByaXZhdGUgcm90YXRpb246IFF1YXRlcm5pb25cbiAgcHJpdmF0ZSBmaW5pc2hlZDogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBSb3RhdGVzIGFuIGVudGl0eSBjb250aW51b3VzbHkuIFRoZSBlbnRpdHkgd2lsbCBrZWVwIHJvdGF0aW5nIGZvcmV2ZXIgdW50aWwgaXQncyBleHBsaWNpdGx5IHN0b3BwZWQgb3IgdGhlIGNvbXBvbmVudCBpcyByZW1vdmVkLlxuICAgKiBAcGFyYW0gcm90YXRpb25WZWxvY2l0eSBhIHF1YXRlcm5pb24gZGVzY3JpYmluZyB0aGUgZGVzaXJlZCByb3RhdGlvbiB0byBwZXJmb3JtIGVhY2ggc2Vjb25kIHNlY29uZFxuICAgKiBAcGFyYW0gb25GaW5pc2hDYWxsYmFjayBjYWxsZWQgd2hlbiByb3RhdGlvbiBlbmRzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihyb3RhdGlvblZlbG9jaXR5OiBRdWF0ZXJuaW9uLCBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucm90YXRpb25WZWxvY2l0eSA9IHJvdGF0aW9uVmVsb2NpdHlcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5yb3RhdGlvbiA9IFF1YXRlcm5pb24uSWRlbnRpdHlcbiAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2VcblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucm90YXRpb24gPSBRdWF0ZXJuaW9uLlNsZXJwKFxuICAgICAgUXVhdGVybmlvbi5JZGVudGl0eSxcbiAgICAgIHRoaXMucm90YXRpb25WZWxvY2l0eSxcbiAgICAgIGR0XG4gICAgKVxuICB9XG5cbiAgaGFzRmluaXNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmluaXNoZWRcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pOiB2b2lkIHtcbiAgICB0cmFuc2Zvcm0ucm90YXRpb24gPSB0cmFuc2Zvcm0ucm90YXRpb24ubXVsdGlwbHkodGhpcy5yb3RhdGlvbilcbiAgfVxuXG4gIHN0b3AoKSB7XG4gICAgdGhpcy5maW5pc2hlZCA9IHRydWVcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgTW92ZVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9tb3ZlJ1xuaW1wb3J0IHsgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3JvdGF0ZSdcbmltcG9ydCB7IFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3NjYWxlJ1xuaW1wb3J0IHsgRm9sbG93UGF0aENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9mb2xsb3dwYXRoJ1xuaW1wb3J0IHsgS2VlcFJvdGF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L2tlZXByb3RhdGluZydcblxuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybVN5c3RlbSBpbXBsZW1lbnRzIElTeXN0ZW0ge1xuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IFRyYW5zZm9ybVN5c3RlbSB8IG51bGwgPSBudWxsXG5cbiAgcHJpdmF0ZSBfY29tcG9uZW50czogQ29tcG9uZW50Q29uc3RydWN0b3I8SVRyYW5zZm9ybUNvbXBvbmVudD5bXSA9IFtdXG5cbiAgc3RhdGljIGNyZWF0ZUFuZEFkZFRvRW5naW5lKCk6IFRyYW5zZm9ybVN5c3RlbSB7XG4gICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpIHtcbiAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IFRyYW5zZm9ybVN5c3RlbSgpXG4gICAgICBlbmdpbmUuYWRkU3lzdGVtKHRoaXMuX2luc3RhbmNlKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faW5zdGFuY2VcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlckN1c3RvbUNvbXBvbmVudDxUIGV4dGVuZHMgSVRyYW5zZm9ybUNvbXBvbmVudD4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRDb25zdHJ1Y3RvcjxUPlxuICApIHtcbiAgICB0aGlzLmNyZWF0ZUFuZEFkZFRvRW5naW5lKCkuX2NvbXBvbmVudHMucHVzaChjb21wb25lbnQpXG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIFRyYW5zZm9ybVN5c3RlbS5faW5zdGFuY2UgPSB0aGlzXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKE1vdmVUcmFuc2Zvcm1Db21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKFJvdGF0ZVRyYW5zZm9ybUNvbXBvbmVudClcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEZvbGxvd1BhdGhDb21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEtlZXBSb3RhdGluZ0NvbXBvbmVudClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgdGhpcy5fY29tcG9uZW50cy5mb3JFYWNoKGNvbXBvbmVudCA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudChkdCwgY29tcG9uZW50KVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudDxUIGV4dGVuZHMgSVRyYW5zZm9ybUNvbXBvbmVudD4oXG4gICAgZHQ6IG51bWJlcixcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudENvbnN0cnVjdG9yPFQ+XG4gICkge1xuICAgIGNvbnN0IGdyb3VwID0gZW5naW5lLmdldENvbXBvbmVudEdyb3VwKGNvbXBvbmVudCwgVHJhbnNmb3JtKVxuXG4gICAgZ3JvdXAuZW50aXRpZXMuZm9yRWFjaChlbnRpdHkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNmb3JtID0gZW50aXR5LmdldENvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICBjb25zdCBjb21wID0gZW50aXR5LmdldENvbXBvbmVudChjb21wb25lbnQpXG5cbiAgICAgIGNvbXAudXBkYXRlKGR0KVxuICAgICAgY29tcC5hc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybSlcbiAgICAgIGlmIChjb21wLmhhc0ZpbmlzaGVkKCkpIHtcbiAgICAgICAgZW50aXR5LnJlbW92ZUNvbXBvbmVudChjb21wKVxuICAgICAgICBpZiAoY29tcC5vbkZpbmlzaENhbGxiYWNrICE9IG51bGwpIGNvbXAub25GaW5pc2hDYWxsYmFjaygpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHRyYW5zbGF0ZSBlbnRpdHkgZnJvbSBvbmUgcG9zaXRpb24gKHN0YXJ0KSB0byBhbm90aGVyIChlbmQpIGluIGFuIGFtb3VudCBvZiB0aW1lXG4gKi9cbkBDb21wb25lbnQoJ21vdmVUcmFuc2Zvcm1Db21wb25lbnQnKVxuZXhwb3J0IGNsYXNzIE1vdmVUcmFuc2Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBJVHJhbnNmb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGFydDogUmVhZE9ubHlWZWN0b3IzXG4gIHByaXZhdGUgZW5kOiBSZWFkT25seVZlY3RvcjNcbiAgcHJpdmF0ZSBzcGVlZDogbnVtYmVyXG4gIHByaXZhdGUgbm9ybWFsaXplZFRpbWU6IG51bWJlclxuICBwcml2YXRlIGludGVycG9sYXRpb25UeXBlOiBJbnRlcnBvbGF0aW9uVHlwZVxuICBwcml2YXRlIGxlcnBUaW1lOiBudW1iZXJcblxuICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50IGluc3RhbmNlIHRvIGFkZCBhcyBhIGNvbXBvbmVudCB0byBhIEVudGl0eVxuICAgKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgcG9zaXRpb25cbiAgICogQHBhcmFtIGVuZCBlbmRpbmcgcG9zaXRpb25cbiAgICogQHBhcmFtIGR1cmF0aW9uIGR1cmF0aW9uIChpbiBzZWNvbmRzKSBvZiBzdGFydCB0byBlbmQgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtIG9uRmluaXNoQ2FsbGJhY2sgY2FsbGVkIHdoZW4gdHJhbnNsYXRpb24gZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVZlY3RvcjMsXG4gICAgZW5kOiBSZWFkT25seVZlY3RvcjMsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnBvc2l0aW9uID0gVmVjdG9yMy5MZXJwKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLmxlcnBUaW1lKVxuICB9XG59XG4iLCJleHBvcnQgZW51bSBUb2dnbGVTdGF0ZSB7XG4gIE9mZiA9IDAsXG4gIE9uXG59XG5cbi8qKlxuICogVG9nZ2xlIGNvbXBvbmVudCBmb3IgZW50aXRpZXMgd2l0aCB0d28gc3RhdGVzIChPTiBvciBPRkYpXG4gKi9cbkBDb21wb25lbnQoJ3RvZ2dsZScpXG5leHBvcnQgY2xhc3MgVG9nZ2xlQ29tcG9uZW50IHtcbiAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG5cbiAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrPzogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICBwcml2YXRlIHN0YXRlOiBUb2dnbGVTdGF0ZSA9IFRvZ2dsZVN0YXRlLk9mZlxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYSBUb2dnbGVDb21wb25lbnRcbiAgICogQHBhcmFtIHN0YXJ0aW5nU3RhdGUgc3RhcnRpbmcgc3RhdGUgb2YgdGhlIHRvZ2dsZSAoT04gb3IgT0ZGKVxuICAgKiBAcGFyYW0gb25WYWx1ZUNoYW5nZWRDYWxsYmFjayBjYWxsZWQgd2hlbiB0b2dnbGUgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhcnRpbmdTdGF0ZTogVG9nZ2xlU3RhdGUgPSBUb2dnbGVTdGF0ZS5PbixcbiAgICBvblZhbHVlQ2hhbmdlZENhbGxiYWNrPzogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICApIHtcbiAgICB0aGlzLnNldChzdGFydGluZ1N0YXRlKVxuICAgIGlmIChvblZhbHVlQ2hhbmdlZENhbGxiYWNrKSB0aGlzLnNldENhbGxiYWNrKG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2spXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRyaWdnZXIgdG8gYSBzdGF0ZVxuICAgKiBAcGFyYW0gc3RhdGUgbmV3IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgc2V0KHN0YXRlOiBUb2dnbGVTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZVxuICAgIGlmICh0aGlzLm9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2spIHRoaXMub25WYWx1ZUNoYW5nZWRDYWxsYmFjayhzdGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgc3RhdGUgb2YgVG9nZ2xlQ29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2V0KDEgLSB0aGlzLnN0YXRlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaWYgY3VycmVudCB0b2dnbGUgc3RhdGUgaXMgT05cbiAgICovXG4gIHB1YmxpYyBpc09uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09IFRvZ2dsZVN0YXRlLk9uXG4gIH1cblxuICAvKipcbiAgICogU2V0IGNhbGxiYWNrIGZvciB3aGVuIFRvZ2dsZUNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VkXG4gICAqIEBwYXJhbSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrIGNhbGxiYWNrXG4gICAqL1xuICBwdWJsaWMgc2V0Q2FsbGJhY2soXG4gICAgb25WYWx1ZUNoYW5nZWRDYWxsYmFjazogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICApOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2sgPSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBUb2dnbGVDb21wb25lbnQsXG4gIFRvZ2dsZVN0YXRlXG59XG4iLCJleHBvcnQgaW50ZXJmYWNlIElUaW1lckNvbXBvbmVudCB7XHJcbiAgZWxhcHNlZFRpbWU6IG51bWJlclxyXG4gIHRhcmdldFRpbWU6IG51bWJlclxyXG4gIG9uVGFyZ2V0VGltZVJlYWNoZWQ6IChvd25lckVudGl0eTogSUVudGl0eSkgPT4gdm9pZFxyXG59XHJcbiIsImltcG9ydCB7IElUaW1lckNvbXBvbmVudCB9IGZyb20gJy4vaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBUaW1lclN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90aW1lclN5c3RlbSdcclxuXHJcbi8qKlxyXG4gKiBFeGVjdXRlIGV2ZXJ5IFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckludGVydmFsJylcclxuZXhwb3J0IGNsYXNzIEludGVydmFsIGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5lbGFwc2VkVGltZSA9IDBcclxuICAgICAgaWYgKHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrKSB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaygpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYWxsYmFjayhvblRpbWVSZWFjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrID0gb25UaW1lUmVhY2hlZENhbGxiYWNrXHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IElUaW1lckNvbXBvbmVudCB9IGZyb20gJy4vaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBUaW1lclN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90aW1lclN5c3RlbSdcclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgZW50aXR5IGFmdGVyIFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckV4cGlyZUluJylcclxuZXhwb3J0IGNsYXNzIEV4cGlyZUluIGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9IGVudGl0eSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaykgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2soKVxyXG4gICAgICBlbnRpdHkucmVtb3ZlQ29tcG9uZW50KHRoaXMpXHJcbiAgICAgIGVuZ2luZS5yZW1vdmVFbnRpdHkoZW50aXR5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FsbGJhY2sob25UaW1lUmVhY2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XHJcbiAgICB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjayA9IG9uVGltZVJlYWNoZWRDYWxsYmFja1xyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgeyBJVGltZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQvaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBJbnRlcnZhbCB9IGZyb20gJy4uL2NvbXBvbmVudC9pbnRlcnZhbCdcclxuaW1wb3J0IHsgRGVsYXkgfSBmcm9tICcuLi9jb21wb25lbnQvZGVsYXknXHJcbmltcG9ydCB7IEV4cGlyZUluIH0gZnJvbSAnLi4vY29tcG9uZW50L2V4cGlyZSdcclxuXHJcbmV4cG9ydCBjbGFzcyBUaW1lclN5c3RlbSBpbXBsZW1lbnRzIElTeXN0ZW0ge1xyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVGltZXJTeXN0ZW0gfCBudWxsID0gbnVsbFxyXG5cclxuICBwcml2YXRlIF9jb21wb25lbnRzOiBDb21wb25lbnRDb25zdHJ1Y3RvcjxJVGltZXJDb21wb25lbnQ+W10gPSBbXVxyXG5cclxuICBzdGF0aWMgY3JlYXRlQW5kQWRkVG9FbmdpbmUoKTogVGltZXJTeXN0ZW0ge1xyXG4gICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpIHtcclxuICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgVGltZXJTeXN0ZW0oKVxyXG4gICAgICBlbmdpbmUuYWRkU3lzdGVtKHRoaXMuX2luc3RhbmNlKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVnaXN0ZXJDdXN0b21Db21wb25lbnQ8VCBleHRlbmRzIElUaW1lckNvbXBvbmVudD4oXHJcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudENvbnN0cnVjdG9yPFQ+XHJcbiAgKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUFuZEFkZFRvRW5naW5lKCkuX2NvbXBvbmVudHMucHVzaChjb21wb25lbnQpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgVGltZXJTeXN0ZW0uX2luc3RhbmNlID0gdGhpc1xyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEludGVydmFsKVxyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKERlbGF5KVxyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEV4cGlyZUluKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2NvbXBvbmVudHMuZm9yRWFjaChjb21wb25lbnQgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudChkdCwgY29tcG9uZW50KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50PFQgZXh0ZW5kcyBJVGltZXJDb21wb25lbnQ+KFxyXG4gICAgZHQ6IG51bWJlcixcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50Q29uc3RydWN0b3I8VD5cclxuICApIHtcclxuICAgIGxldCByZWNvcmQgPSBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoQ29tcG9uZW50KGNvbXBvbmVudClcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiByZWNvcmQpIHtcclxuICAgICAgaWYgKHJlY29yZC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgbGV0IGVudGl0eSA9IHJlY29yZFtrZXldXHJcbiAgICAgICAgbGV0IHRpbWVyQ29tcG9uZW50ID0gZW50aXR5LmdldENvbXBvbmVudChjb21wb25lbnQpXHJcblxyXG4gICAgICAgIHRpbWVyQ29tcG9uZW50LmVsYXBzZWRUaW1lICs9IGR0XHJcbiAgICAgICAgaWYgKHRpbWVyQ29tcG9uZW50LmVsYXBzZWRUaW1lID49IHRpbWVyQ29tcG9uZW50LnRhcmdldFRpbWUpIHtcclxuICAgICAgICAgIHRpbWVyQ29tcG9uZW50Lm9uVGFyZ2V0VGltZVJlYWNoZWQoZW50aXR5KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgeyBJVGltZXJDb21wb25lbnQgfSBmcm9tICcuL2l0aW1lcmNvbXBvbmVudCdcclxuaW1wb3J0IHsgVGltZXJTeXN0ZW0gfSBmcm9tICcuLi9zeXN0ZW0vdGltZXJTeXN0ZW0nXHJcblxyXG4vKipcclxuICogRXhlY3V0ZSBvbmNlIGFmdGVyIFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckRlbGF5JylcclxuZXhwb3J0IGNsYXNzIERlbGF5IGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9IGVudGl0eSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaykgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2soKVxyXG4gICAgICBlbnRpdHkucmVtb3ZlQ29tcG9uZW50KHRoaXMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYWxsYmFjayhvblRpbWVSZWFjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrID0gb25UaW1lUmVhY2hlZENhbGxiYWNrXHJcbiAgfVxyXG59XHJcbiIsImV4cG9ydCBjbGFzcyBUcmlnZ2VyU3lzdGVtIGltcGxlbWVudHMgSVN5c3RlbSB7XG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVHJpZ2dlclN5c3RlbSB8IG51bGwgPSBudWxsXG4gIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogVHJpZ2dlclN5c3RlbSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxuICB9XG5cbiAgcHJpdmF0ZSBfdHJpZ2dlcnM6IFJlY29yZDxzdHJpbmcsIFRyaWdnZXJXcmFwcGVyPiA9IHt9XG4gIHByaXZhdGUgX2NhbWVyYVRyaWdnZXJXcmFwcGVyOiBDYW1lcmFUcmlnZ2VyXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBUcmlnZ2VyU3lzdGVtLl9pbnN0YW5jZSA9IHRoaXNcbiAgICB0aGlzLl9jYW1lcmFUcmlnZ2VyV3JhcHBlciA9IG5ldyBDYW1lcmFUcmlnZ2VyKFxuICAgICAgbmV3IFRyaWdnZXJCb3hTaGFwZShuZXcgVmVjdG9yMygwLjUsIDEuOCwgMC41KSwgbmV3IFZlY3RvcjMoMCwgMC45MSwgMCkpXG4gICAgKVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUFuZEFkZFRvRW5naW5lKCk6IFRyaWdnZXJTeXN0ZW0ge1xuICAgIGlmICh0aGlzLl9pbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBUcmlnZ2VyU3lzdGVtKClcbiAgICAgIGVuZ2luZS5hZGRTeXN0ZW0odGhpcy5faW5zdGFuY2UpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZVxuICB9XG5cbiAgLyoqXG4gICAqIHNldCBhIGN1c3RvbSB0cmlnZ2VyJ3Mgc2hhcGUgZm9yIHRoZSBjYW1lcmFcbiAgICogQHBhcmFtIHNoYXBlIGN1c3RvbSB0cmlnZ2VyJ3Mgc2hhcGVcbiAgICovXG4gIHNldENhbWVyYVRyaWdnZXJTaGFwZShzaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlKSB7XG4gICAgdGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIuc2V0U2hhcGUoc2hhcGUpXG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgLy9nZXQgZW50aXRpZXMgd2l0aCB0cmlnZ2VyIGNvbXBvbmVudFxuICAgIGxldCBlbnRpdGllc1dpdGhUcmlnZ2VycyA9IGVuZ2luZS5nZXRDb21wb25lbnRHcm91cChUcmlnZ2VyQ29tcG9uZW50KVxuICAgICAgLmVudGl0aWVzXG5cbiAgICAvL2l0ZXJhdGUgdGhyb3VnaCBhbGwgZW50aXRpZXMgd2l0aCB0cmlnZ2VycyBhbmQgd3JhcCBlbnRpdGllcyB0aGF0IHdlcmVuJ3Qgd3JhcHBlZCB5ZXRcbiAgICBlbnRpdGllc1dpdGhUcmlnZ2Vycy5mb3JFYWNoKGVudGl0eSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG91bGRXcmFwVHJpZ2dlckVudGl0eShlbnRpdHkpKSB7XG4gICAgICAgIHRoaXMud3JhcFRyaWdnZXJFbnRpdHkoZW50aXR5KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvL2l0ZXJhdGUgdGhyb3VnaCB3cmFwcGVkIGVudGl0aWVzXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fdHJpZ2dlcnMpIHtcbiAgICAgIGlmICh0aGlzLl90cmlnZ2Vycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGxldCB3cmFwcGVyID0gdGhpcy5fdHJpZ2dlcnNba2V5XVxuXG4gICAgICAgIC8vdXBkYXRlIGRlYnVnIGVudGl0eVxuICAgICAgICBpZiAod3JhcHBlci5pc0RlYnVnZ2luZygpKSB7XG4gICAgICAgICAgd3JhcHBlci51cGRhdGVEZWJ1Z0VudGl0eSgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdyYXBwZXIuaXNJbkVuZ2luZSgpKSB7XG4gICAgICAgICAgLy9yZW1vdmUgZGVidWdnaW5nXG4gICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgd3JhcHBlci5yZW1vdmVEZWJ1Z0VudGl0eSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vcmVtb3ZlIG9sZCBjb2xsaXNpb25zXG4gICAgICAgICAgVHJpZ2dlclN5c3RlbS5yZW1vdmVUcmlnZ2VyRnJvbVN5c3RlbSh3cmFwcGVyKVxuICAgICAgICAgIC8vcmVtb3ZlIGZyb20gcmVjb3JkXG4gICAgICAgICAgZGVsZXRlIHRoaXMuX3RyaWdnZXJzW2tleV1cbiAgICAgICAgfSBlbHNlIGlmICh3cmFwcGVyLnRyaWdnZXIgIT0gbnVsbCAmJiB3cmFwcGVyLnRyaWdnZXIuZW5hYmxlZCkge1xuICAgICAgICAgIC8vaWYgd2FzIHNldCBhcyBlbmFibGVkIGluIGxhc3QgZnJhbWVcbiAgICAgICAgICBpZiAoIXdyYXBwZXIud2FzRW5hYmxlZCkge1xuICAgICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgICB3cmFwcGVyLmFkZERlYnVnRW50aXR5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy9zZXQgYXMgZW5hYmxlZFxuICAgICAgICAgIHdyYXBwZXIud2FzRW5hYmxlZCA9IHRydWVcblxuICAgICAgICAgIC8vY2hlY2sgY29sbGlzaW9uIGNhbWVyYVxuICAgICAgICAgIGlmICh3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFbnRlciB8fCB3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFeGl0KSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ29sbGlzaW9uQWdhaW5zdENhbWVyYSh3cmFwcGVyKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vY2hlY2sgY29sbGlzaW9uIHdpdGggb3RoZXJzXG4gICAgICAgICAgaWYgKHdyYXBwZXIudHJpZ2dlci5vblRyaWdnZXJFbnRlciB8fCB3cmFwcGVyLnRyaWdnZXIub25UcmlnZ2VyRXhpdCkge1xuICAgICAgICAgICAgdGhpcy5jaGVja0NvbGxpc2lvbkFnYWluc3RPdGhlclRyaWdnZXJzKHdyYXBwZXIpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHdyYXBwZXIud2FzRW5hYmxlZCkge1xuICAgICAgICAgIHdyYXBwZXIud2FzRW5hYmxlZCA9IGZhbHNlXG4gICAgICAgICAgLy9yZW1vdmUgZGVidWdnaW5nXG4gICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgd3JhcHBlci5yZW1vdmVEZWJ1Z0VudGl0eSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIFRyaWdnZXJTeXN0ZW0ucmVtb3ZlVHJpZ2dlckZyb21TeXN0ZW0od3JhcHBlcilcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkV3JhcFRyaWdnZXJFbnRpdHkoZW50aXR5OiBJRW50aXR5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX3RyaWdnZXJzW2VudGl0eS51dWlkXSA9PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX3RyaWdnZXJzW2VudGl0eS51dWlkXSA9PSBudWxsXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSB3cmFwVHJpZ2dlckVudGl0eShlbnRpdHk6IElFbnRpdHkpIHtcbiAgICB0aGlzLl90cmlnZ2Vyc1tlbnRpdHkudXVpZF0gPSBuZXcgVHJpZ2dlcldyYXBwZXIoZW50aXR5IGFzIEVudGl0eSlcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlbW92ZVRyaWdnZXJGcm9tU3lzdGVtKHdyYXBwZXI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgbGV0IGFjdGl2ZUNvbGxpc2lvbnMgPSB3cmFwcGVyLmdldEFjdGl2ZUNvbGxpc2lvbnMoKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWN0aXZlQ29sbGlzaW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFjdGl2ZUNvbGxpc2lvbnNbaV0udHJpZ2dlci5vblRyaWdnZXJFeGl0ICYmIHdyYXBwZXIuZW50aXR5KVxuICAgICAgICAoYWN0aXZlQ29sbGlzaW9uc1tpXS50cmlnZ2VyLm9uVHJpZ2dlckV4aXQgYXMgKFxuICAgICAgICAgIGVudGl0eTogSUVudGl0eVxuICAgICAgICApID0+IHZvaWQpKHdyYXBwZXIuZW50aXR5KVxuICAgICAgYWN0aXZlQ29sbGlzaW9uc1tpXS5kaXNlbmdhZ2VBY3RpdmVDb2xsaXNpb24od3JhcHBlcilcbiAgICAgIHdyYXBwZXIuZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKGFjdGl2ZUNvbGxpc2lvbnNbaV0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZGlzZW5nYWdlQ29sbGlzaW9uKHQxOiBUcmlnZ2VyV3JhcHBlciwgdDI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgdDEuZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKHQyKVxuICAgIHQyLmRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbih0MSlcblxuICAgIGlmICh0MS50cmlnZ2VyLm9uVHJpZ2dlckV4aXQgJiYgdDIuZW50aXR5KVxuICAgICAgdDEudHJpZ2dlci5vblRyaWdnZXJFeGl0KHQyLmVudGl0eSlcbiAgICBpZiAodDIudHJpZ2dlci5vblRyaWdnZXJFeGl0ICYmIHQxLmVudGl0eSlcbiAgICAgIHQyLnRyaWdnZXIub25UcmlnZ2VyRXhpdCh0MS5lbnRpdHkpXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBlbmdhZ2VDb2xsaXNpb24odDE6IFRyaWdnZXJXcmFwcGVyLCB0MjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICB0MS5lbmdhZ2VDb2xsaXNpb24odDIpXG4gICAgdDIuZW5nYWdlQ29sbGlzaW9uKHQxKVxuXG4gICAgaWYgKHQxLnRyaWdnZXIub25UcmlnZ2VyRW50ZXIgJiYgdDIuZW50aXR5KVxuICAgICAgdDEudHJpZ2dlci5vblRyaWdnZXJFbnRlcih0Mi5lbnRpdHkpXG4gICAgaWYgKHQyLnRyaWdnZXIub25UcmlnZ2VyRW50ZXIgJiYgdDEuZW50aXR5KVxuICAgICAgdDIudHJpZ2dlci5vblRyaWdnZXJFbnRlcih0MS5lbnRpdHkpXG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ29sbGlzaW9uQWdhaW5zdENhbWVyYSh3cmFwcGVyOiBUcmlnZ2VyV3JhcHBlcikge1xuICAgIGxldCB3ZXJlQ29sbGlkaW5nID0gd3JhcHBlci5oYXNBY3RpdmVDb2xsaXNpb24odGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIpXG4gICAgbGV0IGFyZUNvbGxpZGluZyA9IFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nKFxuICAgICAgd3JhcHBlcixcbiAgICAgIHRoaXMuX2NhbWVyYVRyaWdnZXJXcmFwcGVyXG4gICAgKVxuXG4gICAgaWYgKHdlcmVDb2xsaWRpbmcgJiYgIWFyZUNvbGxpZGluZykge1xuICAgICAgd3JhcHBlci5kaXNlbmdhZ2VBY3RpdmVDb2xsaXNpb24odGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIpXG4gICAgICBpZiAod3JhcHBlci50cmlnZ2VyLm9uQ2FtZXJhRXhpdCkgd3JhcHBlci50cmlnZ2VyLm9uQ2FtZXJhRXhpdCgpXG4gICAgfSBlbHNlIGlmICghd2VyZUNvbGxpZGluZyAmJiBhcmVDb2xsaWRpbmcpIHtcbiAgICAgIHdyYXBwZXIuZW5nYWdlQ29sbGlzaW9uKHRoaXMuX2NhbWVyYVRyaWdnZXJXcmFwcGVyKVxuICAgICAgaWYgKHdyYXBwZXIudHJpZ2dlci5vbkNhbWVyYUVudGVyKSB3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFbnRlcigpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NvbGxpc2lvbkFnYWluc3RPdGhlclRyaWdnZXJzKHdyYXBwZXI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fdHJpZ2dlcnMpIHtcbiAgICAgIGlmICh0aGlzLl90cmlnZ2Vycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmIChrZXkgIT0gd3JhcHBlci51dWlkICYmIHRoaXMuX3RyaWdnZXJzW2tleV0udHJpZ2dlci5lbmFibGVkKSB7XG4gICAgICAgICAgaWYgKFRyaWdnZXJTeXN0ZW0uY2FuVHJpZ2dlcnNDb2xsaWRlKHdyYXBwZXIsIHRoaXMuX3RyaWdnZXJzW2tleV0pKSB7XG4gICAgICAgICAgICBsZXQgd2VyZUNvbGxpZGluZyA9IHdyYXBwZXIuaGFzQWN0aXZlQ29sbGlzaW9uKHRoaXMuX3RyaWdnZXJzW2tleV0pXG4gICAgICAgICAgICBsZXQgYXJlQ29sbGlkaW5nID0gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmcoXG4gICAgICAgICAgICAgIHdyYXBwZXIsXG4gICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJzW2tleV1cbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKHdlcmVDb2xsaWRpbmcgJiYgIWFyZUNvbGxpZGluZylcbiAgICAgICAgICAgICAgVHJpZ2dlclN5c3RlbS5kaXNlbmdhZ2VDb2xsaXNpb24od3JhcHBlciwgdGhpcy5fdHJpZ2dlcnNba2V5XSlcbiAgICAgICAgICAgIGVsc2UgaWYgKCF3ZXJlQ29sbGlkaW5nICYmIGFyZUNvbGxpZGluZylcbiAgICAgICAgICAgICAgVHJpZ2dlclN5c3RlbS5lbmdhZ2VDb2xsaXNpb24od3JhcHBlciwgdGhpcy5fdHJpZ2dlcnNba2V5XSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjYW5UcmlnZ2Vyc0NvbGxpZGUoXG4gICAgdDE6IFRyaWdnZXJXcmFwcGVyLFxuICAgIHQyOiBUcmlnZ2VyV3JhcHBlclxuICApOiBib29sZWFuIHtcbiAgICBpZiAodDEudHJpZ2dlci50cmlnZ2VyZWRCeUxheWVyID09IDApIHJldHVybiB0cnVlXG4gICAgcmV0dXJuICh0Mi50cmlnZ2VyLmxheWVyICYgdDEudHJpZ2dlci50cmlnZ2VyZWRCeUxheWVyKSAhPSAwXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmcodDE6IFRyaWdnZXJXcmFwcGVyLCB0MjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0MS5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlckJveFNoYXBlICYmXG4gICAgICB0Mi5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlckJveFNoYXBlXG4gICAgKSB7XG4gICAgICByZXR1cm4gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmdBQUJCKFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJCb3hTaGFwZSxcbiAgICAgICAgdDIuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDIuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGVcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdDEuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZSAmJlxuICAgICAgdDIuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICkge1xuICAgICAgcmV0dXJuIFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nU3BoZXJlKFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJTcGhlcmVTaGFwZSxcbiAgICAgICAgdDIuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDIuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdDEuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJCb3hTaGFwZSAmJlxuICAgICAgdDIuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICkge1xuICAgICAgcmV0dXJuIFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nQUFCQlNwaGVyZShcbiAgICAgICAgdDEuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDEuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGUsXG4gICAgICAgIHQyLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQyLmdldFNoYXBlKCkgYXMgVHJpZ2dlclNwaGVyZVNoYXBlXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHQxLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyU3BoZXJlU2hhcGUgJiZcbiAgICAgIHQyLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyQm94U2hhcGVcbiAgICApIHtcbiAgICAgIHJldHVybiBUcmlnZ2VyU3lzdGVtLmFyZUNvbGxpZGluZ0FBQkJTcGhlcmUoXG4gICAgICAgIHQyLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQyLmdldFNoYXBlKCkgYXMgVHJpZ2dlckJveFNoYXBlLFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFyZUNvbGxpZGluZ0FBQkIoXG4gICAgdDFHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MVNoYXBlOiBUcmlnZ2VyQm94U2hhcGUsXG4gICAgdDJHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MlNoYXBlOiBUcmlnZ2VyQm94U2hhcGVcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IHQxID0gVHJpZ2dlclN5c3RlbS5nZXRCb3hTaGFwZVZhbHVlcyh0MUdsb2JhbFBvc2l0aW9uLCB0MVNoYXBlKVxuICAgIGxldCB0MiA9IFRyaWdnZXJTeXN0ZW0uZ2V0Qm94U2hhcGVWYWx1ZXModDJHbG9iYWxQb3NpdGlvbiwgdDJTaGFwZSlcbiAgICByZXR1cm4gKFxuICAgICAgdDEubWluLnggPD0gdDIubWF4LnggJiZcbiAgICAgIHQxLm1heC54ID49IHQyLm1pbi54ICYmXG4gICAgICB0MS5taW4ueSA8PSB0Mi5tYXgueSAmJiB0MS5tYXgueSA+PSB0Mi5taW4ueSAmJlxuICAgICAgdDEubWluLnogPD0gdDIubWF4LnogJiYgdDEubWF4LnogPj0gdDIubWluLnpcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmdTcGhlcmUoXG4gICAgdDFHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MVNoYXBlOiBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gICAgdDJHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MlNoYXBlOiBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IHNxRGlzdCA9IFZlY3RvcjMuRGlzdGFuY2VTcXVhcmVkKFxuICAgICAgdDFHbG9iYWxQb3NpdGlvbi5hZGQodDFTaGFwZS5wb3NpdGlvbiksXG4gICAgICB0Mkdsb2JhbFBvc2l0aW9uLmFkZCh0MlNoYXBlLnBvc2l0aW9uKVxuICAgIClcbiAgICByZXR1cm4gKFxuICAgICAgc3FEaXN0IDwgdDFTaGFwZS5yYWRpdXMgKiB0MVNoYXBlLnJhZGl1cyArIHQyU2hhcGUucmFkaXVzICogdDJTaGFwZS5yYWRpdXNcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmdBQUJCU3BoZXJlKFxuICAgIHQxR2xvYmFsUG9zaXRpb246IFZlY3RvcjMsXG4gICAgdDFTaGFwZTogVHJpZ2dlckJveFNoYXBlLFxuICAgIHQyR2xvYmFsUG9zaXRpb246IFZlY3RvcjMsXG4gICAgdDJTaGFwZTogVHJpZ2dlclNwaGVyZVNoYXBlXG4gICk6IGJvb2xlYW4ge1xuICAgIGxldCBib3ggPSBUcmlnZ2VyU3lzdGVtLmdldEJveFNoYXBlVmFsdWVzKHQxR2xvYmFsUG9zaXRpb24sIHQxU2hhcGUpXG4gICAgbGV0IHNwaGVyZSA9IHtcbiAgICAgIGNlbnRlcjogdDJHbG9iYWxQb3NpdGlvbi5hZGQodDJTaGFwZS5wb3NpdGlvbiksXG4gICAgICByYWRpdXM6IHQyU2hhcGUucmFkaXVzXG4gICAgfVxuXG4gICAgbGV0IGRtaW4gPSAwXG4gICAgaWYgKHNwaGVyZS5jZW50ZXIueCA8IGJveC5taW4ueClcbiAgICAgIGRtaW4gKz0gKGJveC5taW4ueCAtIHNwaGVyZS5jZW50ZXIueCkgKiAoYm94Lm1pbi54IC0gc3BoZXJlLmNlbnRlci54KVxuICAgIGlmIChzcGhlcmUuY2VudGVyLnggPiBib3gubWF4LngpXG4gICAgICBkbWluICs9IChzcGhlcmUuY2VudGVyLnggLSBib3gubWF4LngpICogKHNwaGVyZS5jZW50ZXIueCAtIGJveC5tYXgueClcbiAgICBpZiAoc3BoZXJlLmNlbnRlci55IDwgYm94Lm1pbi55KVxuICAgICAgZG1pbiArPSAoYm94Lm1pbi55IC0gc3BoZXJlLmNlbnRlci55KSAqIChib3gubWluLnkgLSBzcGhlcmUuY2VudGVyLnkpXG4gICAgaWYgKHNwaGVyZS5jZW50ZXIueSA+IGJveC5tYXgueSlcbiAgICAgIGRtaW4gKz0gKHNwaGVyZS5jZW50ZXIueSAtIGJveC5tYXgueSkgKiAoc3BoZXJlLmNlbnRlci55IC0gYm94Lm1heC55KVxuICAgIGlmIChzcGhlcmUuY2VudGVyLnogPCBib3gubWluLnopXG4gICAgICBkbWluICs9IChib3gubWluLnogLSBzcGhlcmUuY2VudGVyLnopICogKGJveC5taW4ueiAtIHNwaGVyZS5jZW50ZXIueilcbiAgICBpZiAoc3BoZXJlLmNlbnRlci56ID4gYm94Lm1heC56KVxuICAgICAgZG1pbiArPSAoc3BoZXJlLmNlbnRlci56IC0gYm94Lm1heC56KSAqIChzcGhlcmUuY2VudGVyLnogLSBib3gubWF4LnopXG5cbiAgICByZXR1cm4gZG1pbiA8IHNwaGVyZS5yYWRpdXMgKiBzcGhlcmUucmFkaXVzXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRCb3hTaGFwZVZhbHVlcyhcbiAgICBlbnRpdHlHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICBzaGFwZTogVHJpZ2dlckJveFNoYXBlXG4gICk6IHsgY2VudGVyOiBWZWN0b3IzOyBtaW46IFZlY3RvcjM7IG1heDogVmVjdG9yMyB9IHtcbiAgICBsZXQgY2VudGVyID0gZW50aXR5R2xvYmFsUG9zaXRpb24uYWRkKHNoYXBlLnBvc2l0aW9uKVxuICAgIHJldHVybiB7XG4gICAgICBjZW50ZXI6IGNlbnRlcixcbiAgICAgIG1pbjogY2VudGVyLnN1YnRyYWN0KHNoYXBlLnNpemUuc2NhbGUoMC41KSksXG4gICAgICBtYXg6IGNlbnRlci5hZGQoc2hhcGUuc2l6ZS5zY2FsZSgwLjUpKVxuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBUcmlnZ2VyV3JhcHBlciB7XG4gIHdhc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG5cbiAgZ2V0IGVudGl0eSgpOiBFbnRpdHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlcbiAgfVxuICBnZXQgdHJpZ2dlcigpOiBUcmlnZ2VyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlclxuICB9XG4gIGdldCB1dWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3V1aWRcbiAgfVxuXG4gIHByb3RlY3RlZCBfZW50aXR5PzogRW50aXR5XG4gIHByb3RlY3RlZCBfdHJpZ2dlciE6IFRyaWdnZXJDb21wb25lbnRcbiAgcHJvdGVjdGVkIF91dWlkOiBzdHJpbmcgPSAnJ1xuICBwcm90ZWN0ZWQgX2NvbGxpZGluZ1dpdGg6IFJlY29yZDxzdHJpbmcsIFRyaWdnZXJXcmFwcGVyPiA9IHt9XG5cbiAgcHJpdmF0ZSBfaXNEZWJ1ZzogYm9vbGVhbiA9IGZhbHNlXG4gIHByaXZhdGUgX2RlYnVnRW50aXR5OiBFbnRpdHkgfCBudWxsID0gbnVsbFxuICBwcml2YXRlIHN0YXRpYyBfZGVidWdNYXRlcmlhbDogTWF0ZXJpYWwgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGVudGl0eT86IEVudGl0eSkge1xuICAgIHRoaXMuX2VudGl0eSA9IGVudGl0eVxuICAgIGlmIChlbnRpdHkpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXIgPSBlbnRpdHkuZ2V0Q29tcG9uZW50KFRyaWdnZXJDb21wb25lbnQpXG4gICAgICB0aGlzLl91dWlkID0gZW50aXR5LnV1aWRcbiAgICAgIHRoaXMuX2lzRGVidWcgPSB0aGlzLl90cmlnZ2VyLmRlYnVnRW5hYmxlZFxuICAgICAgaWYgKHRoaXMuX2lzRGVidWcpIHtcbiAgICAgICAgdGhpcy5hZGREZWJ1Z0VudGl0eSgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0R2xvYmFsUG9zaXRpb24oKTogVmVjdG9yMyB7XG4gICAgaWYgKHRoaXMuX2VudGl0eSkgcmV0dXJuIFRyaWdnZXJXcmFwcGVyLmdldEVudGl0eVdvcmxkUG9zaXRpb24odGhpcy5fZW50aXR5KVxuICAgIHJldHVybiBWZWN0b3IzLlplcm8oKVxuICB9XG5cbiAgZ2V0U2hhcGUoKTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlIHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlci5zaGFwZVxuICB9XG5cbiAgaXNJbkVuZ2luZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5ICE9IG51bGwgJiYgdGhpcy5fZW50aXR5LmlzQWRkZWRUb0VuZ2luZSgpXG4gIH1cblxuICBnZXRBY3RpdmVDb2xsaXNpb25zKCk6IFRyaWdnZXJXcmFwcGVyW10ge1xuICAgIGxldCByZXQ6IFRyaWdnZXJXcmFwcGVyW10gPSBbXVxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fY29sbGlkaW5nV2l0aCkge1xuICAgICAgaWYgKHRoaXMuX2NvbGxpZGluZ1dpdGguaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICByZXQucHVzaCh0aGlzLl9jb2xsaWRpbmdXaXRoW2tleV0pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXRcbiAgfVxuXG4gIGhhc0FjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fY29sbGlkaW5nV2l0aFtvdGhlci51dWlkXSAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuX2NvbGxpZGluZ1dpdGhbb3RoZXIudXVpZF0gIT0gbnVsbFxuICAgIClcbiAgfVxuXG4gIGRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICBkZWxldGUgdGhpcy5fY29sbGlkaW5nV2l0aFtvdGhlci51dWlkXVxuICB9XG5cbiAgZW5nYWdlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcikge1xuICAgIHRoaXMuX2NvbGxpZGluZ1dpdGhbb3RoZXIudXVpZF0gPSBvdGhlclxuICB9XG5cbiAgaXNEZWJ1Z2dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRGVidWdcbiAgfVxuXG4gIGFkZERlYnVnRW50aXR5KCkge1xuICAgIGlmICghVHJpZ2dlcldyYXBwZXIuX2RlYnVnTWF0ZXJpYWwpIHtcbiAgICAgIFRyaWdnZXJXcmFwcGVyLl9kZWJ1Z01hdGVyaWFsID0gbmV3IE1hdGVyaWFsKClcbiAgICAgIFRyaWdnZXJXcmFwcGVyLl9kZWJ1Z01hdGVyaWFsLmFscGhhVGVzdCA9IDAuNVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9kZWJ1Z0VudGl0eSA9PSBudWxsKSB7XG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eSA9IG5ldyBFbnRpdHkoKVxuXG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSBuZXcgVHJhbnNmb3JtKClcbiAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudCh0cmFuc2Zvcm0pXG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eS5hZGRDb21wb25lbnQoVHJpZ2dlcldyYXBwZXIuX2RlYnVnTWF0ZXJpYWwpXG5cbiAgICAgIGlmICh0aGlzLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyQm94U2hhcGUpIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBuZXcgQm94U2hhcGUoKVxuICAgICAgICBzaGFwZS53aXRoQ29sbGlzaW9ucyA9IGZhbHNlXG4gICAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudChzaGFwZSlcbiAgICAgICAgdHJhbnNmb3JtLnNjYWxlID0gKHRoaXMuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGUpLnNpemVcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyU3BoZXJlU2hhcGUpIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBuZXcgU3BoZXJlU2hhcGUoKVxuICAgICAgICBzaGFwZS53aXRoQ29sbGlzaW9ucyA9IGZhbHNlXG4gICAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudChzaGFwZSlcbiAgICAgICAgbGV0IHJhZCA9ICh0aGlzLmdldFNoYXBlKCkgYXMgVHJpZ2dlclNwaGVyZVNoYXBlKS5yYWRpdXNcbiAgICAgICAgdHJhbnNmb3JtLnNjYWxlID0gbmV3IFZlY3RvcjMocmFkLCByYWQsIHJhZClcbiAgICAgIH1cbiAgICB9XG4gICAgZW5naW5lLmFkZEVudGl0eSh0aGlzLl9kZWJ1Z0VudGl0eSlcbiAgfVxuXG4gIHJlbW92ZURlYnVnRW50aXR5KCkge1xuICAgIGlmICh0aGlzLl9kZWJ1Z0VudGl0eSAhPSBudWxsKSBlbmdpbmUucmVtb3ZlRW50aXR5KHRoaXMuX2RlYnVnRW50aXR5KVxuICB9XG5cbiAgdXBkYXRlRGVidWdFbnRpdHkoKSB7XG4gICAgaWYgKHRoaXMuX2RlYnVnRW50aXR5KSB7XG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eS5nZXRDb21wb25lbnQoXG4gICAgICAgIFRyYW5zZm9ybVxuICAgICAgKS5wb3NpdGlvbiA9IHRoaXMuZ2V0R2xvYmFsUG9zaXRpb24oKS5hZGQodGhpcy5nZXRTaGFwZSgpLnBvc2l0aW9uKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldEVudGl0eVdvcmxkUG9zaXRpb24oZW50aXR5OiBJRW50aXR5KTogVmVjdG9yMyB7XG4gICAgbGV0IGVudGl0eVBvc2l0aW9uID0gZW50aXR5Lmhhc0NvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICA/IGVudGl0eS5nZXRDb21wb25lbnQoVHJhbnNmb3JtKS5wb3NpdGlvblxuICAgICAgOiBWZWN0b3IzLlplcm8oKVxuICAgIGxldCBwYXJlbnRFbnRpdHkgPSBlbnRpdHkuZ2V0UGFyZW50KClcblxuICAgIGlmIChwYXJlbnRFbnRpdHkgIT0gbnVsbCkge1xuICAgICAgbGV0IHBhcmVudFJvdGF0aW9uID0gcGFyZW50RW50aXR5Lmhhc0NvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICAgID8gcGFyZW50RW50aXR5LmdldENvbXBvbmVudChUcmFuc2Zvcm0pLnJvdGF0aW9uXG4gICAgICAgIDogUXVhdGVybmlvbi5JZGVudGl0eVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5V29ybGRQb3NpdGlvbihwYXJlbnRFbnRpdHkpLmFkZChcbiAgICAgICAgZW50aXR5UG9zaXRpb24ucm90YXRlKHBhcmVudFJvdGF0aW9uKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZW50aXR5UG9zaXRpb25cbiAgfVxufVxuXG5jbGFzcyBDYW1lcmFUcmlnZ2VyIGV4dGVuZHMgVHJpZ2dlcldyYXBwZXIge1xuICBwcml2YXRlIF9zaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlXG5cbiAgY29uc3RydWN0b3Ioc2hhcGU6IFRyaWdnZXJCb3hTaGFwZSB8IFRyaWdnZXJTcGhlcmVTaGFwZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLl9zaGFwZSA9IHNoYXBlXG4gICAgdGhpcy5fdXVpZCA9ICdjYW1lcmFUcmlnZ2VyJ1xuICB9XG5cbiAgZ2V0R2xvYmFsUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIENhbWVyYS5pbnN0YW5jZS5wb3NpdGlvblxuICB9XG5cbiAgZ2V0U2hhcGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NoYXBlXG4gIH1cblxuICBzZXRTaGFwZShzaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlKSB7XG4gICAgdGhpcy5fc2hhcGUgPSBzaGFwZVxuICB9XG5cbiAgaXNJbkVuZ2luZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGhhc0FjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpIHt9XG5cbiAgZW5nYWdlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcikge31cbiAgaXNEZWJ1Z2dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQENvbXBvbmVudCgndHJpZ2dlckNvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgVHJpZ2dlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBpcyB0cmlnZ2VyIGVuYWJsZT9cbiAgICovXG4gIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG4gIC8qKlxuICAgKiBzaGFwZSBvZiB0aGUgY29sbGlkZXJcbiAgICovXG4gIHNoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgLyoqXG4gICAqIGJpdCBsYXllciBvZiB0aGUgVGlnZ2VyICh1c2VmdWxsIHRvIGRpc2NyaW1pbmF0ZSBiZXR3ZWVuIHRyaWdnZXIgZXZlbnRzKVxuICAgKi9cbiAgbGF5ZXI6IG51bWJlciA9IDBcbiAgLyoqXG4gICAqIGFnYWluc3Qgd2hpY2ggbGF5ZXIgYXJlIHdlIGdvaW5nIHRvIGNoZWNrIHRyaWdnZXIncyBjb2xsaXNpb25zXG4gICAqL1xuICB0cmlnZ2VyZWRCeUxheWVyOiBudW1iZXIgPSAwXG4gIC8qKlxuICAgKiBjYWxsYmFjayB3aGVuIHRyaWdnZXIgaXMgZW50ZXJlZFxuICAgKi9cbiAgb25UcmlnZ2VyRW50ZXI/OiAoZW50aXR5OiBFbnRpdHkpID0+IHZvaWRcbiAgLyoqXG4gICAqIGNhbGxiYWNrIHdoZW4gdHJpZ2dlciBpcyBleGl0XG4gICAqL1xuICBvblRyaWdnZXJFeGl0PzogKGVudGl0eTogRW50aXR5KSA9PiB2b2lkXG4gIC8qKlxuICAgKiBjYWxsYmFjayB3aGVuIHRyaWdnZXIgaXMgZW50ZXJlZFxuICAgKi9cbiAgb25DYW1lcmFFbnRlcj86ICgpID0+IHZvaWRcbiAgLyoqXG4gICAqIGNhbGxiYWNrIHdoZW4gdHJpZ2dlciBpcyBleGl0XG4gICAqL1xuICBvbkNhbWVyYUV4aXQ/OiAoKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBnZXQgaWYgZGVidWcgaXMgZW5hYmxlZFxuICAgKi9cbiAgZ2V0IGRlYnVnRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGVidWdFbmFibGVkXG4gIH1cblxuICBwcml2YXRlIF9kZWJ1Z0VuYWJsZWQ6IGJvb2xlYW5cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHNoYXBlIHNoYXBlIG9mIHRoZSB0cmlnZ2VyaW5nIGNvbGxpZGVyIGFyZWFcbiAgICogQHBhcmFtIGxheWVyIGxheWVyIG9mIHRoZSBUcmlnZ2VyLCB1c2VmdWwgdG8gZGlzY3JpbWluYXRlIGJldHdlZW4gdHJpZ2dlciBldmVudHMuIFlvdSBjYW4gc2V0IG11bHRpcGxlIGxheWVycyBieSB1c2luZyBhIHwgc3ltYm9sLlxuICAgKiBAcGFyYW0gdHJpZ2dlcmVkQnlMYXllciBhZ2FpbnN0IHdoaWNoIGxheWVycyB0byBjaGVjayBjb2xsaXNpb25zXG4gICAqIEBwYXJhbSBvblRyaWdnZXJFbnRlciBjYWxsYmFjayB3aGVuIGFuIGVudGl0eSBvZiBhIHZhbGlkIGxheWVyIGVudGVycyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBvblRyaWdnZXJFeGl0IGNhbGxiYWNrIHdoZW4gYW4gZW50aXR5IG9mIGEgdmFsaWQgbGF5ZXIgbGVhdmVzIHRoZSB0cmlnZ2VyIGFyZWFcbiAgICogQHBhcmFtIG9uQ2FtZXJhRW50ZXIgY2FsbGJhY2sgd2hlbiB0aGUgcGxheWVyIGVudGVycyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBvbkNhbWVyYUV4aXQgY2FsbGJhY2sgd2hlbiB0aGUgcGxheWVyIGxlYXZlcyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBlbmFibGVEZWJ1ZyB3aGVuIHRydWUgbWFrZXMgdGhlIHRyaWdnZXIgYXJlYSB2aXNpYmxlIGZvciBkZWJ1ZyBwdXJwb3Nlcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gICAgbGF5ZXI6IG51bWJlciA9IDAsXG4gICAgdHJpZ2dlcmVkQnlMYXllcjogbnVtYmVyID0gMCxcbiAgICBvblRyaWdnZXJFbnRlcj86IChlbnRpdHk6IEVudGl0eSkgPT4gdm9pZCxcbiAgICBvblRyaWdnZXJFeGl0PzogKGVudGl0eTogRW50aXR5KSA9PiB2b2lkLFxuICAgIG9uQ2FtZXJhRW50ZXI/OiAoKSA9PiB2b2lkLFxuICAgIG9uQ2FtZXJhRXhpdD86ICgpID0+IHZvaWQsXG4gICAgZW5hYmxlRGVidWc6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBUcmlnZ2VyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcbiAgICB0aGlzLnNoYXBlID0gc2hhcGVcbiAgICB0aGlzLmxheWVyID0gbGF5ZXJcbiAgICB0aGlzLnRyaWdnZXJlZEJ5TGF5ZXIgPSB0cmlnZ2VyZWRCeUxheWVyXG4gICAgdGhpcy5vblRyaWdnZXJFbnRlciA9IG9uVHJpZ2dlckVudGVyXG4gICAgdGhpcy5vblRyaWdnZXJFeGl0ID0gb25UcmlnZ2VyRXhpdFxuICAgIHRoaXMub25DYW1lcmFFbnRlciA9IG9uQ2FtZXJhRW50ZXJcbiAgICB0aGlzLm9uQ2FtZXJhRXhpdCA9IG9uQ2FtZXJhRXhpdFxuICAgIHRoaXMuX2RlYnVnRW5hYmxlZCA9IGVuYWJsZURlYnVnXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyaWdnZXJCb3hTaGFwZSB7XG4gIHNpemU6IFZlY3RvcjNcbiAgcG9zaXRpb246IFZlY3RvcjNcblxuICBjb25zdHJ1Y3RvcihzaXplOiBWZWN0b3IzLCBwb3NpdGlvbjogVmVjdG9yMykge1xuICAgIHRoaXMuc2l6ZSA9IHNpemVcbiAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb25cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJpZ2dlclNwaGVyZVNoYXBlIHtcbiAgcmFkaXVzOiBudW1iZXJcbiAgcG9zaXRpb246IFZlY3RvcjNcblxuICBjb25zdHJ1Y3RvcihyYWRpdXM6IG51bWJlciwgcG9zaXRpb246IFZlY3RvcjMpIHtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1c1xuICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvblxuICB9XG59XG4iLCJleHBvcnQgY2xhc3MgQWN0aW9uc1NlcXVlbmNlU3lzdGVtIGltcGxlbWVudHMgSVN5c3RlbSB7XG4gIHByaXZhdGUgYmVnaW5TZXF1ZW5jZU5vZGU6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgY3VycmVudFNlcXVlbmNlTm9kZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcblxuICBwcml2YXRlIHJ1bm5pbmc6IGJvb2xlYW4gPSBmYWxzZVxuICBwcml2YXRlIHN0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIHByaXZhdGUgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICBjb25zdHJ1Y3RvcihzZXF1ZW5jZUJ1aWx0PzogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLlNlcXVlbmNlQnVpbGRlcikge1xuICAgIGlmIChzZXF1ZW5jZUJ1aWx0KSB7XG4gICAgICB0aGlzLnN0YXJ0U2VxdWVuY2Uoc2VxdWVuY2VCdWlsdClcbiAgICB9XG4gIH1cblxuICBzdGFydFNlcXVlbmNlKHNlcXVlbmNlQnVpbHQ6IEFjdGlvbnNTZXF1ZW5jZVN5c3RlbS5TZXF1ZW5jZUJ1aWxkZXIpIHtcbiAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gc2VxdWVuY2VCdWlsdC5iZWdpblNlcXVlbmNlTm9kZVxuICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGVcbiAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2VcbiAgfVxuXG4gIHNldE9uRmluaXNoQ2FsbGJhY2sob25GaW5pc2hDYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25GaW5pc2hDYWxsYmFjayA9IG9uRmluaXNoQ2FsbGJhY2tcbiAgfVxuXG4gIGlzUnVubmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ydW5uaW5nXG4gIH1cblxuICBzdG9wKCkge1xuICAgIHRoaXMucnVubmluZyA9IGZhbHNlXG4gIH1cblxuICByZXN1bWUoKSB7XG4gICAgaWYgKHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5ydW5uaW5nID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGVcbiAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2VcbiAgfVxuXG4gIGdldFJ1bm5pbmdBY3Rpb24oKTogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLklBY3Rpb24gfCBudWxsIHtcbiAgICBsZXQgY3VycmVudE5vZGU6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGVcblxuICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgaW5zdGFuY2VvZiBTdWJTZXF1ZW5jZU5vZGUpIHtcbiAgICAgIGRvIHtcbiAgICAgICAgY3VycmVudE5vZGUgPSAoY3VycmVudE5vZGUgYXMgU3ViU2VxdWVuY2VOb2RlKS5jdXJyZW50SW5uZXJTZXF1ZW5jZVxuICAgICAgfSB3aGlsZSAoY3VycmVudE5vZGUgaW5zdGFuY2VvZiBTdWJTZXF1ZW5jZU5vZGUpXG4gICAgfVxuICAgIHJldHVybiAoY3VycmVudE5vZGUgYXMgU2VxdWVuY2VOb2RlKS5hY3Rpb25cbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucnVubmluZykge1xuICAgICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgOyh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5vblN0YXJ0KClcbiAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCEodGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlIGFzIFNlcXVlbmNlTm9kZSkuaGFzRmluaXNoKCkpIHtcbiAgICAgICAgICA7KHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLnVwZGF0ZShkdClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICA7KHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLm9uRmluaXNoKClcbiAgICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSAodGhpc1xuICAgICAgICAgICAgLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5uZXh0XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlLm9uU3RhcnQoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZVxuICAgICAgICAgICAgaWYgKHRoaXMub25GaW5pc2hDYWxsYmFjaykgdGhpcy5vbkZpbmlzaENhbGxiYWNrKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0ge1xuICBleHBvcnQgaW50ZXJmYWNlIElBY3Rpb24ge1xuICAgIG9uU3RhcnQoKTogdm9pZFxuICAgIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZFxuICAgIG9uRmluaXNoKCk6IHZvaWRcbiAgICBoYXNGaW5pc2hlZDogYm9vbGVhblxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIFNlcXVlbmNlQnVpbGRlciB7XG4gICAgcHJpdmF0ZSBjdXJyZW50U2VxdWVuY2VOb2RlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuICAgIHB1YmxpYyBiZWdpblNlcXVlbmNlTm9kZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcblxuICAgIHByaXZhdGUgd2hpbGVOb2RlU3RhY2s6IFdoaWxlU2VxdWVuY2VOb2RlW10gPSBbXVxuXG4gICAgdGhlbihhY3Rpb246IEFjdGlvbnNTZXF1ZW5jZVN5c3RlbS5JQWN0aW9uKTogU2VxdWVuY2VCdWlsZGVyIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSBuZXcgU2VxdWVuY2VOb2RlKClcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlLmFjdGlvbiA9IGFjdGlvblxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgbmV4dCA9IG5ldyBTZXF1ZW5jZU5vZGUoKVxuICAgICAgICBuZXh0LmFjdGlvbiA9IGFjdGlvblxuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUudGhlbihuZXh0KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBpZihjb25kaXRpb246ICgpID0+IGJvb2xlYW4pOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IGlmU2VxID0gbmV3IElmU2VxdWVuY2VOb2RlKGNvbmRpdGlvbilcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSBpZlNlcVxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gaWZTZXFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZS50aGVuKGlmU2VxKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbHNlKCk6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBsZXQgc2VxID0gKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLmdldFNlcXVlbmNlKClcbiAgICAgIGlmIChzZXEgaW5zdGFuY2VvZiBJZlNlcXVlbmNlTm9kZSkge1xuICAgICAgICBzZXEuY2xvc2VkID0gdHJ1ZVxuICAgICAgICBsZXQgZWxzZVNlcSA9IG5ldyBFbHNlU2VxdWVuY2VOb2RlKHNlcSlcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlID0gKHRoaXNcbiAgICAgICAgICAuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLnRoZW4oZWxzZVNlcSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnSUYgc3RhdGVtZW50IGlzIG5lZWRlZCB0byBiZSBjYWxsZWQgYmVmb3JlIEVMU0Ugc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbmRJZigpOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHNlcSA9ICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5nZXRTZXF1ZW5jZSgpXG4gICAgICBpZiAoc2VxIGluc3RhbmNlb2YgSWZTZXF1ZW5jZU5vZGUgfHwgc2VxIGluc3RhbmNlb2YgRWxzZVNlcXVlbmNlTm9kZSkge1xuICAgICAgICBzZXEuY2xvc2VkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdJRiBzdGF0ZW1lbnQgaXMgbmVlZGVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgRU5ESUYgc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICB3aGlsZShjb25kaXRpb246ICgpID0+IGJvb2xlYW4pOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHdoaWxlU2VxID0gbmV3IFdoaWxlU2VxdWVuY2VOb2RlKGNvbmRpdGlvbilcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSB3aGlsZVNlcVxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gd2hpbGVTZXFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZS50aGVuKHdoaWxlU2VxKVxuICAgICAgfVxuICAgICAgdGhpcy53aGlsZU5vZGVTdGFjay5wdXNoKHdoaWxlU2VxKVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbmRXaGlsZSgpOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHNlcSA9ICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5nZXRTZXF1ZW5jZSgpXG4gICAgICBpZiAoc2VxIGluc3RhbmNlb2YgV2hpbGVTZXF1ZW5jZU5vZGUpIHtcbiAgICAgICAgc2VxLmNsb3NlZCA9IHRydWVcbiAgICAgICAgaWYgKHRoaXMud2hpbGVOb2RlU3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMud2hpbGVOb2RlU3RhY2suc3BsaWNlKHRoaXMud2hpbGVOb2RlU3RhY2subGVuZ3RoIC0gMSwgMSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdXSElMRSBzdGF0ZW1lbnQgaXMgbmVlZGVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgRU5EV0hJTEUgc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBicmVha1doaWxlKCk6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBpZiAodGhpcy53aGlsZU5vZGVTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9ICh0aGlzXG4gICAgICAgICAgLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS50aGVuKFxuICAgICAgICAgIG5ldyBCcmVha1doaWxlU2VxdWVuY2VOb2RlKFxuICAgICAgICAgICAgdGhpcy53aGlsZU5vZGVTdGFja1t0aGlzLndoaWxlTm9kZVN0YWNrLmxlbmd0aCAtIDFdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1dISUxFIHN0YXRlbWVudCBpcyBuZWVkZWQgdG8gYmUgY2FsbGVkIGJlZm9yZSBCUkVBS1dISUxFIHN0YXRlbWVudC4nXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFNlcXVlbmNlTm9kZSB7XG4gIGFjdGlvbjogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLklBY3Rpb24gfCBudWxsID0gbnVsbFxuICBuZXh0OiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuXG4gIHRoZW4obmV4dDogU2VxdWVuY2VOb2RlKTogU2VxdWVuY2VOb2RlIHtcbiAgICB0aGlzLm5leHQgPSBuZXh0XG4gICAgcmV0dXJuIG5leHRcbiAgfVxuXG4gIG9uU3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuYWN0aW9uKSB0aGlzLmFjdGlvbi5vblN0YXJ0KClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuYWN0aW9uKSB0aGlzLmFjdGlvbi51cGRhdGUoZHQpXG4gIH1cblxuICBvbkZpbmlzaCgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHRoaXMuYWN0aW9uLm9uRmluaXNoKClcbiAgfVxuXG4gIGhhc0ZpbmlzaCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHJldHVybiB0aGlzLmFjdGlvbi5oYXNGaW5pc2hlZFxuICAgIGVsc2UgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGdldFNlcXVlbmNlKCk6IFNlcXVlbmNlTm9kZSB7XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG5jbGFzcyBTdWJTZXF1ZW5jZU5vZGUgZXh0ZW5kcyBTZXF1ZW5jZU5vZGUge1xuICBjdXJyZW50SW5uZXJTZXF1ZW5jZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcbiAgc3RhcnRpbmdJbm5lclNlcXVlbmNlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuICBjbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIHRoZW4obmV4dDogU2VxdWVuY2VOb2RlKTogU2VxdWVuY2VOb2RlIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gbmV4dFxuICAgICAgdGhpcy5zdGFydGluZ0lubmVyU2VxdWVuY2UgPSBuZXh0XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgICB0aGlzLm5leHQgPSBuZXh0XG4gICAgICAgIHJldHVybiBuZXh0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS50aGVuKG5leHQpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBvblN0YXJ0KCkge1xuICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLnN0YXJ0aW5nSW5uZXJTZXF1ZW5jZVxuICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlKSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm9uU3RhcnQoKVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkge1xuICAgICAgaWYgKCF0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLmhhc0ZpbmlzaCgpKSB7XG4gICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UudXBkYXRlKGR0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5vbkZpbmlzaCgpXG4gICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm5leHRcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2Uub25TdGFydCgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25GaW5pc2goKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2Uub25GaW5pc2goKVxuICB9XG5cbiAgaGFzRmluaXNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID09IG51bGxcbiAgfVxuXG4gIGdldFNlcXVlbmNlKCk6IFNlcXVlbmNlTm9kZSB7XG4gICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHtcbiAgICAgIGxldCBpbm5lclNlcSA9IHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UuZ2V0U2VxdWVuY2UoKVxuICAgICAgaWYgKGlubmVyU2VxIGluc3RhbmNlb2YgU3ViU2VxdWVuY2VOb2RlKSB7XG4gICAgICAgIGlmICghaW5uZXJTZXEuY2xvc2VkKSB7XG4gICAgICAgICAgcmV0dXJuIGlubmVyU2VxXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG5jbGFzcyBJZlNlcXVlbmNlTm9kZSBleHRlbmRzIFN1YlNlcXVlbmNlTm9kZSB7XG4gIGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhblxuICByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbikge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbmRpdGlvbiA9IGNvbmRpdGlvblxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLnJlc3VsdCA9IHRoaXMuY29uZGl0aW9uKClcbiAgICBpZiAodGhpcy5yZXN1bHQpIHN1cGVyLm9uU3RhcnQoKVxuICAgIGVsc2UgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IG51bGxcbiAgfVxufVxuXG5jbGFzcyBFbHNlU2VxdWVuY2VOb2RlIGV4dGVuZHMgU3ViU2VxdWVuY2VOb2RlIHtcbiAgaWZTZXF1ZW5jZTogSWZTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGlmU2VxdWVuY2U6IElmU2VxdWVuY2VOb2RlKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuaWZTZXF1ZW5jZSA9IGlmU2VxdWVuY2VcbiAgfVxuXG4gIG9uU3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuaWZTZXF1ZW5jZSAmJiAhdGhpcy5pZlNlcXVlbmNlLnJlc3VsdCkgc3VwZXIub25TdGFydCgpXG4gICAgZWxzZSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gbnVsbFxuICB9XG59XG5cbmNsYXNzIFdoaWxlU2VxdWVuY2VOb2RlIGV4dGVuZHMgU3ViU2VxdWVuY2VOb2RlIHtcbiAgY29uZGl0aW9uOiAoKSA9PiBib29sZWFuXG4gIGJyZWFrV2hpbGU6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbikge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbmRpdGlvbiA9IGNvbmRpdGlvblxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLmJyZWFrV2hpbGUgPSBmYWxzZVxuICAgIGlmICh0aGlzLmNvbmRpdGlvbigpKSBzdXBlci5vblN0YXJ0KClcbiAgICBlbHNlIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSBudWxsXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlKSB7XG4gICAgICBpZiAoIXRoaXMuY3VycmVudElubmVyU2VxdWVuY2UuaGFzRmluaXNoKCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS51cGRhdGUoZHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm9uRmluaXNoKClcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UubmV4dFxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9PSBudWxsKVxuICAgICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLnN0YXJ0aW5nSW5uZXJTZXF1ZW5jZVxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5vblN0YXJ0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXNGaW5pc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYnJlYWtXaGlsZSB8fCAhdGhpcy5jb25kaXRpb24oKVxuICB9XG59XG5cbmNsYXNzIEJyZWFrV2hpbGVTZXF1ZW5jZU5vZGUgZXh0ZW5kcyBTZXF1ZW5jZU5vZGUge1xuICB3aGlsZU5vZGU6IFdoaWxlU2VxdWVuY2VOb2RlXG5cbiAgY29uc3RydWN0b3Iod2hpbGVOb2RlOiBXaGlsZVNlcXVlbmNlTm9kZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLndoaWxlTm9kZSA9IHdoaWxlTm9kZVxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLndoaWxlTm9kZS5icmVha1doaWxlID0gdHJ1ZVxuICB9XG59XG4iLCJpbXBvcnQgeyBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi90cmFuc2Zvcm0vY29tcG9uZW50L21vdmUnXG5pbXBvcnQgeyBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQvcm90YXRlJ1xuaW1wb3J0IHsgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQvc2NhbGUnXG5pbXBvcnQgeyBGb2xsb3dQYXRoQ29tcG9uZW50IH0gZnJvbSAnLi90cmFuc2Zvcm0vY29tcG9uZW50L2ZvbGxvd3BhdGgnXG5pbXBvcnQgeyBLZWVwUm90YXRpbmdDb21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQva2VlcHJvdGF0aW5nJ1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi90cmFuc2Zvcm0vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcbmltcG9ydCB7IEludGVycG9sYXRlLCBJbnRlcnBvbGF0aW9uVHlwZSB9IGZyb20gJy4vdHJhbnNmb3JtL21hdGgvaW50ZXJwb2xhdGlvbidcblxuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50LCBUb2dnbGVTdGF0ZSB9IGZyb20gJy4vdG9nZ2xlL3RvZ2dsZUNvbXBvbmVudCdcblxuaW1wb3J0IHsgRGVsYXkgfSBmcm9tICcuL3RpbWVyL2NvbXBvbmVudC9kZWxheSdcbmltcG9ydCB7IEV4cGlyZUluIH0gZnJvbSAnLi90aW1lci9jb21wb25lbnQvZXhwaXJlJ1xuaW1wb3J0IHsgSW50ZXJ2YWwgfSBmcm9tICcuL3RpbWVyL2NvbXBvbmVudC9pbnRlcnZhbCdcblxuaW1wb3J0IHtcbiAgVHJpZ2dlclN5c3RlbSxcbiAgVHJpZ2dlckJveFNoYXBlLFxuICBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gIFRyaWdnZXJDb21wb25lbnRcbn0gZnJvbSAnLi90cmlnZ2Vycy90cmlnZ2VyU3lzdGVtJ1xuXG5pbXBvcnQgeyBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0gfSBmcm9tICcuL2FjdGlvbnNTZXF1ZW5jZVN5c3RlbS9hY3Rpb25zU2VxdWVuY2VTeXN0ZW0nXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgVHJhbnNmb3JtU3lzdGVtLFxuICBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50LFxuICBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQsXG4gIFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50LFxuICBGb2xsb3dQYXRoQ29tcG9uZW50LFxuICBLZWVwUm90YXRpbmdDb21wb25lbnQsXG4gIEludGVycG9sYXRlLFxuICBJbnRlcnBvbGF0aW9uVHlwZSxcbiAgVG9nZ2xlQ29tcG9uZW50LFxuICBUb2dnbGVTdGF0ZSxcbiAgRGVsYXksXG4gIEV4cGlyZUluLFxuICBJbnRlcnZhbCxcbiAgVHJpZ2dlckNvbXBvbmVudCxcbiAgVHJpZ2dlclN5c3RlbSxcbiAgVHJpZ2dlclNwaGVyZVNoYXBlLFxuICBUcmlnZ2VyQm94U2hhcGUsXG4gIEFjdGlvbnNTZXF1ZW5jZVN5c3RlbVxufVxuIiwidmFyIGV0aGNvbm5lY3Q9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gcihuKXtpZihlW25dKXJldHVybiBlW25dLmV4cG9ydHM7dmFyIG89ZVtuXT17aTpuLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIHRbbl0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsciksby5sPSEwLG8uZXhwb3J0c31yZXR1cm4gci5tPXQsci5jPWUsci5kPWZ1bmN0aW9uKHQsZSxuKXtyLm8odCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxnZXQ6bn0pfSxyLnI9ZnVuY3Rpb24odCl7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sci50PWZ1bmN0aW9uKHQsZSl7aWYoMSZlJiYodD1yKHQpKSw4JmUpcmV0dXJuIHQ7aWYoNCZlJiZcIm9iamVjdFwiPT10eXBlb2YgdCYmdCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoci5yKG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KSwyJmUmJlwic3RyaW5nXCIhPXR5cGVvZiB0KWZvcih2YXIgbyBpbiB0KXIuZChuLG8sZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19LmJpbmQobnVsbCxvKSk7cmV0dXJuIG59LHIubj1mdW5jdGlvbih0KXt2YXIgZT10JiZ0Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gdC5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiB0fTtyZXR1cm4gci5kKGUsXCJhXCIsZSksZX0sci5vPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSxyLnA9XCJcIixyKHIucz0yOCl9KFtmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPW58fGZ1bmN0aW9uKHQsZSl7dmFyIHI9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihlKXt2YXIgcjtyZXR1cm4gdC5wcm90b3R5cGU9ZSxyPW5ldyB0LHQucHJvdG90eXBlPW51bGwscn19KCksbj17fSxvPW4ubGliPXt9LGk9by5CYXNlPXtleHRlbmQ6ZnVuY3Rpb24odCl7dmFyIGU9cih0aGlzKTtyZXR1cm4gdCYmZS5taXhJbih0KSxlLmhhc093blByb3BlcnR5KFwiaW5pdFwiKSYmdGhpcy5pbml0IT09ZS5pbml0fHwoZS5pbml0PWZ1bmN0aW9uKCl7ZS4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxlLmluaXQucHJvdG90eXBlPWUsZS4kc3VwZXI9dGhpcyxlfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmV4dGVuZCgpO3JldHVybiB0LmluaXQuYXBwbHkodCxhcmd1bWVudHMpLHR9LGluaXQ6ZnVuY3Rpb24oKXt9LG1peEluOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KXQuaGFzT3duUHJvcGVydHkoZSkmJih0aGlzW2VdPXRbZV0pO3QuaGFzT3duUHJvcGVydHkoXCJ0b1N0cmluZ1wiKSYmKHRoaXMudG9TdHJpbmc9dC50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX0scz1vLldvcmRBcnJheT1pLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSx0aGlzLnNpZ0J5dGVzPW51bGwhPWU/ZTo0KnQubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8Yykuc3RyaW5naWZ5KHRoaXMpfSxjb25jYXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53b3JkcyxyPXQud29yZHMsbj10aGlzLnNpZ0J5dGVzLG89dC5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksbiU0KWZvcih2YXIgaT0wO2k8bztpKyspe3ZhciBzPXJbaT4+PjJdPj4+MjQtaSU0KjgmMjU1O2VbbitpPj4+Ml18PXM8PDI0LShuK2kpJTQqOH1lbHNlIGZvcih2YXIgaT0wO2k8bztpKz00KWVbbitpPj4+Ml09cltpPj4+Ml07cmV0dXJuIHRoaXMuc2lnQnl0ZXMrPW8sdGhpc30sY2xhbXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLndvcmRzLHI9dGhpcy5zaWdCeXRlcztlW3I+Pj4yXSY9NDI5NDk2NzI5NTw8MzItciU0KjgsZS5sZW5ndGg9dC5jZWlsKHIvNCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0LndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksdH0scmFuZG9tOmZ1bmN0aW9uKGUpe2Zvcih2YXIgcixuPVtdLG89ZnVuY3Rpb24oZSl7dmFyIGU9ZSxyPTk4NzY1NDMyMSxuPTQyOTQ5NjcyOTU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89KChyPTM2OTY5Kig2NTUzNSZyKSsocj4+MTYpJm4pPDwxNikrKGU9MThlMyooNjU1MzUmZSkrKGU+PjE2KSZuKSZuO3JldHVybiBvLz00Mjk0OTY3Mjk2LChvKz0uNSkqKHQucmFuZG9tKCk+LjU/MTotMSl9fSxpPTA7aTxlO2krPTQpe3ZhciBhPW8oNDI5NDk2NzI5Nioocnx8dC5yYW5kb20oKSkpO3I9OTg3NjU0MDcxKmEoKSxuLnB1c2goNDI5NDk2NzI5NiphKCl8MCl9cmV0dXJuIG5ldyBzLmluaXQobixlKX19KSxhPW4uZW5jPXt9LGM9YS5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMsbj1bXSxvPTA7bzxyO28rKyl7dmFyIGk9ZVtvPj4+Ml0+Pj4yNC1vJTQqOCYyNTU7bi5wdXNoKChpPj4+NCkudG9TdHJpbmcoMTYpKSxuLnB1c2goKDE1JmkpLnRvU3RyaW5nKDE2KSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj0wO248ZTtuKz0yKXJbbj4+PjNdfD1wYXJzZUludCh0LnN1YnN0cihuLDIpLDE2KTw8MjQtbiU4KjQ7cmV0dXJuIG5ldyBzLmluaXQocixlLzIpfX0sdT1hLkxhdGluMT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPVtdLG89MDtvPHI7bysrKXt2YXIgaT1lW28+Pj4yXT4+PjI0LW8lNCo4JjI1NTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj0wO248ZTtuKyspcltuPj4+Ml18PSgyNTUmdC5jaGFyQ29kZUF0KG4pKTw8MjQtbiU0Kjg7cmV0dXJuIG5ldyBzLmluaXQocixlKX19LGw9YS5VdGY4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHUuc3RyaW5naWZ5KHQpKSl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiTWFsZm9ybWVkIFVURi04IGRhdGFcIil9fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gdS5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodCkpKX19LGg9by5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtPWkuZXh0ZW5kKHtyZXNldDpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHMuaW5pdCx0aGlzLl9uRGF0YUJ5dGVzPTB9LF9hcHBlbmQ6ZnVuY3Rpb24odCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PWwucGFyc2UodCkpLHRoaXMuX2RhdGEuY29uY2F0KHQpLHRoaXMuX25EYXRhQnl0ZXMrPXQuc2lnQnl0ZXN9LF9wcm9jZXNzOmZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX2RhdGEsbj1yLndvcmRzLG89ci5zaWdCeXRlcyxpPXRoaXMuYmxvY2tTaXplLGE9NCppLGM9by9hLHU9KGM9ZT90LmNlaWwoYyk6dC5tYXgoKDB8YyktdGhpcy5fbWluQnVmZmVyU2l6ZSwwKSkqaSxsPXQubWluKDQqdSxvKTtpZih1KXtmb3IodmFyIGg9MDtoPHU7aCs9aSl0aGlzLl9kb1Byb2Nlc3NCbG9jayhuLGgpO3ZhciBmPW4uc3BsaWNlKDAsdSk7ci5zaWdCeXRlcy09bH1yZXR1cm4gbmV3IHMuaW5pdChmLGwpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWkuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksdH0sX21pbkJ1ZmZlclNpemU6MH0pLGY9KG8uSGFzaGVyPWguZXh0ZW5kKHtjZmc6aS5leHRlbmQoKSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7aC5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgZT10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIGV9LGJsb2NrU2l6ZToxNixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVybiBuZXcgdC5pbml0KHIpLmZpbmFsaXplKGUpfX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIG5ldyBmLkhNQUMuaW5pdCh0LHIpLmZpbmFsaXplKGUpfX19KSxuLmFsZ289e30pO3JldHVybiBufShNYXRoKSxuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNSksdm9pZChuLmxpYi5DaXBoZXJ8fGZ1bmN0aW9uKHQpe3ZhciBlPW4scj1lLmxpYixvPXIuQmFzZSxpPXIuV29yZEFycmF5LHM9ci5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtLGE9ZS5lbmMsYz0oYS5VdGY4LGEuQmFzZTY0KSx1PWUuYWxnbyxsPXUuRXZwS0RGLGg9ci5DaXBoZXI9cy5leHRlbmQoe2NmZzpvLmV4dGVuZCgpLGNyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9FTkNfWEZPUk1fTU9ERSx0LGUpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsdCxlKX0saW5pdDpmdW5jdGlvbih0LGUscil7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHIpLHRoaXMuX3hmb3JtTW9kZT10LHRoaXMuX2tleT1lLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXtzLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSxwcm9jZXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLl9hcHBlbmQodCk7dmFyIGU9dGhpcy5fZG9GaW5hbGl6ZSgpO3JldHVybiBlfSxrZXlTaXplOjQsaXZTaXplOjQsX0VOQ19YRk9STV9NT0RFOjEsX0RFQ19YRk9STV9NT0RFOjIsX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/Rjp3fXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm57ZW5jcnlwdDpmdW5jdGlvbihyLG4sbyl7cmV0dXJuIHQobikuZW5jcnlwdChlLHIsbixvKX0sZGVjcnlwdDpmdW5jdGlvbihyLG4sbyl7cmV0dXJuIHQobikuZGVjcnlwdChlLHIsbixvKX19fX0oKX0pLGY9KHIuU3RyZWFtQ2lwaGVyPWguZXh0ZW5kKHtfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3Byb2Nlc3MoITApO3JldHVybiB0fSxibG9ja1NpemU6MX0pLGUubW9kZT17fSkscD1yLkJsb2NrQ2lwaGVyTW9kZT1vLmV4dGVuZCh7Y3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZSh0LGUpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5EZWNyeXB0b3IuY3JlYXRlKHQsZSl9LGluaXQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9jaXBoZXI9dCx0aGlzLl9pdj1lfX0pLGQ9Zi5DQkM9ZnVuY3Rpb24oKXt2YXIgZT1wLmV4dGVuZCgpO2Z1bmN0aW9uIHIoZSxyLG4pe3ZhciBvPXRoaXMuX2l2O2lmKG8pe3ZhciBpPW87dGhpcy5faXY9dH1lbHNlIHZhciBpPXRoaXMuX3ByZXZCbG9jaztmb3IodmFyIHM9MDtzPG47cysrKWVbcitzXV49aVtzXX1yZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplO3IuY2FsbCh0aGlzLHQsZSxvKSxuLmVuY3J5cHRCbG9jayh0LGUpLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKGUsZStvKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemUsaT10LnNsaWNlKGUsZStvKTtuLmRlY3J5cHRCbG9jayh0LGUpLHIuY2FsbCh0aGlzLHQsZSxvKSx0aGlzLl9wcmV2QmxvY2s9aX19KSxlfSgpLG09ZS5wYWQ9e30seT1tLlBrY3M3PXtwYWQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9NCplLG49ci10LnNpZ0J5dGVzJXIsbz1uPDwyNHxuPDwxNnxuPDw4fG4scz1bXSxhPTA7YTxuO2ErPTQpcy5wdXNoKG8pO3ZhciBjPWkuY3JlYXRlKHMsbik7dC5jb25jYXQoYyl9LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciBlPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPWV9fSxnPShyLkJsb2NrQ2lwaGVyPWguZXh0ZW5kKHtjZmc6aC5jZmcuZXh0ZW5kKHttb2RlOmQscGFkZGluZzp5fSkscmVzZXQ6ZnVuY3Rpb24oKXtoLnJlc2V0LmNhbGwodGhpcyk7dmFyIHQ9dGhpcy5jZmcsZT10Lml2LHI9dC5tb2RlO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpdmFyIG49ci5jcmVhdGVFbmNyeXB0b3I7ZWxzZXt2YXIgbj1yLmNyZWF0ZURlY3J5cHRvcjt0aGlzLl9taW5CdWZmZXJTaXplPTF9dGhpcy5fbW9kZSYmdGhpcy5fbW9kZS5fX2NyZWF0b3I9PW4/dGhpcy5fbW9kZS5pbml0KHRoaXMsZSYmZS53b3Jkcyk6KHRoaXMuX21vZGU9bi5jYWxsKHIsdGhpcyxlJiZlLndvcmRzKSx0aGlzLl9tb2RlLl9fY3JlYXRvcj1uKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2sodCxlKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNmZy5wYWRkaW5nO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpe3QucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpO3ZhciBlPXRoaXMuX3Byb2Nlc3MoITApfWVsc2V7dmFyIGU9dGhpcy5fcHJvY2VzcyghMCk7dC51bnBhZChlKX1yZXR1cm4gZX0sYmxvY2tTaXplOjR9KSxyLkNpcGhlclBhcmFtcz1vLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0KXt0aGlzLm1peEluKHQpfSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8dGhpcy5mb3JtYXR0ZXIpLnN0cmluZ2lmeSh0aGlzKX19KSksXz1lLmZvcm1hdD17fSx2PV8uT3BlblNTTD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY2lwaGVydGV4dCxyPXQuc2FsdDtpZihyKXZhciBuPWkuY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQocikuY29uY2F0KGUpO2Vsc2UgdmFyIG49ZTtyZXR1cm4gbi50b1N0cmluZyhjKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9Yy5wYXJzZSh0KSxyPWUud29yZHM7aWYoMTM5ODg5MzY4ND09clswXSYmMTcwMTA3NjgzMT09clsxXSl7dmFyIG49aS5jcmVhdGUoci5zbGljZSgyLDQpKTtyLnNwbGljZSgwLDQpLGUuc2lnQnl0ZXMtPTE2fXJldHVybiBnLmNyZWF0ZSh7Y2lwaGVydGV4dDplLHNhbHQ6bn0pfX0sdz1yLlNlcmlhbGl6YWJsZUNpcGhlcj1vLmV4dGVuZCh7Y2ZnOm8uZXh0ZW5kKHtmb3JtYXQ6dn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7bj10aGlzLmNmZy5leHRlbmQobik7dmFyIG89dC5jcmVhdGVFbmNyeXB0b3IocixuKSxpPW8uZmluYWxpemUoZSkscz1vLmNmZztyZXR1cm4gZy5jcmVhdGUoe2NpcGhlcnRleHQ6aSxrZXk6cixpdjpzLml2LGFsZ29yaXRobTp0LG1vZGU6cy5tb2RlLHBhZGRpbmc6cy5wYWRkaW5nLGJsb2NrU2l6ZTp0LmJsb2NrU2l6ZSxmb3JtYXR0ZXI6bi5mb3JtYXR9KX0sZGVjcnlwdDpmdW5jdGlvbih0LGUscixuKXtuPXRoaXMuY2ZnLmV4dGVuZChuKSxlPXRoaXMuX3BhcnNlKGUsbi5mb3JtYXQpO3ZhciBvPXQuY3JlYXRlRGVjcnlwdG9yKHIsbikuZmluYWxpemUoZS5jaXBoZXJ0ZXh0KTtyZXR1cm4gb30sX3BhcnNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ZS5wYXJzZSh0LHRoaXMpOnR9fSksYj1lLmtkZj17fSxCPWIuT3BlblNTTD17ZXhlY3V0ZTpmdW5jdGlvbih0LGUscixuKXtufHwobj1pLnJhbmRvbSg4KSk7dmFyIG89bC5jcmVhdGUoe2tleVNpemU6ZStyfSkuY29tcHV0ZSh0LG4pLHM9aS5jcmVhdGUoby53b3Jkcy5zbGljZShlKSw0KnIpO3JldHVybiBvLnNpZ0J5dGVzPTQqZSxnLmNyZWF0ZSh7a2V5Om8saXY6cyxzYWx0Om59KX19LEY9ci5QYXNzd29yZEJhc2VkQ2lwaGVyPXcuZXh0ZW5kKHtjZmc6dy5jZmcuZXh0ZW5kKHtrZGY6Qn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89KG49dGhpcy5jZmcuZXh0ZW5kKG4pKS5rZGYuZXhlY3V0ZShyLHQua2V5U2l6ZSx0Lml2U2l6ZSk7bi5pdj1vLml2O3ZhciBpPXcuZW5jcnlwdC5jYWxsKHRoaXMsdCxlLG8ua2V5LG4pO3JldHVybiBpLm1peEluKG8pLGl9LGRlY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7bj10aGlzLmNmZy5leHRlbmQobiksZT10aGlzLl9wYXJzZShlLG4uZm9ybWF0KTt2YXIgbz1uLmtkZi5leGVjdXRlKHIsdC5rZXlTaXplLHQuaXZTaXplLGUuc2FsdCk7bi5pdj1vLml2O3ZhciBpPXcuZGVjcnlwdC5jYWxsKHRoaXMsdCxlLG8ua2V5LG4pO3JldHVybiBpfX0pfSgpKSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTcpLG89cigzKSxpPXIoMTQpLHM9cigyNSk7ZnVuY3Rpb24gYSh0KXtuLkJpZ051bWJlci5jb25maWcoaS5FVEhfQklHTlVNQkVSX1JPVU5ESU5HX01PREUpO2xldCBlPW8ucGFkTGVmdChvLnRvVHdvc0NvbXBsZW1lbnQodCkudG9TdHJpbmcoMTYpLDY0KTtyZXR1cm4gbmV3IHMuU29saWRpdHlQYXJhbShlKX1mdW5jdGlvbiBjKHQpe3JldHVyblwiMVwiPT09bmV3IG4uQmlnTnVtYmVyKHQuc3Vic3RyKDAsMSksMTYpLnRvU3RyaW5nKDIpLnN1YnN0cigwLDEpfWZ1bmN0aW9uIHUodCl7bGV0IGU9dC5zdGF0aWNQYXJ0KCl8fFwiMFwiO3JldHVybiBjKGUpP25ldyBuLkJpZ051bWJlcihlLDE2KS5taW51cyhuZXcgbi5CaWdOdW1iZXIoXCJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmXCIsMTYpKS5taW51cygxKTpuZXcgbi5CaWdOdW1iZXIoZSwxNil9ZnVuY3Rpb24gbCh0KXtsZXQgZT10LnN0YXRpY1BhcnQoKXx8XCIwXCI7cmV0dXJuIG5ldyBuLkJpZ051bWJlcihlLDE2KX1lLmZvcm1hdElucHV0SW50PWEsZS5mb3JtYXRJbnB1dEJ5dGVzPWZ1bmN0aW9uKHQpe2xldCBlPW8udG9IZXgodCkuc3Vic3RyKDIpLHI9TWF0aC5mbG9vcigoZS5sZW5ndGgrNjMpLzY0KTtyZXR1cm4gZT1vLnBhZFJpZ2h0KGUsNjQqciksbmV3IHMuU29saWRpdHlQYXJhbShlKX0sZS5mb3JtYXRJbnB1dER5bmFtaWNCeXRlcz1mdW5jdGlvbih0KXtsZXQgZT1vLnRvSGV4KHQpLnN1YnN0cigyKSxyPWUubGVuZ3RoLzIsbj1NYXRoLmZsb29yKChlLmxlbmd0aCs2MykvNjQpO3JldHVybiBlPW8ucGFkUmlnaHQoZSw2NCpuKSxuZXcgcy5Tb2xpZGl0eVBhcmFtKGEocikudmFsdWUrZSl9LGUuZm9ybWF0SW5wdXRTdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9by5mcm9tVXRmOCh0KS5zdWJzdHIoMikscj1lLmxlbmd0aC8yLG49TWF0aC5mbG9vcigoZS5sZW5ndGgrNjMpLzY0KTtyZXR1cm4gZT1vLnBhZFJpZ2h0KGUsNjQqbiksbmV3IHMuU29saWRpdHlQYXJhbShhKHIpLnZhbHVlK2UpfSxlLmZvcm1hdElucHV0Qm9vbD1mdW5jdGlvbih0KXtsZXQgZT1cIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiKyh0P1wiMVwiOlwiMFwiKTtyZXR1cm4gbmV3IHMuU29saWRpdHlQYXJhbShlKX0sZS5mb3JtYXRJbnB1dFJlYWw9ZnVuY3Rpb24odCl7cmV0dXJuIGEobmV3IG4uQmlnTnVtYmVyKHQpLnRpbWVzKG5ldyBuLkJpZ051bWJlcigyKS5wb3coMTI4KSkpfSxlLnNpZ25lZElzTmVnYXRpdmU9YyxlLmZvcm1hdE91dHB1dEludD11LGUuZm9ybWF0T3V0cHV0VUludD1sLGUuZm9ybWF0T3V0cHV0UmVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdSh0KS5kaXZpZGVkQnkobmV3IG4uQmlnTnVtYmVyKDIpLnBvdygxMjgpKX0sZS5mb3JtYXRPdXRwdXRVUmVhbD1mdW5jdGlvbih0KXtyZXR1cm4gbCh0KS5kaXZpZGVkQnkobmV3IG4uQmlnTnVtYmVyKDIpLnBvdygxMjgpKX0sZS5mb3JtYXRPdXRwdXRCb29sPWZ1bmN0aW9uKHQpe3JldHVyblwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMVwiPT09dC5zdGF0aWNQYXJ0KCl9LGUuZm9ybWF0T3V0cHV0Qnl0ZXM9ZnVuY3Rpb24odCxlKXtsZXQgcj1lLm1hdGNoKC9eYnl0ZXMoWzAtOV0qKS8pLG49cGFyc2VJbnQoclsxXSwxMCk7cmV0dXJuXCIweFwiK3Quc3RhdGljUGFydCgpLnNsaWNlKDAsMipuKX0sZS5mb3JtYXRPdXRwdXREeW5hbWljQnl0ZXM9ZnVuY3Rpb24odCl7bGV0IGU9MipuZXcgbi5CaWdOdW1iZXIodC5keW5hbWljUGFydCgpLnNsaWNlKDAsNjQpLDE2KS50b051bWJlcigpO3JldHVyblwiMHhcIit0LmR5bmFtaWNQYXJ0KCkuc3Vic3RyKDY0LGUpfSxlLmZvcm1hdE91dHB1dFN0cmluZz1mdW5jdGlvbih0KXtsZXQgZT0yKm5ldyBuLkJpZ051bWJlcih0LmR5bmFtaWNQYXJ0KCkuc2xpY2UoMCw2NCksMTYpLnRvTnVtYmVyKCk7cmV0dXJuIG8udG9VdGY4KHQuZHluYW1pY1BhcnQoKS5zdWJzdHIoNjQsZSkpfSxlLmZvcm1hdE91dHB1dEFkZHJlc3M9ZnVuY3Rpb24odCl7bGV0IGU9dC5zdGF0aWNQYXJ0KCk7cmV0dXJuXCIweFwiK2Uuc2xpY2UoZS5sZW5ndGgtNDAsZS5sZW5ndGgpfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxNyksbz1yKDMxKSxpPXIoMzIpLHM9cigyMCk7ZnVuY3Rpb24gYSh0LGUpe2xldCByPXQ7cmV0dXJuIGUmJlwiaGV4XCI9PT1lLmVuY29kaW5nJiYoci5sZW5ndGg+MiYmXCIweFwiPT09ci5zdWJzdHIoMCwyKSYmKHI9ci5zdWJzdHIoMikpLHI9aS5lbmMuSGV4LnBhcnNlKHIpKSxzKHIse291dHB1dExlbmd0aDoyNTZ9KS50b1N0cmluZygpfWUuc2hhMz1hO2xldCBjPXtub2V0aGVyOlwiMFwiLHdlaTpcIjFcIixrd2VpOlwiMTAwMFwiLEt3ZWk6XCIxMDAwXCIsYmFiYmFnZTpcIjEwMDBcIixmZW10b2V0aGVyOlwiMTAwMFwiLG13ZWk6XCIxMDAwMDAwXCIsTXdlaTpcIjEwMDAwMDBcIixsb3ZlbGFjZTpcIjEwMDAwMDBcIixwaWNvZXRoZXI6XCIxMDAwMDAwXCIsZ3dlaTpcIjEwMDAwMDAwMDBcIixHd2VpOlwiMTAwMDAwMDAwMFwiLHNoYW5ub246XCIxMDAwMDAwMDAwXCIsbmFub2V0aGVyOlwiMTAwMDAwMDAwMFwiLG5hbm86XCIxMDAwMDAwMDAwXCIsc3phYm86XCIxMDAwMDAwMDAwMDAwXCIsbWljcm9ldGhlcjpcIjEwMDAwMDAwMDAwMDBcIixtaWNybzpcIjEwMDAwMDAwMDAwMDBcIixmaW5uZXk6XCIxMDAwMDAwMDAwMDAwMDAwXCIsbWlsbGlldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDBcIixtaWxsaTpcIjEwMDAwMDAwMDAwMDAwMDBcIixldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDAwMDBcIixrZXRoZXI6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsZ3JhbmQ6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsbWV0aGVyOlwiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLGdldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIix0ZXRoZXI6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJ9O2Z1bmN0aW9uIHUodCxlLHIpe3JldHVybiBuZXcgQXJyYXkoZS10Lmxlbmd0aCsxKS5qb2luKHJ8fFwiMFwiKSt0fWZ1bmN0aW9uIGwodCxlPSExKXtsZXQgcj1vLmVuY29kZSh0KSxuPVwiXCI7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2xldCBvPXIuY2hhckNvZGVBdCh0KTtpZigwPT09byl7aWYoIWUpYnJlYWs7bis9XCIwMFwifWVsc2V7bGV0IHQ9by50b1N0cmluZygxNik7bis9dC5sZW5ndGg8Mj9cIjBcIit0OnR9fXJldHVyblwiMHhcIitufWZ1bmN0aW9uIGgodCl7bGV0IGU9ZCh0KSxyPWUudG9TdHJpbmcoMTYpO3JldHVybiBlLmlzTGVzc1RoYW4oMCk/XCItMHhcIityLnN1YnN0cigxKTpcIjB4XCIrcn1mdW5jdGlvbiBmKHQpe2lmKHYodCkpcmV0dXJuIGgoK3QpO2lmKGcodCkpcmV0dXJuIGgodCk7aWYoXCJvYmplY3RcIj09dHlwZW9mIHQpcmV0dXJuIGwoSlNPTi5zdHJpbmdpZnkodCkpO2lmKF8odCkpe2NvbnN0IGU9dDtpZigwPT09ZS5pbmRleE9mKFwiLTB4XCIpKXJldHVybiBoKGUpO2lmKDA9PT1lLmluZGV4T2YoXCIweFwiKSlyZXR1cm4gZTtpZighaXNGaW5pdGUoZSkpcmV0dXJuIGwoZSwhMCl9cmV0dXJuIGgodCl9ZnVuY3Rpb24gcCh0KXtsZXQgZT10P3QudG9Mb3dlckNhc2UoKTpcImV0aGVyXCIscj1jW2VdO2lmKHZvaWQgMD09PXIpdGhyb3cgbmV3IEVycm9yKFwiVGhpcyB1bml0IGRvZXNuJ3QgZXhpc3RzLCBwbGVhc2UgdXNlIHRoZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB1bml0c1wiK0pTT04uc3RyaW5naWZ5KGMsbnVsbCwyKSk7cmV0dXJuIG5ldyBuLkJpZ051bWJlcihyLDEwKX1mdW5jdGlvbiBkKHQpe2xldCBlPXR8fDA7cmV0dXJuIGcoZSk/ZTpcInN0cmluZ1wiIT10eXBlb2YgZXx8MCE9PWUuaW5kZXhPZihcIjB4XCIpJiYwIT09ZS5pbmRleE9mKFwiLTB4XCIpP25ldyBuLkJpZ051bWJlcihlLnRvU3RyaW5nKDEwKSwxMCk6bmV3IG4uQmlnTnVtYmVyKGUucmVwbGFjZShcIjB4XCIsXCJcIiksMTYpfWZ1bmN0aW9uIG0odCl7cmV0dXJuL14weFswLTlhLWZdezQwfSQvaS50ZXN0KHQpfWZ1bmN0aW9uIHkodCl7Y29uc3QgZT10LnJlcGxhY2UoXCIweFwiLFwiXCIpO2xldCByPWEoZS50b0xvd2VyQ2FzZSgpKTtmb3IobGV0IHQ9MDt0PDQwO3QrKylpZihwYXJzZUludChyW3RdLDE2KT43JiZlW3RdLnRvVXBwZXJDYXNlKCkhPT1lW3RdfHxwYXJzZUludChyW3RdLDE2KTw9NyYmZVt0XS50b0xvd2VyQ2FzZSgpIT09ZVt0XSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBnKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbi5CaWdOdW1iZXJ9ZnVuY3Rpb24gXyh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdHx8dCYmdC5jb25zdHJ1Y3RvciYmXCJTdHJpbmdcIj09PXQuY29uc3RydWN0b3IubmFtZX1mdW5jdGlvbiB2KHQpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgdH1lLnBhZExlZnQ9dSxlLnBhZFJpZ2h0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCtuZXcgQXJyYXkoZS10Lmxlbmd0aCsxKS5qb2luKHJ8fFwiMFwiKX0sZS50b1V0Zjg9ZnVuY3Rpb24odCl7bGV0IGU9XCJcIixyPTAsbj10Lmxlbmd0aDtmb3IoXCIweFwiPT09dC5zdWJzdHJpbmcoMCwyKSYmKHI9Mik7cjxuO3IrPTIpe2xldCBuPXBhcnNlSW50KHQuc3Vic3RyKHIsMiksMTYpO2lmKDA9PT1uKWJyZWFrO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cmV0dXJuIG8uZGVjb2RlKGUpfSxlLnRvQXNjaWk9ZnVuY3Rpb24odCl7bGV0IGU9XCJcIixyPTAsbj10Lmxlbmd0aDtmb3IoXCIweFwiPT09dC5zdWJzdHJpbmcoMCwyKSYmKHI9Mik7cjxuO3IrPTIpe2xldCBuPXBhcnNlSW50KHQuc3Vic3RyKHIsMiksMTYpO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cmV0dXJuIGV9LGUuZnJvbVV0Zjg9bCxlLmZyb21Bc2NpaT1mdW5jdGlvbih0LGU9MCl7bGV0IHI9XCJcIjtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dC5jaGFyQ29kZUF0KGUpLnRvU3RyaW5nKDE2KTtyKz1uLmxlbmd0aDwyP1wiMFwiK246bn1yZXR1cm5cIjB4XCIrci5wYWRFbmQoZSxcIjBcIil9LGUudHJhbnNmb3JtVG9GdWxsTmFtZT1mdW5jdGlvbih0KXtpZigtMSE9PXQubmFtZS5pbmRleE9mKFwiKFwiKSlyZXR1cm4gdC5uYW1lO2xldCBlPXQuaW5wdXRzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlfSkuam9pbigpO3JldHVybiB0Lm5hbWUrXCIoXCIrZStcIilcIn0sZS5leHRyYWN0RGlzcGxheU5hbWU9ZnVuY3Rpb24odCl7bGV0IGU9dC5pbmRleE9mKFwiKFwiKSxyPXQuaW5kZXhPZihcIilcIik7cmV0dXJuLTEhPT1lJiYtMSE9PXI/dC5zdWJzdHIoMCxlKTp0fSxlLmV4dHJhY3RUeXBlTmFtZT1mdW5jdGlvbih0KXtsZXQgZT10LmluZGV4T2YoXCIoXCIpLHI9dC5pbmRleE9mKFwiKVwiKTtyZXR1cm4tMSE9PWUmJi0xIT09cj90LnN1YnN0cihlKzEsci1lLTEpLnJlcGxhY2UoXCIgXCIsXCJcIik6XCJcIn0sZS5pc0hleD1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdCYmL14weFswLTlhLWZBLUZdKyQvLnRlc3QodCl9LGUudG9OdWxsRGVjaW1hbD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90OmQodCkudG9OdW1iZXIoKX0sZS50b0RlY2ltYWw9ZnVuY3Rpb24odCl7cmV0dXJuIGQodCkudG9OdW1iZXIoKX0sZS50b1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4gZyh0KT90LnRvU3RyaW5nKDEwKTpcIlwiK3R9LGUudG9EYXRhPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0JiYhdC5zdGFydHNXaXRoKFwiMHhcIikmJi9eW0EtWmEtejAtOV0rJC8udGVzdCh0KT9cIjB4XCIrdDpmKHQpfSxlLnRvQm9vbGVhbj1mdW5jdGlvbih0KXtyZXR1cm5cImJvb2xlYW5cIj09dHlwZW9mIHQ/dDowIT09ZCh0KS50b051bWJlcigpfSxlLmZyb21EZWNpbWFsPWgsZS50b0hleD1mLGUuZ2V0VmFsdWVPZlVuaXQ9cCxlLmZyb21XZWk9ZnVuY3Rpb24odCxlKXtsZXQgcj1kKHQpLmRpdmlkZWRCeShwKGUpKTtyZXR1cm4gZyh0KT9yOnIudG9TdHJpbmcoMTApfSxlLnRvV2VpPWZ1bmN0aW9uKHQsZSl7bGV0IHI9ZCh0KS50aW1lcyhwKGUpKTtyZXR1cm4gZyh0KT9yOnIudG9TdHJpbmcoMTApfSxlLnRvQmlnTnVtYmVyPWQsZS50b1R3b3NDb21wbGVtZW50PWZ1bmN0aW9uKHQpe2xldCBlPWQodCkuaW50ZWdlclZhbHVlKCk7cmV0dXJuIGUuaXNMZXNzVGhhbigwKT9uZXcgbi5CaWdOdW1iZXIoXCJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmXCIsMTYpLnBsdXMoZSkucGx1cygxKTplfSxlLmlzU3RyaWN0QWRkcmVzcz1tLGUuaXNBZGRyZXNzPWZ1bmN0aW9uKHQpe3JldHVybiEhL14oMHgpP1swLTlhLWZdezQwfSQvaS50ZXN0KHQpJiYoISghL14oMHgpP1swLTlhLWZdezQwfSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NDB9JC8udGVzdCh0KSl8fHkodCkpfSxlLmlzQ2hlY2tzdW1BZGRyZXNzPXksZS50b0NoZWNrc3VtQWRkcmVzcz1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXJldHVyblwiXCI7Y29uc3QgZT10LnRvTG93ZXJDYXNlKCkucmVwbGFjZShcIjB4XCIsXCJcIikscj1hKGUpO2xldCBuPVwiMHhcIjtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylwYXJzZUludChyW3RdLDE2KT43P24rPWVbdF0udG9VcHBlckNhc2UoKTpuKz1lW3RdO3JldHVybiBufSxlLnRvQXJyYXk9ZnVuY3Rpb24odCl7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSB3YXMgbm90IGFuIGFycmF5OiAke0pTT04uc3RyaW5naWZ5KHQpfWApO3JldHVybiB0fSxlLnRvQWRkcmVzcz1mdW5jdGlvbih0KXtyZXR1cm4gbSh0KT90Oi9eWzAtOWEtZl17NDB9JC8udGVzdCh0KT9cIjB4XCIrdDpcIjB4XCIrdShmKHQpLnN1YnN0cigyKSw0MCl9LGUuaXNCaWdOdW1iZXI9ZyxlLmlzU3RyaW5nPV8sZS5pc0Z1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHR9LGUuaXNPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10JiYhQXJyYXkuaXNBcnJheSh0KSYmXCJvYmplY3RcIj09dHlwZW9mIHR9LGUuaXNCb29sZWFuPXYsZS5pc0FycmF5PWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfSxlLmlzSnNvbj1mdW5jdGlvbih0KXt0cnl7cmV0dXJuISFKU09OLnBhcnNlKHQpfWNhdGNoKHQpe3JldHVybiExfX0sZS5pc0Jsb29tPWZ1bmN0aW9uKHQpe3JldHVybiEoIS9eKDB4KT9bMC05YS1mXXs1MTJ9JC9pLnRlc3QodCl8fCEvXigweCk/WzAtOWEtZl17NTEyfSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NTEyfSQvLnRlc3QodCkpfSxlLmlzVG9waWM9ZnVuY3Rpb24odCl7cmV0dXJuISghL14oMHgpP1swLTlhLWZdezY0fSQvaS50ZXN0KHQpfHwhL14oMHgpP1swLTlhLWZdezY0fSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NjR9JC8udGVzdCh0KSl9fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cigyNSk7ZS5Tb2xpZGl0eVR5cGU9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5faW5wdXRGb3JtYXR0ZXI9dC5pbnB1dEZvcm1hdHRlcix0aGlzLl9vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXJ9aXNUeXBlKHQpe3Rocm93IG5ldyBFcnJvcihcInRoaXMgbWV0aG9kIHNob3VsZCBiZSBvdmVycndyaXR0ZW4gZm9yIHR5cGUgXCIrdCl9c3RhdGljUGFydExlbmd0aCh0KXtyZXR1cm4odGhpcy5uZXN0ZWRUeXBlcyh0KXx8W1wiWzFdXCJdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlSW50KHQuc2xpY2UoMSwtMSksMTApfHwxfSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQqZX0sMzIpfWlzRHluYW1pY0FycmF5KHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7cmV0dXJuISFlJiYhZVtlLmxlbmd0aC0xXS5tYXRjaCgvWzAtOV17MSx9L2cpfWlzU3RhdGljQXJyYXkodCl7bGV0IGU9dGhpcy5uZXN0ZWRUeXBlcyh0KTtyZXR1cm4hIWUmJiEhZVtlLmxlbmd0aC0xXS5tYXRjaCgvWzAtOV17MSx9L2cpfXN0YXRpY0FycmF5TGVuZ3RoKHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7aWYoZSl7Y29uc3QgdD1lW2UubGVuZ3RoLTFdLm1hdGNoKC9bMC05XXsxLH0vZyk7cmV0dXJuIHBhcnNlSW50KHRbdC5sZW5ndGgtMV18fFwiMVwiLDEwKX1yZXR1cm4gMX1uZXN0ZWROYW1lKHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7cmV0dXJuIGU/dC5zdWJzdHIoMCx0Lmxlbmd0aC1lW2UubGVuZ3RoLTFdLmxlbmd0aCk6dH1pc0R5bmFtaWNUeXBlKHQpe3JldHVybiExfW5lc3RlZFR5cGVzKHQpe3JldHVybiB0Lm1hdGNoKC8oXFxbWzAtOV0qXFxdKS9nKX1lbmNvZGUodCxlKXtpZih0aGlzLmlzRHluYW1pY0FycmF5KGUpKXtsZXQgcj10Lmxlbmd0aCxvPXRoaXMubmVzdGVkTmFtZShlKSxpPVtdO3JldHVybiBpLnB1c2gobi5mb3JtYXRJbnB1dEludChyKS5lbmNvZGUoKSksdC5mb3JFYWNoKHQ9PntpLnB1c2godGhpcy5lbmNvZGUodCxvKSl9KSxpfWlmKHRoaXMuaXNTdGF0aWNBcnJheShlKSl7bGV0IHI9dGhpcy5zdGF0aWNBcnJheUxlbmd0aChlKSxuPXRoaXMubmVzdGVkTmFtZShlKSxvPVtdO2ZvcihsZXQgZT0wO2U8cjtlKyspby5wdXNoKHRoaXMuZW5jb2RlKHRbZV0sbikpO3JldHVybiBvfXJldHVybiB0aGlzLl9pbnB1dEZvcm1hdHRlcih0LGUpLmVuY29kZSgpfWRlY29kZSh0LGUscil7aWYodGhpcy5pc0R5bmFtaWNBcnJheShyKSl7bGV0IG49cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqZSw2NCksMTYpLG89cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqbiw2NCksMTYpLGk9biszMixzPXRoaXMubmVzdGVkTmFtZShyKSxhPXRoaXMuc3RhdGljUGFydExlbmd0aChzKSxjPTMyKk1hdGguZmxvb3IoKGErMzEpLzMyKSx1PVtdO2ZvcihsZXQgZT0wO2U8bypjO2UrPWMpdS5wdXNoKHRoaXMuZGVjb2RlKHQsaStlLHMpKTtyZXR1cm4gdX1pZih0aGlzLmlzU3RhdGljQXJyYXkocikpe2xldCBuPXRoaXMuc3RhdGljQXJyYXlMZW5ndGgociksbz1lLGk9dGhpcy5uZXN0ZWROYW1lKHIpLHM9dGhpcy5zdGF0aWNQYXJ0TGVuZ3RoKGkpLGE9MzIqTWF0aC5mbG9vcigocyszMSkvMzIpLGM9W107Zm9yKGxldCBlPTA7ZTxuKmE7ZSs9YSljLnB1c2godGhpcy5kZWNvZGUodCxvK2UsaSkpO3JldHVybiBjfWlmKHRoaXMuaXNEeW5hbWljVHlwZShyKSl7bGV0IG49cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqZSw2NCksMTYpLGk9cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqbiw2NCksMTYpLHM9TWF0aC5mbG9vcigoaSszMSkvMzIpLGE9bmV3IG8uU29saWRpdHlQYXJhbSh0LnN1YnN0cigyKm4sNjQqKDErcykpLDApO3JldHVybiB0aGlzLl9vdXRwdXRGb3JtYXR0ZXIoYSxyKX1sZXQgbj10aGlzLnN0YXRpY1BhcnRMZW5ndGgociksaT1uZXcgby5Tb2xpZGl0eVBhcmFtKHQuc3Vic3RyKDIqZSwyKm4pKTtyZXR1cm4gdGhpcy5fb3V0cHV0Rm9ybWF0dGVyKGkscil9fX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGw7dC5leHBvcnRzPShuPXIoMCkscigxMSkscigxMiksaT0obz1uKS5saWIscz1pLkJhc2UsYT1pLldvcmRBcnJheSxjPW8uYWxnbyx1PWMuTUQ1LGw9Yy5FdnBLREY9cy5leHRlbmQoe2NmZzpzLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjp1LGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuY2ZnLG49ci5oYXNoZXIuY3JlYXRlKCksbz1hLmNyZWF0ZSgpLGk9by53b3JkcyxzPXIua2V5U2l6ZSxjPXIuaXRlcmF0aW9ucztpLmxlbmd0aDxzOyl7dSYmbi51cGRhdGUodSk7dmFyIHU9bi51cGRhdGUodCkuZmluYWxpemUoZSk7bi5yZXNldCgpO2Zvcih2YXIgbD0xO2w8YztsKyspdT1uLmZpbmFsaXplKHUpLG4ucmVzZXQoKTtvLmNvbmNhdCh1KX1yZXR1cm4gby5zaWdCeXRlcz00KnMsb319KSxvLkV2cEtERj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGwuY3JlYXRlKHIpLmNvbXB1dGUodCxlKX0sbi5FdnBLREYpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpO3QuZXhwb3J0cz0obj1yKDApLGk9KG89bikubGliLldvcmRBcnJheSxvLmVuYy5CYXNlNjQ9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPXRoaXMuX21hcDt0LmNsYW1wKCk7Zm9yKHZhciBvPVtdLGk9MDtpPHI7aSs9Mylmb3IodmFyIHM9KGVbaT4+PjJdPj4+MjQtaSU0KjgmMjU1KTw8MTZ8KGVbaSsxPj4+Ml0+Pj4yNC0oaSsxKSU0KjgmMjU1KTw8OHxlW2krMj4+PjJdPj4+MjQtKGkrMiklNCo4JjI1NSxhPTA7YTw0JiZpKy43NSphPHI7YSsrKW8ucHVzaChuLmNoYXJBdChzPj4+NiooMy1hKSY2MykpO3ZhciBjPW4uY2hhckF0KDY0KTtpZihjKWZvcig7by5sZW5ndGglNDspby5wdXNoKGMpO3JldHVybiBvLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLHI9dGhpcy5fbWFwLG49dGhpcy5fcmV2ZXJzZU1hcDtpZighbil7bj10aGlzLl9yZXZlcnNlTWFwPVtdO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKW5bci5jaGFyQ29kZUF0KG8pXT1vfXZhciBzPXIuY2hhckF0KDY0KTtpZihzKXt2YXIgYT10LmluZGV4T2Yocyk7LTEhPT1hJiYoZT1hKX1yZXR1cm4gZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1bXSxvPTAscz0wO3M8ZTtzKyspaWYocyU0KXt2YXIgYT1yW3QuY2hhckNvZGVBdChzLTEpXTw8cyU0KjIsYz1yW3QuY2hhckNvZGVBdChzKV0+Pj42LXMlNCoyO25bbz4+PjJdfD0oYXxjKTw8MjQtbyU0KjgsbysrfXJldHVybiBpLmNyZWF0ZShuLG8pfSh0LGUsbil9LF9tYXA6XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwifSxuLmVuYy5CYXNlNjQpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCksZnVuY3Rpb24odCl7dmFyIGU9bixyPWUubGliLG89ci5Xb3JkQXJyYXksaT1yLkhhc2hlcixzPWUuYWxnbyxhPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8NjQ7ZSsrKWFbZV09NDI5NDk2NzI5Nip0LmFicyh0LnNpbihlKzEpKXwwfSgpO3ZhciBjPXMuTUQ1PWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG8uaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4XSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MTY7cisrKXt2YXIgbj1lK3Isbz10W25dO3Rbbl09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9dmFyIGk9dGhpcy5faGFzaC53b3JkcyxzPXRbZSswXSxjPXRbZSsxXSxwPXRbZSsyXSxkPXRbZSszXSxtPXRbZSs0XSx5PXRbZSs1XSxnPXRbZSs2XSxfPXRbZSs3XSx2PXRbZSs4XSx3PXRbZSs5XSxiPXRbZSsxMF0sQj10W2UrMTFdLEY9dFtlKzEyXSxOPXRbZSsxM10saz10W2UrMTRdLHg9dFtlKzE1XSxTPWlbMF0sQT1pWzFdLE89aVsyXSxUPWlbM107Uz11KFMsQSxPLFQscyw3LGFbMF0pLFQ9dShULFMsQSxPLGMsMTIsYVsxXSksTz11KE8sVCxTLEEscCwxNyxhWzJdKSxBPXUoQSxPLFQsUyxkLDIyLGFbM10pLFM9dShTLEEsTyxULG0sNyxhWzRdKSxUPXUoVCxTLEEsTyx5LDEyLGFbNV0pLE89dShPLFQsUyxBLGcsMTcsYVs2XSksQT11KEEsTyxULFMsXywyMixhWzddKSxTPXUoUyxBLE8sVCx2LDcsYVs4XSksVD11KFQsUyxBLE8sdywxMixhWzldKSxPPXUoTyxULFMsQSxiLDE3LGFbMTBdKSxBPXUoQSxPLFQsUyxCLDIyLGFbMTFdKSxTPXUoUyxBLE8sVCxGLDcsYVsxMl0pLFQ9dShULFMsQSxPLE4sMTIsYVsxM10pLE89dShPLFQsUyxBLGssMTcsYVsxNF0pLFM9bChTLEE9dShBLE8sVCxTLHgsMjIsYVsxNV0pLE8sVCxjLDUsYVsxNl0pLFQ9bChULFMsQSxPLGcsOSxhWzE3XSksTz1sKE8sVCxTLEEsQiwxNCxhWzE4XSksQT1sKEEsTyxULFMscywyMCxhWzE5XSksUz1sKFMsQSxPLFQseSw1LGFbMjBdKSxUPWwoVCxTLEEsTyxiLDksYVsyMV0pLE89bChPLFQsUyxBLHgsMTQsYVsyMl0pLEE9bChBLE8sVCxTLG0sMjAsYVsyM10pLFM9bChTLEEsTyxULHcsNSxhWzI0XSksVD1sKFQsUyxBLE8sayw5LGFbMjVdKSxPPWwoTyxULFMsQSxkLDE0LGFbMjZdKSxBPWwoQSxPLFQsUyx2LDIwLGFbMjddKSxTPWwoUyxBLE8sVCxOLDUsYVsyOF0pLFQ9bChULFMsQSxPLHAsOSxhWzI5XSksTz1sKE8sVCxTLEEsXywxNCxhWzMwXSksUz1oKFMsQT1sKEEsTyxULFMsRiwyMCxhWzMxXSksTyxULHksNCxhWzMyXSksVD1oKFQsUyxBLE8sdiwxMSxhWzMzXSksTz1oKE8sVCxTLEEsQiwxNixhWzM0XSksQT1oKEEsTyxULFMsaywyMyxhWzM1XSksUz1oKFMsQSxPLFQsYyw0LGFbMzZdKSxUPWgoVCxTLEEsTyxtLDExLGFbMzddKSxPPWgoTyxULFMsQSxfLDE2LGFbMzhdKSxBPWgoQSxPLFQsUyxiLDIzLGFbMzldKSxTPWgoUyxBLE8sVCxOLDQsYVs0MF0pLFQ9aChULFMsQSxPLHMsMTEsYVs0MV0pLE89aChPLFQsUyxBLGQsMTYsYVs0Ml0pLEE9aChBLE8sVCxTLGcsMjMsYVs0M10pLFM9aChTLEEsTyxULHcsNCxhWzQ0XSksVD1oKFQsUyxBLE8sRiwxMSxhWzQ1XSksTz1oKE8sVCxTLEEseCwxNixhWzQ2XSksUz1mKFMsQT1oKEEsTyxULFMscCwyMyxhWzQ3XSksTyxULHMsNixhWzQ4XSksVD1mKFQsUyxBLE8sXywxMCxhWzQ5XSksTz1mKE8sVCxTLEEsaywxNSxhWzUwXSksQT1mKEEsTyxULFMseSwyMSxhWzUxXSksUz1mKFMsQSxPLFQsRiw2LGFbNTJdKSxUPWYoVCxTLEEsTyxkLDEwLGFbNTNdKSxPPWYoTyxULFMsQSxiLDE1LGFbNTRdKSxBPWYoQSxPLFQsUyxjLDIxLGFbNTVdKSxTPWYoUyxBLE8sVCx2LDYsYVs1Nl0pLFQ9ZihULFMsQSxPLHgsMTAsYVs1N10pLE89ZihPLFQsUyxBLGcsMTUsYVs1OF0pLEE9ZihBLE8sVCxTLE4sMjEsYVs1OV0pLFM9ZihTLEEsTyxULG0sNixhWzYwXSksVD1mKFQsUyxBLE8sQiwxMCxhWzYxXSksTz1mKE8sVCxTLEEscCwxNSxhWzYyXSksQT1mKEEsTyxULFMsdywyMSxhWzYzXSksaVswXT1pWzBdK1N8MCxpWzFdPWlbMV0rQXwwLGlbMl09aVsyXStPfDAsaVszXT1pWzNdK1R8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9kYXRhLHI9ZS53b3JkcyxuPTgqdGhpcy5fbkRhdGFCeXRlcyxvPTgqZS5zaWdCeXRlcztyW28+Pj41XXw9MTI4PDwyNC1vJTMyO3ZhciBpPXQuZmxvb3Iobi80Mjk0OTY3Mjk2KSxzPW47clsxNSsobys2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoaTw8OHxpPj4+MjQpfDQyNzgyNTUzNjAmKGk8PDI0fGk+Pj44KSxyWzE0KyhvKzY0Pj4+OTw8NCldPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLGUuc2lnQnl0ZXM9NCooci5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgYT10aGlzLl9oYXNoLGM9YS53b3Jkcyx1PTA7dTw0O3UrKyl7dmFyIGw9Y1t1XTtjW3VdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXJldHVybiBhfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWkuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtmdW5jdGlvbiB1KHQsZSxyLG4sbyxpLHMpe3ZhciBhPXQrKGUmcnx+ZSZuKStvK3M7cmV0dXJuKGE8PGl8YT4+PjMyLWkpK2V9ZnVuY3Rpb24gbCh0LGUscixuLG8saSxzKXt2YXIgYT10KyhlJm58ciZ+bikrbytzO3JldHVybihhPDxpfGE+Pj4zMi1pKStlfWZ1bmN0aW9uIGgodCxlLHIsbixvLGkscyl7dmFyIGE9dCsoZV5yXm4pK28rcztyZXR1cm4oYTw8aXxhPj4+MzItaSkrZX1mdW5jdGlvbiBmKHQsZSxyLG4sbyxpLHMpe3ZhciBhPXQrKHJeKGV8fm4pKStvK3M7cmV0dXJuKGE8PGl8YT4+PjMyLWkpK2V9ZS5NRDU9aS5fY3JlYXRlSGVscGVyKGMpLGUuSG1hY01ENT1pLl9jcmVhdGVIbWFjSGVscGVyKGMpfShNYXRoKSxuLk1ENSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMyksbz1yKDE0KTtmdW5jdGlvbiBpKHQpe3JldHVyblwibGF0ZXN0XCI9PT10fHxcInBlbmRpbmdcIj09PXR8fFwiZWFybGllc3RcIj09PXR9ZnVuY3Rpb24gcyh0KXtpZih2b2lkIDAhPT10JiZudWxsIT10KXJldHVybiBpKHQpP3Q6bi50b0hleCh0KX1mdW5jdGlvbiBhKHQpe3JldHVybiB0PyhudWxsIT09dC5ibG9ja051bWJlciYmKHQuYmxvY2tOdW1iZXI9bi50b0RlY2ltYWwodC5ibG9ja051bWJlcikpLG51bGwhPT10LnRyYW5zYWN0aW9uSW5kZXgmJih0LnRyYW5zYWN0aW9uSW5kZXg9bi50b0RlY2ltYWwodC50cmFuc2FjdGlvbkluZGV4KSksdC5ub25jZT1uLnRvRGVjaW1hbCh0Lm5vbmNlKSx0Lmdhcz1uLnRvRGVjaW1hbCh0LmdhcyksdC5nYXNQcmljZT1uLnRvQmlnTnVtYmVyKHQuZ2FzUHJpY2UpLHQudmFsdWU9bi50b0JpZ051bWJlcih0LnZhbHVlKSx0KTpudWxsfWZ1bmN0aW9uIGModCl7cmV0dXJuIHQ/KHQuYmxvY2tOdW1iZXImJih0LmJsb2NrTnVtYmVyPW4udG9EZWNpbWFsKHQuYmxvY2tOdW1iZXIpKSx0LnRyYW5zYWN0aW9uSW5kZXgmJih0LnRyYW5zYWN0aW9uSW5kZXg9bi50b0RlY2ltYWwodC50cmFuc2FjdGlvbkluZGV4KSksdC5sb2dJbmRleCYmKHQubG9nSW5kZXg9bi50b0RlY2ltYWwodC5sb2dJbmRleCkpLHQpOm51bGx9ZnVuY3Rpb24gdSh0KXtpZihuLmlzU3RyaWN0QWRkcmVzcyh0KSlyZXR1cm4gdDtpZihuLmlzQWRkcmVzcyh0KSlyZXR1cm5cIjB4XCIrdDt0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYWRkcmVzczogJHtKU09OLnN0cmluZ2lmeSh0KX1gKX1lLm91dHB1dEJpZ051bWJlckZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbi50b0JpZ051bWJlcih0KX0sZS5pc1ByZWRlZmluZWRCbG9ja051bWJlcj1pLGUuaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/by5kZWZhdWx0QmxvY2s6cyh0KX0sZS5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyPXMsZS5pbnB1dENhbGxGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZnJvbT10LmZyb20sdC5mcm9tJiYodC5mcm9tPXUodC5mcm9tKSksdC50byYmKHQudG89dSh0LnRvKSksW1wiZ2FzUHJpY2VcIixcImdhc1wiLFwidmFsdWVcIixcIm5vbmNlXCJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09dFtlXX0pLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXT1uLmZyb21EZWNpbWFsKHRbZV0pfSksdC5kYXRhJiYhdC5kYXRhLnN0YXJ0c1dpdGgoXCIweFwiKSYmL15bQS1aYS16MC05XSskLy50ZXN0KHQuZGF0YSkmJih0LmRhdGE9XCIweFwiK3QuZGF0YSksdH0sZS5pbnB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihcIkRpZCBub3QgcHJvdmlkZSB0cmFuc2FjdGlvbiBvcHRpb25zXCIpO2lmKCF0LmZyb20pdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFwiZnJvbVwiIGluIHRyYW5zYWN0aW9uIG9wdGlvbnMnKTtyZXR1cm4gdC5mcm9tPXUodC5mcm9tKSx0LnRvJiYodC50bz11KHQudG8pKSxbXCJnYXNQcmljZVwiLFwiZ2FzXCIsXCJ2YWx1ZVwiLFwibm9uY2VcIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSkuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPW4uZnJvbURlY2ltYWwodFtlXSl9KSx0LmRhdGEmJiF0LmRhdGEuc3RhcnRzV2l0aChcIjB4XCIpJiYvXltBLVphLXowLTldKyQvLnRlc3QodC5kYXRhKSYmKHQuZGF0YT1cIjB4XCIrdC5kYXRhKSx0fSxlLm91dHB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyPWEsZS5vdXRwdXRUcmFuc2FjdGlvblJlY2VpcHRGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KG51bGwhPT10LmJsb2NrTnVtYmVyJiYodC5ibG9ja051bWJlcj1uLnRvRGVjaW1hbCh0LmJsb2NrTnVtYmVyKSksbnVsbCE9PXQudHJhbnNhY3Rpb25JbmRleCYmKHQudHJhbnNhY3Rpb25JbmRleD1uLnRvRGVjaW1hbCh0LnRyYW5zYWN0aW9uSW5kZXgpKSx0LmN1bXVsYXRpdmVHYXNVc2VkPW4udG9EZWNpbWFsKHQuY3VtdWxhdGl2ZUdhc1VzZWQpLHQuZ2FzVXNlZD1uLnRvRGVjaW1hbCh0Lmdhc1VzZWQpLG4uaXNBcnJheSh0LmxvZ3MpJiYodC5sb2dzPXQubG9ncy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGModCl9KSksdC5zdGF0dXM9bi50b0RlY2ltYWwodC5zdGF0dXMpLHQpOm51bGx9LGUub3V0cHV0QmxvY2tGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KHQuZ2FzTGltaXQ9bi50b0RlY2ltYWwodC5nYXNMaW1pdCksdC5nYXNVc2VkPW4udG9EZWNpbWFsKHQuZ2FzVXNlZCksdC5zaXplPW4udG9EZWNpbWFsKHQuc2l6ZSksdC50aW1lc3RhbXA9bi50b0RlY2ltYWwodC50aW1lc3RhbXApLG51bGwhPT10Lm51bWJlciYmKHQubnVtYmVyPW4udG9EZWNpbWFsKHQubnVtYmVyKSksdC5kaWZmaWN1bHR5PW4udG9CaWdOdW1iZXIodC5kaWZmaWN1bHR5KSx0LnRvdGFsRGlmZmljdWx0eT1uLnRvQmlnTnVtYmVyKHQudG90YWxEaWZmaWN1bHR5KSxuLmlzQXJyYXkodC50cmFuc2FjdGlvbnMpJiZ0LnRyYW5zYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCFuLmlzU3RyaW5nKHQpKXJldHVybiBhKHQpfSksdCk6bnVsbH0sZS5vdXRwdXRMb2dGb3JtYXR0ZXI9YyxlLmlucHV0UG9zdEZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD8odC50dGw9bi5mcm9tRGVjaW1hbCh0LnR0bCksdC53b3JrVG9Qcm92ZT1uLmZyb21EZWNpbWFsKHQud29ya1RvUHJvdmUpLHQucHJpb3JpdHk9bi5mcm9tRGVjaW1hbCh0LnByaW9yaXR5KSxuLmlzQXJyYXkodC50b3BpY3MpfHwodC50b3BpY3M9dC50b3BpY3M/W3QudG9waWNzXTpbXSksdC50b3BpY3M9dC50b3BpY3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5pbmRleE9mKFwiMHhcIik/dDpuLmZyb21VdGY4KHQpfSksdCk6bnVsbH0sZS5vdXRwdXRQb3N0Rm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0LmV4cGlyeT1uLnRvRGVjaW1hbCh0LmV4cGlyeSksdC5zZW50PW4udG9EZWNpbWFsKHQuc2VudCksdC50dGw9bi50b0RlY2ltYWwodC50dGwpLHQud29ya1Byb3ZlZD1uLnRvRGVjaW1hbCh0LndvcmtQcm92ZWQpLHQudG9waWNzfHwodC50b3BpY3M9W10pLHQudG9waWNzPXQudG9waWNzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gbi50b0FzY2lpKHQpfSksdCk6bnVsbH0sZS5pbnB1dEFkZHJlc3NGb3JtYXR0ZXI9dSxlLm91dHB1dFN5bmNpbmdGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KHQuc3RhcnRpbmdCbG9jaz1uLnRvRGVjaW1hbCh0LnN0YXJ0aW5nQmxvY2spLHQuY3VycmVudEJsb2NrPW4udG9EZWNpbWFsKHQuY3VycmVudEJsb2NrKSx0LmhpZ2hlc3RCbG9jaz1uLnRvRGVjaW1hbCh0LmhpZ2hlc3RCbG9jayksdC5rbm93blN0YXRlcyYmKHQua25vd25TdGF0ZXM9bi50b0RlY2ltYWwodC5rbm93blN0YXRlcyksdC5wdWxsZWRTdGF0ZXM9bi50b0RlY2ltYWwodC5wdWxsZWRTdGF0ZXMpKSx0KTp0fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oKXtsZXQgdCxlO2NvbnN0IHI9bmV3IFByb21pc2UoKG4sbyk9Pnt0PSh0PT57bih0KSxyLmlzUGVuZGluZz0hMX0pLGU9KHQ9PntvKHQpLHIuaXNQZW5kaW5nPSExfSl9KS5jYXRjaCh0PT5Qcm9taXNlLnJlamVjdCh0KSk7cmV0dXJuIHIucmVzb2x2ZT10LHIucmVqZWN0PWUsXCJmaW5hbGx5XCJpbiByfHwoci5maW5hbGx5PSh0PT57ci50aGVuKHQpLHIuY2F0Y2godCl9KSksci5pc1BlbmRpbmc9ITAscn1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLmZ1dHVyZT1uLGUuZGVmYXVsdD1ufSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjO3QuZXhwb3J0cz0obj1yKDApLGk9KG89bikubGliLHM9aS5CYXNlLGE9aS5Xb3JkQXJyYXksKGM9by54NjQ9e30pLldvcmQ9cy5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0aGlzLmhpZ2g9dCx0aGlzLmxvdz1lfX0pLGMuV29yZEFycmF5PXMuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLHRoaXMuc2lnQnl0ZXM9bnVsbCE9ZT9lOjgqdC5sZW5ndGh9LHRvWDMyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMud29yZHMsZT10Lmxlbmd0aCxyPVtdLG49MDtuPGU7bisrKXt2YXIgbz10W25dO3IucHVzaChvLmhpZ2gpLHIucHVzaChvLmxvdyl9cmV0dXJuIGEuY3JlYXRlKHIsdGhpcy5zaWdCeXRlcyl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXMuY2xvbmUuY2FsbCh0aGlzKSxlPXQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxyPWUubGVuZ3RoLG49MDtuPHI7bisrKWVbbl09ZVtuXS5jbG9uZSgpO3JldHVybiB0fX0pLG4pfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHUsbDt0LmV4cG9ydHM9KG49cigwKSxpPShvPW4pLmxpYixzPWkuV29yZEFycmF5LGE9aS5IYXNoZXIsYz1vLmFsZ28sdT1bXSxsPWMuU0hBMT1hLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBzLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sYz0wO2M8ODA7YysrKXtpZihjPDE2KXVbY109MHx0W2UrY107ZWxzZXt2YXIgbD11W2MtM11edVtjLThdXnVbYy0xNF1edVtjLTE2XTt1W2NdPWw8PDF8bD4+PjMxfXZhciBoPShuPDw1fG4+Pj4yNykrYSt1W2NdO2grPWM8MjA/MTUxODUwMDI0OSsobyZpfH5vJnMpOmM8NDA/MTg1OTc3NTM5Mysob15pXnMpOmM8NjA/KG8maXxvJnN8aSZzKS0xODk0MDA3NTg4OihvXmlecyktODk5NDk3NTE0LGE9cyxzPWksaT1vPDwzMHxvPj4+MixvPW4sbj1ofXJbMF09clswXStufDAsclsxXT1yWzFdK298MCxyWzJdPXJbMl0raXwwLHJbM109clszXStzfDAscls0XT1yWzRdK2F8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxyPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztyZXR1cm4gZVtuPj4+NV18PTEyODw8MjQtbiUzMixlWzE0KyhuKzY0Pj4+OTw8NCldPU1hdGguZmxvb3Ioci80Mjk0OTY3Mjk2KSxlWzE1KyhuKzY0Pj4+OTw8NCldPXIsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWEuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KSxvLlNIQTE9YS5fY3JlYXRlSGVscGVyKGwpLG8uSG1hY1NIQTE9YS5fY3JlYXRlSG1hY0hlbHBlcihsKSxuLlNIQTEpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHU7dC5leHBvcnRzPShuPXIoMCksaT0obz1uKS5saWIscz1pLkJhc2UsYT1vLmVuYyxjPWEuVXRmOCx1PW8uYWxnbyx2b2lkKHUuSE1BQz1zLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy5faGFzaGVyPW5ldyB0LmluaXQsXCJzdHJpbmdcIj09dHlwZW9mIGUmJihlPWMucGFyc2UoZSkpO3ZhciByPXQuYmxvY2tTaXplLG49NCpyO2Uuc2lnQnl0ZXM+biYmKGU9dC5maW5hbGl6ZShlKSksZS5jbGFtcCgpO2Zvcih2YXIgbz10aGlzLl9vS2V5PWUuY2xvbmUoKSxpPXRoaXMuX2lLZXk9ZS5jbG9uZSgpLHM9by53b3JkcyxhPWkud29yZHMsdT0wO3U8cjt1Kyspc1t1XV49MTU0OTU1NjgyOCxhW3VdXj05MDk1MjI0ODY7by5zaWdCeXRlcz1pLnNpZ0J5dGVzPW4sdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2hhc2hlcjt0LnJlc2V0KCksdC51cGRhdGUodGhpcy5faUtleSl9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZSh0KSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9oYXNoZXIscj1lLmZpbmFsaXplKHQpO2UucmVzZXQoKTt2YXIgbj1lLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQocikpO3JldHVybiBufX0pKSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLkludmFsaWROdW1iZXJPZlNvbGlkaXR5QXJncz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRXJyb3IoYEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBTb2xpZGl0eSBmdW5jdGlvbi4gZ2l2ZW46ICR7dH0sIGV4cGVjdGVkOiAke2V9YCl9LGUuSW52YWxpZE51bWJlck9mUlBDUGFyYW1zPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbmV3IEVycm9yKGBJbnZhbGlkIG51bWJlciBvZiBpbnB1dCBwYXJhbWV0ZXJzIHRvIFJQQyBtZXRob2QgXCIke3R9XCIgZ2l2ZW46ICR7ZX0sIGV4cGVjdGVkOiAke3J9YCl9LGUuSW52YWxpZENvbm5lY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBFcnJvcihcIkNPTk5FQ1RJT04gRVJST1I6IENvdWxkbid0IGNvbm5lY3QgdG8gbm9kZSBcIit0K1wiLlwiKX0sZS5JbnZhbGlkUHJvdmlkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEVycm9yKFwiUHJvdmlkZXIgbm90IHNldCBvciBpbnZhbGlkXCIpfSxlLkludmFsaWRSZXNwb25zZT1mdW5jdGlvbih0KXtsZXQgZT10JiZ0LmVycm9yJiZ0LmVycm9yLm1lc3NhZ2U/dC5lcnJvci5tZXNzYWdlOlwiSW52YWxpZCBKU09OIFJQQyByZXNwb25zZTogXCIrSlNPTi5zdHJpbmdpZnkodCk7cmV0dXJuIG5ldyBFcnJvcihlKX0sZS5Db25uZWN0aW9uVGltZW91dD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEVycm9yKFwiQ09OTkVDVElPTiBUSU1FT1VUOiB0aW1lb3V0IG9mIFwiK3QrXCIgbXMgYWNoaXZlZFwiKX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoNTcpO2UuRVRIX1VOSVRTPVtcIndlaVwiLFwia3dlaVwiLFwiTXdlaVwiLFwiR3dlaVwiLFwic3phYm9cIixcImZpbm5leVwiLFwiZmVtdG9ldGhlclwiLFwicGljb2V0aGVyXCIsXCJuYW5vZXRoZXJcIixcIm1pY3JvZXRoZXJcIixcIm1pbGxpZXRoZXJcIixcIm5hbm9cIixcIm1pY3JvXCIsXCJtaWxsaVwiLFwiZXRoZXJcIixcImdyYW5kXCIsXCJNZXRoZXJcIixcIkdldGhlclwiLFwiVGV0aGVyXCIsXCJQZXRoZXJcIixcIkVldGhlclwiLFwiWmV0aGVyXCIsXCJZZXRoZXJcIixcIk5ldGhlclwiLFwiRGV0aGVyXCIsXCJWZXRoZXJcIixcIlVldGhlclwiXSxlLkVUSF9QQURESU5HPTMyLGUuRVRIX1NJR05BVFVSRV9MRU5HVEg9NCxlLkVUSF9CSUdOVU1CRVJfUk9VTkRJTkdfTU9ERT17Uk9VTkRJTkdfTU9ERTpuLkJpZ051bWJlclJvdW5kaW5nTW9kZS5ST1VORF9ET1dOfSxlLkVUSF9QT0xMSU5HX1RJTUVPVVQ9NTAwLGUuZGVmYXVsdEJsb2NrPVwibGF0ZXN0XCJ9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDYxKSxpPXIoNjIpLHM9cig2MyksYT1yKDY0KSxjPXIoNjUpLHU9cig2NiksbD1yKDY3KSxoPXIoNjgpLGY9cig2OSk7ZnVuY3Rpb24gcCh0LGUpe3JldHVybiB0LmlzRHluYW1pY1R5cGUoZSl8fHQuaXNEeW5hbWljQXJyYXkoZSl9Y2xhc3MgZHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl90eXBlcz10fV9yZXF1aXJlVHlwZSh0KXtsZXQgZT10aGlzLl90eXBlcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNUeXBlKHQpfSlbMF07aWYoIWUpdGhyb3cgRXJyb3IoXCJpbnZhbGlkIHNvbGlkaXR5IHR5cGUhOiBcIit0KTtyZXR1cm4gZX1lbmNvZGVQYXJhbSh0LGUpe3JldHVybiB0aGlzLmVuY29kZVBhcmFtcyhbdF0sW2VdKX1lbmNvZGVQYXJhbXModCxlKXtsZXQgcj10aGlzLmdldFNvbGlkaXR5VHlwZXModCksbj1yLm1hcChmdW5jdGlvbihyLG4pe3JldHVybiByLmVuY29kZShlW25dLHRbbl0pfSksbz1yLnJlZHVjZShmdW5jdGlvbihlLG4sbyl7bGV0IGk9bi5zdGF0aWNQYXJ0TGVuZ3RoKHRbb10pLHM9MzIqTWF0aC5mbG9vcigoaSszMSkvMzIpO3JldHVybiBlKyhwKHJbb10sdFtvXSk/MzI6cyl9LDApO3JldHVybiB0aGlzLmVuY29kZU11bHRpV2l0aE9mZnNldCh0LHIsbixvKX1lbmNvZGVNdWx0aVdpdGhPZmZzZXQodCxlLHIsbyl7bGV0IGk9byxzPVwiXCI7cmV0dXJuIHQuZm9yRWFjaCgobyxhKT0+e2lmKHAoZVthXSx0W2FdKSl7cys9bi5mb3JtYXRJbnB1dEludChpKS5lbmNvZGUoKTtsZXQgbz10aGlzLmVuY29kZVdpdGhPZmZzZXQodFthXSxlW2FdLHJbYV0saSk7aSs9by5sZW5ndGgvMn1lbHNlIHMrPXRoaXMuZW5jb2RlV2l0aE9mZnNldCh0W2FdLGVbYV0sclthXSxpKX0pLHQuZm9yRWFjaCgobixvKT0+e2lmKHAoZVtvXSx0W29dKSl7bGV0IG49dGhpcy5lbmNvZGVXaXRoT2Zmc2V0KHRbb10sZVtvXSxyW29dLGkpO2krPW4ubGVuZ3RoLzIscys9bn19KSxzfWVuY29kZVdpdGhPZmZzZXQodCxlLHIsbyl7bGV0IGk9MSxzPTIsYT0zLGM9ZS5pc0R5bmFtaWNBcnJheSh0KT9pOmUuaXNTdGF0aWNBcnJheSh0KT9zOmE7aWYoYyE9PWEpe2xldCBhPWUubmVzdGVkTmFtZSh0KSx1PWUuc3RhdGljUGFydExlbmd0aChhKSxsPWM9PT1pP3JbMF06XCJcIjtpZihlLmlzRHluYW1pY0FycmF5KGEpKXtsZXQgdD1jPT09aT8yOjA7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspYz09PWk/dCs9K3JbZS0xXVswXXx8MDpjPT09cyYmKHQrPSsocltlLTFdfHxbXSlbMF18fDApLGwrPW4uZm9ybWF0SW5wdXRJbnQobytlKnUrMzIqdCkuZW5jb2RlKCl9bGV0IGg9Yz09PWk/ci5sZW5ndGgtMTpyLmxlbmd0aDtmb3IobGV0IHQ9MDt0PGg7dCsrKXtsZXQgbj1sLzI7Yz09PWk/bCs9dGhpcy5lbmNvZGVXaXRoT2Zmc2V0KGEsZSxyW3QrMV0sbytuKTpjPT09cyYmKGwrPXRoaXMuZW5jb2RlV2l0aE9mZnNldChhLGUsclt0XSxvK24pKX1yZXR1cm4gbH1yZXR1cm4gcn1kZWNvZGVQYXJhbSh0LGUpe3JldHVybiB0aGlzLmRlY29kZVBhcmFtcyhbdF0sZSlbMF19ZGVjb2RlUGFyYW1zKHQsZSl7bGV0IHI9dGhpcy5nZXRTb2xpZGl0eVR5cGVzKHQpLG49dGhpcy5nZXRPZmZzZXRzKHQscik7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHIsbyl7cmV0dXJuIHIuZGVjb2RlKGUsbltvXSx0W29dKX0pfWdldE9mZnNldHModCxlKXtsZXQgcj1lLm1hcChmdW5jdGlvbihlLHIpe3JldHVybiBlLnN0YXRpY1BhcnRMZW5ndGgodFtyXSl9KTtmb3IobGV0IHQ9MTt0PHIubGVuZ3RoO3QrKylyW3RdKz1yW3QtMV07cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHIsbil7cmV0dXJuIHItZVtuXS5zdGF0aWNQYXJ0TGVuZ3RoKHRbbl0pfSl9Z2V0U29saWRpdHlUeXBlcyh0KXtyZXR1cm4gdC5tYXAodD0+dGhpcy5fcmVxdWlyZVR5cGUodCkpfX1lLlNvbGlkaXR5Q29kZXI9ZCxlLmNvZGVyPW5ldyBkKFtuZXcgby5Tb2xpZGl0eVR5cGVBZGRyZXNzLG5ldyBpLlNvbGlkaXR5VHlwZUJvb2wsbmV3IHMuU29saWRpdHlUeXBlSW50LG5ldyBhLlNvbGlkaXR5VHlwZVVJbnQsbmV3IGMuU29saWRpdHlUeXBlRHluYW1pY0J5dGVzLG5ldyBmLlNvbGlkaXR5VHlwZUJ5dGVzLG5ldyB1LlNvbGlkaXR5VHlwZVN0cmluZyxuZXcgbC5Tb2xpZGl0eVR5cGVSZWFsLG5ldyBoLlNvbGlkaXR5VHlwZVVSZWFsXSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLnRvUlBDPWZ1bmN0aW9uKHQpe2lmKHQuanNvbnJwYz1cIjIuMFwiLCF0LmlkfHxcIm51bWJlclwiIT10eXBlb2YgdC5pZHx8TWF0aC5mbG9vcih0LmlkKSE9PXQuaWQpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJQQyBtZXNzYWdlKGludmFsaWQgaWQpIG1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7aWYoIXQubWV0aG9kfHxcInN0cmluZ1wiIT10eXBlb2YgdC5tZXRob2R8fDA9PT10Lm1ldGhvZC50cmltKCkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSUEMgbWVzc2FnZShpbnZhbGlkIG1ldGhvZCkgbWVzc2FnZTogJHtKU09OLnN0cmluZ2lmeSh0KX1gKTtpZighdC5wYXJhbXN8fFwib2JqZWN0XCIhPXR5cGVvZiB0LnBhcmFtcyl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUlBDIG1lc3NhZ2UoaW52YWxpZCBwYXJhbXMpIG1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7cmV0dXJuIHR9fSxmdW5jdGlvbih0LGUscil7dmFyIG47IWZ1bmN0aW9uKG8pe1widXNlIHN0cmljdFwiO3ZhciBpLHM9L14tPyg/OlxcZCsoPzpcXC5cXGQqKT98XFwuXFxkKykoPzplWystXT9cXGQrKT8kL2ksYT1NYXRoLmNlaWwsYz1NYXRoLmZsb29yLHU9XCJbQmlnTnVtYmVyIEVycm9yXSBcIixsPXUrXCJOdW1iZXIgcHJpbWl0aXZlIGhhcyBtb3JlIHRoYW4gMTUgc2lnbmlmaWNhbnQgZGlnaXRzOiBcIixoPTFlMTQsZj0xNCxwPTkwMDcxOTkyNTQ3NDA5OTEsZD1bMSwxMCwxMDAsMWUzLDFlNCwxZTUsMWU2LDFlNywxZTgsMWU5LDFlMTAsMWUxMSwxZTEyLDFlMTNdLG09MWU3LHk9MWU5O2Z1bmN0aW9uIGcodCl7dmFyIGU9MHx0O3JldHVybiB0PjB8fHQ9PT1lP2U6ZS0xfWZ1bmN0aW9uIF8odCl7Zm9yKHZhciBlLHIsbj0xLG89dC5sZW5ndGgsaT10WzBdK1wiXCI7bjxvOyl7Zm9yKGU9dFtuKytdK1wiXCIscj1mLWUubGVuZ3RoO3ItLTtlPVwiMFwiK2UpO2krPWV9Zm9yKG89aS5sZW5ndGg7NDg9PT1pLmNoYXJDb2RlQXQoLS1vKTspO3JldHVybiBpLnNsaWNlKDAsbysxfHwxKX1mdW5jdGlvbiB2KHQsZSl7dmFyIHIsbixvPXQuYyxpPWUuYyxzPXQucyxhPWUucyxjPXQuZSx1PWUuZTtpZighc3x8IWEpcmV0dXJuIG51bGw7aWYocj1vJiYhb1swXSxuPWkmJiFpWzBdLHJ8fG4pcmV0dXJuIHI/bj8wOi1hOnM7aWYocyE9YSlyZXR1cm4gcztpZihyPXM8MCxuPWM9PXUsIW98fCFpKXJldHVybiBuPzA6IW9ecj8xOi0xO2lmKCFuKXJldHVybiBjPnVecj8xOi0xO2ZvcihhPShjPW8ubGVuZ3RoKTwodT1pLmxlbmd0aCk/Yzp1LHM9MDtzPGE7cysrKWlmKG9bc10hPWlbc10pcmV0dXJuIG9bc10+aVtzXV5yPzE6LTE7cmV0dXJuIGM9PXU/MDpjPnVecj8xOi0xfWZ1bmN0aW9uIHcodCxlLHIsbil7aWYodDxlfHx0PnJ8fHQhPT0odDwwP2EodCk6Yyh0KSkpdGhyb3cgRXJyb3IodSsobnx8XCJBcmd1bWVudFwiKSsoXCJudW1iZXJcIj09dHlwZW9mIHQ/dDxlfHx0PnI/XCIgb3V0IG9mIHJhbmdlOiBcIjpcIiBub3QgYW4gaW50ZWdlcjogXCI6XCIgbm90IGEgcHJpbWl0aXZlIG51bWJlcjogXCIpK3QpfWZ1bmN0aW9uIGIodCl7cmV0dXJuXCJbb2JqZWN0IEFycmF5XVwiPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gQih0KXt2YXIgZT10LmMubGVuZ3RoLTE7cmV0dXJuIGcodC5lL2YpPT1lJiZ0LmNbZV0lMiE9MH1mdW5jdGlvbiBGKHQsZSl7cmV0dXJuKHQubGVuZ3RoPjE/dC5jaGFyQXQoMCkrXCIuXCIrdC5zbGljZSgxKTp0KSsoZTwwP1wiZVwiOlwiZStcIikrZX1mdW5jdGlvbiBOKHQsZSxyKXt2YXIgbixvO2lmKGU8MCl7Zm9yKG89citcIi5cIjsrK2U7bys9cik7dD1vK3R9ZWxzZSBpZigrK2U+KG49dC5sZW5ndGgpKXtmb3Iobz1yLGUtPW47LS1lO28rPXIpO3QrPW99ZWxzZSBlPG4mJih0PXQuc2xpY2UoMCxlKStcIi5cIit0LnNsaWNlKGUpKTtyZXR1cm4gdH0oaT1mdW5jdGlvbiB0KGUpe3ZhciByLG4sbyxpLGsseCxTLEEsTyxUPVcucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpXLHRvU3RyaW5nOm51bGwsdmFsdWVPZjpudWxsfSxQPW5ldyBXKDEpLE09MjAsQz00LEU9LTcsRD0yMSxSPS0xZTcsST0xZTcsSD0hMSxqPTEsVT0wLEw9e2RlY2ltYWxTZXBhcmF0b3I6XCIuXCIsZ3JvdXBTZXBhcmF0b3I6XCIsXCIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFyYXRvcjpcIsKgXCIsZnJhY3Rpb25Hcm91cFNpemU6MH0sej1cIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elwiO2Z1bmN0aW9uIFcodCxlKXt2YXIgcixpLGEsdSxoLGQsbSx5PXRoaXM7aWYoISh5IGluc3RhbmNlb2YgVykpcmV0dXJuIG5ldyBXKHQsZSk7aWYobnVsbD09ZSl7aWYodCBpbnN0YW5jZW9mIFcpcmV0dXJuIHkucz10LnMseS5lPXQuZSx2b2lkKHkuYz0odD10LmMpP3Quc2xpY2UoKTp0KTtpZigoaD1cIm51bWJlclwiPT10eXBlb2YgdCkmJjAqdD09MCl7aWYoeS5zPTEvdDwwPyh0PS10LC0xKToxLHQ9PT1+fnQpe2ZvcihhPTAsdT10O3U+PTEwO3UvPTEwLGErKyk7cmV0dXJuIHkuZT1hLHZvaWQoeS5jPVt0XSl9bT10K1wiXCJ9ZWxzZXtpZighcy50ZXN0KG09dCtcIlwiKSlyZXR1cm4gbyh5LG0saCk7eS5zPTQ1PT1tLmNoYXJDb2RlQXQoMCk/KG09bS5zbGljZSgxKSwtMSk6MX19ZWxzZXtpZih3KGUsMix6Lmxlbmd0aCxcIkJhc2VcIiksbT10K1wiXCIsMTA9PWUpcmV0dXJuIFYoeT1uZXcgVyh0IGluc3RhbmNlb2YgVz90Om0pLE0reS5lKzEsQyk7aWYoaD1cIm51bWJlclwiPT10eXBlb2YgdCl7aWYoMCp0IT0wKXJldHVybiBvKHksbSxoLGUpO2lmKHkucz0xL3Q8MD8obT1tLnNsaWNlKDEpLC0xKToxLFcuREVCVUcmJm0ucmVwbGFjZSgvXjBcXC4wKnxcXC4vLFwiXCIpLmxlbmd0aD4xNSl0aHJvdyBFcnJvcihsK3QpO2g9ITF9ZWxzZSB5LnM9NDU9PT1tLmNoYXJDb2RlQXQoMCk/KG09bS5zbGljZSgxKSwtMSk6MSxlPjEwJiZlPDM3JiYobT1tLnRvTG93ZXJDYXNlKCkpO2ZvcihyPXouc2xpY2UoMCxlKSxhPXU9MCxkPW0ubGVuZ3RoO3U8ZDt1KyspaWYoci5pbmRleE9mKGk9bS5jaGFyQXQodSkpPDApe2lmKFwiLlwiPT1pJiZ1PmEpe2E9ZDtjb250aW51ZX1yZXR1cm4gbyh5LHQrXCJcIixoLGUpfW09bihtLGUsMTAseS5zKX1mb3IoKGE9bS5pbmRleE9mKFwiLlwiKSk+LTEmJihtPW0ucmVwbGFjZShcIi5cIixcIlwiKSksKHU9bS5zZWFyY2goL2UvaSkpPjA/KGE8MCYmKGE9dSksYSs9K20uc2xpY2UodSsxKSxtPW0uc3Vic3RyaW5nKDAsdSkpOmE8MCYmKGE9bS5sZW5ndGgpLHU9MDs0OD09PW0uY2hhckNvZGVBdCh1KTt1KyspO2ZvcihkPW0ubGVuZ3RoOzQ4PT09bS5jaGFyQ29kZUF0KC0tZCk7KTtpZihtPW0uc2xpY2UodSwrK2QpKXtpZihkLT11LGgmJlcuREVCVUcmJmQ+MTUmJih0PnB8fHQhPT1jKHQpKSl0aHJvdyBFcnJvcihsK3kucyp0KTtpZigoYT1hLXUtMSk+SSl5LmM9eS5lPW51bGw7ZWxzZSBpZihhPFIpeS5jPVt5LmU9MF07ZWxzZXtpZih5LmU9YSx5LmM9W10sdT0oYSsxKSVmLGE8MCYmKHUrPWYpLHU8ZCl7Zm9yKHUmJnkuYy5wdXNoKCttLnNsaWNlKDAsdSkpLGQtPWY7dTxkOyl5LmMucHVzaCgrbS5zbGljZSh1LHUrPWYpKTttPW0uc2xpY2UodSksdT1mLW0ubGVuZ3RofWVsc2UgdS09ZDtmb3IoO3UtLTttKz1cIjBcIik7eS5jLnB1c2goK20pfX1lbHNlIHkuYz1beS5lPTBdfWZ1bmN0aW9uIHEodCxlLHIsbil7dmFyIG8saSxzLGEsYztpZihudWxsPT1yP3I9Qzp3KHIsMCw4KSwhdC5jKXJldHVybiB0LnRvU3RyaW5nKCk7aWYobz10LmNbMF0scz10LmUsbnVsbD09ZSljPV8odC5jKSxjPTE9PW58fDI9PW4mJnM8PUU/RihjLHMpOk4oYyxzLFwiMFwiKTtlbHNlIGlmKGk9KHQ9VihuZXcgVyh0KSxlLHIpKS5lLGE9KGM9Xyh0LmMpKS5sZW5ndGgsMT09bnx8Mj09biYmKGU8PWl8fGk8PUUpKXtmb3IoO2E8ZTtjKz1cIjBcIixhKyspO2M9RihjLGkpfWVsc2UgaWYoZS09cyxjPU4oYyxpLFwiMFwiKSxpKzE+YSl7aWYoLS1lPjApZm9yKGMrPVwiLlwiO2UtLTtjKz1cIjBcIik7fWVsc2UgaWYoKGUrPWktYSk+MClmb3IoaSsxPT1hJiYoYys9XCIuXCIpO2UtLTtjKz1cIjBcIik7cmV0dXJuIHQuczwwJiZvP1wiLVwiK2M6Y31mdW5jdGlvbiAkKHQsZSl7dmFyIHIsbixvPTA7Zm9yKGIodFswXSkmJih0PXRbMF0pLHI9bmV3IFcodFswXSk7KytvPHQubGVuZ3RoOyl7aWYoIShuPW5ldyBXKHRbb10pKS5zKXtyPW47YnJlYWt9ZS5jYWxsKHIsbikmJihyPW4pfXJldHVybiByfWZ1bmN0aW9uIEcodCxlLHIpe2Zvcih2YXIgbj0xLG89ZS5sZW5ndGg7IWVbLS1vXTtlLnBvcCgpKTtmb3Iobz1lWzBdO28+PTEwO28vPTEwLG4rKyk7cmV0dXJuKHI9bityKmYtMSk+ST90LmM9dC5lPW51bGw6cjxSP3QuYz1bdC5lPTBdOih0LmU9cix0LmM9ZSksdH1mdW5jdGlvbiBWKHQsZSxyLG4pe3ZhciBvLGkscyx1LGwscCxtLHk9dC5jLGc9ZDtpZih5KXt0Ontmb3Iobz0xLHU9eVswXTt1Pj0xMDt1Lz0xMCxvKyspO2lmKChpPWUtbyk8MClpKz1mLHM9ZSxtPShsPXlbcD0wXSkvZ1tvLXMtMV0lMTB8MDtlbHNlIGlmKChwPWEoKGkrMSkvZikpPj15Lmxlbmd0aCl7aWYoIW4pYnJlYWsgdDtmb3IoO3kubGVuZ3RoPD1wO3kucHVzaCgwKSk7bD1tPTAsbz0xLHM9KGklPWYpLWYrMX1lbHNle2ZvcihsPXU9eVtwXSxvPTE7dT49MTA7dS89MTAsbysrKTttPShzPShpJT1mKS1mK28pPDA/MDpsL2dbby1zLTFdJTEwfDB9aWYobj1ufHxlPDB8fG51bGwhPXlbcCsxXXx8KHM8MD9sOmwlZ1tvLXMtMV0pLG49cjw0PyhtfHxuKSYmKDA9PXJ8fHI9PSh0LnM8MD8zOjIpKTptPjV8fDU9PW0mJig0PT1yfHxufHw2PT1yJiYoaT4wP3M+MD9sL2dbby1zXTowOnlbcC0xXSklMTAmMXx8cj09KHQuczwwPzg6NykpLGU8MXx8IXlbMF0pcmV0dXJuIHkubGVuZ3RoPTAsbj8oZS09dC5lKzEseVswXT1nWyhmLWUlZiklZl0sdC5lPS1lfHwwKTp5WzBdPXQuZT0wLHQ7aWYoMD09aT8oeS5sZW5ndGg9cCx1PTEscC0tKTooeS5sZW5ndGg9cCsxLHU9Z1tmLWldLHlbcF09cz4wP2MobC9nW28tc10lZ1tzXSkqdTowKSxuKWZvcig7Oyl7aWYoMD09cCl7Zm9yKGk9MSxzPXlbMF07cz49MTA7cy89MTAsaSsrKTtmb3Iocz15WzBdKz11LHU9MTtzPj0xMDtzLz0xMCx1KyspO2khPXUmJih0LmUrKyx5WzBdPT1oJiYoeVswXT0xKSk7YnJlYWt9aWYoeVtwXSs9dSx5W3BdIT1oKWJyZWFrO3lbcC0tXT0wLHU9MX1mb3IoaT15Lmxlbmd0aDswPT09eVstLWldO3kucG9wKCkpO310LmU+ST90LmM9dC5lPW51bGw6dC5lPFImJih0LmM9W3QuZT0wXSl9cmV0dXJuIHR9cmV0dXJuIFcuY2xvbmU9dCxXLlJPVU5EX1VQPTAsVy5ST1VORF9ET1dOPTEsVy5ST1VORF9DRUlMPTIsVy5ST1VORF9GTE9PUj0zLFcuUk9VTkRfSEFMRl9VUD00LFcuUk9VTkRfSEFMRl9ET1dOPTUsVy5ST1VORF9IQUxGX0VWRU49NixXLlJPVU5EX0hBTEZfQ0VJTD03LFcuUk9VTkRfSEFMRl9GTE9PUj04LFcuRVVDTElEPTksVy5jb25maWc9Vy5zZXQ9ZnVuY3Rpb24odCl7dmFyIGUscjtpZihudWxsIT10KXtpZihcIm9iamVjdFwiIT10eXBlb2YgdCl0aHJvdyBFcnJvcih1K1wiT2JqZWN0IGV4cGVjdGVkOiBcIit0KTtpZih0Lmhhc093blByb3BlcnR5KGU9XCJERUNJTUFMX1BMQUNFU1wiKSYmKHcocj10W2VdLDAseSxlKSxNPXIpLHQuaGFzT3duUHJvcGVydHkoZT1cIlJPVU5ESU5HX01PREVcIikmJih3KHI9dFtlXSwwLDgsZSksQz1yKSx0Lmhhc093blByb3BlcnR5KGU9XCJFWFBPTkVOVElBTF9BVFwiKSYmKGIocj10W2VdKT8odyhyWzBdLC15LDAsZSksdyhyWzFdLDAseSxlKSxFPXJbMF0sRD1yWzFdKToodyhyLC15LHksZSksRT0tKEQ9cjwwPy1yOnIpKSksdC5oYXNPd25Qcm9wZXJ0eShlPVwiUkFOR0VcIikpaWYoYihyPXRbZV0pKXcoclswXSwteSwtMSxlKSx3KHJbMV0sMSx5LGUpLFI9clswXSxJPXJbMV07ZWxzZXtpZih3KHIsLXkseSxlKSwhcil0aHJvdyBFcnJvcih1K2UrXCIgY2Fubm90IGJlIHplcm86IFwiK3IpO1I9LShJPXI8MD8tcjpyKX1pZih0Lmhhc093blByb3BlcnR5KGU9XCJDUllQVE9cIikpe2lmKChyPXRbZV0pIT09ISFyKXRocm93IEVycm9yKHUrZStcIiBub3QgdHJ1ZSBvciBmYWxzZTogXCIrcik7aWYocil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgSD0hcixFcnJvcih1K1wiY3J5cHRvIHVuYXZhaWxhYmxlXCIpO0g9cn1lbHNlIEg9cn1pZih0Lmhhc093blByb3BlcnR5KGU9XCJNT0RVTE9fTU9ERVwiKSYmKHcocj10W2VdLDAsOSxlKSxqPXIpLHQuaGFzT3duUHJvcGVydHkoZT1cIlBPV19QUkVDSVNJT05cIikmJih3KHI9dFtlXSwwLHksZSksVT1yKSx0Lmhhc093blByb3BlcnR5KGU9XCJGT1JNQVRcIikpe2lmKFwib2JqZWN0XCIhPXR5cGVvZihyPXRbZV0pKXRocm93IEVycm9yKHUrZStcIiBub3QgYW4gb2JqZWN0OiBcIityKTtMPXJ9aWYodC5oYXNPd25Qcm9wZXJ0eShlPVwiQUxQSEFCRVRcIikpe2lmKFwic3RyaW5nXCIhPXR5cGVvZihyPXRbZV0pfHwvXi4kfFxcLnwoLikuKlxcMS8udGVzdChyKSl0aHJvdyBFcnJvcih1K2UrXCIgaW52YWxpZDogXCIrcik7ej1yfX1yZXR1cm57REVDSU1BTF9QTEFDRVM6TSxST1VORElOR19NT0RFOkMsRVhQT05FTlRJQUxfQVQ6W0UsRF0sUkFOR0U6W1IsSV0sQ1JZUFRPOkgsTU9EVUxPX01PREU6aixQT1dfUFJFQ0lTSU9OOlUsRk9STUFUOkwsQUxQSEFCRVQ6en19LFcuaXNCaWdOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBXfHx0JiYhMD09PXQuX2lzQmlnTnVtYmVyfHwhMX0sVy5tYXhpbXVtPVcubWF4PWZ1bmN0aW9uKCl7cmV0dXJuICQoYXJndW1lbnRzLFQubHQpfSxXLm1pbmltdW09Vy5taW49ZnVuY3Rpb24oKXtyZXR1cm4gJChhcmd1bWVudHMsVC5ndCl9LFcucmFuZG9tPShpPTkwMDcxOTkyNTQ3NDA5OTIqTWF0aC5yYW5kb20oKSYyMDk3MTUxP2Z1bmN0aW9uKCl7cmV0dXJuIGMoOTAwNzE5OTI1NDc0MDk5MipNYXRoLnJhbmRvbSgpKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLHMsbD0wLGg9W10scD1uZXcgVyhQKTtpZihudWxsPT10P3Q9TTp3KHQsMCx5KSxvPWEodC9mKSxIKWlmKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2ZvcihlPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KG8qPTIpKTtsPG87KShzPTEzMTA3MiplW2xdKyhlW2wrMV0+Pj4xMSkpPj05ZTE1PyhyPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDIpKSxlW2xdPXJbMF0sZVtsKzFdPXJbMV0pOihoLnB1c2gocyUxZTE0KSxsKz0yKTtsPW8vMn1lbHNle2lmKCFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgSD0hMSxFcnJvcih1K1wiY3J5cHRvIHVuYXZhaWxhYmxlXCIpO2ZvcihlPWNyeXB0by5yYW5kb21CeXRlcyhvKj03KTtsPG87KShzPTI4MTQ3NDk3NjcxMDY1NiooMzEmZVtsXSkrMTA5OTUxMTYyNzc3NiplW2wrMV0rNDI5NDk2NzI5NiplW2wrMl0rMTY3NzcyMTYqZVtsKzNdKyhlW2wrNF08PDE2KSsoZVtsKzVdPDw4KStlW2wrNl0pPj05ZTE1P2NyeXB0by5yYW5kb21CeXRlcyg3KS5jb3B5KGUsbCk6KGgucHVzaChzJTFlMTQpLGwrPTcpO2w9by83fWlmKCFIKWZvcig7bDxvOykocz1pKCkpPDllMTUmJihoW2wrK109cyUxZTE0KTtmb3Iobz1oWy0tbF0sdCU9ZixvJiZ0JiYocz1kW2YtdF0saFtsXT1jKG8vcykqcyk7MD09PWhbbF07aC5wb3AoKSxsLS0pO2lmKGw8MCloPVtuPTBdO2Vsc2V7Zm9yKG49LTE7MD09PWhbMF07aC5zcGxpY2UoMCwxKSxuLT1mKTtmb3IobD0xLHM9aFswXTtzPj0xMDtzLz0xMCxsKyspO2w8ZiYmKG4tPWYtbCl9cmV0dXJuIHAuZT1uLHAuYz1oLHB9KSxuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscixuKXtmb3IodmFyIG8saSxzPVswXSxhPTAsYz10Lmxlbmd0aDthPGM7KXtmb3IoaT1zLmxlbmd0aDtpLS07c1tpXSo9ZSk7Zm9yKHNbMF0rPW4uaW5kZXhPZih0LmNoYXJBdChhKyspKSxvPTA7bzxzLmxlbmd0aDtvKyspc1tvXT5yLTEmJihudWxsPT1zW28rMV0mJihzW28rMV09MCksc1tvKzFdKz1zW29dL3J8MCxzW29dJT1yKX1yZXR1cm4gcy5yZXZlcnNlKCl9cmV0dXJuIGZ1bmN0aW9uKGUsbixvLGkscyl7dmFyIGEsYyx1LGwsaCxmLHAsZCxtPWUuaW5kZXhPZihcIi5cIikseT1NLGc9Qztmb3IobT49MCYmKGw9VSxVPTAsZT1lLnJlcGxhY2UoXCIuXCIsXCJcIiksZj0oZD1uZXcgVyhuKSkucG93KGUubGVuZ3RoLW0pLFU9bCxkLmM9dChOKF8oZi5jKSxmLmUsXCIwXCIpLDEwLG8sXCIwMTIzNDU2Nzg5XCIpLGQuZT1kLmMubGVuZ3RoKSx1PWw9KHA9dChlLG4sbyxzPyhhPXosXCIwMTIzNDU2Nzg5XCIpOihhPVwiMDEyMzQ1Njc4OVwiLHopKSkubGVuZ3RoOzA9PXBbLS1sXTtwLnBvcCgpKTtpZighcFswXSlyZXR1cm4gYS5jaGFyQXQoMCk7aWYobTwwPy0tdTooZi5jPXAsZi5lPXUsZi5zPWkscD0oZj1yKGYsZCx5LGcsbykpLmMsaD1mLnIsdT1mLmUpLG09cFtjPXUreSsxXSxsPW8vMixoPWh8fGM8MHx8bnVsbCE9cFtjKzFdLGg9Zzw0PyhudWxsIT1tfHxoKSYmKDA9PWd8fGc9PShmLnM8MD8zOjIpKTptPmx8fG09PWwmJig0PT1nfHxofHw2PT1nJiYxJnBbYy0xXXx8Zz09KGYuczwwPzg6NykpLGM8MXx8IXBbMF0pZT1oP04oYS5jaGFyQXQoMSksLXksYS5jaGFyQXQoMCkpOmEuY2hhckF0KDApO2Vsc2V7aWYocC5sZW5ndGg9YyxoKWZvcigtLW87KytwWy0tY10+bzspcFtjXT0wLGN8fCgrK3UscD1bMV0uY29uY2F0KHApKTtmb3IobD1wLmxlbmd0aDshcFstLWxdOyk7Zm9yKG09MCxlPVwiXCI7bTw9bDtlKz1hLmNoYXJBdChwW20rK10pKTtlPU4oZSx1LGEuY2hhckF0KDApKX1yZXR1cm4gZX19KCkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLHIpe3ZhciBuLG8saSxzLGE9MCxjPXQubGVuZ3RoLHU9ZSVtLGw9ZS9tfDA7Zm9yKHQ9dC5zbGljZSgpO2MtLTspYT0oKG89dSooaT10W2NdJW0pKyhuPWwqaSsocz10W2NdL218MCkqdSklbSptK2EpL3J8MCkrKG4vbXwwKStsKnMsdFtjXT1vJXI7cmV0dXJuIGEmJih0PVthXS5jb25jYXQodCkpLHR9ZnVuY3Rpb24gZSh0LGUscixuKXt2YXIgbyxpO2lmKHIhPW4paT1yPm4/MTotMTtlbHNlIGZvcihvPWk9MDtvPHI7bysrKWlmKHRbb10hPWVbb10pe2k9dFtvXT5lW29dPzE6LTE7YnJlYWt9cmV0dXJuIGl9ZnVuY3Rpb24gcih0LGUscixuKXtmb3IodmFyIG89MDtyLS07KXRbcl0tPW8sbz10W3JdPGVbcl0/MTowLHRbcl09bypuK3Rbcl0tZVtyXTtmb3IoOyF0WzBdJiZ0Lmxlbmd0aD4xO3Quc3BsaWNlKDAsMSkpO31yZXR1cm4gZnVuY3Rpb24obixvLGkscyxhKXt2YXIgdSxsLHAsZCxtLHksXyx2LHcsYixCLEYsTixrLHgsUyxBLE89bi5zPT1vLnM/MTotMSxUPW4uYyxQPW8uYztpZighKFQmJlRbMF0mJlAmJlBbMF0pKXJldHVybiBuZXcgVyhuLnMmJm8ucyYmKFQ/IVB8fFRbMF0hPVBbMF06UCk/VCYmMD09VFswXXx8IVA/MCpPOk8vMDpOYU4pO2Zvcih3PSh2PW5ldyBXKE8pKS5jPVtdLE89aSsobD1uLmUtby5lKSsxLGF8fChhPWgsbD1nKG4uZS9mKS1nKG8uZS9mKSxPPU8vZnwwKSxwPTA7UFtwXT09KFRbcF18fDApO3ArKyk7aWYoUFtwXT4oVFtwXXx8MCkmJmwtLSxPPDApdy5wdXNoKDEpLGQ9ITA7ZWxzZXtmb3Ioaz1ULmxlbmd0aCxTPVAubGVuZ3RoLHA9MCxPKz0yLChtPWMoYS8oUFswXSsxKSkpPjEmJihQPXQoUCxtLGEpLFQ9dChULG0sYSksUz1QLmxlbmd0aCxrPVQubGVuZ3RoKSxOPVMsQj0oYj1ULnNsaWNlKDAsUykpLmxlbmd0aDtCPFM7YltCKytdPTApO0E9UC5zbGljZSgpLEE9WzBdLmNvbmNhdChBKSx4PVBbMF0sUFsxXT49YS8yJiZ4Kys7ZG97aWYobT0wLCh1PWUoUCxiLFMsQikpPDApe2lmKEY9YlswXSxTIT1CJiYoRj1GKmErKGJbMV18fDApKSwobT1jKEYveCkpPjEpZm9yKG0+PWEmJihtPWEtMSksXz0oeT10KFAsbSxhKSkubGVuZ3RoLEI9Yi5sZW5ndGg7MT09ZSh5LGIsXyxCKTspbS0tLHIoeSxTPF8/QTpQLF8sYSksXz15Lmxlbmd0aCx1PTE7ZWxzZSAwPT1tJiYodT1tPTEpLF89KHk9UC5zbGljZSgpKS5sZW5ndGg7aWYoXzxCJiYoeT1bMF0uY29uY2F0KHkpKSxyKGIseSxCLGEpLEI9Yi5sZW5ndGgsLTE9PXUpZm9yKDtlKFAsYixTLEIpPDE7KW0rKyxyKGIsUzxCP0E6UCxCLGEpLEI9Yi5sZW5ndGh9ZWxzZSAwPT09dSYmKG0rKyxiPVswXSk7d1twKytdPW0sYlswXT9iW0IrK109VFtOXXx8MDooYj1bVFtOXV0sQj0xKX13aGlsZSgoTisrPGt8fG51bGwhPWJbMF0pJiZPLS0pO2Q9bnVsbCE9YlswXSx3WzBdfHx3LnNwbGljZSgwLDEpfWlmKGE9PWgpe2ZvcihwPTEsTz13WzBdO08+PTEwO08vPTEwLHArKyk7Vih2LGkrKHYuZT1wK2wqZi0xKSsxLHMsZCl9ZWxzZSB2LmU9bCx2LnI9K2Q7cmV0dXJuIHZ9fSgpLGs9L14oLT8pMChbeGJvXSkoPz1cXHdbXFx3Ll0qJCkvaSx4PS9eKFteLl0rKVxcLiQvLFM9L15cXC4oW14uXSspJC8sQT0vXi0/KEluZmluaXR5fE5hTikkLyxPPS9eXFxzKlxcKyg/PVtcXHcuXSl8Xlxccyt8XFxzKyQvZyxvPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvLGk9cj9lOmUucmVwbGFjZShPLFwiXCIpO2lmKEEudGVzdChpKSl0LnM9aXNOYU4oaSk/bnVsbDppPDA/LTE6MSx0LmM9dC5lPW51bGw7ZWxzZXtpZighciYmKGk9aS5yZXBsYWNlKGssZnVuY3Rpb24odCxlLHIpe3JldHVybiBvPVwieFwiPT0ocj1yLnRvTG93ZXJDYXNlKCkpPzE2OlwiYlwiPT1yPzI6OCxuJiZuIT1vP3Q6ZX0pLG4mJihvPW4saT1pLnJlcGxhY2UoeCxcIiQxXCIpLnJlcGxhY2UoUyxcIjAuJDFcIikpLGUhPWkpKXJldHVybiBuZXcgVyhpLG8pO2lmKFcuREVCVUcpdGhyb3cgRXJyb3IodStcIk5vdCBhXCIrKG4/XCIgYmFzZSBcIituOlwiXCIpK1wiIG51bWJlcjogXCIrZSk7dC5jPXQuZT10LnM9bnVsbH19LFQuYWJzb2x1dGVWYWx1ZT1ULmFicz1mdW5jdGlvbigpe3ZhciB0PW5ldyBXKHRoaXMpO3JldHVybiB0LnM8MCYmKHQucz0xKSx0fSxULmNvbXBhcmVkVG89ZnVuY3Rpb24odCxlKXtyZXR1cm4gdih0aGlzLG5ldyBXKHQsZSkpfSxULmRlY2ltYWxQbGFjZXM9VC5kcD1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpPXRoaXM7aWYobnVsbCE9dClyZXR1cm4gdyh0LDAseSksbnVsbD09ZT9lPUM6dyhlLDAsOCksVihuZXcgVyhpKSx0K2kuZSsxLGUpO2lmKCEocj1pLmMpKXJldHVybiBudWxsO2lmKG49KChvPXIubGVuZ3RoLTEpLWcodGhpcy5lL2YpKSpmLG89cltvXSlmb3IoO28lMTA9PTA7by89MTAsbi0tKTtyZXR1cm4gbjwwJiYobj0wKSxufSxULmRpdmlkZWRCeT1ULmRpdj1mdW5jdGlvbih0LGUpe3JldHVybiByKHRoaXMsbmV3IFcodCxlKSxNLEMpfSxULmRpdmlkZWRUb0ludGVnZXJCeT1ULmlkaXY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcih0aGlzLG5ldyBXKHQsZSksMCwxKX0sVC5leHBvbmVudGlhdGVkQnk9VC5wb3c9ZnVuY3Rpb24odCxlKXt2YXIgcixuLG8saSxzLGwsaCxwPXRoaXM7aWYoKHQ9bmV3IFcodCkpLmMmJiF0LmlzSW50ZWdlcigpKXRocm93IEVycm9yKHUrXCJFeHBvbmVudCBub3QgYW4gaW50ZWdlcjogXCIrdCk7aWYobnVsbCE9ZSYmKGU9bmV3IFcoZSkpLGk9dC5lPjE0LCFwLmN8fCFwLmNbMF18fDE9PXAuY1swXSYmIXAuZSYmMT09cC5jLmxlbmd0aHx8IXQuY3x8IXQuY1swXSlyZXR1cm4gaD1uZXcgVyhNYXRoLnBvdygrcC52YWx1ZU9mKCksaT8yLUIodCk6K3QpKSxlP2gubW9kKGUpOmg7aWYocz10LnM8MCxlKXtpZihlLmM/IWUuY1swXTohZS5zKXJldHVybiBuZXcgVyhOYU4pOyhuPSFzJiZwLmlzSW50ZWdlcigpJiZlLmlzSW50ZWdlcigpKSYmKHA9cC5tb2QoZSkpfWVsc2V7aWYodC5lPjkmJihwLmU+MHx8cC5lPC0xfHwoMD09cC5lP3AuY1swXT4xfHxpJiZwLmNbMV0+PTI0ZTc6cC5jWzBdPDhlMTN8fGkmJnAuY1swXTw9OTk5OTk3NWU3KSkpcmV0dXJuIG89cC5zPDAmJkIodCk/LTA6MCxwLmU+LTEmJihvPTEvbyksbmV3IFcocz8xL286byk7VSYmKG89YShVL2YrMikpfWZvcihpPyhyPW5ldyBXKC41KSxsPUIodCkpOmw9dCUyLHMmJih0LnM9MSksaD1uZXcgVyhQKTs7KXtpZihsKXtpZighKGg9aC50aW1lcyhwKSkuYylicmVhaztvP2guYy5sZW5ndGg+byYmKGguYy5sZW5ndGg9byk6biYmKGg9aC5tb2QoZSkpfWlmKGkpe2lmKFYodD10LnRpbWVzKHIpLHQuZSsxLDEpLCF0LmNbMF0pYnJlYWs7aT10LmU+MTQsbD1CKHQpfWVsc2V7aWYoISh0PWModC8yKSkpYnJlYWs7bD10JTJ9cD1wLnRpbWVzKHApLG8/cC5jJiZwLmMubGVuZ3RoPm8mJihwLmMubGVuZ3RoPW8pOm4mJihwPXAubW9kKGUpKX1yZXR1cm4gbj9oOihzJiYoaD1QLmRpdihoKSksZT9oLm1vZChlKTpvP1YoaCxVLEMsdm9pZCAwKTpoKX0sVC5pbnRlZ2VyVmFsdWU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFcodGhpcyk7cmV0dXJuIG51bGw9PXQ/dD1DOncodCwwLDgpLFYoZSxlLmUrMSx0KX0sVC5pc0VxdWFsVG89VC5lcT1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09dih0aGlzLG5ldyBXKHQsZSkpfSxULmlzRmluaXRlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmN9LFQuaXNHcmVhdGVyVGhhbj1ULmd0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYodGhpcyxuZXcgVyh0LGUpKT4wfSxULmlzR3JlYXRlclRoYW5PckVxdWFsVG89VC5ndGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gMT09PShlPXYodGhpcyxuZXcgVyh0LGUpKSl8fDA9PT1lfSxULmlzSW50ZWdlcj1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5jJiZnKHRoaXMuZS9mKT50aGlzLmMubGVuZ3RoLTJ9LFQuaXNMZXNzVGhhbj1ULmx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYodGhpcyxuZXcgVyh0LGUpKTwwfSxULmlzTGVzc1RoYW5PckVxdWFsVG89VC5sdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4tMT09PShlPXYodGhpcyxuZXcgVyh0LGUpKSl8fDA9PT1lfSxULmlzTmFOPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuc30sVC5pc05lZ2F0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuczwwfSxULmlzUG9zaXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPjB9LFQuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJjA9PXRoaXMuY1swXX0sVC5taW51cz1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpLHM9dGhpcyxhPXMucztpZihlPSh0PW5ldyBXKHQsZSkpLnMsIWF8fCFlKXJldHVybiBuZXcgVyhOYU4pO2lmKGEhPWUpcmV0dXJuIHQucz0tZSxzLnBsdXModCk7dmFyIGM9cy5lL2YsdT10LmUvZixsPXMuYyxwPXQuYztpZighY3x8IXUpe2lmKCFsfHwhcClyZXR1cm4gbD8odC5zPS1lLHQpOm5ldyBXKHA/czpOYU4pO2lmKCFsWzBdfHwhcFswXSlyZXR1cm4gcFswXT8odC5zPS1lLHQpOm5ldyBXKGxbMF0/czozPT1DPy0wOjApfWlmKGM9ZyhjKSx1PWcodSksbD1sLnNsaWNlKCksYT1jLXUpe2ZvcigoaT1hPDApPyhhPS1hLG89bCk6KHU9YyxvPXApLG8ucmV2ZXJzZSgpLGU9YTtlLS07by5wdXNoKDApKTtvLnJldmVyc2UoKX1lbHNlIGZvcihuPShpPShhPWwubGVuZ3RoKTwoZT1wLmxlbmd0aCkpP2E6ZSxhPWU9MDtlPG47ZSsrKWlmKGxbZV0hPXBbZV0pe2k9bFtlXTxwW2VdO2JyZWFrfWlmKGkmJihvPWwsbD1wLHA9byx0LnM9LXQucyksKGU9KG49cC5sZW5ndGgpLShyPWwubGVuZ3RoKSk+MClmb3IoO2UtLTtsW3IrK109MCk7Zm9yKGU9aC0xO24+YTspe2lmKGxbLS1uXTxwW25dKXtmb3Iocj1uO3ImJiFsWy0tcl07bFtyXT1lKTstLWxbcl0sbFtuXSs9aH1sW25dLT1wW25dfWZvcig7MD09bFswXTtsLnNwbGljZSgwLDEpLC0tdSk7cmV0dXJuIGxbMF0/Ryh0LGwsdSk6KHQucz0zPT1DPy0xOjEsdC5jPVt0LmU9MF0sdCl9LFQubW9kdWxvPVQubW9kPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxpPXRoaXM7cmV0dXJuIHQ9bmV3IFcodCxlKSwhaS5jfHwhdC5zfHx0LmMmJiF0LmNbMF0/bmV3IFcoTmFOKTohdC5jfHxpLmMmJiFpLmNbMF0/bmV3IFcoaSk6KDk9PWo/KG89dC5zLHQucz0xLG49cihpLHQsMCwzKSx0LnM9byxuLnMqPW8pOm49cihpLHQsMCxqKSwodD1pLm1pbnVzKG4udGltZXModCkpKS5jWzBdfHwxIT1qfHwodC5zPWkucyksdCl9LFQubXVsdGlwbGllZEJ5PVQudGltZXM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLG8saSxzLGEsYyx1LGwscCxkLHksXyx2LHcsYj10aGlzLEI9Yi5jLEY9KHQ9bmV3IFcodCxlKSkuYztpZighKEImJkYmJkJbMF0mJkZbMF0pKXJldHVybiFiLnN8fCF0LnN8fEImJiFCWzBdJiYhRnx8RiYmIUZbMF0mJiFCP3QuYz10LmU9dC5zPW51bGw6KHQucyo9Yi5zLEImJkY/KHQuYz1bMF0sdC5lPTApOnQuYz10LmU9bnVsbCksdDtmb3Iobj1nKGIuZS9mKStnKHQuZS9mKSx0LnMqPWIucywoYz1CLmxlbmd0aCk8KHA9Ri5sZW5ndGgpJiYoXz1CLEI9RixGPV8sbz1jLGM9cCxwPW8pLG89YytwLF89W107by0tO18ucHVzaCgwKSk7Zm9yKHY9aCx3PW0sbz1wOy0tbz49MDspe2ZvcihyPTAsZD1GW29dJXcseT1GW29dL3d8MCxpPW8rKHM9Yyk7aT5vOylyPSgodT1kKih1PUJbLS1zXSV3KSsoYT15KnUrKGw9QltzXS93fDApKmQpJXcqdytfW2ldK3IpL3Z8MCkrKGEvd3wwKSt5KmwsX1tpLS1dPXUldjtfW2ldPXJ9cmV0dXJuIHI/KytuOl8uc3BsaWNlKDAsMSksRyh0LF8sbil9LFQubmVnYXRlZD1mdW5jdGlvbigpe3ZhciB0PW5ldyBXKHRoaXMpO3JldHVybiB0LnM9LXQuc3x8bnVsbCx0fSxULnBsdXM9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRoaXMsbz1uLnM7aWYoZT0odD1uZXcgVyh0LGUpKS5zLCFvfHwhZSlyZXR1cm4gbmV3IFcoTmFOKTtpZihvIT1lKXJldHVybiB0LnM9LWUsbi5taW51cyh0KTt2YXIgaT1uLmUvZixzPXQuZS9mLGE9bi5jLGM9dC5jO2lmKCFpfHwhcyl7aWYoIWF8fCFjKXJldHVybiBuZXcgVyhvLzApO2lmKCFhWzBdfHwhY1swXSlyZXR1cm4gY1swXT90Om5ldyBXKGFbMF0/bjowKm8pfWlmKGk9ZyhpKSxzPWcocyksYT1hLnNsaWNlKCksbz1pLXMpe2ZvcihvPjA/KHM9aSxyPWMpOihvPS1vLHI9YSksci5yZXZlcnNlKCk7by0tO3IucHVzaCgwKSk7ci5yZXZlcnNlKCl9Zm9yKChvPWEubGVuZ3RoKS0oZT1jLmxlbmd0aCk8MCYmKHI9YyxjPWEsYT1yLGU9byksbz0wO2U7KW89KGFbLS1lXT1hW2VdK2NbZV0rbykvaHwwLGFbZV09aD09PWFbZV0/MDphW2VdJWg7cmV0dXJuIG8mJihhPVtvXS5jb25jYXQoYSksKytzKSxHKHQsYSxzKX0sVC5wcmVjaXNpb249VC5zZD1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpPXRoaXM7aWYobnVsbCE9dCYmdCE9PSEhdClyZXR1cm4gdyh0LDEseSksbnVsbD09ZT9lPUM6dyhlLDAsOCksVihuZXcgVyhpKSx0LGUpO2lmKCEocj1pLmMpKXJldHVybiBudWxsO2lmKG49KG89ci5sZW5ndGgtMSkqZisxLG89cltvXSl7Zm9yKDtvJTEwPT0wO28vPTEwLG4tLSk7Zm9yKG89clswXTtvPj0xMDtvLz0xMCxuKyspO31yZXR1cm4gdCYmaS5lKzE+biYmKG49aS5lKzEpLG59LFQuc2hpZnRlZEJ5PWZ1bmN0aW9uKHQpe3JldHVybiB3KHQsLXAscCksdGhpcy50aW1lcyhcIjFlXCIrdCl9LFQuc3F1YXJlUm9vdD1ULnNxcnQ9ZnVuY3Rpb24oKXt2YXIgdCxlLG4sbyxpLHM9dGhpcyxhPXMuYyxjPXMucyx1PXMuZSxsPU0rNCxoPW5ldyBXKFwiMC41XCIpO2lmKDEhPT1jfHwhYXx8IWFbMF0pcmV0dXJuIG5ldyBXKCFjfHxjPDAmJighYXx8YVswXSk/TmFOOmE/czoxLzApO2lmKDA9PShjPU1hdGguc3FydCgrcykpfHxjPT0xLzA/KCgoZT1fKGEpKS5sZW5ndGgrdSklMj09MCYmKGUrPVwiMFwiKSxjPU1hdGguc3FydChlKSx1PWcoKHUrMSkvMiktKHU8MHx8dSUyKSxuPW5ldyBXKGU9Yz09MS8wP1wiMWVcIit1OihlPWMudG9FeHBvbmVudGlhbCgpKS5zbGljZSgwLGUuaW5kZXhPZihcImVcIikrMSkrdSkpOm49bmV3IFcoYytcIlwiKSxuLmNbMF0pZm9yKChjPSh1PW4uZSkrbCk8MyYmKGM9MCk7OylpZihpPW4sbj1oLnRpbWVzKGkucGx1cyhyKHMsaSxsLDEpKSksXyhpLmMpLnNsaWNlKDAsYyk9PT0oZT1fKG4uYykpLnNsaWNlKDAsYykpe2lmKG4uZTx1JiYtLWMsXCI5OTk5XCIhPShlPWUuc2xpY2UoYy0zLGMrMSkpJiYob3x8XCI0OTk5XCIhPWUpKXsrZSYmKCtlLnNsaWNlKDEpfHxcIjVcIiE9ZS5jaGFyQXQoMCkpfHwoVihuLG4uZStNKzIsMSksdD0hbi50aW1lcyhuKS5lcShzKSk7YnJlYWt9aWYoIW8mJihWKGksaS5lK00rMiwwKSxpLnRpbWVzKGkpLmVxKHMpKSl7bj1pO2JyZWFrfWwrPTQsYys9NCxvPTF9cmV0dXJuIFYobixuLmUrTSsxLEMsdCl9LFQudG9FeHBvbmVudGlhbD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiYodyh0LDAseSksdCsrKSxxKHRoaXMsdCxlLDEpfSxULnRvRml4ZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9dCYmKHcodCwwLHkpLHQ9dCt0aGlzLmUrMSkscSh0aGlzLHQsZSl9LFQudG9Gb3JtYXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnRvRml4ZWQodCxlKTtpZih0aGlzLmMpe3ZhciBuLG89ci5zcGxpdChcIi5cIiksaT0rTC5ncm91cFNpemUscz0rTC5zZWNvbmRhcnlHcm91cFNpemUsYT1MLmdyb3VwU2VwYXJhdG9yLGM9b1swXSx1PW9bMV0sbD10aGlzLnM8MCxoPWw/Yy5zbGljZSgxKTpjLGY9aC5sZW5ndGg7aWYocyYmKG49aSxpPXMscz1uLGYtPW4pLGk+MCYmZj4wKXtmb3Iobj1mJWl8fGksYz1oLnN1YnN0cigwLG4pO248ZjtuKz1pKWMrPWEraC5zdWJzdHIobixpKTtzPjAmJihjKz1hK2guc2xpY2UobikpLGwmJihjPVwiLVwiK2MpfXI9dT9jK0wuZGVjaW1hbFNlcGFyYXRvcisoKHM9K0wuZnJhY3Rpb25Hcm91cFNpemUpP3UucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXGR7XCIrcytcIn1cXFxcQlwiLFwiZ1wiKSxcIiQmXCIrTC5mcmFjdGlvbkdyb3VwU2VwYXJhdG9yKTp1KTpjfXJldHVybiByfSxULnRvRnJhY3Rpb249ZnVuY3Rpb24odCl7dmFyIGUsbixvLGkscyxhLGMsbCxoLHAsbSx5LGc9dGhpcyx2PWcuYztpZihudWxsIT10JiYoIShsPW5ldyBXKHQpKS5pc0ludGVnZXIoKSYmKGwuY3x8MSE9PWwucyl8fGwubHQoUCkpKXRocm93IEVycm9yKHUrXCJBcmd1bWVudCBcIisobC5pc0ludGVnZXIoKT9cIm91dCBvZiByYW5nZTogXCI6XCJub3QgYW4gaW50ZWdlcjogXCIpK3QpO2lmKCF2KXJldHVybiBnLnRvU3RyaW5nKCk7Zm9yKG49bmV3IFcoUCkscD1vPW5ldyBXKFApLGk9aD1uZXcgVyhQKSx5PV8odiksYT1uLmU9eS5sZW5ndGgtZy5lLTEsbi5jWzBdPWRbKGM9YSVmKTwwP2YrYzpjXSx0PSF0fHxsLmNvbXBhcmVkVG8obik+MD9hPjA/bjpwOmwsYz1JLEk9MS8wLGw9bmV3IFcoeSksaC5jWzBdPTA7bT1yKGwsbiwwLDEpLDEhPShzPW8ucGx1cyhtLnRpbWVzKGkpKSkuY29tcGFyZWRUbyh0KTspbz1pLGk9cyxwPWgucGx1cyhtLnRpbWVzKHM9cCkpLGg9cyxuPWwubWludXMobS50aW1lcyhzPW4pKSxsPXM7cmV0dXJuIHM9cih0Lm1pbnVzKG8pLGksMCwxKSxoPWgucGx1cyhzLnRpbWVzKHApKSxvPW8ucGx1cyhzLnRpbWVzKGkpKSxoLnM9cC5zPWcucyxlPXIocCxpLGEqPTIsQykubWludXMoZykuYWJzKCkuY29tcGFyZWRUbyhyKGgsbyxhLEMpLm1pbnVzKGcpLmFicygpKTwxP1twLnRvU3RyaW5nKCksaS50b1N0cmluZygpXTpbaC50b1N0cmluZygpLG8udG9TdHJpbmcoKV0sST1jLGV9LFQudG9OdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4rdGhpc30sVC50b1ByZWNpc2lvbj1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiZ3KHQsMSx5KSxxKHRoaXMsdCxlLDIpfSxULnRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcyxvPXIucyxpPXIuZTtyZXR1cm4gbnVsbD09PWk/bz8oZT1cIkluZmluaXR5XCIsbzwwJiYoZT1cIi1cIitlKSk6ZT1cIk5hTlwiOihlPV8oci5jKSxudWxsPT10P2U9aTw9RXx8aT49RD9GKGUsaSk6TihlLGksXCIwXCIpOih3KHQsMix6Lmxlbmd0aCxcIkJhc2VcIiksZT1uKE4oZSxpLFwiMFwiKSwxMCx0LG8sITApKSxvPDAmJnIuY1swXSYmKGU9XCItXCIrZSkpLGV9LFQudmFsdWVPZj1ULnRvSlNPTj1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcyxyPWUuZTtyZXR1cm4gbnVsbD09PXI/ZS50b1N0cmluZygpOih0PV8oZS5jKSx0PXI8PUV8fHI+PUQ/Rih0LHIpOk4odCxyLFwiMFwiKSxlLnM8MD9cIi1cIit0OnQpfSxULl9pc0JpZ051bWJlcj0hMCxudWxsIT1lJiZXLnNldChlKSxXfSgpKS5kZWZhdWx0PWkuQmlnTnVtYmVyPWksdm9pZCAwPT09KG49ZnVuY3Rpb24oKXtyZXR1cm4gaX0uY2FsbChlLHIsZSx0KSl8fCh0LmV4cG9ydHM9bil9KCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxmdW5jdGlvbih0KXt2YXIgZT1uLHI9ZS5saWIsbz1yLldvcmRBcnJheSxpPXIuSGFzaGVyLHM9ZS5hbGdvLGE9W10sYz1bXTshZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgcj10LnNxcnQoZSksbj0yO248PXI7bisrKWlmKCEoZSVuKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiByKHQpe3JldHVybiA0Mjk0OTY3Mjk2Kih0LSgwfHQpKXwwfWZvcih2YXIgbj0yLG89MDtvPDY0OyllKG4pJiYobzw4JiYoYVtvXT1yKHQucG93KG4sLjUpKSksY1tvXT1yKHQucG93KG4sMS8zKSksbysrKSxuKyt9KCk7dmFyIHU9W10sbD1zLlNIQTI1Nj1pLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBvLmluaXQoYS5zbGljZSgwKSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sbD1yWzVdLGg9cls2XSxmPXJbN10scD0wO3A8NjQ7cCsrKXtpZihwPDE2KXVbcF09MHx0W2UrcF07ZWxzZXt2YXIgZD11W3AtMTVdLG09KGQ8PDI1fGQ+Pj43KV4oZDw8MTR8ZD4+PjE4KV5kPj4+Myx5PXVbcC0yXSxnPSh5PDwxNXx5Pj4+MTcpXih5PDwxM3x5Pj4+MTkpXnk+Pj4xMDt1W3BdPW0rdVtwLTddK2crdVtwLTE2XX12YXIgXz1uJm9ebiZpXm8maSx2PShuPDwzMHxuPj4+MileKG48PDE5fG4+Pj4xMyleKG48PDEwfG4+Pj4yMiksdz1mKygoYTw8MjZ8YT4+PjYpXihhPDwyMXxhPj4+MTEpXihhPDw3fGE+Pj4yNSkpKyhhJmxefmEmaCkrY1twXSt1W3BdO2Y9aCxoPWwsbD1hLGE9cyt3fDAscz1pLGk9byxvPW4sbj13Kyh2K18pfDB9clswXT1yWzBdK258MCxyWzFdPXJbMV0rb3wwLHJbMl09clsyXStpfDAsclszXT1yWzNdK3N8MCxyWzRdPXJbNF0rYXwwLHJbNV09cls1XStsfDAscls2XT1yWzZdK2h8MCxyWzddPXJbN10rZnwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2RhdGEscj1lLndvcmRzLG49OCp0aGlzLl9uRGF0YUJ5dGVzLG89OCplLnNpZ0J5dGVzO3JldHVybiByW28+Pj41XXw9MTI4PDwyNC1vJTMyLHJbMTQrKG8rNjQ+Pj45PDw0KV09dC5mbG9vcihuLzQyOTQ5NjcyOTYpLHJbMTUrKG8rNjQ+Pj45PDw0KV09bixlLnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO2UuU0hBMjU2PWkuX2NyZWF0ZUhlbHBlcihsKSxlLkhtYWNTSEEyNTY9aS5fY3JlYXRlSG1hY0hlbHBlcihsKX0oTWF0aCksbi5TSEEyNTYpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuSGFzaGVyLHI9dC54NjQsbz1yLldvcmQsaT1yLldvcmRBcnJheSxzPXQuYWxnbztmdW5jdGlvbiBhKCl7cmV0dXJuIG8uY3JlYXRlLmFwcGx5KG8sYXJndW1lbnRzKX12YXIgYz1bYSgxMTE2MzUyNDA4LDM2MDk3Njc0NTgpLGEoMTg5OTQ0NzQ0MSw2MDI4OTE3MjUpLGEoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxhKDM5MjEwMDk1NzMsMjE3MzI5NTU0OCksYSg5NjE5ODcxNjMsNDA4MTYyODQ3MiksYSgxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLGEoMjQ1MzYzNTc0OCwyOTM3NjcxNTc5KSxhKDI4NzA3NjMyMjEsMzY2NDYwOTU2MCksYSgzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLGEoMzEwNTk4NDAxLDExNjQ5OTY1NDIpLGEoNjA3MjI1Mjc4LDEzMjM2MTA3NjQpLGEoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxhKDE5MjUwNzgzODgsNDA2ODE4MjM4MyksYSgyMTYyMDc4MjA2LDk5MTMzNjExMyksYSgyNjE0ODg4MTAzLDYzMzgwMzMxNyksYSgzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgpLGEoMzgzNTM5MDQwMSwyNjY2NjEzNDU4KSxhKDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxhKDI2NDM0NzA3OCwyMzQxMjYyNzczKSxhKDYwNDgwNzYyOCwyMDA3ODAwOTMzKSxhKDc3MDI1NTk4MywxNDk1OTkwOTAxKSxhKDEyNDkxNTAxMjIsMTg1NjQzMTIzNSksYSgxNTU1MDgxNjkyLDMxNzUyMTgxMzIpLGEoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxhKDI1NTQyMjA4ODIsMzk5OTcxOTMzOSksYSgyODIxODM0MzQ5LDc2Njc4NDAxNiksYSgyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLGEoMzIxMDMxMzY3MSwzMjAzMzM3OTU2KSxhKDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiksYSgzNTg0NTI4NzExLDI0NjY5NDg5MDEpLGEoMTEzOTI2OTkzLDM3NTgzMjYzODMpLGEoMzM4MjQxODk1LDE2ODcxNzkzNiksYSg2NjYzMDcyMDUsMTE4ODE3OTk2NCksYSg3NzM1Mjk5MTIsMTU0NjA0NTczNCksYSgxMjk0NzU3MzcyLDE1MjI4MDU0ODUpLGEoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxhKDE2OTUxODM3MDAsMjM0MzUyNzM5MCksYSgxOTg2NjYxMDUxLDEwMTQ0Nzc0ODApLGEoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxhKDI0NTY5NTYwMzcsMzQ0MDc3NjI3KSxhKDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCksYSgyODIwMzAyNDExLDMxNTg0NTQyNzMpLGEoMzI1OTczMDgwMCwzNTA1OTUyNjU3KSxhKDMzNDU3NjQ3NzEsMTA2MjE3MDA4KSxhKDM1MTYwNjU4MTcsMzYwNjAwODM0NCksYSgzNjAwMzUyODA0LDE0MzI3MjU3NzYpLGEoNDA5NDU3MTkwOSwxNDY3MDMxNTk0KSxhKDI3NTQyMzM0NCw4NTExNjk3MjApLGEoNDMwMjI3NzM0LDMxMDA4MjM3NTIpLGEoNTA2OTQ4NjE2LDEzNjMyNTgxOTUpLGEoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLGEoODgzOTk3ODc3LDM3ODUwNTAyODApLGEoOTU4MTM5NTcxLDMzMTgzMDc0MjcpLGEoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxhKDE1MzcwMDIwNjMsMjAwMzAzNDk5NSksYSgxNzQ3ODczNzc5LDM2MDIwMzY4OTkpLGEoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxhKDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCksYSgyMjI3NzMwNDUyLDI3MTY5MDQzMDYpLGEoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLGEoMjQyODQzNjQ3NCw1OTM2OTgzNDQpLGEoMjc1NjczNDE4NywzNzMzMTEwMjQ5KSxhKDMyMDQwMzE0NzksMjk5OTM1MTU3MyksYSgzMzI5MzI1Mjk4LDM4MTU5MjA0MjcpLGEoMzM5MTU2OTYxNCwzOTI4MzgzOTAwKSxhKDM1MTUyNjcyNzEsNTY2MjgwNzExKSxhKDM5NDAxODc2MDYsMzQ1NDA2OTUzNCksYSg0MTE4NjMwMjcxLDQwMDAyMzk5OTIpLGEoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLGEoMTc0MjkyNDIxLDI3MzEwNTUyNzApLGEoMjg5MzgwMzU2LDMyMDM5OTMwMDYpLGEoNDYwMzkzMjY5LDMyMDYyMDMxNSksYSg2ODU0NzE3MzMsNTg3NDk2ODM2KSxhKDg1MjE0Mjk3MSwxMDg2NzkyODUxKSxhKDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxhKDExMjYwMDA1ODAsMjYxODI5NzY3NiksYSgxMjg4MDMzNDcwLDM0MDk4NTUxNTgpLGEoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxhKDE2MDcxNjc5MTUsOTg3MTY3NDY4KSxhKDE4MTY0MDIzMTYsMTI0NjE4OTU5MSldLHU9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDw4MDt0KyspdVt0XT1hKCl9KCk7dmFyIGw9cy5TSEE1MTI9ZS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFtuZXcgby5pbml0KDE3NzkwMzM3MDMsNDA4OTIzNTcyMCksbmV3IG8uaW5pdCgzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUpLG5ldyBvLmluaXQoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKSxuZXcgby5pbml0KDI3NzM0ODA3NjIsMTU5NTc1MDEyOSksbmV3IG8uaW5pdCgxMzU5ODkzMTE5LDI5MTc1NjUxMzcpLG5ldyBvLmluaXQoMjYwMDgyMjkyNCw3MjU1MTExOTkpLG5ldyBvLmluaXQoNTI4NzM0NjM1LDQyMTUzODk1NDcpLG5ldyBvLmluaXQoMTU0MTQ1OTIyNSwzMjcwMzMyMDkpXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sbD1yWzVdLGg9cls2XSxmPXJbN10scD1uLmhpZ2gsZD1uLmxvdyxtPW8uaGlnaCx5PW8ubG93LGc9aS5oaWdoLF89aS5sb3csdj1zLmhpZ2gsdz1zLmxvdyxiPWEuaGlnaCxCPWEubG93LEY9bC5oaWdoLE49bC5sb3csaz1oLmhpZ2gseD1oLmxvdyxTPWYuaGlnaCxBPWYubG93LE89cCxUPWQsUD1tLE09eSxDPWcsRT1fLEQ9dixSPXcsST1iLEg9QixqPUYsVT1OLEw9ayx6PXgsVz1TLHE9QSwkPTA7JDw4MDskKyspe3ZhciBHPXVbJF07aWYoJDwxNil2YXIgVj1HLmhpZ2g9MHx0W2UrMiokXSxKPUcubG93PTB8dFtlKzIqJCsxXTtlbHNle3ZhciBLPXVbJC0xNV0sWD1LLmhpZ2gsWj1LLmxvdyxZPShYPj4+MXxaPDwzMSleKFg+Pj44fFo8PDI0KV5YPj4+NyxRPShaPj4+MXxYPDwzMSleKFo+Pj44fFg8PDI0KV4oWj4+Pjd8WDw8MjUpLHR0PXVbJC0yXSxldD10dC5oaWdoLHJ0PXR0LmxvdyxudD0oZXQ+Pj4xOXxydDw8MTMpXihldDw8M3xydD4+PjI5KV5ldD4+PjYsb3Q9KHJ0Pj4+MTl8ZXQ8PDEzKV4ocnQ8PDN8ZXQ+Pj4yOSleKHJ0Pj4+NnxldDw8MjYpLGl0PXVbJC03XSxzdD1pdC5oaWdoLGF0PWl0LmxvdyxjdD11WyQtMTZdLHV0PWN0LmhpZ2gsbHQ9Y3QubG93O1Y9KFY9KFY9WStzdCsoKEo9USthdCk+Pj4wPFE+Pj4wPzE6MCkpK250KygoSis9b3QpPj4+MDxvdD4+PjA/MTowKSkrdXQrKChKKz1sdCk+Pj4wPGx0Pj4+MD8xOjApLEcuaGlnaD1WLEcubG93PUp9dmFyIGh0LGZ0PUkmal5+SSZMLHB0PUgmVV5+SCZ6LGR0PU8mUF5PJkNeUCZDLG10PVQmTV5UJkVeTSZFLHl0PShPPj4+Mjh8VDw8NCleKE88PDMwfFQ+Pj4yKV4oTzw8MjV8VD4+PjcpLGd0PShUPj4+Mjh8Tzw8NCleKFQ8PDMwfE8+Pj4yKV4oVDw8MjV8Tz4+PjcpLF90PShJPj4+MTR8SDw8MTgpXihJPj4+MTh8SDw8MTQpXihJPDwyM3xIPj4+OSksdnQ9KEg+Pj4xNHxJPDwxOCleKEg+Pj4xOHxJPDwxNCleKEg8PDIzfEk+Pj45KSx3dD1jWyRdLGJ0PXd0LmhpZ2gsQnQ9d3QubG93LEZ0PVcrX3QrKChodD1xK3Z0KT4+PjA8cT4+PjA/MTowKSxOdD1ndCttdDtXPUwscT16LEw9aix6PVUsaj1JLFU9SCxJPUQrKEZ0PShGdD0oRnQ9RnQrZnQrKChodCs9cHQpPj4+MDxwdD4+PjA/MTowKSkrYnQrKChodCs9QnQpPj4+MDxCdD4+PjA/MTowKSkrVisoKGh0Kz1KKT4+PjA8Sj4+PjA/MTowKSkrKChIPVIraHR8MCk+Pj4wPFI+Pj4wPzE6MCl8MCxEPUMsUj1FLEM9UCxFPU0sUD1PLE09VCxPPUZ0Kyh5dCtkdCsoTnQ+Pj4wPGd0Pj4+MD8xOjApKSsoKFQ9aHQrTnR8MCk+Pj4wPGh0Pj4+MD8xOjApfDB9ZD1uLmxvdz1kK1Qsbi5oaWdoPXArTysoZD4+PjA8VD4+PjA/MTowKSx5PW8ubG93PXkrTSxvLmhpZ2g9bStQKyh5Pj4+MDxNPj4+MD8xOjApLF89aS5sb3c9XytFLGkuaGlnaD1nK0MrKF8+Pj4wPEU+Pj4wPzE6MCksdz1zLmxvdz13K1Iscy5oaWdoPXYrRCsodz4+PjA8Uj4+PjA/MTowKSxCPWEubG93PUIrSCxhLmhpZ2g9YitJKyhCPj4+MDxIPj4+MD8xOjApLE49bC5sb3c9TitVLGwuaGlnaD1GK2orKE4+Pj4wPFU+Pj4wPzE6MCkseD1oLmxvdz14K3osaC5oaWdoPWsrTCsoeD4+PjA8ej4+PjA/MTowKSxBPWYubG93PUErcSxmLmhpZ2g9UytXKyhBPj4+MDxxPj4+MD8xOjApfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO3JldHVybiBlW24+Pj41XXw9MTI4PDwyNC1uJTMyLGVbMzArKG4rMTI4Pj4+MTA8PDUpXT1NYXRoLmZsb29yKHIvNDI5NDk2NzI5NiksZVszMSsobisxMjg+Pj4xMDw8NSldPXIsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNoLnRvWDMyKCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9ZS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fSxibG9ja1NpemU6MzJ9KTt0LlNIQTUxMj1lLl9jcmVhdGVIZWxwZXIobCksdC5IbWFjU0hBNTEyPWUuX2NyZWF0ZUhtYWNIZWxwZXIobCl9KCksbi5TSEE1MTIpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCksZnVuY3Rpb24odCl7dmFyIGU9bixyPWUubGliLG89ci5Xb3JkQXJyYXksaT1yLkhhc2hlcixzPWUueDY0LldvcmQsYT1lLmFsZ28sYz1bXSx1PVtdLGw9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTEsZT0wLHI9MDtyPDI0O3IrKyl7Y1t0KzUqZV09KHIrMSkqKHIrMikvMiU2NDt2YXIgbj0oMip0KzMqZSklNTt0PWUlNSxlPW59Zm9yKHQ9MDt0PDU7dCsrKWZvcihlPTA7ZTw1O2UrKyl1W3QrNSplXT1lKygyKnQrMyplKSU1KjU7Zm9yKHZhciBvPTEsaT0wO2k8MjQ7aSsrKXtmb3IodmFyIGE9MCxoPTAsZj0wO2Y8NztmKyspe2lmKDEmbyl7dmFyIHA9KDE8PGYpLTE7cDwzMj9oXj0xPDxwOmFePTE8PHAtMzJ9MTI4Jm8/bz1vPDwxXjExMzpvPDw9MX1sW2ldPXMuY3JlYXRlKGEsaCl9fSgpO3ZhciBoPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8MjU7dCsrKWhbdF09cy5jcmVhdGUoKX0oKTt2YXIgZj1hLlNIQTM9aS5leHRlbmQoe2NmZzppLmNmZy5leHRlbmQoe291dHB1dExlbmd0aDo1MTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9zdGF0ZT1bXSxlPTA7ZTwyNTtlKyspdFtlXT1uZXcgcy5pbml0O3RoaXMuYmxvY2tTaXplPSgxNjAwLTIqdGhpcy5jZmcub3V0cHV0TGVuZ3RoKS8zMn0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX3N0YXRlLG49dGhpcy5ibG9ja1NpemUvMixvPTA7bzxuO28rKyl7dmFyIGk9dFtlKzIqb10scz10W2UrMipvKzFdO2k9MTY3MTE5MzUmKGk8PDh8aT4+PjI0KXw0Mjc4MjU1MzYwJihpPDwyNHxpPj4+OCkscz0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSwoQT1yW29dKS5oaWdoXj1zLEEubG93Xj1pfWZvcih2YXIgYT0wO2E8MjQ7YSsrKXtmb3IodmFyIGY9MDtmPDU7ZisrKXtmb3IodmFyIHA9MCxkPTAsbT0wO208NTttKyspcF49KEE9cltmKzUqbV0pLmhpZ2gsZF49QS5sb3c7dmFyIHk9aFtmXTt5LmhpZ2g9cCx5Lmxvdz1kfWZvcihmPTA7Zjw1O2YrKyl7dmFyIGc9aFsoZis0KSU1XSxfPWhbKGYrMSklNV0sdj1fLmhpZ2gsdz1fLmxvdztmb3IocD1nLmhpZ2heKHY8PDF8dz4+PjMxKSxkPWcubG93Xih3PDwxfHY+Pj4zMSksbT0wO208NTttKyspKEE9cltmKzUqbV0pLmhpZ2hePXAsQS5sb3dePWR9Zm9yKHZhciBiPTE7YjwyNTtiKyspe3ZhciBCPShBPXJbYl0pLmhpZ2gsRj1BLmxvdyxOPWNbYl07TjwzMj8ocD1CPDxOfEY+Pj4zMi1OLGQ9Rjw8TnxCPj4+MzItTik6KHA9Rjw8Ti0zMnxCPj4+NjQtTixkPUI8PE4tMzJ8Rj4+PjY0LU4pO3ZhciBrPWhbdVtiXV07ay5oaWdoPXAsay5sb3c9ZH12YXIgeD1oWzBdLFM9clswXTtmb3IoeC5oaWdoPVMuaGlnaCx4Lmxvdz1TLmxvdyxmPTA7Zjw1O2YrKylmb3IobT0wO208NTttKyspe3ZhciBBPXJbYj1mKzUqbV0sTz1oW2JdLFQ9aFsoZisxKSU1KzUqbV0sUD1oWyhmKzIpJTUrNSptXTtBLmhpZ2g9Ty5oaWdoXn5ULmhpZ2gmUC5oaWdoLEEubG93PU8ubG93Xn5ULmxvdyZQLmxvd31BPXJbMF07dmFyIE09bFthXTtBLmhpZ2hePU0uaGlnaCxBLmxvd149TS5sb3d9fSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2RhdGEscj1lLndvcmRzLG49KHRoaXMuX25EYXRhQnl0ZXMsOCplLnNpZ0J5dGVzKSxpPTMyKnRoaXMuYmxvY2tTaXplO3Jbbj4+PjVdfD0xPDwyNC1uJTMyLHJbKHQuY2VpbCgobisxKS9pKSppPj4+NSktMV18PTEyOCxlLnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgcz10aGlzLl9zdGF0ZSxhPXRoaXMuY2ZnLm91dHB1dExlbmd0aC84LGM9YS84LHU9W10sbD0wO2w8YztsKyspe3ZhciBoPXNbbF0sZj1oLmhpZ2gscD1oLmxvdztmPTE2NzExOTM1JihmPDw4fGY+Pj4yNCl8NDI3ODI1NTM2MCYoZjw8MjR8Zj4+PjgpLHA9MTY3MTE5MzUmKHA8PDh8cD4+PjI0KXw0Mjc4MjU1MzYwJihwPDwyNHxwPj4+OCksdS5wdXNoKHApLHUucHVzaChmKX1yZXR1cm4gbmV3IG8uaW5pdCh1LGEpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1pLmNsb25lLmNhbGwodGhpcyksZT10Ll9zdGF0ZT10aGlzLl9zdGF0ZS5zbGljZSgwKSxyPTA7cjwyNTtyKyspZVtyXT1lW3JdLmNsb25lKCk7cmV0dXJuIHR9fSk7ZS5TSEEzPWkuX2NyZWF0ZUhlbHBlcihmKSxlLkhtYWNTSEEzPWkuX2NyZWF0ZUhtYWNIZWxwZXIoZil9KE1hdGgpLG4uU0hBMyl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoOCksbz1yKDMpLGk9cigyMikscz1yKDIzKTshZnVuY3Rpb24odCl7dC5ldGhfZ2V0QmFsYW5jZT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEJhbGFuY2VcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmlnTnVtYmVyRm9ybWF0dGVyfSksdC5ldGhfZ2V0U3RvcmFnZUF0PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0U3RvcmFnZUF0XCIscGFyYW1zOjMsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG8udG9IZXgsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfZ2V0Q29kZT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldENvZGVcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfZ2V0QmxvY2tCeUhhc2g9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRCbG9ja0J5SGFzaFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsZnVuY3Rpb24odCl7cmV0dXJuISF0fV0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRCbG9ja0J5TnVtYmVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0QmxvY2tCeU51bWJlclwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsZnVuY3Rpb24odCl7cmV0dXJuISF0fV0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXg9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXhcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyLG8udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dEJsb2NrRm9ybWF0dGVyfSksdC5ldGhfZ2V0VW5jbGVCeUJsb2NrTnVtYmVyQW5kSW5kZXg9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUJ5QmxvY2tOdW1iZXJBbmRJbmRleFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeUhhc2g9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeUhhc2hcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeU51bWJlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5TnVtYmVyXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tOdW1iZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUNvdW50QnlCbG9ja051bWJlclwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2hcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRUcmFuc2FjdGlvbkZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0VHJhbnNhY3Rpb25Gb3JtYXR0ZXJ9KSx0LmV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tOdW1iZXJBbmRJbmRleD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja051bWJlckFuZEluZGV4XCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcixvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRUcmFuc2FjdGlvbkZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdFwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dFRyYW5zYWN0aW9uUmVjZWlwdEZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQ291bnQ9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRUcmFuc2FjdGlvbkNvdW50XCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG4uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX3NlbmRSYXdUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3NlbmRSYXdUcmFuc2FjdGlvblwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LndlYjNfc2hhMz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwid2ViM19zaGEzXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W251bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX3NlbmRUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3NlbmRUcmFuc2FjdGlvblwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0VHJhbnNhY3Rpb25Gb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX3NpZ249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9zaWduXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG51bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX2NhbGw9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9jYWxsXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRDYWxsRm9ybWF0dGVyLG4uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX2VzdGltYXRlR2FzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZXN0aW1hdGVHYXNcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dENhbGxGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX3N1Ym1pdFdvcms9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9zdWJtaXRXb3JrXCIscGFyYW1zOjMsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5ldGhfZ2V0V29yaz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFdvcmtcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5ldGhfY29pbmJhc2U9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9jb2luYmFzZVwiLG91dHB1dEZvcm1hdHRlcjpvLnRvQWRkcmVzc30pLHQuZXRoX21pbmluZz1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX21pbmluZ1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuZXRoX2hhc2hyYXRlPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfaGFzaHJhdGVcIixvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9zeW5jaW5nPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfc3luY2luZ1wiLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dFN5bmNpbmdGb3JtYXR0ZXJ9KSx0LmV0aF9nYXNQcmljZT1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX2dhc1ByaWNlXCIsb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmlnTnVtYmVyRm9ybWF0dGVyfSksdC5ldGhfYWNjb3VudHM9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9hY2NvdW50c1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LmV0aF9ibG9ja051bWJlcj1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX2Jsb2NrTnVtYmVyXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfcHJvdG9jb2xWZXJzaW9uPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfcHJvdG9jb2xWZXJzaW9uXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC53ZWIzX2NsaWVudFZlcnNpb249bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIndlYjNfY2xpZW50VmVyc2lvblwiLG91dHB1dEZvcm1hdHRlcjpvLnRvU3RyaW5nfSksdC5uZXRfdmVyc2lvbj1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwibmV0X3ZlcnNpb25cIixvdXRwdXRGb3JtYXR0ZXI6by50b1N0cmluZ30pLHQuc2hoX3ZlcnNpb249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF92ZXJzaW9uXCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5zaGhfcG9zdD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX3Bvc3RcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbnVsbF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5wZXJzb25hbF9uZXdBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9uZXdBY2NvdW50XCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W251bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvQWRkcmVzc30pLHQucGVyc29uYWxfaW1wb3J0UmF3S2V5PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9pbXBvcnRSYXdLZXlcIixwYXJhbXM6MixvdXRwdXRGb3JtYXR0ZXI6by50b0FkZHJlc3N9KSx0LnBlcnNvbmFsX3NpZ249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInBlcnNvbmFsX3NpZ25cIixwYXJhbXM6MyxpbnB1dEZvcm1hdHRlcjpbbnVsbCxuLmlucHV0QWRkcmVzc0Zvcm1hdHRlcixudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnBlcnNvbmFsX2VjUmVjb3Zlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwicGVyc29uYWxfZWNSZWNvdmVyXCIscGFyYW1zOjIsb3V0cHV0Rm9ybWF0dGVyOm8udG9BZGRyZXNzfSksdC5wZXJzb25hbF91bmxvY2tBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF91bmxvY2tBY2NvdW50XCIscGFyYW1zOjMsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG51bGwsby50b051bGxEZWNpbWFsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnBlcnNvbmFsX3NlbmRUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwicGVyc29uYWxfc2VuZFRyYW5zYWN0aW9uXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRUcmFuc2FjdGlvbkZvcm1hdHRlcixudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnBlcnNvbmFsX2xvY2tBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9sb2NrQWNjb3VudFwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QWRkcmVzc0Zvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5wZXJzb25hbF9saXN0QWNjb3VudHM9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcInBlcnNvbmFsX2xpc3RBY2NvdW50c1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0Lm5ldF9saXN0ZW5pbmc9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIm5ldF9saXN0ZW5pbmdcIixvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0Lm5ldF9wZWVyQ291bnQ9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIm5ldF9wZWVyQ291bnRcIixvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9uZXdGaWx0ZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9uZXdGaWx0ZXJcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0hleH0pLHQuZXRoX2dldExvZ3M9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRMb2dzXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W28udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LmV0aF9uZXdCbG9ja0ZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX25ld0Jsb2NrRmlsdGVyXCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9IZXh9KSx0LmV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXJcIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0hleH0pLHQuZXRoX3VuaW5zdGFsbEZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3VuaW5zdGFsbEZpbHRlclwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LmV0aF9nZXRGaWx0ZXJMb2dzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0RmlsdGVyTG9nc1wiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5ldGhfZ2V0RmlsdGVyQ2hhbmdlcz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEZpbHRlckNoYW5nZXNcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pLHQuZXRoX3N1Ym1pdEhhc2hyYXRlPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfc3VibWl0SGFzaHJhdGVcIixwYXJhbXM6MixvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnNoaF9uZXdJZGVudGl0eT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX25ld0lkZW50aXR5XCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5zaGhfaGFzSWRlbnRpdHk9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9oYXNJZGVudGl0eVwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuc2hoX25ld0dyb3VwPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfbmV3R3JvdXBcIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnNoaF9hZGRUb0dyb3VwPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfYWRkVG9Hcm91cFwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuc2hoX25ld0ZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX25ld0ZpbHRlclwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvSGV4fSksdC5zaGhfdW5pbnN0YWxsRmlsdGVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfdW5pbnN0YWxsRmlsdGVyXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5zaGhfZ2V0TG9ncz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX2dldExvZ3NcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5zaGhfZ2V0RmlsdGVyTWVzc2FnZXM9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9nZXRGaWx0ZXJNZXNzYWdlc1wiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LnNoaF9nZXRGaWx0ZXJDaGFuZ2VzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfZ2V0RmlsdGVyQ2hhbmdlc1wiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LnNoaF9nZXRNZXNzYWdlcz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX2dldE1lc3NhZ2VzXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pfShlLmV0aHx8KGUuZXRoPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTMpO2UuTWV0aG9kPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FsbE5hbWU9dC5jYWxsTmFtZSx0aGlzLnBhcmFtcz10LnBhcmFtc3x8MCx0aGlzLmlucHV0Rm9ybWF0dGVyPXQuaW5wdXRGb3JtYXR0ZXJ8fG51bGwsdGhpcy5vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXIsdGhpcy5yZXF1ZXN0TWFuYWdlcj1udWxsfXZhbGlkYXRlQXJncyh0KXtpZih0Lmxlbmd0aCE9PXRoaXMucGFyYW1zKXRocm93IG4uSW52YWxpZE51bWJlck9mUlBDUGFyYW1zKHRoaXMuY2FsbE5hbWUsdC5sZW5ndGgsdGhpcy5wYXJhbXMpfWZvcm1hdElucHV0KHQpe3JldHVybiB0aGlzLmlucHV0Rm9ybWF0dGVyP3RoaXMuaW5wdXRGb3JtYXR0ZXIubWFwKGZ1bmN0aW9uKGUscil7cmV0dXJuIGU/ZSh0W3JdKTp0W3JdfSk6dH1mb3JtYXRPdXRwdXQodCl7cmV0dXJuIG51bGwhPT10P3RoaXMub3V0cHV0Rm9ybWF0dGVyKHQpOm51bGx9dG9QYXlsb2FkKHQpe2xldCBlPXRoaXMuZm9ybWF0SW5wdXQodCk7cmV0dXJuIHRoaXMudmFsaWRhdGVBcmdzKGUpLHttZXRob2Q6dGhpcy5jYWxsTmFtZSxwYXJhbXM6ZX19YXN5bmMgZXhlY3V0ZSh0LC4uLmUpe2xldCByPXRoaXMudG9QYXlsb2FkKGUpO2lmKCF0KXRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgUmVxdWVzdE1hbmFnZXIgaW4gbWV0aG9kI2V4ZWNcIik7Y29uc3Qgbj1hd2FpdCB0LnNlbmRBc3luYyhyKTtyZXR1cm4gdGhpcy5mb3JtYXRPdXRwdXQobil9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2UuUHJvcGVydHk9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5nZXR0ZXI9dC5nZXR0ZXIsdGhpcy5vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXJ9Zm9ybWF0T3V0cHV0KHQpe3JldHVybiB0aGlzLm91dHB1dEZvcm1hdHRlcih0KX1hc3luYyBleGVjdXRlKHQpe2NvbnN0IGU9YXdhaXQgdC5zZW5kQXN5bmMoe21ldGhvZDp0aGlzLmdldHRlcixwYXJhbXM6W119KTtyZXR1cm4gdGhpcy5mb3JtYXRPdXRwdXQoZSl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cig2MCksbz1yKDI2KSxpPXIoNzApO2UuQ29udHJhY3Q9Y2xhc3N7Y29uc3RydWN0b3IodCxlLHIpe3ZhciBzO3RoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLmFiaT1lLHRoaXMuYWRkcmVzcz1yLHRoaXMuZXZlbnRzPXt9LHRoaXMudHJhbnNhY3Rpb25IYXNoPW51bGwsdGhpcy50cmFuc2FjdGlvbkhhc2g9bnVsbCx0aGlzLmFkZHJlc3M9cix0aGlzLmFiaT1lLChzPXRoaXMpLmFiaS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJmdW5jdGlvblwiPT09dC50eXBlfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbi5Tb2xpZGl0eUZ1bmN0aW9uKHMucmVxdWVzdE1hbmFnZXIsdCxzLmFkZHJlc3MpfSkuZm9yRWFjaChmdW5jdGlvbih0KXt0LmF0dGFjaFRvQ29udHJhY3Qocyl9KSxmdW5jdGlvbih0KXtsZXQgZT10LmFiaS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJldmVudFwiPT09dC50eXBlfSk7bmV3IGkuQWxsU29saWRpdHlFdmVudHModC5yZXF1ZXN0TWFuYWdlcixlLHQuYWRkcmVzcykuYXR0YWNoVG9Db250cmFjdCh0KSxlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG8uU29saWRpdHlFdmVudCh0LnJlcXVlc3RNYW5hZ2VyLGUsdC5hZGRyZXNzKX0pLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5hdHRhY2hUb0NvbnRyYWN0KHQpfSl9KHRoaXMpfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMyk7ZS5Tb2xpZGl0eVBhcmFtPWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5vZmZzZXQ9dm9pZCAwLHRoaXMudmFsdWU9dHx8XCJcIix0aGlzLm9mZnNldD1lfWlzRHluYW1pYygpe3JldHVybiB2b2lkIDAhPT10aGlzLm9mZnNldH1vZmZzZXRBc0J5dGVzKCl7cmV0dXJuIHRoaXMuaXNEeW5hbWljKCk/bi5wYWRMZWZ0KG4udG9Ud29zQ29tcGxlbWVudCh0aGlzLm9mZnNldCkudG9TdHJpbmcoMTYpLDY0KTpcIlwifXN0YXRpY1BhcnQoKXtyZXR1cm4gdGhpcy5pc0R5bmFtaWMoKT90aGlzLm9mZnNldEFzQnl0ZXMoKTp0aGlzLnZhbHVlfWR5bmFtaWNQYXJ0KCl7cmV0dXJuIHRoaXMuaXNEeW5hbWljKCk/dGhpcy52YWx1ZTpcIlwifWVuY29kZSgpe3JldHVybiB0aGlzLnN0YXRpY1BhcnQoKSt0aGlzLmR5bmFtaWNQYXJ0KCl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoOCksaT1yKDE1KSxzPXIoMjcpO2UuU29saWRpdHlFdmVudD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuYWRkcmVzcz1yLHRoaXMuX2Fub255bW91cz0hMSx0aGlzLl9wYXJhbXM9ZS5pbnB1dHMsdGhpcy5fbmFtZT1uLnRyYW5zZm9ybVRvRnVsbE5hbWUoZSksdGhpcy5fYW5vbnltb3VzPWUuYW5vbnltb3VzfXR5cGVzKHQpe3JldHVybiB0aGlzLl9wYXJhbXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmluZGV4ZWQ9PT10fSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KX1kaXNwbGF5TmFtZSgpe3JldHVybiBuLmV4dHJhY3REaXNwbGF5TmFtZSh0aGlzLl9uYW1lKX10eXBlTmFtZSgpe3JldHVybiBuLmV4dHJhY3RUeXBlTmFtZSh0aGlzLl9uYW1lKXx8XCJ2b2lkXCJ9c2lnbmF0dXJlKCl7cmV0dXJuIG4uc2hhMyh0aGlzLl9uYW1lKX1lbmNvZGUodD17fSxlPXt9KXtsZXQgcj17dG9waWNzOltdLGFkZHJlc3M6dGhpcy5hZGRyZXNzfTtbXCJmcm9tQmxvY2tcIixcInRvQmxvY2tcIl0uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT1lW3RdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtyW3RdPW8uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcihlW3RdKX0pLHRoaXMuX2Fub255bW91c3x8ci50b3BpY3MucHVzaChcIjB4XCIrdGhpcy5zaWduYXR1cmUoKSk7bGV0IHM9dGhpcy5fcGFyYW1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hMD09PXQuaW5kZXhlZH0pLm1hcChmdW5jdGlvbihlKXtsZXQgcj10W2UubmFtZV07cmV0dXJuIG51bGw9PXI/bnVsbDpuLmlzQXJyYXkocik/ci5tYXAoZnVuY3Rpb24odCl7cmV0dXJuXCIweFwiK2kuY29kZXIuZW5jb2RlUGFyYW0oZS50eXBlLHQpfSk6XCIweFwiK2kuY29kZXIuZW5jb2RlUGFyYW0oZS50eXBlLHIpfSk7cmV0dXJuIHIudG9waWNzPXIudG9waWNzLmNvbmNhdChzKSxyfWRlY29kZSh0KXt0LmRhdGE9dC5kYXRhfHxcIlwiLHQudG9waWNzPXQudG9waWNzfHxbXTtsZXQgZT0odGhpcy5fYW5vbnltb3VzP3QudG9waWNzOnQudG9waWNzLnNsaWNlKDEpKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoMil9KS5qb2luKFwiXCIpLHI9aS5jb2Rlci5kZWNvZGVQYXJhbXModGhpcy50eXBlcyghMCksZSksbj10LmRhdGEuc2xpY2UoMikscz1pLmNvZGVyLmRlY29kZVBhcmFtcyh0aGlzLnR5cGVzKCExKSxuKSxhPW8ub3V0cHV0TG9nRm9ybWF0dGVyKHQpO3JldHVybiBhLmV2ZW50PXRoaXMuZGlzcGxheU5hbWUoKSxhLmFkZHJlc3M9dC5hZGRyZXNzLGEuYXJncz10aGlzLl9wYXJhbXMucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS5uYW1lXT1lLmluZGV4ZWQ/ci5zaGlmdCgpOnMuc2hpZnQoKSx0fSx7fSksZGVsZXRlIGEuZGF0YSxkZWxldGUgYS50b3BpY3MsYX1hc3luYyBleGVjdXRlKHQsZSl7bGV0IHI9dGhpcy5lbmNvZGUodCxlKSxuPXRoaXMuZGVjb2RlLmJpbmQodGhpcyk7cmV0dXJuIG5ldyBzLkV0aEZpbHRlcih0aGlzLnJlcXVlc3RNYW5hZ2VyLHIsbil9YXR0YWNoVG9Db250cmFjdCh0KXtsZXQgZT10aGlzLmV4ZWN1dGUuYmluZCh0aGlzKSxyPXRoaXMuZGlzcGxheU5hbWUoKTt0LmV2ZW50c1tyXXx8KHQuZXZlbnRzW3JdPWUpLHQuZXZlbnRzW3JdW3RoaXMudHlwZU5hbWUoKV09dGhpcy5leGVjdXRlLmJpbmQodGhpcyx0KX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cig4KSxpPXIoMTQpLHM9cig5KTtmdW5jdGlvbiBhKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7Y29uc3QgZT1TdHJpbmcodCkudG9TdHJpbmcoKTtyZXR1cm4gMD09PWUuaW5kZXhPZihcIjB4XCIpP2U6bi5mcm9tVXRmOChlKX1jbGFzcyBje2NvbnN0cnVjdG9yKHQpe3RoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLmlzU3RhcnRlZD0hMSx0aGlzLmlzRGlzcG9zZWQ9ITEsdGhpcy5maWx0ZXJJZD1zLmZ1dHVyZSgpLHRoaXMuY2FsbGJhY2tzPVtdLHRoaXMuc3RvcFNlbWFwaG9yZT1zLmZ1dHVyZSgpfWFzeW5jIHdhdGNoKHQpe2lmKHRoaXMuaXNEaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZmlsdGVyIHdhcyBkaXNwb3NlZFwiKTt0JiYodGhpcy5jYWxsYmFja3MucHVzaCh0KSx0aGlzLmlzU3RhcnRlZHx8YXdhaXQgdGhpcy5zdGFydCgpKX1hc3luYyBzdGFydCgpe2lmKHRoaXMuaXNEaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZmlsdGVyIHdhcyBkaXNwb3NlZFwiKTtpZighdGhpcy5pc1N0YXJ0ZWQpe3RoaXMuaXNTdGFydGVkPSEwO3RyeXtjb25zdCB0PWF3YWl0IHRoaXMuZ2V0TmV3RmlsdGVyKCk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGNyZWF0ZSBhIGZpbHRlciwgcmVzcG9uc2U6IFwiK0pTT04uc3RyaW5naWZ5KHQpKTt0aGlzLmZpbHRlcklkLnJlc29sdmUodCl9Y2F0Y2godCl7dGhyb3cgdH10aGlzLnN0b3BTZW1hcGhvcmU9cy5mdXR1cmUoKSxhd2FpdCB0aGlzLnBvbGwoKX19YXN5bmMgc3RvcCgpe2lmKCF0aGlzLmlzU3RhcnRlZClyZXR1cm47aWYodGhpcy5pc0Rpc3Bvc2VkKXJldHVybjt0aGlzLmlzRGlzcG9zZWQ9ITA7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO2lmKHRoaXMuaXNTdGFydGVkPSExLHRoaXMuc3RvcFNlbWFwaG9yZSYmYXdhaXQgdGhpcy5zdG9wU2VtYXBob3JlLCEwIT09YXdhaXQgdGhpcy51bmluc3RhbGwoKSl0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IHN0b3AgdGhlIGV0aCBmaWx0ZXI6ICR7dH1gKX1hc3luYyBwb2xsKCl7aWYodGhpcy5pc1N0YXJ0ZWQpe2lmKHRoaXMuY2FsbGJhY2tzLmxlbmd0aCl7Y29uc3QgdD1hd2FpdCB0aGlzLmdldENoYW5nZXMoKTt0aGlzLmNhbGxiYWNrcy5mb3JFYWNoKGU9Pnt0aGlzLmZvcm1hdHRlcj90LmZvckVhY2godD0+e2UodGhpcy5mb3JtYXR0ZXIodCkpfSk6dC5mb3JFYWNoKHQ9PmUodCkpfSl9dGhpcy5zdG9wU2VtYXBob3JlLnJlc29sdmUoMSksdGhpcy5pc1N0YXJ0ZWQmJih0aGlzLnN0b3BTZW1hcGhvcmU9cy5mdXR1cmUoKSxzZXRUaW1lb3V0KCh0PSgoKT0+dGhpcy5wb2xsKCkpLGZ1bmN0aW9uKCl7dCgpLmNhdGNoKHQ9PmNvbnNvbGUuZXJyb3IodCkpfSksaS5FVEhfUE9MTElOR19USU1FT1VUKSl9ZWxzZSB0aGlzLnN0b3BTZW1hcGhvcmUucmVzb2x2ZSgxKTt2YXIgdH19ZS5BYnN0cmFjdEZpbHRlcj1jO2UuU0hIRmlsdGVyPWNsYXNzIGV4dGVuZHMgY3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLm9wdGlvbnM9dGhpcy5vcHRpb25zfHx7dG9waWNzOltdfSx0aGlzLm9wdGlvbnMudG9waWNzPXRoaXMub3B0aW9ucy50b3BpY3N8fFtdLHRoaXMub3B0aW9ucy50b3BpY3M9dGhpcy5vcHRpb25zLnRvcGljcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KSx0aGlzLm9wdGlvbnM9e3RvcGljczp0aGlzLm9wdGlvbnMudG9waWNzLHRvOnRoaXMub3B0aW9ucy50b319YXN5bmMgZ2V0TWVzc2FnZXMoKXtjb25zdCB0PWF3YWl0IHRoaXMuZmlsdGVySWQ7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuc2hoX2dldE1lc3NhZ2VzKHQpfWFzeW5jIGdldE5ld0ZpbHRlcigpe3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnNoaF9uZXdGaWx0ZXIodGhpcy5vcHRpb25zKX1hc3luYyBnZXRDaGFuZ2VzKCl7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnNoaF9nZXRGaWx0ZXJDaGFuZ2VzKHQpfWFzeW5jIHVuaW5zdGFsbCgpe2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5zaGhfdW5pbnN0YWxsRmlsdGVyKHQpfX07Y2xhc3MgdSBleHRlbmRzIGN7Y29uc3RydWN0b3IodCxlLHI9KHQ9PnQpKXtzdXBlcih0KSx0aGlzLnJlcXVlc3RNYW5hZ2VyPXQsdGhpcy5vcHRpb25zPWUsdGhpcy5mb3JtYXR0ZXI9cix0aGlzLm9wdGlvbnM9dGhpcy5vcHRpb25zfHx7fSx0aGlzLm9wdGlvbnMudG9waWNzPXRoaXMub3B0aW9ucy50b3BpY3N8fFtdLHRoaXMub3B0aW9ucy50b3BpY3M9dGhpcy5vcHRpb25zLnRvcGljcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KSx0aGlzLm9wdGlvbnM9e3RvcGljczp0aGlzLm9wdGlvbnMudG9waWNzLGFkZHJlc3M6dGhpcy5vcHRpb25zLmFkZHJlc3M/dGhpcy5vcHRpb25zLmFkZHJlc3M6dm9pZCAwLGZyb21CbG9jazpcIm51bWJlclwiPT10eXBlb2YgdGhpcy5vcHRpb25zLmZyb21CbG9ja3x8XCJzdHJpbmdcIj09dHlwZW9mIHRoaXMub3B0aW9ucy5mcm9tQmxvY2s/by5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyKHRoaXMub3B0aW9ucy5mcm9tQmxvY2spOlwibGF0ZXN0XCIsdG9CbG9jazpcIm51bWJlclwiPT10eXBlb2YgdGhpcy5vcHRpb25zLnRvQmxvY2t8fFwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudG9CbG9jaz9vLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIodGhpcy5vcHRpb25zLnRvQmxvY2spOlwibGF0ZXN0XCJ9fWFzeW5jIGdldExvZ3MoKXt0aGlzLmlzU3RhcnRlZHx8YXdhaXQgdGhpcy5zdGFydCgpO2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZ2V0RmlsdGVyTG9ncyh0KX1hc3luYyBnZXROZXdGaWx0ZXIoKXtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfbmV3RmlsdGVyKHRoaXMub3B0aW9ucyl9YXN5bmMgZ2V0Q2hhbmdlcygpe2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZ2V0RmlsdGVyQ2hhbmdlcyh0KX1hc3luYyB1bmluc3RhbGwoKXtjb25zdCB0PWF3YWl0IHRoaXMuZmlsdGVySWQ7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuZXRoX3VuaW5zdGFsbEZpbHRlcih0KX19ZS5FdGhGaWx0ZXI9dTtlLkV0aFBlbmRpbmdUcmFuc2FjdGlvbkZpbHRlcj1jbGFzcyBleHRlbmRzIHV7Y29uc3RydWN0b3IodCl7c3VwZXIodCxudWxsLHQ9PnQpfWFzeW5jIGdldE5ld0ZpbHRlcigpe3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXIoKX19O2UuRXRoQmxvY2tGaWx0ZXI9Y2xhc3MgZXh0ZW5kcyB1e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQsbnVsbCx0PT50KX1hc3luYyBnZXROZXdGaWx0ZXIoKXtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfbmV3QmxvY2tGaWx0ZXIoKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDI5KTtlLkhUVFBQcm92aWRlcj1uLkhUVFBQcm92aWRlcjtjb25zdCBvPXIoMzApO2UuV2ViU29ja2V0UHJvdmlkZXI9by5XZWJTb2NrZXRQcm92aWRlcixmdW5jdGlvbih0KXtmb3IodmFyIHIgaW4gdCllLmhhc093blByb3BlcnR5KHIpfHwoZVtyXT10W3JdKX0ocigzKSk7dmFyIGk9cig1NSk7ZS5SZXF1ZXN0TWFuYWdlcj1pLlJlcXVlc3RNYW5hZ2VyO3ZhciBzPXIoMjQpO2UuQ29udHJhY3Q9cy5Db250cmFjdDt2YXIgYT1yKDcxKTtlLkNvbnRyYWN0RmFjdG9yeT1hLkNvbnRyYWN0RmFjdG9yeTt2YXIgYz1yKDIyKTtlLk1ldGhvZD1jLk1ldGhvZDt2YXIgdT1yKDIzKTtlLlByb3BlcnR5PXUuUHJvcGVydHk7dmFyIGw9cigyMSk7ZS5ldGg9bC5ldGh9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTYpO2UuSFRUUFByb3ZpZGVyPWNsYXNze2NvbnN0cnVjdG9yKHQsZT17fSl7dGhpcy5ob3N0PXQsdGhpcy5vcHRpb25zPWUsdGhpcy5kZWJ1Zz0hMSx0aGlzLmhvc3Q9dHx8XCJodHRwOi8vbG9jYWxob3N0Ojg1NDVcIn1zZW5kKCl7dGhyb3cgbmV3IEVycm9yKFwiU3luYyByZXF1ZXN0cyBhcmUgZGVwcmVjYXRlZFwiKX1zZW5kQXN5bmModCxlKXt0cnl7bGV0IHI9bnVsbDtpZihyPXQgaW5zdGFuY2VvZiBBcnJheT90Lm1hcCh0PT5uLnRvUlBDKHQpKTpuLnRvUlBDKHQpLFwidW5kZWZpbmVkXCI9PXR5cGVvZiBmZXRjaCl0aHJvdyBuZXcgRXJyb3IoXCJUaGVyZSBpcyBubyBnbG9iYWwgZmV0Y2ggb2JqZWN0LiBQbGVhc2UgaW5zdGFsbCBhbmQgaW1wb3J0IGlzb21vcnBoaWMtZmV0Y2hcIik7Y29uc3Qgbz17Ym9keTpKU09OLnN0cmluZ2lmeShyKSxtZXRob2Q6XCJQT1NUXCIsaGVhZGVyczpPYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucy5oZWFkZXJzLHtcIkNvbnRlbnQtVHlwZVwiOlwiYXBwbGljYXRpb24vanNvblwifSl9O3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiU0VORCA+PiBcIitvLmJvZHkpLGZldGNoKHRoaXMuaG9zdCxvKS50aGVuKGFzeW5jIHQ9PntpZih0Lm9rKXtjb25zdCByPWF3YWl0IHQuanNvbigpO3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiUkVDViA8PCBcIitKU09OLnN0cmluZ2lmeShyKSksci5lcnJvcj9lKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKHIuZXJyb3IuanNvbnx8ci5lcnJvciksci5lcnJvcikpOmUobnVsbCxyKX1lbHNlIHRoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiRVJSIDw8IFwiK0pTT04uc3RyaW5naWZ5KHQpKSxlKG5ldyBFcnJvcihcIkV4dGVybmFsIGVycm9yLiByZXNwb25zZSBjb2RlOiBcIit0LnN0YXR1cykpfSx0PT57dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJFUlIgPDwgXCIrSlNPTi5zdHJpbmdpZnkodCkpLGUodCl9KX1jYXRjaCh0KXt0aGlzLmRlYnVnJiZjb25zb2xlLmxvZyhcIkVSUiA8PCBcIitKU09OLnN0cmluZ2lmeSh0KSksZSh0KX19fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxNiksbz1yKDkpO2NsYXNzIGl7Y29uc3RydWN0b3IodCxlPXt9KXt0aGlzLnVybD10LHRoaXMub3B0aW9ucz1lLHRoaXMuaXNEaXNwb3NlZD0hMSx0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzPW5ldyBNYXAsdGhpcy5ub3RpZmljYXRpb25DYWxsYmFja3M9bmV3IFNldCx0aGlzLmRlYnVnPSExLHRoaXMubGFzdENodW5rPVwiXCIsdGhpcy5jb25uZWN0KCl9ZGlzcG9zZSgpe3RoaXMuaXNEaXNwb3NlZD0hMDtjb25zdCB0PXRoaXMuY29ubmVjdGlvbjt0aGlzLnRpbWVvdXQobmV3IEVycm9yKFwiUHJvdmlkZXIgZGlzcG9zZWQuXCIpKSx0LnRoZW4odD0+dC5jbG9zZSgpKX1zZW5kKCl7dGhyb3cgbmV3IEVycm9yKFwiU3luYyByZXF1ZXN0cyBhcmUgZGVwcmVjYXRlZFwiKX1zZW5kQXN5bmModCxlKXtjb25zdCByPVtdO2xldCBpO2lmKHQgaW5zdGFuY2VvZiBBcnJheSlpPVByb21pc2UuYWxsKHQubWFwKHQ9Pntjb25zdCBlPW8uZnV0dXJlKCk7dHJ5e2NvbnN0IG89bi50b1JQQyh0KTtyLnB1c2gobyksdGhpcy5yZXNwb25zZUNhbGxiYWNrcy5zZXQoby5pZCxlKX1jYXRjaCh0KXtlLnJlamVjdCh0KX1yZXR1cm4gZX0pKTtlbHNle2NvbnN0IGU9by5mdXR1cmUoKTt0cnl7Y29uc3Qgbz1uLnRvUlBDKHQpO3IucHVzaChvKSx0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzLnNldChvLmlkLGUpfWNhdGNoKHQpe2UucmVqZWN0KHQpfWk9ZX1pLnRoZW4odD0+ZShudWxsLHQpLHQ9PmUodCkpLHRoaXMuY29ubmVjdGlvbi50aGVuKHQ9PntyLmZvckVhY2goZT0+e2NvbnN0IHI9SlNPTi5zdHJpbmdpZnkoZSk7dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJTRU5EID4+IFwiK3IpLHQuc2VuZChyKX0pfSx0PT57ZSh0KX0pfXBhcnNlUmVzcG9uc2UodCl7bGV0IGU9W107cmV0dXJuIHQucmVwbGFjZSgvXFx9W1xcblxccl0/XFx7L2csXCJ9fC0tfHtcIikucmVwbGFjZSgvXFx9XFxdW1xcblxccl0/XFxbXFx7L2csXCJ9XXwtLXxbe1wiKS5yZXBsYWNlKC9cXH1bXFxuXFxyXT9cXFtcXHsvZyxcIn18LS18W3tcIikucmVwbGFjZSgvXFx9XFxdW1xcblxccl0/XFx7L2csXCJ9XXwtLXx7XCIpLnNwbGl0KFwifC0tfFwiKS5mb3JFYWNoKHQ9PntsZXQgcj10O3RoaXMubGFzdENodW5rJiYocj10aGlzLmxhc3RDaHVuaytyKTtsZXQgbj1udWxsO3RyeXtuPUpTT04ucGFyc2Uocil9Y2F0Y2godCl7cmV0dXJuIHRoaXMubGFzdENodW5rPXIsY2xlYXJUaW1lb3V0KHRoaXMubGFzdENodW5rVGltZW91dCksdm9pZCh0aGlzLmxhc3RDaHVua1RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudGltZW91dCgpfSwxNWUzKSl9Y2xlYXJUaW1lb3V0KHRoaXMubGFzdENodW5rVGltZW91dCksdGhpcy5sYXN0Q2h1bms9bnVsbCxuJiZlLnB1c2gobil9KSxlfXByb2Nlc3NNZXNzYWdlKHQpe2lmKFwiaWRcImluIHQpe2NvbnN0IGU9dC5pZCxyPXRoaXMucmVzcG9uc2VDYWxsYmFja3MuZ2V0KGUpO2lmKCFyKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjogUmVjZWl2ZWQgYSByZXNwb25zZSBmb3IgYW4gdW5rbm93biByZXF1ZXN0XCIsdCk7dGhpcy5yZXNwb25zZUNhbGxiYWNrcy5kZWxldGUoZSksXCJlcnJvclwiaW4gdD9yLnJlamVjdChPYmplY3QuYXNzaWduKG5ldyBFcnJvcih0LmVycm9yLm1lc3NhZ2V8fHQuZXJyb3IpLHQuZXJyb3IpKTpcInJlc3VsdFwiaW4gdCYmci5yZXNvbHZlKHQpfWVsc2UgdGhpcy5ub3RpZmljYXRpb25DYWxsYmFja3MuZm9yRWFjaChlPT5lKG51bGwsdCkpfXRpbWVvdXQodCl7dGhpcy5jb25uZWN0aW9uJiZ0aGlzLmNvbm5lY3Rpb24uaXNQZW5kaW5nfHwodGhpcy5jb25uZWN0aW9uPW8uZnV0dXJlKCkpO2NvbnN0IGU9dHx8bmV3IEVycm9yKFwiQ29ubmVjdGlvbiB0aW1lb3V0XCIpO3RoaXMucmVzcG9uc2VDYWxsYmFja3MuZm9yRWFjaCh0PT50LnJlamVjdChlKSksdGhpcy5yZXNwb25zZUNhbGxiYWNrcy5jbGVhcigpLHRoaXMuaXNEaXNwb3NlZHx8dGhpcy5jb25uZWN0KCl9Y29ubmVjdCgpe3RoaXMuY29ubmVjdGlvbiYmIXRoaXMuY29ubmVjdGlvbi5pc1BlbmRpbmcmJnRoaXMuY29ubmVjdGlvbi50aGVuKHQ9PnQuY2xvc2UoKSksdGhpcy5jb25uZWN0aW9uJiZ0aGlzLmNvbm5lY3Rpb24uaXNQZW5kaW5nfHwodGhpcy5jb25uZWN0aW9uPW8uZnV0dXJlKCkpLHRoaXMubGFzdENodW5rPVwiXCI7bGV0IHQ9dGhpcy5vcHRpb25zLldlYlNvY2tldENvbnN0cnVjdG9yfHwoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFdlYlNvY2tldD9XZWJTb2NrZXQ6dm9pZCAwKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJQbGVhc2UgcHJvdmlkZSBhIFdlYlNvY2tldENvbnN0cnVjdG9yXCIpO2NvbnN0IGU9bmV3IHQodGhpcy51cmwsdGhpcy5vcHRpb25zLnByb3RvY29sKTtlLm9ub3Blbj0oKCk9Pnt0aGlzLmNvbm5lY3Rpb24ucmVzb2x2ZShlKX0pLGUub25lcnJvcj0odD0+e3RoaXMudGltZW91dCh0KX0pLGUub25jbG9zZT0odD0+e3RoaXMudGltZW91dChuZXcgRXJyb3IoYENvbm5lY3Rpb24gY2xvc2VkICgke3QmJnQucmVhc29ufHxcIlVua25vd24gcmVhc29uXCJ9KWApKX0pLGUub25tZXNzYWdlPSh0PT57bGV0IGU9XCJzdHJpbmdcIj09dHlwZW9mIHQuZGF0YT90LmRhdGE6XCJcIjt0aGlzLmRlYnVnJiZjb25zb2xlLmxvZyhcIlJFQ1YgPDwgXCIrdC5kYXRhKSx0aGlzLnBhcnNlUmVzcG9uc2UoZSkuZm9yRWFjaCh0PT57dCBpbnN0YW5jZW9mIEFycmF5P3QuZm9yRWFjaCh0PT50aGlzLnByb2Nlc3NNZXNzYWdlKHQpKTp0aGlzLnByb2Nlc3NNZXNzYWdlKHQpfSl9KX19ZS5XZWJTb2NrZXRQcm92aWRlcj1pLGUuZGVmYXVsdD1pfSxmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvPVN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGUscixuPVtdLG89MCxpPXQubGVuZ3RoO288aTspKGU9dC5jaGFyQ29kZUF0KG8rKykpPj01NTI5NiYmZTw9NTYzMTkmJm88aT81NjMyMD09KDY0NTEyJihyPXQuY2hhckNvZGVBdChvKyspKSk/bi5wdXNoKCgoMTAyMyZlKTw8MTApKygxMDIzJnIpKzY1NTM2KToobi5wdXNoKGUpLG8tLSk6bi5wdXNoKGUpO3JldHVybiBufWZ1bmN0aW9uIHModCl7aWYodD49NTUyOTYmJnQ8PTU3MzQzKXRocm93IEVycm9yKFwiTG9uZSBzdXJyb2dhdGUgVStcIit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpK1wiIGlzIG5vdCBhIHNjYWxhciB2YWx1ZVwiKX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIG8odD4+ZSY2M3wxMjgpfWZ1bmN0aW9uIGModCl7aWYoMD09KDQyOTQ5NjcxNjgmdCkpcmV0dXJuIG8odCk7dmFyIGU9XCJcIjtyZXR1cm4gMD09KDQyOTQ5NjUyNDgmdCk/ZT1vKHQ+PjYmMzF8MTkyKTowPT0oNDI5NDkwMTc2MCZ0KT8ocyh0KSxlPW8odD4+MTImMTV8MjI0KSxlKz1hKHQsNikpOjA9PSg0MjkyODcwMTQ0JnQpJiYoZT1vKHQ+PjE4Jjd8MjQwKSxlKz1hKHQsMTIpLGUrPWEodCw2KSksZSs9byg2MyZ0fDEyOCl9ZnVuY3Rpb24gdSgpe2lmKG4+PXIpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGJ5dGUgaW5kZXhcIik7dmFyIHQ9MjU1JmVbbl07aWYobisrLDEyOD09KDE5MiZ0KSlyZXR1cm4gNjMmdDt0aHJvdyBFcnJvcihcIkludmFsaWQgY29udGludWF0aW9uIGJ5dGVcIil9ZnVuY3Rpb24gbCgpe3ZhciB0LG87aWYobj5yKXRocm93IEVycm9yKFwiSW52YWxpZCBieXRlIGluZGV4XCIpO2lmKG49PXIpcmV0dXJuITE7aWYodD0yNTUmZVtuXSxuKyssMD09KDEyOCZ0KSlyZXR1cm4gdDtpZigxOTI9PSgyMjQmdCkpe2lmKChvPSgzMSZ0KTw8Nnx1KCkpPj0xMjgpcmV0dXJuIG87dGhyb3cgRXJyb3IoXCJJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlXCIpfWlmKDIyND09KDI0MCZ0KSl7aWYoKG89KDE1JnQpPDwxMnx1KCk8PDZ8dSgpKT49MjA0OClyZXR1cm4gcyhvKSxvO3Rocm93IEVycm9yKFwiSW52YWxpZCBjb250aW51YXRpb24gYnl0ZVwiKX1pZigyNDA9PSgyNDgmdCkmJihvPSg3JnQpPDwxOHx1KCk8PDEyfHUoKTw8Nnx1KCkpPj02NTUzNiYmbzw9MTExNDExMSlyZXR1cm4gbzt0aHJvdyBFcnJvcihcIkludmFsaWQgVVRGLTggZGV0ZWN0ZWRcIil9dC52ZXJzaW9uPVwiMy4wLjBcIix0LmVuY29kZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9aSh0KSxyPWUubGVuZ3RoLG49LTEsbz1cIlwiOysrbjxyOylvKz1jKGVbbl0pO3JldHVybiBvfSx0LmRlY29kZT1mdW5jdGlvbih0KXtlPWkodCkscj1lLmxlbmd0aCxuPTA7Zm9yKHZhciBzLGE9W107ITEhPT0ocz1sKCkpOylhLnB1c2gocyk7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLG49LTEsaT1cIlwiOysrbjxyOykoZT10W25dKT42NTUzNSYmKGkrPW8oKGUtPTY1NTM2KT4+PjEwJjEwMjN8NTUyOTYpLGU9NTYzMjB8MTAyMyZlKSxpKz1vKGUpO3JldHVybiBpfShhKX19KGUpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCkscigzMykscigzNCkscig2KSxyKDcpLHIoMTEpLHIoMTgpLHIoMzUpLHIoMTkpLHIoMzYpLHIoMjApLHIoMzcpLHIoMTIpLHIoMzgpLHIoNSkscigxKSxyKDM5KSxyKDQwKSxyKDQxKSxyKDQyKSxyKDQzKSxyKDQ0KSxyKDQ1KSxyKDQ2KSxyKDQ3KSxyKDQ4KSxyKDQ5KSxyKDUwKSxyKDUxKSxyKDUyKSxyKDUzKSxyKDU0KSxuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLGZ1bmN0aW9uKCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PW4ubGliLldvcmRBcnJheSxlPXQuaW5pdDsodC5pbml0PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKHQ9bmV3IFVpbnQ4QXJyYXkodCkpLCh0IGluc3RhbmNlb2YgSW50OEFycmF5fHxcInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkmJnQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIEludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJih0PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpKSx0IGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciByPXQuYnl0ZUxlbmd0aCxuPVtdLG89MDtvPHI7bysrKW5bbz4+PjJdfD10W29dPDwyNC1vJTQqODtlLmNhbGwodGhpcyxuLHIpfWVsc2UgZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5wcm90b3R5cGU9dH19KCksbi5saWIuV29yZEFycmF5KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLGZ1bmN0aW9uKCl7dmFyIHQ9bixlPXQubGliLldvcmRBcnJheSxyPXQuZW5jO2Z1bmN0aW9uIG8odCl7cmV0dXJuIHQ8PDgmNDI3ODI1NTM2MHx0Pj4+OCYxNjcxMTkzNX1yLlV0ZjE2PXIuVXRmMTZCRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPVtdLG89MDtvPHI7bys9Mil7dmFyIGk9ZVtvPj4+Ml0+Pj4xNi1vJTQqOCY2NTUzNTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLG49W10sbz0wO288cjtvKyspbltvPj4+MV18PXQuY2hhckNvZGVBdChvKTw8MTYtbyUyKjE2O3JldHVybiBlLmNyZWF0ZShuLDIqcil9fSxyLlV0ZjE2TEU9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMsbj1bXSxpPTA7aTxyO2krPTIpe3ZhciBzPW8oZVtpPj4+Ml0+Pj4xNi1pJTQqOCY2NTUzNSk7bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUocykpfXJldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPVtdLGk9MDtpPHI7aSsrKW5baT4+PjFdfD1vKHQuY2hhckNvZGVBdChpKTw8MTYtaSUyKjE2KTtyZXR1cm4gZS5jcmVhdGUobiwyKnIpfX19KCksbi5lbmMuVXRmMTYpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjO3QuZXhwb3J0cz0obj1yKDApLHIoMTgpLGk9KG89bikubGliLldvcmRBcnJheSxzPW8uYWxnbyxhPXMuU0hBMjU2LGM9cy5TSEEyMjQ9YS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFszMjM4MzcxMDMyLDkxNDE1MDY2Myw4MTI3MDI5OTksNDE0NDkxMjY5Nyw0MjkwNzc1ODU3LDE3NTA2MDMwMjUsMTY5NDA3NjgzOSwzMjA0MDc1NDI4XSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9YS5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT00LHR9fSksby5TSEEyMjQ9YS5fY3JlYXRlSGVscGVyKGMpLG8uSG1hY1NIQTIyND1hLl9jcmVhdGVIbWFjSGVscGVyKGMpLG4uU0hBMjI0KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGw7dC5leHBvcnRzPShuPXIoMCkscigxMCkscigxOSksaT0obz1uKS54NjQscz1pLldvcmQsYT1pLldvcmRBcnJheSxjPW8uYWxnbyx1PWMuU0hBNTEyLGw9Yy5TSEEzODQ9dS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgYS5pbml0KFtuZXcgcy5pbml0KDM0MTgwNzAzNjUsMzIzODM3MTAzMiksbmV3IHMuaW5pdCgxNjU0MjcwMjUwLDkxNDE1MDY2MyksbmV3IHMuaW5pdCgyNDM4NTI5MzcwLDgxMjcwMjk5OSksbmV3IHMuaW5pdCgzNTU0NjIzNjAsNDE0NDkxMjY5NyksbmV3IHMuaW5pdCgxNzMxNDA1NDE1LDQyOTA3NzU4NTcpLG5ldyBzLmluaXQoMjM5NDE4MDIzMSwxNzUwNjAzMDI1KSxuZXcgcy5pbml0KDM2NzUwMDg1MjUsMTY5NDA3NjgzOSksbmV3IHMuaW5pdCgxMjAzMDYyODEzLDMyMDQwNzU0MjgpXSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dS5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT0xNix0fX0pLG8uU0hBMzg0PXUuX2NyZWF0ZUhlbHBlcihsKSxvLkhtYWNTSEEzODQ9dS5fY3JlYXRlSG1hY0hlbHBlcihsKSxuLlNIQTM4NCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxcbi8qKiBAcHJlc2VydmVcblx0KGMpIDIwMTIgYnkgQ8OpZHJpYyBNZXNuaWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cblx0UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuXG5cdCAgICAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cblx0ICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuXG5cdFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cblx0Ki9cbmZ1bmN0aW9uKHQpe3ZhciBlPW4scj1lLmxpYixvPXIuV29yZEFycmF5LGk9ci5IYXNoZXIscz1lLmFsZ28sYT1vLmNyZWF0ZShbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSksYz1vLmNyZWF0ZShbNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSksdT1vLmNyZWF0ZShbMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0pLGw9by5jcmVhdGUoWzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdKSxoPW8uY3JlYXRlKFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSxmPW8uY3JlYXRlKFsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdKSxwPXMuUklQRU1EMTYwPWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9by5jcmVhdGUoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MTY7cisrKXt2YXIgbj1lK3Isbz10W25dO3Rbbl09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9dmFyIGkscyxwLHcsYixCLEYsTixrLHgsUyxBPXRoaXMuX2hhc2gud29yZHMsTz1oLndvcmRzLFQ9Zi53b3JkcyxQPWEud29yZHMsTT1jLndvcmRzLEM9dS53b3JkcyxFPWwud29yZHM7Zm9yKEI9aT1BWzBdLEY9cz1BWzFdLE49cD1BWzJdLGs9dz1BWzNdLHg9Yj1BWzRdLHI9MDtyPDgwO3IrPTEpUz1pK3RbZStQW3JdXXwwLFMrPXI8MTY/ZChzLHAsdykrT1swXTpyPDMyP20ocyxwLHcpK09bMV06cjw0OD95KHMscCx3KStPWzJdOnI8NjQ/ZyhzLHAsdykrT1szXTpfKHMscCx3KStPWzRdLFM9KFM9dihTfD0wLENbcl0pKStifDAsaT1iLGI9dyx3PXYocCwxMCkscD1zLHM9UyxTPUIrdFtlK01bcl1dfDAsUys9cjwxNj9fKEYsTixrKStUWzBdOnI8MzI/ZyhGLE4saykrVFsxXTpyPDQ4P3koRixOLGspK1RbMl06cjw2ND9tKEYsTixrKStUWzNdOmQoRixOLGspK1RbNF0sUz0oUz12KFN8PTAsRVtyXSkpK3h8MCxCPXgseD1rLGs9dihOLDEwKSxOPUYsRj1TO1M9QVsxXStwK2t8MCxBWzFdPUFbMl0rdyt4fDAsQVsyXT1BWzNdK2IrQnwwLEFbM109QVs0XStpK0Z8MCxBWzRdPUFbMF0rcytOfDAsQVswXT1TfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO2Vbbj4+PjVdfD0xMjg8PDI0LW4lMzIsZVsxNCsobis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYocjw8OHxyPj4+MjQpfDQyNzgyNTUzNjAmKHI8PDI0fHI+Pj44KSx0LnNpZ0J5dGVzPTQqKGUubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIG89dGhpcy5faGFzaCxpPW8ud29yZHMscz0wO3M8NTtzKyspe3ZhciBhPWlbc107aVtzXT0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KX1yZXR1cm4gb30sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1pLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ZnVuY3Rpb24gZCh0LGUscil7cmV0dXJuIHReZV5yfWZ1bmN0aW9uIG0odCxlLHIpe3JldHVybiB0JmV8fnQmcn1mdW5jdGlvbiB5KHQsZSxyKXtyZXR1cm4odHx+ZSlecn1mdW5jdGlvbiBnKHQsZSxyKXtyZXR1cm4gdCZyfGUmfnJ9ZnVuY3Rpb24gXyh0LGUscil7cmV0dXJuIHReKGV8fnIpfWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4gdDw8ZXx0Pj4+MzItZX1lLlJJUEVNRDE2MD1pLl9jcmVhdGVIZWxwZXIocCksZS5IbWFjUklQRU1EMTYwPWkuX2NyZWF0ZUhtYWNIZWxwZXIocCl9KE1hdGgpLG4uUklQRU1EMTYwKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGwsaDt0LmV4cG9ydHM9KG49cigwKSxyKDExKSxyKDEyKSxpPShvPW4pLmxpYixzPWkuQmFzZSxhPWkuV29yZEFycmF5LGM9by5hbGdvLHU9Yy5TSEExLGw9Yy5ITUFDLGg9Yy5QQktERjI9cy5leHRlbmQoe2NmZzpzLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjp1LGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuY2ZnLG49bC5jcmVhdGUoci5oYXNoZXIsdCksbz1hLmNyZWF0ZSgpLGk9YS5jcmVhdGUoWzFdKSxzPW8ud29yZHMsYz1pLndvcmRzLHU9ci5rZXlTaXplLGg9ci5pdGVyYXRpb25zO3MubGVuZ3RoPHU7KXt2YXIgZj1uLnVwZGF0ZShlKS5maW5hbGl6ZShpKTtuLnJlc2V0KCk7Zm9yKHZhciBwPWYud29yZHMsZD1wLmxlbmd0aCxtPWYseT0xO3k8aDt5Kyspe209bi5maW5hbGl6ZShtKSxuLnJlc2V0KCk7Zm9yKHZhciBnPW0ud29yZHMsXz0wO188ZDtfKyspcFtfXV49Z1tfXX1vLmNvbmNhdChmKSxjWzBdKyt9cmV0dXJuIG8uc2lnQnl0ZXM9NCp1LG99fSksby5QQktERjI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBoLmNyZWF0ZShyKS5jb21wdXRlKHQsZSl9LG4uUEJLREYyKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkNGQj1mdW5jdGlvbigpe3ZhciB0PW4ubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtmdW5jdGlvbiBlKHQsZSxyLG4pe3ZhciBvPXRoaXMuX2l2O2lmKG8pe3ZhciBpPW8uc2xpY2UoMCk7dGhpcy5faXY9dm9pZCAwfWVsc2UgaT10aGlzLl9wcmV2QmxvY2s7bi5lbmNyeXB0QmxvY2soaSwwKTtmb3IodmFyIHM9MDtzPHI7cysrKXRbZStzXV49aVtzXX1yZXR1cm4gdC5FbmNyeXB0b3I9dC5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplO2UuY2FsbCh0aGlzLHQscixvLG4pLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKHIscitvKX19KSx0LkRlY3J5cHRvcj10LmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemUsaT10LnNsaWNlKHIscitvKTtlLmNhbGwodGhpcyx0LHIsbyxuKSx0aGlzLl9wcmV2QmxvY2s9aX19KSx0fSgpLG4ubW9kZS5DRkIpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkNUUj0obz1uLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksaT1vLkVuY3J5cHRvcj1vLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2lwaGVyLG49ci5ibG9ja1NpemUsbz10aGlzLl9pdixpPXRoaXMuX2NvdW50ZXI7byYmKGk9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9aS5zbGljZSgwKTtyLmVuY3J5cHRCbG9jayhzLDApLGlbbi0xXT1pW24tMV0rMXwwO2Zvcih2YXIgYT0wO2E8bjthKyspdFtlK2FdXj1zW2FdfX0pLG8uRGVjcnlwdG9yPWksbyksbi5tb2RlLkNUUil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEpLFxuLyoqIEBwcmVzZXJ2ZVxuXHQgKiBDb3VudGVyIGJsb2NrIG1vZGUgY29tcGF0aWJsZSB3aXRoICBEciBCcmlhbiBHbGFkbWFuIGZpbGVlbmMuY1xuXHQgKiBkZXJpdmVkIGZyb20gQ3J5cHRvSlMubW9kZS5DVFJcblx0ICogSmFuIEhydWJ5IGpocnVieS53ZWJAZ21haWwuY29tXG5cdCAqL1xubi5tb2RlLkNUUkdsYWRtYW49ZnVuY3Rpb24oKXt2YXIgdD1uLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7ZnVuY3Rpb24gZSh0KXtpZigyNTU9PSh0Pj4yNCYyNTUpKXt2YXIgZT10Pj4xNiYyNTUscj10Pj44JjI1NSxuPTI1NSZ0OzI1NT09PWU/KGU9MCwyNTU9PT1yPyhyPTAsMjU1PT09bj9uPTA6KytuKTorK3IpOisrZSx0PTAsdCs9ZTw8MTYsdCs9cjw8OCx0Kz1ufWVsc2UgdCs9MTw8MjQ7cmV0dXJuIHR9dmFyIHI9dC5FbmNyeXB0b3I9dC5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplLGk9dGhpcy5faXYscz10aGlzLl9jb3VudGVyO2kmJihzPXRoaXMuX2NvdW50ZXI9aS5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGZ1bmN0aW9uKHQpezA9PT0odFswXT1lKHRbMF0pKSYmKHRbMV09ZSh0WzFdKSl9KHMpO3ZhciBhPXMuc2xpY2UoMCk7bi5lbmNyeXB0QmxvY2soYSwwKTtmb3IodmFyIGM9MDtjPG87YysrKXRbcitjXV49YVtjXX19KTtyZXR1cm4gdC5EZWNyeXB0b3I9cix0fSgpLG4ubW9kZS5DVFJHbGFkbWFuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saTt0LmV4cG9ydHM9KG49cigwKSxyKDEpLG4ubW9kZS5PRkI9KG89bi5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLGk9by5FbmNyeXB0b3I9by5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2NpcGhlcixuPXIuYmxvY2tTaXplLG89dGhpcy5faXYsaT10aGlzLl9rZXlzdHJlYW07byYmKGk9dGhpcy5fa2V5c3RyZWFtPW8uc2xpY2UoMCksdGhpcy5faXY9dm9pZCAwKSxyLmVuY3J5cHRCbG9jayhpLDApO2Zvcih2YXIgcz0wO3M8bjtzKyspdFtlK3NdXj1pW3NdfX0pLG8uRGVjcnlwdG9yPWksbyksbi5tb2RlLk9GQil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkVDQj0oKG89bi5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpKS5FbmNyeXB0b3I9by5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodCxlKX19KSxvLkRlY3J5cHRvcj1vLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY2lwaGVyLmRlY3J5cHRCbG9jayh0LGUpfX0pLG8pLG4ubW9kZS5FQ0IpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5BbnNpWDkyMz17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zaWdCeXRlcyxuPTQqZSxvPW4tciVuLGk9citvLTE7dC5jbGFtcCgpLHQud29yZHNbaT4+PjJdfD1vPDwyNC1pJTQqOCx0LnNpZ0J5dGVzKz1vfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgZT0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1lfX0sbi5wYWQuQW5zaXg5MjMpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5Jc28xMDEyNj17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9NCplLG89ci10LnNpZ0J5dGVzJXI7dC5jb25jYXQobi5saWIuV29yZEFycmF5LnJhbmRvbShvLTEpKS5jb25jYXQobi5saWIuV29yZEFycmF5LmNyZWF0ZShbbzw8MjRdLDEpKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIGU9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09ZX19LG4ucGFkLklzbzEwMTI2KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5wYWQuSXNvOTc5NzE9e3BhZDpmdW5jdGlvbih0LGUpe3QuY29uY2F0KG4ubGliLldvcmRBcnJheS5jcmVhdGUoWzIxNDc0ODM2NDhdLDEpKSxuLnBhZC5aZXJvUGFkZGluZy5wYWQodCxlKX0sdW5wYWQ6ZnVuY3Rpb24odCl7bi5wYWQuWmVyb1BhZGRpbmcudW5wYWQodCksdC5zaWdCeXRlcy0tfX0sbi5wYWQuSXNvOTc5NzEpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5aZXJvUGFkZGluZz17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9NCplO3QuY2xhbXAoKSx0LnNpZ0J5dGVzKz1yLSh0LnNpZ0J5dGVzJXJ8fHIpfSx1bnBhZDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMtMTshKGVbcj4+PjJdPj4+MjQtciU0KjgmMjU1KTspci0tO3Quc2lnQnl0ZXM9cisxfX0sbi5wYWQuWmVyb1BhZGRpbmcpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5Ob1BhZGRpbmc9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxuLnBhZC5Ob1BhZGRpbmcpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHM7dC5leHBvcnRzPShuPXIoMCkscigxKSxpPShvPW4pLmxpYi5DaXBoZXJQYXJhbXMscz1vLmVuYy5IZXgsby5mb3JtYXQuSGV4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2lwaGVydGV4dC50b1N0cmluZyhzKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9cy5wYXJzZSh0KTtyZXR1cm4gaS5jcmVhdGUoe2NpcGhlcnRleHQ6ZX0pfX0sbi5mb3JtYXQuSGV4KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNikscig3KSxyKDUpLHIoMSksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuQmxvY2tDaXBoZXIscj10LmFsZ28sbz1bXSxpPVtdLHM9W10sYT1bXSxjPVtdLHU9W10sbD1bXSxoPVtdLGY9W10scD1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8MjU2O2UrKyl0W2VdPWU8MTI4P2U8PDE6ZTw8MV4yODM7dmFyIHI9MCxuPTA7Zm9yKGU9MDtlPDI1NjtlKyspe3ZhciBkPW5ebjw8MV5uPDwyXm48PDNebjw8NDtkPWQ+Pj44XjI1NSZkXjk5LG9bcl09ZCxpW2RdPXI7dmFyIG09dFtyXSx5PXRbbV0sZz10W3ldLF89MjU3KnRbZF1eMTY4NDMwMDgqZDtzW3JdPV88PDI0fF8+Pj44LGFbcl09Xzw8MTZ8Xz4+PjE2LGNbcl09Xzw8OHxfPj4+MjQsdVtyXT1fLF89MTY4NDMwMDkqZ142NTUzNyp5XjI1NyptXjE2ODQzMDA4KnIsbFtkXT1fPDwyNHxfPj4+OCxoW2RdPV88PDE2fF8+Pj4xNixmW2RdPV88PDh8Xz4+PjI0LHBbZF09XyxyPyhyPW1edFt0W3RbZ15tXV1dLG5ePXRbdFtuXV0pOnI9bj0xfX0oKTt2YXIgZD1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sbT1yLkFFUz1lLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fblJvdW5kc3x8dGhpcy5fa2V5UHJpb3JSZXNldCE9PXRoaXMuX2tleSl7Zm9yKHZhciB0PXRoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5LGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMvNCxuPTQqKCh0aGlzLl9uUm91bmRzPXIrNikrMSksaT10aGlzLl9rZXlTY2hlZHVsZT1bXSxzPTA7czxuO3MrKylpZihzPHIpaVtzXT1lW3NdO2Vsc2V7dmFyIGE9aVtzLTFdO3Mlcj9yPjYmJnMlcj09NCYmKGE9b1thPj4+MjRdPDwyNHxvW2E+Pj4xNiYyNTVdPDwxNnxvW2E+Pj44JjI1NV08PDh8b1syNTUmYV0pOihhPW9bKGE9YTw8OHxhPj4+MjQpPj4+MjRdPDwyNHxvW2E+Pj4xNiYyNTVdPDwxNnxvW2E+Pj44JjI1NV08PDh8b1syNTUmYV0sYV49ZFtzL3J8MF08PDI0KSxpW3NdPWlbcy1yXV5hfWZvcih2YXIgYz10aGlzLl9pbnZLZXlTY2hlZHVsZT1bXSx1PTA7dTxuO3UrKylzPW4tdSxhPXUlND9pW3NdOmlbcy00XSxjW3VdPXU8NHx8czw9ND9hOmxbb1thPj4+MjRdXV5oW29bYT4+PjE2JjI1NV1dXmZbb1thPj4+OCYyNTVdXV5wW29bMjU1JmFdXX19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LGUsdGhpcy5fa2V5U2NoZWR1bGUscyxhLGMsdSxvKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dFtlKzFdO3RbZSsxXT10W2UrM10sdFtlKzNdPXIsdGhpcy5fZG9DcnlwdEJsb2NrKHQsZSx0aGlzLl9pbnZLZXlTY2hlZHVsZSxsLGgsZixwLGkpLHI9dFtlKzFdLHRbZSsxXT10W2UrM10sdFtlKzNdPXJ9LF9kb0NyeXB0QmxvY2s6ZnVuY3Rpb24odCxlLHIsbixvLGkscyxhKXtmb3IodmFyIGM9dGhpcy5fblJvdW5kcyx1PXRbZV1eclswXSxsPXRbZSsxXV5yWzFdLGg9dFtlKzJdXnJbMl0sZj10W2UrM11eclszXSxwPTQsZD0xO2Q8YztkKyspe3ZhciBtPW5bdT4+PjI0XV5vW2w+Pj4xNiYyNTVdXmlbaD4+PjgmMjU1XV5zWzI1NSZmXV5yW3ArK10seT1uW2w+Pj4yNF1eb1toPj4+MTYmMjU1XV5pW2Y+Pj44JjI1NV1ec1syNTUmdV1ecltwKytdLGc9bltoPj4+MjRdXm9bZj4+PjE2JjI1NV1eaVt1Pj4+OCYyNTVdXnNbMjU1JmxdXnJbcCsrXSxfPW5bZj4+PjI0XV5vW3U+Pj4xNiYyNTVdXmlbbD4+PjgmMjU1XV5zWzI1NSZoXV5yW3ArK107dT1tLGw9eSxoPWcsZj1ffW09KGFbdT4+PjI0XTw8MjR8YVtsPj4+MTYmMjU1XTw8MTZ8YVtoPj4+OCYyNTVdPDw4fGFbMjU1JmZdKV5yW3ArK10seT0oYVtsPj4+MjRdPDwyNHxhW2g+Pj4xNiYyNTVdPDwxNnxhW2Y+Pj44JjI1NV08PDh8YVsyNTUmdV0pXnJbcCsrXSxnPShhW2g+Pj4yNF08PDI0fGFbZj4+PjE2JjI1NV08PDE2fGFbdT4+PjgmMjU1XTw8OHxhWzI1NSZsXSlecltwKytdLF89KGFbZj4+PjI0XTw8MjR8YVt1Pj4+MTYmMjU1XTw8MTZ8YVtsPj4+OCYyNTVdPDw4fGFbMjU1JmhdKV5yW3ArK10sdFtlXT1tLHRbZSsxXT15LHRbZSsyXT1nLHRbZSszXT1ffSxrZXlTaXplOjh9KTt0LkFFUz1lLl9jcmVhdGVIZWxwZXIobSl9KCksbi5BRVMpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig2KSxyKDcpLHIoNSkscigxKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYixyPWUuV29yZEFycmF5LG89ZS5CbG9ja0NpcGhlcixpPXQuYWxnbyxzPVs1Nyw0OSw0MSwzMywyNSwxNyw5LDEsNTgsNTAsNDIsMzQsMjYsMTgsMTAsMiw1OSw1MSw0MywzNSwyNywxOSwxMSwzLDYwLDUyLDQ0LDM2LDYzLDU1LDQ3LDM5LDMxLDIzLDE1LDcsNjIsNTQsNDYsMzgsMzAsMjIsMTQsNiw2MSw1Myw0NSwzNywyOSwyMSwxMyw1LDI4LDIwLDEyLDRdLGE9WzE0LDE3LDExLDI0LDEsNSwzLDI4LDE1LDYsMjEsMTAsMjMsMTksMTIsNCwyNiw4LDE2LDcsMjcsMjAsMTMsMiw0MSw1MiwzMSwzNyw0Nyw1NSwzMCw0MCw1MSw0NSwzMyw0OCw0NCw0OSwzOSw1NiwzNCw1Myw0Niw0Miw1MCwzNiwyOSwzMl0sYz1bMSwyLDQsNiw4LDEwLDEyLDE0LDE1LDE3LDE5LDIxLDIzLDI1LDI3LDI4XSx1PVt7MDo4NDIxODg4LDI2ODQzNTQ1NjozMjc2OCw1MzY4NzA5MTI6ODQyMTM3OCw4MDUzMDYzNjg6MiwxMDczNzQxODI0OjUxMiwxMzQyMTc3MjgwOjg0MjE4OTAsMTYxMDYxMjczNjo4Mzg5MTIyLDE4NzkwNDgxOTI6ODM4ODYwOCwyMTQ3NDgzNjQ4OjUxNCwyNDE1OTE5MTA0OjgzODkxMjAsMjY4NDM1NDU2MDozMzI4MCwyOTUyNzkwMDE2Ojg0MjEzNzYsMzIyMTIyNTQ3MjozMjc3MCwzNDg5NjYwOTI4OjgzODg2MTAsMzc1ODA5NjM4NDowLDQwMjY1MzE4NDA6MzMyODIsMTM0MjE3NzI4OjAsNDAyNjUzMTg0Ojg0MjE4OTAsNjcxMDg4NjQwOjMzMjgyLDkzOTUyNDA5NjozMjc2OCwxMjA3OTU5NTUyOjg0MjE4ODgsMTQ3NjM5NTAwODo1MTIsMTc0NDgzMDQ2NDo4NDIxMzc4LDIwMTMyNjU5MjA6MiwyMjgxNzAxMzc2OjgzODkxMjAsMjU1MDEzNjgzMjozMzI4MCwyODE4NTcyMjg4Ojg0MjEzNzYsMzA4NzAwNzc0NDo4Mzg5MTIyLDMzNTU0NDMyMDA6ODM4ODYxMCwzNjIzODc4NjU2OjMyNzcwLDM4OTIzMTQxMTI6NTE0LDQxNjA3NDk1Njg6ODM4ODYwOCwxOjMyNzY4LDI2ODQzNTQ1NzoyLDUzNjg3MDkxMzo4NDIxODg4LDgwNTMwNjM2OTo4Mzg4NjA4LDEwNzM3NDE4MjU6ODQyMTM3OCwxMzQyMTc3MjgxOjMzMjgwLDE2MTA2MTI3Mzc6NTEyLDE4NzkwNDgxOTM6ODM4OTEyMiwyMTQ3NDgzNjQ5Ojg0MjE4OTAsMjQxNTkxOTEwNTo4NDIxMzc2LDI2ODQzNTQ1NjE6ODM4ODYxMCwyOTUyNzkwMDE3OjMzMjgyLDMyMjEyMjU0NzM6NTE0LDM0ODk2NjA5Mjk6ODM4OTEyMCwzNzU4MDk2Mzg1OjMyNzcwLDQwMjY1MzE4NDE6MCwxMzQyMTc3Mjk6ODQyMTg5MCw0MDI2NTMxODU6ODQyMTM3Niw2NzEwODg2NDE6ODM4ODYwOCw5Mzk1MjQwOTc6NTEyLDEyMDc5NTk1NTM6MzI3NjgsMTQ3NjM5NTAwOTo4Mzg4NjEwLDE3NDQ4MzA0NjU6MiwyMDEzMjY1OTIxOjMzMjgyLDIyODE3MDEzNzc6MzI3NzAsMjU1MDEzNjgzMzo4Mzg5MTIyLDI4MTg1NzIyODk6NTE0LDMwODcwMDc3NDU6ODQyMTg4OCwzMzU1NDQzMjAxOjgzODkxMjAsMzYyMzg3ODY1NzowLDM4OTIzMTQxMTM6MzMyODAsNDE2MDc0OTU2OTo4NDIxMzc4fSx7MDoxMDc0MjgyNTEyLDE2Nzc3MjE2OjE2Mzg0LDMzNTU0NDMyOjUyNDI4OCw1MDMzMTY0ODoxMDc0MjY2MTI4LDY3MTA4ODY0OjEwNzM3NDE4NDAsODM4ODYwODA6MTA3NDI4MjQ5NiwxMDA2NjMyOTY6MTA3Mzc1ODIwOCwxMTc0NDA1MTI6MTYsMTM0MjE3NzI4OjU0MDY3MiwxNTA5OTQ5NDQ6MTA3Mzc1ODIyNCwxNjc3NzIxNjA6MTA3Mzc0MTgyNCwxODQ1NDkzNzY6NTQwNjg4LDIwMTMyNjU5Mjo1MjQzMDQsMjE4MTAzODA4OjAsMjM0ODgxMDI0OjE2NDAwLDI1MTY1ODI0MDoxMDc0MjY2MTEyLDgzODg2MDg6MTA3Mzc1ODIwOCwyNTE2NTgyNDo1NDA2ODgsNDE5NDMwNDA6MTYsNTg3MjAyNTY6MTA3Mzc1ODIyNCw3NTQ5NzQ3MjoxMDc0MjgyNTEyLDkyMjc0Njg4OjEwNzM3NDE4MjQsMTA5MDUxOTA0OjUyNDI4OCwxMjU4MjkxMjA6MTA3NDI2NjEyOCwxNDI2MDYzMzY6NTI0MzA0LDE1OTM4MzU1MjowLDE3NjE2MDc2ODoxNjM4NCwxOTI5Mzc5ODQ6MTA3NDI2NjExMiwyMDk3MTUyMDA6MTA3Mzc0MTg0MCwyMjY0OTI0MTY6NTQwNjcyLDI0MzI2OTYzMjoxMDc0MjgyNDk2LDI2MDA0Njg0ODoxNjQwMCwyNjg0MzU0NTY6MCwyODUyMTI2NzI6MTA3NDI2NjEyOCwzMDE5ODk4ODg6MTA3Mzc1ODIyNCwzMTg3NjcxMDQ6MTA3NDI4MjQ5NiwzMzU1NDQzMjA6MTA3NDI2NjExMiwzNTIzMjE1MzY6MTYsMzY5MDk4NzUyOjU0MDY4OCwzODU4NzU5Njg6MTYzODQsNDAyNjUzMTg0OjE2NDAwLDQxOTQzMDQwMDo1MjQyODgsNDM2MjA3NjE2OjUyNDMwNCw0NTI5ODQ4MzI6MTA3Mzc0MTg0MCw0Njk3NjIwNDg6NTQwNjcyLDQ4NjUzOTI2NDoxMDczNzU4MjA4LDUwMzMxNjQ4MDoxMDczNzQxODI0LDUyMDA5MzY5NjoxMDc0MjgyNTEyLDI3NjgyNDA2NDo1NDA2ODgsMjkzNjAxMjgwOjUyNDI4OCwzMTAzNzg0OTY6MTA3NDI2NjExMiwzMjcxNTU3MTI6MTYzODQsMzQzOTMyOTI4OjEwNzM3NTgyMDgsMzYwNzEwMTQ0OjEwNzQyODI1MTIsMzc3NDg3MzYwOjE2LDM5NDI2NDU3NjoxMDczNzQxODI0LDQxMTA0MTc5MjoxMDc0MjgyNDk2LDQyNzgxOTAwODoxMDczNzQxODQwLDQ0NDU5NjIyNDoxMDczNzU4MjI0LDQ2MTM3MzQ0MDo1MjQzMDQsNDc4MTUwNjU2OjAsNDk0OTI3ODcyOjE2NDAwLDUxMTcwNTA4ODoxMDc0MjY2MTI4LDUyODQ4MjMwNDo1NDA2NzJ9LHswOjI2MCwxMDQ4NTc2OjAsMjA5NzE1Mjo2NzEwOTEyMCwzMTQ1NzI4OjY1Nzk2LDQxOTQzMDQ6NjU1NDAsNTI0Mjg4MDo2NzEwODg2OCw2MjkxNDU2OjY3MTc0NjYwLDczNDAwMzI6NjcxNzQ0MDAsODM4ODYwODo2NzEwODg2NCw5NDM3MTg0OjY3MTc0NjU2LDEwNDg1NzYwOjY1NzkyLDExNTM0MzM2OjY3MTc0NDA0LDEyNTgyOTEyOjY3MTA5MTI0LDEzNjMxNDg4OjY1NTM2LDE0NjgwMDY0OjQsMTU3Mjg2NDA6MjU2LDUyNDI4ODo2NzE3NDY1NiwxNTcyODY0OjY3MTc0NDA0LDI2MjE0NDA6MCwzNjcwMDE2OjY3MTA5MTIwLDQ3MTg1OTI6NjcxMDg4NjgsNTc2NzE2ODo2NTUzNiw2ODE1NzQ0OjY1NTQwLDc4NjQzMjA6MjYwLDg5MTI4OTY6NCw5OTYxNDcyOjI1NiwxMTAxMDA0ODo2NzE3NDQwMCwxMjA1ODYyNDo2NTc5NiwxMzEwNzIwMDo2NTc5MiwxNDE1NTc3Njo2NzEwOTEyNCwxNTIwNDM1Mjo2NzE3NDY2MCwxNjI1MjkyODo2NzEwODg2NCwxNjc3NzIxNjo2NzE3NDY1NiwxNzgyNTc5Mjo2NTU0MCwxODg3NDM2ODo2NTUzNiwxOTkyMjk0NDo2NzEwOTEyMCwyMDk3MTUyMDoyNTYsMjIwMjAwOTY6NjcxNzQ2NjAsMjMwNjg2NzI6NjcxMDg4NjgsMjQxMTcyNDg6MCwyNTE2NTgyNDo2NzEwOTEyNCwyNjIxNDQwMDo2NzEwODg2NCwyNzI2Mjk3Njo0LDI4MzExNTUyOjY1NzkyLDI5MzYwMTI4OjY3MTc0NDAwLDMwNDA4NzA0OjI2MCwzMTQ1NzI4MDo2NTc5NiwzMjUwNTg1Njo2NzE3NDQwNCwxNzMwMTUwNDo2NzEwODg2NCwxODM1MDA4MDoyNjAsMTkzOTg2NTY6NjcxNzQ2NTYsMjA0NDcyMzI6MCwyMTQ5NTgwODo2NTU0MCwyMjU0NDM4NDo2NzEwOTEyMCwyMzU5Mjk2MDoyNTYsMjQ2NDE1MzY6NjcxNzQ0MDQsMjU2OTAxMTI6NjU1MzYsMjY3Mzg2ODg6NjcxNzQ2NjAsMjc3ODcyNjQ6NjU3OTYsMjg4MzU4NDA6NjcxMDg4NjgsMjk4ODQ0MTY6NjcxMDkxMjQsMzA5MzI5OTI6NjcxNzQ0MDAsMzE5ODE1Njg6NCwzMzAzMDE0NDo2NTc5Mn0sezA6MjE1MTY4MjA0OCw2NTUzNjoyMTQ3NDg3ODA4LDEzMTA3Mjo0MTk4NDY0LDE5NjYwODoyMTUxNjc3OTUyLDI2MjE0NDowLDMyNzY4MDo0MTk4NDAwLDM5MzIxNjoyMTQ3NDgzNzEyLDQ1ODc1Mjo0MTk0MzY4LDUyNDI4ODoyMTQ3NDgzNjQ4LDU4OTgyNDo0MTk0MzA0LDY1NTM2MDo2NCw3MjA4OTY6MjE0NzQ4Nzc0NCw3ODY0MzI6MjE1MTY3ODAxNiw4NTE5Njg6NDE2MCw5MTc1MDQ6NDA5Niw5ODMwNDA6MjE1MTY4MjExMiwzMjc2ODoyMTQ3NDg3ODA4LDk4MzA0OjY0LDE2Mzg0MDoyMTUxNjc4MDE2LDIyOTM3NjoyMTQ3NDg3NzQ0LDI5NDkxMjo0MTk4NDAwLDM2MDQ0ODoyMTUxNjgyMTEyLDQyNTk4NDowLDQ5MTUyMDoyMTUxNjc3OTUyLDU1NzA1Njo0MDk2LDYyMjU5MjoyMTUxNjgyMDQ4LDY4ODEyODo0MTk0MzA0LDc1MzY2NDo0MTYwLDgxOTIwMDoyMTQ3NDgzNjQ4LDg4NDczNjo0MTk0MzY4LDk1MDI3Mjo0MTk4NDY0LDEwMTU4MDg6MjE0NzQ4MzcxMiwxMDQ4NTc2OjQxOTQzNjgsMTExNDExMjo0MTk4NDAwLDExNzk2NDg6MjE0NzQ4MzcxMiwxMjQ1MTg0OjAsMTMxMDcyMDo0MTYwLDEzNzYyNTY6MjE1MTY3ODAxNiwxNDQxNzkyOjIxNTE2ODIwNDgsMTUwNzMyODoyMTQ3NDg3ODA4LDE1NzI4NjQ6MjE1MTY4MjExMiwxNjM4NDAwOjIxNDc0ODM2NDgsMTcwMzkzNjoyMTUxNjc3OTUyLDE3Njk0NzI6NDE5ODQ2NCwxODM1MDA4OjIxNDc0ODc3NDQsMTkwMDU0NDo0MTk0MzA0LDE5NjYwODA6NjQsMjAzMTYxNjo0MDk2LDEwODEzNDQ6MjE1MTY3Nzk1MiwxMTQ2ODgwOjIxNTE2ODIxMTIsMTIxMjQxNjowLDEyNzc5NTI6NDE5ODQwMCwxMzQzNDg4OjQxOTQzNjgsMTQwOTAyNDoyMTQ3NDgzNjQ4LDE0NzQ1NjA6MjE0NzQ4NzgwOCwxNTQwMDk2OjY0LDE2MDU2MzI6MjE0NzQ4MzcxMiwxNjcxMTY4OjQwOTYsMTczNjcwNDoyMTQ3NDg3NzQ0LDE4MDIyNDA6MjE1MTY3ODAxNiwxODY3Nzc2OjQxNjAsMTkzMzMxMjoyMTUxNjgyMDQ4LDE5OTg4NDg6NDE5NDMwNCwyMDY0Mzg0OjQxOTg0NjR9LHswOjEyOCw0MDk2OjE3MDM5MzYwLDgxOTI6MjYyMTQ0LDEyMjg4OjUzNjg3MDkxMiwxNjM4NDo1MzcxMzMxODQsMjA0ODA6MTY3NzczNDQsMjQ1NzY6NTUzNjQ4MjU2LDI4NjcyOjI2MjI3MiwzMjc2ODoxNjc3NzIxNiwzNjg2NDo1MzcxMzMwNTYsNDA5NjA6NTM2ODcxMDQwLDQ1MDU2OjU1MzkxMDQwMCw0OTE1Mjo1NTM5MTAyNzIsNTMyNDg6MCw1NzM0NDoxNzAzOTQ4OCw2MTQ0MDo1NTM2NDgxMjgsMjA0ODoxNzAzOTQ4OCw2MTQ0OjU1MzY0ODI1NiwxMDI0MDoxMjgsMTQzMzY6MTcwMzkzNjAsMTg0MzI6MjYyMTQ0LDIyNTI4OjUzNzEzMzE4NCwyNjYyNDo1NTM5MTAyNzIsMzA3MjA6NTM2ODcwOTEyLDM0ODE2OjUzNzEzMzA1NiwzODkxMjowLDQzMDA4OjU1MzkxMDQwMCw0NzEwNDoxNjc3NzM0NCw1MTIwMDo1MzY4NzEwNDAsNTUyOTY6NTUzNjQ4MTI4LDU5MzkyOjE2Nzc3MjE2LDYzNDg4OjI2MjI3Miw2NTUzNjoyNjIxNDQsNjk2MzI6MTI4LDczNzI4OjUzNjg3MDkxMiw3NzgyNDo1NTM2NDgyNTYsODE5MjA6MTY3NzczNDQsODYwMTY6NTUzOTEwMjcyLDkwMTEyOjUzNzEzMzE4NCw5NDIwODoxNjc3NzIxNiw5ODMwNDo1NTM5MTA0MDAsMTAyNDAwOjU1MzY0ODEyOCwxMDY0OTY6MTcwMzkzNjAsMTEwNTkyOjUzNzEzMzA1NiwxMTQ2ODg6MjYyMjcyLDExODc4NDo1MzY4NzEwNDAsMTIyODgwOjAsMTI2OTc2OjE3MDM5NDg4LDY3NTg0OjU1MzY0ODI1Niw3MTY4MDoxNjc3NzIxNiw3NTc3NjoxNzAzOTM2MCw3OTg3Mjo1MzcxMzMxODQsODM5Njg6NTM2ODcwOTEyLDg4MDY0OjE3MDM5NDg4LDkyMTYwOjEyOCw5NjI1Njo1NTM5MTAyNzIsMTAwMzUyOjI2MjI3MiwxMDQ0NDg6NTUzOTEwNDAwLDEwODU0NDowLDExMjY0MDo1NTM2NDgxMjgsMTE2NzM2OjE2Nzc3MzQ0LDEyMDgzMjoyNjIxNDQsMTI0OTI4OjUzNzEzMzA1NiwxMjkwMjQ6NTM2ODcxMDQwfSx7MDoyNjg0MzU0NjQsMjU2OjgxOTIsNTEyOjI3MDUzMjYwOCw3Njg6MjcwNTQwODA4LDEwMjQ6MjY4NDQzNjQ4LDEyODA6MjA5NzE1MiwxNTM2OjIwOTcxNjAsMTc5MjoyNjg0MzU0NTYsMjA0ODowLDIzMDQ6MjY4NDQzNjU2LDI1NjA6MjEwNTM0NCwyODE2OjgsMzA3MjoyNzA1MzI2MTYsMzMyODoyMTA1MzUyLDM1ODQ6ODIwMCwzODQwOjI3MDU0MDgwMCwxMjg6MjcwNTMyNjA4LDM4NDoyNzA1NDA4MDgsNjQwOjgsODk2OjIwOTcxNTIsMTE1MjoyMTA1MzUyLDE0MDg6MjY4NDM1NDY0LDE2NjQ6MjY4NDQzNjQ4LDE5MjA6ODIwMCwyMTc2OjIwOTcxNjAsMjQzMjo4MTkyLDI2ODg6MjY4NDQzNjU2LDI5NDQ6MjcwNTMyNjE2LDMyMDA6MCwzNDU2OjI3MDU0MDgwMCwzNzEyOjIxMDUzNDQsMzk2ODoyNjg0MzU0NTYsNDA5NjoyNjg0NDM2NDgsNDM1MjoyNzA1MzI2MTYsNDYwODoyNzA1NDA4MDgsNDg2NDo4MjAwLDUxMjA6MjA5NzE1Miw1Mzc2OjI2ODQzNTQ1Niw1NjMyOjI2ODQzNTQ2NCw1ODg4OjIxMDUzNDQsNjE0NDoyMTA1MzUyLDY0MDA6MCw2NjU2OjgsNjkxMjoyNzA1MzI2MDgsNzE2ODo4MTkyLDc0MjQ6MjY4NDQzNjU2LDc2ODA6MjcwNTQwODAwLDc5MzY6MjA5NzE2MCw0MjI0OjgsNDQ4MDoyMTA1MzQ0LDQ3MzY6MjA5NzE1Miw0OTkyOjI2ODQzNTQ2NCw1MjQ4OjI2ODQ0MzY0OCw1NTA0OjgyMDAsNTc2MDoyNzA1NDA4MDgsNjAxNjoyNzA1MzI2MDgsNjI3MjoyNzA1NDA4MDAsNjUyODoyNzA1MzI2MTYsNjc4NDo4MTkyLDcwNDA6MjEwNTM1Miw3Mjk2OjIwOTcxNjAsNzU1MjowLDc4MDg6MjY4NDM1NDU2LDgwNjQ6MjY4NDQzNjU2fSx7MDoxMDQ4NTc2LDE2OjMzNTU1NDU3LDMyOjEwMjQsNDg6MTA0OTYwMSw2NDozNDYwNDAzMyw4MDowLDk2OjEsMTEyOjM0NjAzMDA5LDEyODozMzU1NTQ1NiwxNDQ6MTA0ODU3NywxNjA6MzM1NTQ0MzMsMTc2OjM0NjA0MDMyLDE5MjozNDYwMzAwOCwyMDg6MTAyNSwyMjQ6MTA0OTYwMCwyNDA6MzM1NTQ0MzIsODozNDYwMzAwOSwyNDowLDQwOjMzNTU1NDU3LDU2OjM0NjA0MDMyLDcyOjEwNDg1NzYsODg6MzM1NTQ0MzMsMTA0OjMzNTU0NDMyLDEyMDoxMDI1LDEzNjoxMDQ5NjAxLDE1MjozMzU1NTQ1NiwxNjg6MzQ2MDMwMDgsMTg0OjEwNDg1NzcsMjAwOjEwMjQsMjE2OjM0NjA0MDMzLDIzMjoxLDI0ODoxMDQ5NjAwLDI1NjozMzU1NDQzMiwyNzI6MTA0ODU3NiwyODg6MzM1NTU0NTcsMzA0OjM0NjAzMDA5LDMyMDoxMDQ4NTc3LDMzNjozMzU1NTQ1NiwzNTI6MzQ2MDQwMzIsMzY4OjEwNDk2MDEsMzg0OjEwMjUsNDAwOjM0NjA0MDMzLDQxNjoxMDQ5NjAwLDQzMjoxLDQ0ODowLDQ2NDozNDYwMzAwOCw0ODA6MzM1NTQ0MzMsNDk2OjEwMjQsMjY0OjEwNDk2MDAsMjgwOjMzNTU1NDU3LDI5NjozNDYwMzAwOSwzMTI6MSwzMjg6MzM1NTQ0MzIsMzQ0OjEwNDg1NzYsMzYwOjEwMjUsMzc2OjM0NjA0MDMyLDM5MjozMzU1NDQzMyw0MDg6MzQ2MDMwMDgsNDI0OjAsNDQwOjM0NjA0MDMzLDQ1NjoxMDQ5NjAxLDQ3MjoxMDI0LDQ4ODozMzU1NTQ1Niw1MDQ6MTA0ODU3N30sezA6MTM0MjE5ODA4LDE6MTMxMDcyLDI6MTM0MjE3NzI4LDM6MzIsNDoxMzExMDQsNToxMzQzNTA4ODAsNjoxMzQzNTA4NDgsNzoyMDQ4LDg6MTM0MzQ4ODAwLDk6MTM0MjE5Nzc2LDEwOjEzMzEyMCwxMToxMzQzNDg4MzIsMTI6MjA4MCwxMzowLDE0OjEzNDIxNzc2MCwxNToxMzMxNTIsMjE0NzQ4MzY0ODoyMDQ4LDIxNDc0ODM2NDk6MTM0MzUwODgwLDIxNDc0ODM2NTA6MTM0MjE5ODA4LDIxNDc0ODM2NTE6MTM0MjE3NzI4LDIxNDc0ODM2NTI6MTM0MzQ4ODAwLDIxNDc0ODM2NTM6MTMzMTIwLDIxNDc0ODM2NTQ6MTMzMTUyLDIxNDc0ODM2NTU6MzIsMjE0NzQ4MzY1NjoxMzQyMTc3NjAsMjE0NzQ4MzY1NzoyMDgwLDIxNDc0ODM2NTg6MTMxMTA0LDIxNDc0ODM2NTk6MTM0MzUwODQ4LDIxNDc0ODM2NjA6MCwyMTQ3NDgzNjYxOjEzNDM0ODgzMiwyMTQ3NDgzNjYyOjEzNDIxOTc3NiwyMTQ3NDgzNjYzOjEzMTA3MiwxNjoxMzMxNTIsMTc6MTM0MzUwODQ4LDE4OjMyLDE5OjIwNDgsMjA6MTM0MjE5Nzc2LDIxOjEzNDIxNzc2MCwyMjoxMzQzNDg4MzIsMjM6MTMxMDcyLDI0OjAsMjU6MTMxMTA0LDI2OjEzNDM0ODgwMCwyNzoxMzQyMTk4MDgsMjg6MTM0MzUwODgwLDI5OjEzMzEyMCwzMDoyMDgwLDMxOjEzNDIxNzcyOCwyMTQ3NDgzNjY0OjEzMTA3MiwyMTQ3NDgzNjY1OjIwNDgsMjE0NzQ4MzY2NjoxMzQzNDg4MzIsMjE0NzQ4MzY2NzoxMzMxNTIsMjE0NzQ4MzY2ODozMiwyMTQ3NDgzNjY5OjEzNDM0ODgwMCwyMTQ3NDgzNjcwOjEzNDIxNzcyOCwyMTQ3NDgzNjcxOjEzNDIxOTgwOCwyMTQ3NDgzNjcyOjEzNDM1MDg4MCwyMTQ3NDgzNjczOjEzNDIxNzc2MCwyMTQ3NDgzNjc0OjEzNDIxOTc3NiwyMTQ3NDgzNjc1OjAsMjE0NzQ4MzY3NjoxMzMxMjAsMjE0NzQ4MzY3NzoyMDgwLDIxNDc0ODM2Nzg6MTMxMTA0LDIxNDc0ODM2Nzk6MTM0MzUwODQ4fV0sbD1bNDE2MDc0OTU2OSw1Mjg0ODIzMDQsMzMwMzAxNDQsMjA2NDM4NCwxMjkwMjQsODA2NCw1MDQsMjE0NzQ4MzY3OV0saD1pLkRFUz1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9W10scj0wO3I8NTY7cisrKXt2YXIgbj1zW3JdLTE7ZVtyXT10W24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxpPTA7aTwxNjtpKyspe3ZhciB1PW9baV09W10sbD1jW2ldO2ZvcihyPTA7cjwyNDtyKyspdVtyLzZ8MF18PWVbKGFbcl0tMStsKSUyOF08PDMxLXIlNix1WzQrKHIvNnwwKV18PWVbMjgrKGFbcisyNF0tMStsKSUyOF08PDMxLXIlNjtmb3IodVswXT11WzBdPDwxfHVbMF0+Pj4zMSxyPTE7cjw3O3IrKyl1W3JdPXVbcl0+Pj40KihyLTEpKzM7dVs3XT11WzddPDw1fHVbN10+Pj4yN312YXIgaD10aGlzLl9pbnZTdWJLZXlzPVtdO2ZvcihyPTA7cjwxNjtyKyspaFtyXT1vWzE1LXJdfSxlbmNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX3N1YktleXMpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX2ludlN1YktleXMpfSxfZG9DcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9sQmxvY2s9dFtlXSx0aGlzLl9yQmxvY2s9dFtlKzFdLGYuY2FsbCh0aGlzLDQsMjUyNjQ1MTM1KSxmLmNhbGwodGhpcywxNiw2NTUzNSkscC5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHAuY2FsbCh0aGlzLDgsMTY3MTE5MzUpLGYuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSk7Zm9yKHZhciBuPTA7bjwxNjtuKyspe2Zvcih2YXIgbz1yW25dLGk9dGhpcy5fbEJsb2NrLHM9dGhpcy5fckJsb2NrLGE9MCxjPTA7Yzw4O2MrKylhfD11W2NdWygoc15vW2NdKSZsW2NdKT4+PjBdO3RoaXMuX2xCbG9jaz1zLHRoaXMuX3JCbG9jaz1pXmF9dmFyIGg9dGhpcy5fbEJsb2NrO3RoaXMuX2xCbG9jaz10aGlzLl9yQmxvY2ssdGhpcy5fckJsb2NrPWgsZi5jYWxsKHRoaXMsMSwxNDMxNjU1NzY1KSxwLmNhbGwodGhpcyw4LDE2NzExOTM1KSxwLmNhbGwodGhpcywyLDg1ODk5MzQ1OSksZi5jYWxsKHRoaXMsMTYsNjU1MzUpLGYuY2FsbCh0aGlzLDQsMjUyNjQ1MTM1KSx0W2VdPXRoaXMuX2xCbG9jayx0W2UrMV09dGhpcy5fckJsb2NrfSxrZXlTaXplOjIsaXZTaXplOjIsYmxvY2tTaXplOjJ9KTtmdW5jdGlvbiBmKHQsZSl7dmFyIHI9KHRoaXMuX2xCbG9jaz4+PnRedGhpcy5fckJsb2NrKSZlO3RoaXMuX3JCbG9ja149cix0aGlzLl9sQmxvY2tePXI8PHR9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPSh0aGlzLl9yQmxvY2s+Pj50XnRoaXMuX2xCbG9jaykmZTt0aGlzLl9sQmxvY2tePXIsdGhpcy5fckJsb2NrXj1yPDx0fXQuREVTPW8uX2NyZWF0ZUhlbHBlcihoKTt2YXIgZD1pLlRyaXBsZURFUz1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9rZXkud29yZHM7dGhpcy5fZGVzMT1oLmNyZWF0ZUVuY3J5cHRvcihyLmNyZWF0ZSh0LnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWguY3JlYXRlRW5jcnlwdG9yKHIuY3JlYXRlKHQuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9aC5jcmVhdGVFbmNyeXB0b3Ioci5jcmVhdGUodC5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsZSksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxlKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LGUpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LGUpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsZSksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxlKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7dC5UcmlwbGVERVM9by5fY3JlYXRlSGVscGVyKGQpfSgpLG4uVHJpcGxlREVTKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNikscig3KSxyKDUpLHIoMSksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuU3RyZWFtQ2lwaGVyLHI9dC5hbGdvLG89ci5SQzQ9ZS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2tleSxlPXQud29yZHMscj10LnNpZ0J5dGVzLG49dGhpcy5fUz1bXSxvPTA7bzwyNTY7bysrKW5bb109bztvPTA7Zm9yKHZhciBpPTA7bzwyNTY7bysrKXt2YXIgcz1vJXIsYT1lW3M+Pj4yXT4+PjI0LXMlNCo4JjI1NTtpPShpK25bb10rYSklMjU2O3ZhciBjPW5bb107bltvXT1uW2ldLG5baV09Y310aGlzLl9pPXRoaXMuX2o9MH0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dFtlXV49aS5jYWxsKHRoaXMpfSxrZXlTaXplOjgsaXZTaXplOjB9KTtmdW5jdGlvbiBpKCl7Zm9yKHZhciB0PXRoaXMuX1MsZT10aGlzLl9pLHI9dGhpcy5faixuPTAsbz0wO288NDtvKyspe3I9KHIrdFtlPShlKzEpJTI1Nl0pJTI1Njt2YXIgaT10W2VdO3RbZV09dFtyXSx0W3JdPWksbnw9dFsodFtlXSt0W3JdKSUyNTZdPDwyNC04Km99cmV0dXJuIHRoaXMuX2k9ZSx0aGlzLl9qPXIsbn10LlJDND1lLl9jcmVhdGVIZWxwZXIobyk7dmFyIHM9ci5SQzREcm9wPW8uZXh0ZW5kKHtjZmc6by5jZmcuZXh0ZW5kKHtkcm9wOjE5Mn0pLF9kb1Jlc2V0OmZ1bmN0aW9uKCl7by5fZG9SZXNldC5jYWxsKHRoaXMpO2Zvcih2YXIgdD10aGlzLmNmZy5kcm9wO3Q+MDt0LS0paS5jYWxsKHRoaXMpfX0pO3QuUkM0RHJvcD1lLl9jcmVhdGVIZWxwZXIocyl9KCksbi5SQzQpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig2KSxyKDcpLHIoNSkscigxKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYi5TdHJlYW1DaXBoZXIscj10LmFsZ28sbz1bXSxpPVtdLHM9W10sYT1yLlJhYmJpdD1lLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYscj0wO3I8NDtyKyspdFtyXT0xNjcxMTkzNSYodFtyXTw8OHx0W3JdPj4+MjQpfDQyNzgyNTUzNjAmKHRbcl08PDI0fHRbcl0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO2Zvcih0aGlzLl9iPTAscj0wO3I8NDtyKyspYy5jYWxsKHRoaXMpO2ZvcihyPTA7cjw4O3IrKylvW3JdXj1uW3IrNCY3XTtpZihlKXt2YXIgaT1lLndvcmRzLHM9aVswXSxhPWlbMV0sdT0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSxsPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGg9dT4+PjE2fDQyOTQ5MDE3NjAmbCxmPWw8PDE2fDY1NTM1JnU7Zm9yKG9bMF1ePXUsb1sxXV49aCxvWzJdXj1sLG9bM11ePWYsb1s0XV49dSxvWzVdXj1oLG9bNl1ePWwsb1s3XV49ZixyPTA7cjw0O3IrKyljLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9YO2MuY2FsbCh0aGlzKSxvWzBdPXJbMF1ecls1XT4+PjE2XnJbM108PDE2LG9bMV09clsyXV5yWzddPj4+MTZecls1XTw8MTYsb1syXT1yWzRdXnJbMV0+Pj4xNl5yWzddPDwxNixvWzNdPXJbNl1eclszXT4+PjE2XnJbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspb1tuXT0xNjcxMTkzNSYob1tuXTw8OHxvW25dPj4+MjQpfDQyNzgyNTUzNjAmKG9bbl08PDI0fG9bbl0+Pj44KSx0W2Urbl1ePW9bbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZnVuY3Rpb24gYygpe2Zvcih2YXIgdD10aGlzLl9YLGU9dGhpcy5fQyxyPTA7cjw4O3IrKylpW3JdPWVbcl07Zm9yKGVbMF09ZVswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxlWzFdPWVbMV0rMzU0NTA1MjM3MSsoZVswXT4+PjA8aVswXT4+PjA/MTowKXwwLGVbMl09ZVsyXSs4ODYyNjMwOTIrKGVbMV0+Pj4wPGlbMV0+Pj4wPzE6MCl8MCxlWzNdPWVbM10rMTI5NTMwNzU5NysoZVsyXT4+PjA8aVsyXT4+PjA/MTowKXwwLGVbNF09ZVs0XSszNTQ1MDUyMzcxKyhlWzNdPj4+MDxpWzNdPj4+MD8xOjApfDAsZVs1XT1lWzVdKzg4NjI2MzA5MisoZVs0XT4+PjA8aVs0XT4+PjA/MTowKXwwLGVbNl09ZVs2XSsxMjk1MzA3NTk3KyhlWzVdPj4+MDxpWzVdPj4+MD8xOjApfDAsZVs3XT1lWzddKzM1NDUwNTIzNzErKGVbNl0+Pj4wPGlbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPWVbN10+Pj4wPGlbN10+Pj4wPzE6MCxyPTA7cjw4O3IrKyl7dmFyIG49dFtyXStlW3JdLG89NjU1MzUmbixhPW4+Pj4xNixjPSgobypvPj4+MTcpK28qYT4+PjE1KSthKmEsdT0oKDQyOTQ5MDE3NjAmbikqbnwwKSsoKDY1NTM1Jm4pKm58MCk7c1tyXT1jXnV9dFswXT1zWzBdKyhzWzddPDwxNnxzWzddPj4+MTYpKyhzWzZdPDwxNnxzWzZdPj4+MTYpfDAsdFsxXT1zWzFdKyhzWzBdPDw4fHNbMF0+Pj4yNCkrc1s3XXwwLHRbMl09c1syXSsoc1sxXTw8MTZ8c1sxXT4+PjE2KSsoc1swXTw8MTZ8c1swXT4+PjE2KXwwLHRbM109c1szXSsoc1syXTw8OHxzWzJdPj4+MjQpK3NbMV18MCx0WzRdPXNbNF0rKHNbM108PDE2fHNbM10+Pj4xNikrKHNbMl08PDE2fHNbMl0+Pj4xNil8MCx0WzVdPXNbNV0rKHNbNF08PDh8c1s0XT4+PjI0KStzWzNdfDAsdFs2XT1zWzZdKyhzWzVdPDwxNnxzWzVdPj4+MTYpKyhzWzRdPDwxNnxzWzRdPj4+MTYpfDAsdFs3XT1zWzddKyhzWzZdPDw4fHNbNl0+Pj4yNCkrc1s1XXwwfXQuUmFiYml0PWUuX2NyZWF0ZUhlbHBlcihhKX0oKSxuLlJhYmJpdCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDYpLHIoNykscig1KSxyKDEpLGZ1bmN0aW9uKCl7dmFyIHQ9bixlPXQubGliLlN0cmVhbUNpcGhlcixyPXQuYWxnbyxvPVtdLGk9W10scz1bXSxhPXIuUmFiYml0TGVnYWN5PWUuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleS53b3JkcyxlPXRoaXMuY2ZnLml2LHI9dGhpcy5fWD1bdFswXSx0WzNdPDwxNnx0WzJdPj4+MTYsdFsxXSx0WzBdPDwxNnx0WzNdPj4+MTYsdFsyXSx0WzFdPDwxNnx0WzBdPj4+MTYsdFszXSx0WzJdPDwxNnx0WzFdPj4+MTZdLG49dGhpcy5fQz1bdFsyXTw8MTZ8dFsyXT4+PjE2LDQyOTQ5MDE3NjAmdFswXXw2NTUzNSZ0WzFdLHRbM108PDE2fHRbM10+Pj4xNiw0Mjk0OTAxNzYwJnRbMV18NjU1MzUmdFsyXSx0WzBdPDwxNnx0WzBdPj4+MTYsNDI5NDkwMTc2MCZ0WzJdfDY1NTM1JnRbM10sdFsxXTw8MTZ8dFsxXT4+PjE2LDQyOTQ5MDE3NjAmdFszXXw2NTUzNSZ0WzBdXTt0aGlzLl9iPTA7Zm9yKHZhciBvPTA7bzw0O28rKyljLmNhbGwodGhpcyk7Zm9yKG89MDtvPDg7bysrKW5bb11ePXJbbys0JjddO2lmKGUpe3ZhciBpPWUud29yZHMscz1pWzBdLGE9aVsxXSx1PTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLGw9MTY3MTE5MzUmKGE8PDh8YT4+PjI0KXw0Mjc4MjU1MzYwJihhPDwyNHxhPj4+OCksaD11Pj4+MTZ8NDI5NDkwMTc2MCZsLGY9bDw8MTZ8NjU1MzUmdTtmb3IoblswXV49dSxuWzFdXj1oLG5bMl1ePWwsblszXV49ZixuWzRdXj11LG5bNV1ePWgsbls2XV49bCxuWzddXj1mLG89MDtvPDQ7bysrKWMuY2FsbCh0aGlzKX19LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX1g7Yy5jYWxsKHRoaXMpLG9bMF09clswXV5yWzVdPj4+MTZeclszXTw8MTYsb1sxXT1yWzJdXnJbN10+Pj4xNl5yWzVdPDwxNixvWzJdPXJbNF1eclsxXT4+PjE2XnJbN108PDE2LG9bM109cls2XV5yWzNdPj4+MTZeclsxXTw8MTY7Zm9yKHZhciBuPTA7bjw0O24rKylvW25dPTE2NzExOTM1JihvW25dPDw4fG9bbl0+Pj4yNCl8NDI3ODI1NTM2MCYob1tuXTw8MjR8b1tuXT4+PjgpLHRbZStuXV49b1tuXX0sYmxvY2tTaXplOjQsaXZTaXplOjJ9KTtmdW5jdGlvbiBjKCl7Zm9yKHZhciB0PXRoaXMuX1gsZT10aGlzLl9DLHI9MDtyPDg7cisrKWlbcl09ZVtyXTtmb3IoZVswXT1lWzBdKzEyOTUzMDc1OTcrdGhpcy5fYnwwLGVbMV09ZVsxXSszNTQ1MDUyMzcxKyhlWzBdPj4+MDxpWzBdPj4+MD8xOjApfDAsZVsyXT1lWzJdKzg4NjI2MzA5MisoZVsxXT4+PjA8aVsxXT4+PjA/MTowKXwwLGVbM109ZVszXSsxMjk1MzA3NTk3KyhlWzJdPj4+MDxpWzJdPj4+MD8xOjApfDAsZVs0XT1lWzRdKzM1NDUwNTIzNzErKGVbM10+Pj4wPGlbM10+Pj4wPzE6MCl8MCxlWzVdPWVbNV0rODg2MjYzMDkyKyhlWzRdPj4+MDxpWzRdPj4+MD8xOjApfDAsZVs2XT1lWzZdKzEyOTUzMDc1OTcrKGVbNV0+Pj4wPGlbNV0+Pj4wPzE6MCl8MCxlWzddPWVbN10rMzU0NTA1MjM3MSsoZVs2XT4+PjA8aVs2XT4+PjA/MTowKXwwLHRoaXMuX2I9ZVs3XT4+PjA8aVs3XT4+PjA/MTowLHI9MDtyPDg7cisrKXt2YXIgbj10W3JdK2Vbcl0sbz02NTUzNSZuLGE9bj4+PjE2LGM9KChvKm8+Pj4xNykrbyphPj4+MTUpK2EqYSx1PSgoNDI5NDkwMTc2MCZuKSpufDApKygoNjU1MzUmbikqbnwwKTtzW3JdPWNedX10WzBdPXNbMF0rKHNbN108PDE2fHNbN10+Pj4xNikrKHNbNl08PDE2fHNbNl0+Pj4xNil8MCx0WzFdPXNbMV0rKHNbMF08PDh8c1swXT4+PjI0KStzWzddfDAsdFsyXT1zWzJdKyhzWzFdPDwxNnxzWzFdPj4+MTYpKyhzWzBdPDwxNnxzWzBdPj4+MTYpfDAsdFszXT1zWzNdKyhzWzJdPDw4fHNbMl0+Pj4yNCkrc1sxXXwwLHRbNF09c1s0XSsoc1szXTw8MTZ8c1szXT4+PjE2KSsoc1syXTw8MTZ8c1syXT4+PjE2KXwwLHRbNV09c1s1XSsoc1s0XTw8OHxzWzRdPj4+MjQpK3NbM118MCx0WzZdPXNbNl0rKHNbNV08PDE2fHNbNV0+Pj4xNikrKHNbNF08PDE2fHNbNF0+Pj4xNil8MCx0WzddPXNbN10rKHNbNl08PDh8c1s2XT4+PjI0KStzWzVdfDB9dC5SYWJiaXRMZWdhY3k9ZS5fY3JlYXRlSGVscGVyKGEpfSgpLG4uUmFiYml0TGVnYWN5KX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO3ZhciBuPXRoaXMmJnRoaXMuX19kZWNvcmF0ZXx8ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8saT1hcmd1bWVudHMubGVuZ3RoLHM9aTwzP2U6bnVsbD09PW4/bj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscik6bjtpZihcIm9iamVjdFwiPT10eXBlb2YgUmVmbGVjdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSlzPVJlZmxlY3QuZGVjb3JhdGUodCxlLHIsbik7ZWxzZSBmb3IodmFyIGE9dC5sZW5ndGgtMTthPj0wO2EtLSkobz10W2FdKSYmKHM9KGk8Mz9vKHMpOmk+Mz9vKGUscixzKTpvKGUscikpfHxzKTtyZXR1cm4gaT4zJiZzJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHMpLHN9LG89dGhpcyYmdGhpcy5fX21ldGFkYXRhfHxmdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKHQsZSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IGk9cig1Nikscz1yKDEzKSxhPXIoOSksYz1yKDIxKSx1PXIoNTgpLGw9cig1OSk7ZnVuY3Rpb24gaCh0LGUpe2NvbnN0IHI9Yy5ldGhbZV07aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCB0aGUgbWV0aG9kL3Byb3BlcnR5IG5hbWVkICR7ZS50b1N0cmluZygpfWApO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHIuZXhlY3V0ZS5jYWxsKHIsdGhpcywuLi5hcmd1bWVudHMpfX0pfWUuVFJBTlNBQ1RJT05fRkVUQ0hfREVMQVk9MmUzLGUuaW5qZWN0PWg7Y2xhc3MgZntjb25zdHJ1Y3Rvcih0KXt0aGlzLnByb3ZpZGVyPXQsdGhpcy5yZXF1ZXN0cz1uZXcgTWFwfWFzeW5jIHNlbmRBc3luYyh0KXtpZighdGhpcy5wcm92aWRlcil0aHJvdyBzLkludmFsaWRQcm92aWRlcigpO2xldCBlPWkudG9QYXlsb2FkKHQubWV0aG9kLHQucGFyYW1zKTtjb25zdCByPWEuZnV0dXJlKCk7cmV0dXJuIHRoaXMucmVxdWVzdHMuc2V0KGUuaWQsciksdGhpcy5wcm92aWRlci5zZW5kQXN5bmMoZSwodCxuKT0+e3RoaXMucmVxdWVzdHMuZGVsZXRlKGUuaWQpLHQ/ci5yZWplY3QodCk6aS5pc1ZhbGlkUmVzcG9uc2Uobik/ci5yZXNvbHZlKG4ucmVzdWx0KTpyLnJlamVjdChzLkludmFsaWRSZXNwb25zZShuKSl9KSxyfXNldFByb3ZpZGVyKHQpe3RoaXMucHJvdmlkZXI9dH1hc3luYyBnZXRDb25maXJtZWRUcmFuc2FjdGlvbih0KXtjb25zdCBlPWF3YWl0IHRoaXMud2FpdEZvckNvbXBsZXRpb24odCk7aWYodGhpcy5pc0ZhaWx1cmUoZSkpdGhyb3cgbmV3IEVycm9yKGBUcmFuc2FjdGlvbiBcIiR7dH1cIiBmYWlsZWRgKTtyZXR1cm4gZX1hc3luYyB3YWl0Rm9yQ29tcGxldGlvbih0LHIpe2lmKGF3YWl0IHRoaXMuaXNUeERyb3BwZWQodCxyKSl7Y29uc3QgZT1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uQW5kUmVjZWlwdCh0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxlLHtzdGF0dXM6dS5UcmFuc2FjdGlvblN0YXR1cy5mYWlsZWR9KX1mb3IoOzspe2NvbnN0IHI9YXdhaXQgdGhpcy5nZXRUcmFuc2FjdGlvbkFuZFJlY2VpcHQodCk7aWYoIXRoaXMuaXNQZW5kaW5nKHIpJiZyLnJlY2VpcHQpcmV0dXJuIE9iamVjdC5hc3NpZ24oe30scix7c3RhdHVzOnRoaXMuaXNGYWlsdXJlKHIpP3UuVHJhbnNhY3Rpb25TdGF0dXMuZmFpbGVkOnUuVHJhbnNhY3Rpb25TdGF0dXMuY29uZmlybWVkfSk7YXdhaXQgbC5zbGVlcChlLlRSQU5TQUNUSU9OX0ZFVENIX0RFTEFZKX19YXN5bmMgZ2V0VHJhbnNhY3Rpb24odCl7bGV0IGUscixuO3RyeXtjb25zdCB0PShhd2FpdCB0aGlzLmV0aF9hY2NvdW50cygpKVswXTt0JiYoZT1hd2FpdCB0aGlzLmV0aF9nZXRUcmFuc2FjdGlvbkNvdW50KHQsXCJsYXRlc3RcIikpfWNhdGNoKHQpe2U9bnVsbH10cnl7aWYobnVsbD09KHI9YXdhaXQgdGhpcy5ldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2godCkpKXJldHVybiBudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfWlmKG51bGw9PXIuYmxvY2tOdW1iZXIpe2lmKG51bGwhPWUpe2lmKHIubm9uY2U8ZSl7cmV0dXJue2hhc2g6dCx0eXBlOnUuVHJhbnNhY3Rpb25UeXBlLnJlcGxhY2VkLG5vbmNlOnIubm9uY2V9fWlmKHIubm9uY2U+ZSl7cmV0dXJue2hhc2g6dCx0eXBlOnUuVHJhbnNhY3Rpb25UeXBlLnF1ZXVlZCxub25jZTpyLm5vbmNlfX19cmV0dXJuIE9iamVjdC5hc3NpZ24oe3R5cGU6dS5UcmFuc2FjdGlvblR5cGUucGVuZGluZ30scil9dHJ5e2lmKG51bGw9PShuPWF3YWl0IHRoaXMuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdCh0KSl8fDA9PT1uLnN0YXR1cyl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe3R5cGU6dS5UcmFuc2FjdGlvblR5cGUucmV2ZXJ0ZWR9LHIpfX1jYXRjaCh0KXtyZXR1cm4gbnVsbH1yZXR1cm4gT2JqZWN0LmFzc2lnbih7dHlwZTp1LlRyYW5zYWN0aW9uVHlwZS5jb25maXJtZWR9LHIse3JlY2VpcHQ6bn0pfWFzeW5jIGlzVHhEcm9wcGVkKHQscj0xNSl7bGV0IG49cjtmb3IoO24+MDspe2lmKG51bGwhPT1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uQW5kUmVjZWlwdCh0KSlyZXR1cm4hMTtuLT0xLGF3YWl0IGwuc2xlZXAoZS5UUkFOU0FDVElPTl9GRVRDSF9ERUxBWSl9cmV0dXJuITB9YXN5bmMgZ2V0VHJhbnNhY3Rpb25BbmRSZWNlaXB0KHQpe2NvbnN0W2Uscl09YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoKHQpLHRoaXMuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdCh0KV0pO3JldHVybiBlP09iamVjdC5hc3NpZ24oe30sZSx7cmVjZWlwdDpyfSk6bnVsbH1pc1BlbmRpbmcodCl7cmV0dXJuIHQmJm51bGw9PT10LmJsb2NrTnVtYmVyfWlzRmFpbHVyZSh0KXtyZXR1cm4gdCYmKCF0LnJlY2VpcHR8fDA9PT10LnJlY2VpcHQuc3RhdHVzKX19bihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwid2ViM19jbGllbnRWZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJ3ZWIzX3NoYTNcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcIm5ldF92ZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJuZXRfcGVlckNvdW50XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJuZXRfbGlzdGVuaW5nXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfcHJvdG9jb2xWZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc3luY2luZ1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2NvaW5iYXNlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfbWluaW5nXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfaGFzaHJhdGVcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nYXNQcmljZVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2FjY291bnRzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfYmxvY2tOdW1iZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRCYWxhbmNlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0U3RvcmFnZUF0XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25Db3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5SGFzaFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5TnVtYmVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tOdW1iZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRDb2RlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc2lnblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3NlbmRUcmFuc2FjdGlvblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3NlbmRSYXdUcmFuc2FjdGlvblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2NhbGxcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9lc3RpbWF0ZUdhc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrQnlIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0QmxvY2tCeU51bWJlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXhcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRUcmFuc2FjdGlvblJlY2VpcHRcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXhcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRVbmNsZUJ5QmxvY2tOdW1iZXJBbmRJbmRleFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX25ld0ZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX25ld0Jsb2NrRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfbmV3UGVuZGluZ1RyYW5zYWN0aW9uRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfdW5pbnN0YWxsRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0RmlsdGVyQ2hhbmdlc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEZpbHRlckxvZ3NcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRMb2dzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0V29ya1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3N1Ym1pdFdvcmtcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9zdWJtaXRIYXNocmF0ZVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX3Bvc3RcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF92ZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfbmV3SWRlbnRpdHlcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF9oYXNJZGVudGl0eVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX25ld0dyb3VwXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfYWRkVG9Hcm91cFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX25ld0ZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX3VuaW5zdGFsbEZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX2dldEZpbHRlckNoYW5nZXNcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF9nZXRNZXNzYWdlc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfdW5sb2NrQWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfbmV3QWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfbGlzdEFjY291bnRzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9sb2NrQWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfaW1wb3J0UmF3S2V5XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9zZW5kVHJhbnNhY3Rpb25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInBlcnNvbmFsX3NpZ25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInBlcnNvbmFsX2VjUmVjb3ZlclwiLHZvaWQgMCksZS5SZXF1ZXN0TWFuYWdlcj1mfSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbih0LHIpe2lmKCF0KXRocm93IG5ldyBFcnJvcihcImpzb25ycGMgbWV0aG9kIHNob3VsZCBiZSBzcGVjaWZpZWQhXCIpO2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihganNvbnJwYyBtdXN0IGJlIGEgc3RyaW5nLCBnb3QgJHt0eXBlb2YgdH0hYCk7cmV0dXJuIGUubWVzc2FnZUlkKysse2pzb25ycGM6XCIyLjBcIixpZDplLm1lc3NhZ2VJZCxtZXRob2Q6dCxwYXJhbXM6cnx8W119fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUubWVzc2FnZUlkPTAsZS50b1BheWxvYWQ9bixlLmlzVmFsaWRSZXNwb25zZT1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LmV2ZXJ5KGUpOmUodCk7ZnVuY3Rpb24gZSh0KXtyZXR1cm4hKCF0fHx0LmVycm9yfHxcIjIuMFwiIT09dC5qc29ucnBjfHxcIm51bWJlclwiIT10eXBlb2YgdC5pZHx8bnVsbD09dC5yZXN1bHQmJnZvaWQgMD09PXQucmVzdWx0KX19LGUudG9CYXRjaFBheWxvYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQubWV0aG9kLHQucGFyYW1zKX0pfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGZ1bmN0aW9uKHQpe3RbdC5ST1VORF9VUD0wXT1cIlJPVU5EX1VQXCIsdFt0LlJPVU5EX0RPV049MV09XCJST1VORF9ET1dOXCIsdFt0LlJPVU5EX0NFPTJdPVwiUk9VTkRfQ0VcIix0W3QuUk9VTkRfRkxPT1I9M109XCJST1VORF9GTE9PUlwiLHRbdC5ST1VORF9IQUxGX1VQPTRdPVwiUk9VTkRfSEFMRl9VUFwiLHRbdC5ST1VORF9IQUxGX0RPV049NV09XCJST1VORF9IQUxGX0RPV05cIix0W3QuUk9VTkRfSEFMRl9FVkVOPTZdPVwiUk9VTkRfSEFMRl9FVkVOXCIsdFt0LlJPVU5EX0hBTEZfQ0VJTD03XT1cIlJPVU5EX0hBTEZfQ0VJTFwiLHRbdC5ST1VORF9IQUxGX0ZMT09SPThdPVwiUk9VTkRfSEFMRl9GTE9PUlwifShlLkJpZ051bWJlclJvdW5kaW5nTW9kZXx8KGUuQmlnTnVtYmVyUm91bmRpbmdNb2RlPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXt0LnBlbmRpbmc9XCJwZW5kaW5nXCIsdC5jb25maXJtZWQ9XCJjb25maXJtZWRcIix0LmZhaWxlZD1cImZhaWxlZFwifShlLlRyYW5zYWN0aW9uU3RhdHVzfHwoZS5UcmFuc2FjdGlvblN0YXR1cz17fSkpLGZ1bmN0aW9uKHQpe3QucXVldWVkPVwicXVldWVkXCIsdC5kcm9wcGVkPVwiZHJvcHBlZFwiLHQucmVwbGFjZWQ9XCJyZXBsYWNlZFwiLHQucGVuZGluZz1cInBlbmRpbmdcIix0LnJldmVydGVkPVwicmV2ZXJ0ZWRcIix0LmNvbmZpcm1lZD1cImNvbmZpcm1lZFwifShlLlRyYW5zYWN0aW9uVHlwZXx8KGUuVHJhbnNhY3Rpb25UeXBlPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLnNsZWVwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KGUsdCkpfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoOCksaT1yKDEzKSxzPXIoMTUpO2UuU29saWRpdHlGdW5jdGlvbj1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuanNvbj1lLHRoaXMuX2lucHV0VHlwZXM9ZS5pbnB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KSx0aGlzLl9vdXRwdXRUeXBlcz1lLm91dHB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KSx0aGlzLl9jb25zdGFudD1lLmNvbnN0YW50LHRoaXMuX3BheWFibGU9ZS5wYXlhYmxlLHRoaXMubmVlZHNUb0JlVHJhbnNhY3Rpb249XCJwYXlhYmxlXCJpbiBlJiZlLnBheWFibGV8fFwiY29uc3RhbnRcImluIGUmJiFlLmNvbnN0YW50fHxcInN0YXRlTXV0YWJpbGl0eVwiaW4gZSYmXCJub25wYXlhYmxlXCI9PT1lLnN0YXRlTXV0YWJpbGl0eSx0aGlzLl9uYW1lPW4udHJhbnNmb3JtVG9GdWxsTmFtZShlKSx0aGlzLl9hZGRyZXNzPXJ9ZXh0cmFjdERlZmF1bHRCbG9jayh0KXtpZih0Lmxlbmd0aD50aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCYmIW4uaXNPYmplY3QodFt0Lmxlbmd0aC0xXSkpcmV0dXJuIG8uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXIodC5wb3AoKSl9dmFsaWRhdGVBcmdzKHQpe2lmKHQuc29tZSh0PT52b2lkIDA9PT10KSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNhbGwsIHNvbWUgYXJndW1lbnRzIGFyZSB1bmRlZmluZWRcIik7bGV0IGU9dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuISghMD09PW4uaXNPYmplY3QodCkmJiExPT09bi5pc0FycmF5KHQpJiYhMT09PW4uaXNCaWdOdW1iZXIodCkpfSk7aWYoZS5sZW5ndGghPT10aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCl0aHJvdyBpLkludmFsaWROdW1iZXJPZlNvbGlkaXR5QXJncyhlLmxlbmd0aCx0aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCl9dG9QYXlsb2FkKHQpe2xldCBlPXt0bzp2b2lkIDAsZGF0YTp2b2lkIDAsdmFsdWU6dm9pZCAwLGZyb206dm9pZCAwfTtyZXR1cm4gdC5sZW5ndGg+dGhpcy5faW5wdXRUeXBlcy5sZW5ndGgmJm4uaXNPYmplY3QodFt0Lmxlbmd0aC0xXSkmJihlPXRbdC5sZW5ndGgtMV0pLHRoaXMudmFsaWRhdGVBcmdzKHQpLGUudG89dGhpcy5fYWRkcmVzcyxlLmRhdGE9XCIweFwiK3RoaXMuc2lnbmF0dXJlKCkrcy5jb2Rlci5lbmNvZGVQYXJhbXModGhpcy5faW5wdXRUeXBlcyx0KSxlfXNpZ25hdHVyZSgpe3JldHVybiBuLnNoYTModGhpcy5fbmFtZSkuc2xpY2UoMCw4KX11bnBhY2tPdXRwdXQodCl7aWYoIXQpcmV0dXJuO2NvbnN0IGU9dC5sZW5ndGg+PTI/dC5zbGljZSgyKTp0O2xldCByPXMuY29kZXIuZGVjb2RlUGFyYW1zKHRoaXMuX291dHB1dFR5cGVzLGUpO3JldHVybiAxPT09ci5sZW5ndGg/clswXTpyfWFzeW5jIGV4ZWN1dGUodCwuLi5lKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjYWxsIGZ1bmN0aW9uICR7dGhpcy5kaXNwbGF5TmFtZSgpfSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlcXVlc3RNYW5hZ2VyYCk7aWYodGhpcy5uZWVkc1RvQmVUcmFuc2FjdGlvbil7Y29uc3Qgcj10aGlzLnRvUGF5bG9hZChlKTtpZihyLnZhbHVlPjAmJiF0aGlzLl9wYXlhYmxlKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBzZW5kIHZhbHVlIHRvIG5vbi1wYXlhYmxlIGZ1bmN0aW9uXCIpO2lmKCFyLmZyb20pdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFwiZnJvbVwiIGluIHRyYW5zYWN0aW9uIG9wdGlvbnMnKTtyZXR1cm4gYXdhaXQgdC5ldGhfc2VuZFRyYW5zYWN0aW9uKHIpfXtjb25zdCByPXRoaXMuZXh0cmFjdERlZmF1bHRCbG9jayhlKSxuPXRoaXMudG9QYXlsb2FkKGUpLG89YXdhaXQgdC5ldGhfY2FsbChuLHIpO3JldHVybiB0aGlzLnVucGFja091dHB1dChvKX19ZXN0aW1hdGVHYXMoLi4udCl7bGV0IGU9dGhpcy50b1BheWxvYWQodCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuZXRoX2VzdGltYXRlR2FzKGUpfWdldERhdGEoLi4udCl7cmV0dXJuIHRoaXMudG9QYXlsb2FkKHQpLmRhdGF9ZGlzcGxheU5hbWUoKXtyZXR1cm4gbi5leHRyYWN0RGlzcGxheU5hbWUodGhpcy5fbmFtZSl9dHlwZU5hbWUoKXtyZXR1cm4gbi5leHRyYWN0VHlwZU5hbWUodGhpcy5fbmFtZSl8fFwidm9pZFwifWF0dGFjaFRvQ29udHJhY3QodCl7bGV0IGU9dGhpcy5kaXNwbGF5TmFtZSgpO2NvbnN0IHI9dGhpcyxuPU9iamVjdC5hc3NpZ24oZnVuY3Rpb24oLi4udCl7Y29uc3QgZT10aGlzLnJlcXVlc3RNYW5hZ2VyfHxyLnJlcXVlc3RNYW5hZ2VyO3JldHVybiByLmV4ZWN1dGUoZSwuLi50KX0se2VzdGltYXRlR2FzOnRoaXMuZXN0aW1hdGVHYXMuYmluZCh0aGlzKX0pO3RbZV18fCh0W2VdPW4pLHRbZV1bdGhpcy50eXBlTmFtZSgpXT1ufX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlQWRkcmVzcz1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRJbnQsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0QWRkcmVzc30pfWlzVHlwZSh0KXtyZXR1cm4hIXQubWF0Y2goL2FkZHJlc3MoXFxbKFswLTldKilcXF0pPy8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlQm9vbD1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRCb29sLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dEJvb2x9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9eYm9vbChcXFsoWzAtOV0qKVxcXSkqJC8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlSW50PWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEludCxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRJbnR9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9eaW50KFswLTldKik/KFxcWyhbMC05XSopXFxdKSokLyl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNCk7ZS5Tb2xpZGl0eVR5cGVVSW50PWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEludCxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRVSW50fSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXnVpbnQoWzAtOV0qKT8oXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZUR5bmFtaWNCeXRlcz1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXREeW5hbWljQnl0ZXMsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0RHluYW1pY0J5dGVzfSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXmJ5dGVzKFxcWyhbMC05XSopXFxdKSokLyl9aXNEeW5hbWljVHlwZSgpe3JldHVybiEwfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlU3RyaW5nPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dFN0cmluZyxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRTdHJpbmd9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9ec3RyaW5nKFxcWyhbMC05XSopXFxdKSokLyl9aXNEeW5hbWljVHlwZSgpe3JldHVybiEwfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlUmVhbD1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRSZWFsLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dFJlYWx9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9yZWFsKFswLTldKik/KFxcWyhbMC05XSopXFxdKT8vKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZVVSZWFsPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dFJlYWwsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0VVJlYWx9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9edXJlYWwoWzAtOV0qKT8oXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZUJ5dGVzPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEJ5dGVzLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dEJ5dGVzfSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXmJ5dGVzKFswLTldezEsfSkoXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cig4KSxpPXIoMjYpLHM9cigyNyk7ZS5BbGxTb2xpZGl0eUV2ZW50cz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5fcmVxdWVzdE1hbmFnZXI9dCx0aGlzLl9qc29uPWUsdGhpcy5fYWRkcmVzcz1yfWVuY29kZSh0PXt9KXtsZXQgZT17YWRkcmVzczp0aGlzLl9hZGRyZXNzfTtyZXR1cm5bXCJmcm9tQmxvY2tcIixcInRvQmxvY2tcIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSkuZm9yRWFjaChmdW5jdGlvbihyKXtlW3JdPW8uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcih0W3JdKX0pLGV9ZGVjb2RlKHQpe3QuZGF0YT10LmRhdGF8fFwiXCI7bGV0IGU9bi5pc0FycmF5KHQudG9waWNzKSYmbi5pc1N0cmluZyh0LnRvcGljc1swXSk/dC50b3BpY3NbMF0uc2xpY2UoMik6XCJcIixyPXRoaXMuX2pzb24uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBlPT09bi5zaGEzKG4udHJhbnNmb3JtVG9GdWxsTmFtZSh0KSl9KVswXTtyZXR1cm4gcj9uZXcgaS5Tb2xpZGl0eUV2ZW50KHRoaXMuX3JlcXVlc3RNYW5hZ2VyLHIsdGhpcy5fYWRkcmVzcykuZGVjb2RlKHQpOm8ub3V0cHV0TG9nRm9ybWF0dGVyKHQpfWFzeW5jIGV4ZWN1dGUodCl7bGV0IGU9dGhpcy5lbmNvZGUodCkscj10aGlzLmRlY29kZS5iaW5kKHRoaXMpO3JldHVybiBuZXcgcy5FdGhGaWx0ZXIodGhpcy5fcmVxdWVzdE1hbmFnZXIsZSxyKX1hdHRhY2hUb0NvbnRyYWN0KHQpe2xldCBlPXRoaXMuZXhlY3V0ZS5iaW5kKHRoaXMpO3QuYWxsRXZlbnRzPWV9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoMTUpLGk9cigyNCkscz1yKDkpO2Z1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJjb25zdHJ1Y3RvclwiPT09dC50eXBlJiZ0LmlucHV0cy5sZW5ndGg9PT1lLmxlbmd0aH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbnB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gby5jb2Rlci5lbmNvZGVQYXJhbXModCxlKX0pWzBdfHxcIlwifWUuQ29udHJhY3RGYWN0b3J5PWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuYWJpPWV9YXN5bmMgZGVwbG95KC4uLnQpe2xldCBlLHI9dFt0Lmxlbmd0aC0xXTtpZihuLmlzT2JqZWN0KHIpJiYhbi5pc0FycmF5KHIpJiYoZT10LnBvcCgpKSwhZSl0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIG9wdGlvbnMgb2JqZWN0XCIpO2lmKCFlLmRhdGF8fFwic3RyaW5nXCIhPXR5cGVvZiBlLmRhdGEpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBvcHRpb25zLmRhdGFcIik7aWYoZS52YWx1ZT4wJiYhKHRoaXMuYWJpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm5cImNvbnN0cnVjdG9yXCI9PT1lLnR5cGUmJmUuaW5wdXRzLmxlbmd0aD09PXQubGVuZ3RofSlbMF18fHt9KS5wYXlhYmxlKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBzZW5kIHZhbHVlIHRvIG5vbi1wYXlhYmxlIGNvbnN0cnVjdG9yXCIpO2xldCBvPWEodGhpcy5hYmksdCk7ZS5kYXRhKz1vLGUuZ2FzfHwoZS5nYXM9YXdhaXQgdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZXN0aW1hdGVHYXMoZSkpO2NvbnN0IGk9YXdhaXQgdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfc2VuZFRyYW5zYWN0aW9uKGUpLGM9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlKXtjb25zdCByPXMuZnV0dXJlKCk7bGV0IG49MDtjb25zdCBvPSgpPT57KytuPjUwP3IucmVqZWN0KG5ldyBFcnJvcihcIkNvbnRyYWN0IHRyYW5zYWN0aW9uIGNvdWxkbid0IGJlIGZvdW5kIGFmdGVyIDUwIGJsb2Nrc1wiKSk6dC5ldGhfZ2V0VHJhbnNhY3Rpb25SZWNlaXB0KGUpLnRoZW4odD0+e3QmJnQuYmxvY2tIYXNoP3IucmVzb2x2ZSh0KTpzZXRUaW1lb3V0KG8sMWUzKX0sdD0+ci5yZWplY3QodCkpfTtvKCk7Y29uc3QgaT1hd2FpdCByLGE9YXdhaXQgdC5ldGhfZ2V0Q29kZShpLmNvbnRyYWN0QWRkcmVzcyxcImxhdGVzdFwiKTtpZihhLmxlbmd0aD4zKXJldHVybiBpLmNvbnRyYWN0QWRkcmVzczt0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihcIlRoZSBjb250cmFjdCBjb2RlIGNvdWxkbid0IGJlIHN0b3JlZCwgcGxlYXNlIGNoZWNrIHlvdXIgZ2FzIGFtb3VudC5cIikse3Jlc3BvbnNlOmEscmVjZWlwdDppfSl9KHRoaXMucmVxdWVzdE1hbmFnZXIsaSksdT1hd2FpdCB0aGlzLmF0KGMpO3JldHVybiB1LnRyYW5zYWN0aW9uSGFzaD1pLHV9YXN5bmMgYXQodCl7aWYoIW4uaXNBZGRyZXNzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYWRkcmVzcyAke0pTT04uc3RyaW5naWZ5KHQpfWApO3JldHVybiBuZXcgaS5Db250cmFjdCh0aGlzLnJlcXVlc3RNYW5hZ2VyLHRoaXMuYWJpLHQpfWFzeW5jIGdldERhdGEoLi4udCl7bGV0IGU9e2RhdGE6dm9pZCAwfTtjb25zdCByPXRbdC5sZW5ndGgtMV07aWYobi5pc09iamVjdChyKSYmIW4uaXNBcnJheShyKSYmKGU9dC5wb3AoKSksIWUpdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBvcHRpb25zIG9iamVjdFwiKTtpZighZS5kYXRhfHxcInN0cmluZ1wiIT10eXBlb2YgZS5kYXRhKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgb3B0aW9ucy5kYXRhXCIpO2NvbnN0IG89YSh0aGlzLmFiaSx0KTtyZXR1cm4gZS5kYXRhKz1vLGUuZGF0YX19fV0pO1xuZXhwb3J0IGRlZmF1bHQgZXRoY29ubmVjdDsiLCIvLyB0c2xpbnQ6ZGlzYWJsZVxuXG5pbXBvcnQgWCBmcm9tICcuL2V0aC1jb25uZWN0LmVzbSdcbnR5cGUgRVRIQyA9IHR5cGVvZiBpbXBvcnQoJy4vZXRoLWNvbm5lY3QnKVxuY29uc3QgRXRoQ29ubmVjdDogRVRIQyA9IFhcbmV4cG9ydCA9IEV0aENvbm5lY3RcbiIsImV4cG9ydCBkZWZhdWx0IFtcblx0e1xuXHRcdGlucHV0czogW1xuXHRcdFx0e1xuXHRcdFx0XHRpbnRlcm5hbFR5cGU6ICdhZGRyZXNzJyxcblx0XHRcdFx0bmFtZTogJ19wb2FwQ29udHJhY3RBZGRyZXNzJyxcblx0XHRcdFx0dHlwZTogJ2FkZHJlc3MnLFxuXHRcdFx0fSxcblx0XHRcdHsgaW50ZXJuYWxUeXBlOiAnYWRkcmVzcycsIG5hbWU6ICdfdmFsaWRTaWduZXInLCB0eXBlOiAnYWRkcmVzcycgfSxcblx0XHRdLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ25vbnBheWFibGUnLFxuXHRcdHR5cGU6ICdjb25zdHJ1Y3RvcicsXG5cdH0sXG5cdHtcblx0XHRhbm9ueW1vdXM6IGZhbHNlLFxuXHRcdGlucHV0czogW1xuXHRcdFx0e1xuXHRcdFx0XHRpbmRleGVkOiBmYWxzZSxcblx0XHRcdFx0aW50ZXJuYWxUeXBlOiAnYnl0ZXMnLFxuXHRcdFx0XHRuYW1lOiAnX3NpZ25lZE1lc3NhZ2UnLFxuXHRcdFx0XHR0eXBlOiAnYnl0ZXMnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdG5hbWU6ICdWZXJpZmllZFNpZ25hdHVyZScsXG5cdFx0dHlwZTogJ2V2ZW50Jyxcblx0fSxcblx0e1xuXHRcdGNvbnN0YW50OiBmYWxzZSxcblx0XHRpbnB1dHM6IFtcblx0XHRcdHsgaW50ZXJuYWxUeXBlOiAndWludDI1NicsIG5hbWU6ICdldmVudF9pZCcsIHR5cGU6ICd1aW50MjU2JyB9LFxuXHRcdFx0eyBpbnRlcm5hbFR5cGU6ICdhZGRyZXNzJywgbmFtZTogJ3JlY2VpdmVyJywgdHlwZTogJ2FkZHJlc3MnIH0sXG5cdFx0XHR7IGludGVybmFsVHlwZTogJ2J5dGVzJywgbmFtZTogJ3NpZ25lZE1lc3NhZ2UnLCB0eXBlOiAnYnl0ZXMnIH0sXG5cdFx0XSxcblx0XHRuYW1lOiAnbWludFRva2VuJyxcblx0XHRvdXRwdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdib29sJywgbmFtZTogJycsIHR5cGU6ICdib29sJyB9XSxcblx0XHRwYXlhYmxlOiBmYWxzZSxcblx0XHRzdGF0ZU11dGFiaWxpdHk6ICdub25wYXlhYmxlJyxcblx0XHR0eXBlOiAnZnVuY3Rpb24nLFxuXHR9LFxuXHR7XG5cdFx0Y29uc3RhbnQ6IHRydWUsXG5cdFx0aW5wdXRzOiBbXSxcblx0XHRuYW1lOiAnbmFtZScsXG5cdFx0b3V0cHV0czogW3sgaW50ZXJuYWxUeXBlOiAnc3RyaW5nJywgbmFtZTogJycsIHR5cGU6ICdzdHJpbmcnIH1dLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ3ZpZXcnLFxuXHRcdHR5cGU6ICdmdW5jdGlvbicsXG5cdH0sXG5cdHtcblx0XHRjb25zdGFudDogdHJ1ZSxcblx0XHRpbnB1dHM6IFtdLFxuXHRcdG5hbWU6ICdvd25lcicsXG5cdFx0b3V0cHV0czogW3sgaW50ZXJuYWxUeXBlOiAnYWRkcmVzcycsIG5hbWU6ICcnLCB0eXBlOiAnYWRkcmVzcycgfV0sXG5cdFx0cGF5YWJsZTogZmFsc2UsXG5cdFx0c3RhdGVNdXRhYmlsaXR5OiAndmlldycsXG5cdFx0dHlwZTogJ2Z1bmN0aW9uJyxcblx0fSxcblx0e1xuXHRcdGNvbnN0YW50OiB0cnVlLFxuXHRcdGlucHV0czogW3sgaW50ZXJuYWxUeXBlOiAnYnl0ZXMnLCBuYW1lOiAnJywgdHlwZTogJ2J5dGVzJyB9XSxcblx0XHRuYW1lOiAncHJvY2Vzc2VkJyxcblx0XHRvdXRwdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdib29sJywgbmFtZTogJycsIHR5cGU6ICdib29sJyB9XSxcblx0XHRwYXlhYmxlOiBmYWxzZSxcblx0XHRzdGF0ZU11dGFiaWxpdHk6ICd2aWV3Jyxcblx0XHR0eXBlOiAnZnVuY3Rpb24nLFxuXHR9LFxuXHR7XG5cdFx0Y29uc3RhbnQ6IHRydWUsXG5cdFx0aW5wdXRzOiBbXSxcblx0XHRuYW1lOiAndmFsaWRTaWduZXInLFxuXHRcdG91dHB1dHM6IFt7IGludGVybmFsVHlwZTogJ2FkZHJlc3MnLCBuYW1lOiAnJywgdHlwZTogJ2FkZHJlc3MnIH1dLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ3ZpZXcnLFxuXHRcdHR5cGU6ICdmdW5jdGlvbicsXG5cdH0sXG5dXG4iLCIvL2ltcG9ydCB7IGNhbGxBUEksIG1ha2VUcmFuc2FjdGlvbiB9IGZyb20gJy4vcG9hcEhhbmRsZXInXG5pbXBvcnQgeyBEaXNwZW5zZXIgfSBmcm9tICcuL2Rpc3BlbnNlcidcblxuZXhwb3J0IGxldCBzY2VuZU1lc3NhZ2VCdXMgPSBuZXcgTWVzc2FnZUJ1cygpXG5cbmxldCBQT0FQQm9vdGggPSBuZXcgRGlzcGVuc2VyKG5ldyBHTFRGU2hhcGUoJ21vZGVscy9QT0FQX2Rpc3BlbnNlci5nbGInKSwge1xuICBwb3NpdGlvbjogbmV3IFZlY3RvcjMoOCwgMCwgOCksXG59KVxuXG5zY2VuZU1lc3NhZ2VCdXMub24oJ2FjdGl2YXRlUG9hcCcsICgpID0+IHtcbiAgUE9BUEJvb3RoLmFjdGl2YXRlKClcbn0pXG5cbi8vIGxldCBQT0FQQm9vdGggPSBuZXcgRW50aXR5KClcbi8vIFBPQVBCb290aC5hZGRDb21wb25lbnQobmV3IFRyYW5zZm9ybSgpKS5wb3NpdGlvbiA9IG5ldyBWZWN0b3IzKDgsIDAsIDgpXG4vLyBQT0FQQm9vdGguYWRkQ29tcG9uZW50KG5ldyBHTFRGU2hhcGUoJ21vZGVscy9kaXNwZW5zZXIuZ2xiJykpXG4vLyBlbmdpbmUuYWRkRW50aXR5KFBPQVBCb290aClcblxuLy8gUE9BUEJvb3RoLmFkZENvbXBvbmVudChcbi8vICAgbmV3IE9uUG9pbnRlckRvd24oKGUpID0+IHtcbi8vICAgICBtYWtlVHJhbnNhY3Rpb24oKVxuLy8gICB9KVxuLy8gKVxuIiwiaW1wb3J0IHsgZ2V0VXNlckRhdGEsIFVzZXJEYXRhIH0gZnJvbSAnQGRlY2VudHJhbGFuZC9JZGVudGl0eSdcbmltcG9ydCAqIGFzIGV0aCBmcm9tICcuLi9ub2RlX21vZHVsZXMvZXRoLWNvbm5lY3QvZXNtJ1xuaW1wb3J0ICogYXMgRXRoZXJldW1Db250cm9sbGVyIGZyb20gJ0BkZWNlbnRyYWxhbmQvRXRoZXJldW1Db250cm9sbGVyJ1xuaW1wb3J0IHsgZ2V0UHJvdmlkZXIgfSBmcm9tICdAZGVjZW50cmFsYW5kL3dlYjMtcHJvdmlkZXInXG5pbXBvcnQgcG9hcENvbnRyYWN0IGZyb20gJy4vYWJpcy9Qb2FwRGVsZWdhdGVNaW50J1xuaW1wb3J0IHsgc2NlbmVNZXNzYWdlQnVzIH0gZnJvbSAnLi9nYW1lJ1xuXG5leHBvcnQgbGV0IGV0aENvbnRyb2xsZXIgPSBFdGhlcmV1bUNvbnRyb2xsZXJcblxuY29uc3QgcG9hcFNpZ25lckFkZHJlc3MgPSAnMHhhNGI0YjdiOWJiYWY3NzBhZjUxZjQ5MWYxMWY3MmNkZmUyNTNlYjAyJ1xuXG5sZXQgdXNlckRhdGE6IFVzZXJEYXRhXG5cbnR5cGUgc2VydmVyRGF0YSA9IHtcbiAgc2lnbmVkQ29kZTogc3RyaW5nXG4gIGV2ZW50OiBzdHJpbmdcbiAgc2lnbmVyOiBzdHJpbmdcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hVc2VyRGF0YSgpIHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFVzZXJEYXRhKClcbiAgbG9nKGRhdGEuZGlzcGxheU5hbWUpXG4gIHJldHVybiBkYXRhXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjYWxsQVBJKHVzZXI6IHN0cmluZykge1xuICBjb25zdCB1cmwgPVxuICAgICdodHRwOi8vbG9jYWxob3N0OjUwMDEvbm9uLWRjbC1leHBlcmltZW50cy91cy1jZW50cmFsMS9hcHAvZ2V0LXBvYXAtY29kZT9wbGF5ZXJpZD0nICtcbiAgICB1c2VyICtcbiAgICAnJmNvZGU9MidcbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgbGV0IGpzb246IHNlcnZlckRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICBsb2coanNvbilcbiAgICByZXR1cm4ganNvblxuICB9IGNhdGNoIHtcbiAgICBsb2coJ2Vycm9yIGZldGNoaW5nIGZyb20gUE9BUCBoYW5kbGluZyBzZXJ2ZXIgJywgdXJsKVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlVHJhbnNhY3Rpb24oKSB7XG4gIGxldCB1c2VySWQgPSAnMHhlMmI2MDI0ODczZDIxOEIyRTgzQjQ2MkQzNjU4RDhEN0MzZjU1YTE4J1xuICBpZiAoIXVzZXJEYXRhKSB7XG4gICAgdXNlckRhdGEgPSBhd2FpdCBmZXRjaFVzZXJEYXRhKClcbiAgICB1c2VySWQgPSB1c2VyRGF0YS51c2VySWRcbiAgfVxuICBpZiAoIXVzZXJEYXRhLmhhc0Nvbm5lY3RlZFdlYjMpIHtcbiAgICBsb2coJ25vIHdhbGxldCcpXG5cbiAgICAvL3JldHVyblxuICB9XG4gIGxldCBqc29uOiBzZXJ2ZXJEYXRhID0gYXdhaXQgY2FsbEFQSSh1c2VySWQpXG4gIGxldCBzaWduYXR1cmUgPSBqc29uLnNpZ25lZENvZGVcbiAgbGV0IGV2ZW50ID0ganNvbi5ldmVudFxuICBsZXQgc2lnbmVyID0ganNvbi5zaWduZXJcblxuICBjb25zdCBwcm92aWRlciA9IGF3YWl0IGdldFByb3ZpZGVyKClcbiAgY29uc3Qgcm0gPSBuZXcgZXRoLlJlcXVlc3RNYW5hZ2VyKHByb3ZpZGVyKVxuXG4gIGNvbnN0IHBvYXBUb2tlbkZhY3RvcnkgPSBhd2FpdCBuZXcgZXRoLkNvbnRyYWN0RmFjdG9yeShybSwgcG9hcENvbnRyYWN0KVxuICBjb25zdCBQb2FwRGVsZWdhdGVkTWludCA9IChhd2FpdCBwb2FwVG9rZW5GYWN0b3J5LmF0KFxuICAgIC8vcm9wc3RlbjogJzB4MmYzYzIzYjUwMzk2RWNCNTVDNzM5NTZCMDY5Q0YwNGU0OTNiZEVmOSdcbiAgICAnMHhBYWMyNDk3MTc0ZjJFYzQwNjlBOTgzNzVBNjdENzk4ZGI4YTA1MzM3J1xuICApKSBhcyBhbnlcblxuICBhd2FpdCBQb2FwRGVsZWdhdGVkTWludC5taW50VG9rZW4oZXZlbnQsIHVzZXJJZCwgc2lnbmF0dXJlLCB7XG4gICAgZnJvbTogcG9hcFNpZ25lckFkZHJlc3MsXG4gIH0pLnRoZW4oc2NlbmVNZXNzYWdlQnVzLmVtaXQoJ2FjdGl2YXRlUG9hcCcsIHt9KSlcblxuICByZXR1cm5cbn1cbiIsIi8vIGltcG9ydCB7IG9wZW5VSTEgfSBmcm9tICcuL3VpJ1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL2luZGV4J1xuaW1wb3J0IHsgbWFrZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9wb2FwSGFuZGxlcidcbmltcG9ydCB7IHNjZW5lTWVzc2FnZUJ1cyB9IGZyb20gJy4vZ2FtZSdcblxuZXhwb3J0IGNsYXNzIERpc3BlbnNlciBleHRlbmRzIEVudGl0eSB7XG4gIGlkbGVBbmltID0gbmV3IEFuaW1hdGlvblN0YXRlKCdJZGxlX1BPQVAnLCB7IGxvb3Bpbmc6IHRydWUgfSlcbiAgYnV5QW5pbSA9IG5ldyBBbmltYXRpb25TdGF0ZSgnQWN0aW9uX1BPQVAnLCB7IGxvb3Bpbmc6IGZhbHNlIH0pXG4gIGJ1dHRvbkFuaW0gPSBuZXcgQW5pbWF0aW9uU3RhdGUoJ0J1dHRvbl9BY3Rpb24nLCB7IGxvb3Bpbmc6IGZhbHNlIH0pXG4gIGlkOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoXG4gICAgbW9kZWw6IEdMVEZTaGFwZSxcbiAgICB0cmFuc2Zvcm06IFRyYW5mb3JtQ29uc3RydWN0b3JBcmdzLFxuICAgIHdlYXJhYmxlTmFtZT86IHN0cmluZyxcbiAgICBpZD86IHN0cmluZ1xuXG4gICAgLy8sc291bmQ6IEF1ZGlvQ2xpcFxuICApIHtcbiAgICBzdXBlcigpXG4gICAgZW5naW5lLmFkZEVudGl0eSh0aGlzKVxuXG4gICAgdGhpcy5hZGRDb21wb25lbnQobW9kZWwpXG4gICAgdGhpcy5hZGRDb21wb25lbnQobmV3IFRyYW5zZm9ybSh0cmFuc2Zvcm0pKVxuXG4gICAgdGhpcy5hZGRDb21wb25lbnQobmV3IEFuaW1hdG9yKCkpXG4gICAgdGhpcy5nZXRDb21wb25lbnQoQW5pbWF0b3IpLmFkZENsaXAodGhpcy5pZGxlQW5pbSlcbiAgICB0aGlzLmdldENvbXBvbmVudChBbmltYXRvcikuYWRkQ2xpcCh0aGlzLmJ1eUFuaW0pXG4gICAgdGhpcy5pZGxlQW5pbS5wbGF5KClcblxuICAgIHRoaXMuaWQgPSBpZFxuXG4gICAgbGV0IGJ1dHRvbiA9IG5ldyBFbnRpdHkoKVxuICAgIGJ1dHRvbi5hZGRDb21wb25lbnQobmV3IEdMVEZTaGFwZSgnbW9kZWxzL1BPQVBfYnV0dG9uLmdsYicpKVxuICAgIGJ1dHRvbi5hZGRDb21wb25lbnQobmV3IEFuaW1hdG9yKCkpXG4gICAgYnV0dG9uLmdldENvbXBvbmVudChBbmltYXRvcikuYWRkQ2xpcCh0aGlzLmJ1dHRvbkFuaW0pXG4gICAgYnV0dG9uLnNldFBhcmVudCh0aGlzKVxuICAgIGJ1dHRvbi5hZGRDb21wb25lbnQoXG4gICAgICBuZXcgT25Qb2ludGVyRG93bihcbiAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICBidXR0b24uZ2V0Q29tcG9uZW50KEFuaW1hdG9yKS5nZXRDbGlwKCdBY3Rpb24nKS5zdG9wKClcbiAgICAgICAgICBidXR0b24uZ2V0Q29tcG9uZW50KEFuaW1hdG9yKS5nZXRDbGlwKCdBY3Rpb24nKS5wbGF5KClcbiAgICAgICAgICBzY2VuZU1lc3NhZ2VCdXMuZW1pdCgnYWN0aXZhdGVQb2FwJywge30pXG4gICAgICAgICAgbWFrZVRyYW5zYWN0aW9uKClcbiAgICAgICAgICAvL29wZW5VSTEod2VhcmFibGVOYW1lLCB0aGlzKVxuICAgICAgICB9LFxuICAgICAgICB7IGhvdmVyVGV4dDogJ0dldCBBdHRlbmRhbmNlIFRva2VuJyB9XG4gICAgICApXG4gICAgKVxuICAgIGVuZ2luZS5hZGRFbnRpdHkoYnV0dG9uKVxuXG4gICAgLy90aGlzLmFkZENvbXBvbmVudChuZXcgQXVkaW9Tb3VyY2Uoc291bmQpKVxuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlKCk6IHZvaWQge1xuICAgIGxldCBhbmltID0gdGhpcy5nZXRDb21wb25lbnQoQW5pbWF0b3IpXG5cbiAgICBhbmltLmdldENsaXAoJ0lkbGVfUE9BUCcpLnN0b3AoKVxuICAgIGFuaW0uZ2V0Q2xpcCgnQWN0aW9uX1BPQVAnKS5zdG9wKClcblxuICAgIGFuaW0uZ2V0Q2xpcCgnQWN0aW9uX1BPQVAnKS5wbGF5KClcblxuICAgIHRoaXMuYWRkQ29tcG9uZW50T3JSZXBsYWNlKFxuICAgICAgbmV3IHV0aWxzLkRlbGF5KDQwMDAsICgpID0+IHtcbiAgICAgICAgYW5pbS5nZXRDbGlwKCdBY3Rpb25fUE9BUCcpLnN0b3AoKVxuXG4gICAgICAgIGFuaW0uZ2V0Q2xpcCgnSWRsZV9QT0FQJykucGxheSgpXG4gICAgICB9KVxuICAgIClcbiAgfVxufVxuIl19"); \ No newline at end of file +eval("var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spread = (this && this.__spread) || function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n};\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/itransformcomponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/math/interpolation\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Interpolate = exports.InterpolationType = void 0;\r\n var InterpolationType;\r\n (function (InterpolationType) {\r\n InterpolationType[InterpolationType[\"LINEAR\"] = 0] = \"LINEAR\";\r\n InterpolationType[InterpolationType[\"EASEINQUAD\"] = 1] = \"EASEINQUAD\";\r\n InterpolationType[InterpolationType[\"EASEOUTQUAD\"] = 2] = \"EASEOUTQUAD\";\r\n InterpolationType[InterpolationType[\"EASEQUAD\"] = 3] = \"EASEQUAD\";\r\n })(InterpolationType = exports.InterpolationType || (exports.InterpolationType = {}));\r\n function Interpolate(type, t) {\r\n switch (type) {\r\n case InterpolationType.LINEAR:\r\n return InterpolateLinear(t);\r\n case InterpolationType.EASEINQUAD:\r\n return InterpolateEaseInQuad(t);\r\n case InterpolationType.EASEOUTQUAD:\r\n return InterpolateEaseOutQuad(t);\r\n case InterpolationType.EASEQUAD:\r\n return InterpolateEaseQuad(t);\r\n default:\r\n return InterpolateLinear(t);\r\n }\r\n }\r\n exports.Interpolate = Interpolate;\r\n function InterpolateLinear(t) {\r\n return t;\r\n }\r\n function InterpolateEaseInQuad(t) {\r\n return t * t;\r\n }\r\n function InterpolateEaseOutQuad(t) {\r\n return t * (2 - t);\r\n }\r\n function InterpolateEaseQuad(t) {\r\n return (t * t) / (2.0 * (t * t - t) + 1.0);\r\n }\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/rotate\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_1, interpolation_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.RotateTransformComponent = void 0;\r\n /**\r\n * Component to rotate entity from one rotation (start) to another (end) in an amount of time\r\n */\r\n var RotateTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a RotateTransformComponent instance to add as a component to a Entity\r\n * @param start starting rotation\r\n * @param end ending rotation\r\n * @param duration duration (in seconds) of start to end rotation\r\n * @param onFinishCallback called when rotation ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function RotateTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_1.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_1.TransformSystem.createAndAddToEngine();\r\n }\r\n RotateTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_1.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n RotateTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n RotateTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.rotation = Quaternion.Slerp(this.start, this.end, this.lerpTime);\r\n };\r\n RotateTransformComponent = __decorate([\r\n Component('rotateTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], RotateTransformComponent);\r\n return RotateTransformComponent;\r\n }());\r\n exports.RotateTransformComponent = RotateTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/scale\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_2, interpolation_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ScaleTransformComponent = void 0;\r\n /**\r\n * Component to scale entity from one value (start) to another (end) in an amount of time\r\n */\r\n var ScaleTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a ScaleTransformComponent instance to add as a component to a Entity\r\n * @param start starting scale\r\n * @param end ending scale\r\n * @param duration duration (in seconds) of start to end scaling\r\n * @param onFinishCallback called when scaling ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function ScaleTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_2.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_2.TransformSystem.createAndAddToEngine();\r\n }\r\n ScaleTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_2.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n ScaleTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n ScaleTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.scale = Vector3.Lerp(this.start, this.end, this.lerpTime);\r\n };\r\n ScaleTransformComponent = __decorate([\r\n Component('scaleTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], ScaleTransformComponent);\r\n return ScaleTransformComponent;\r\n }());\r\n exports.ScaleTransformComponent = ScaleTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/followpath\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\"], function (require, exports, transfromSystem_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.FollowPathComponent = void 0;\r\n /**\r\n * Component to move a entity down a fixed path in an amount of time\r\n */\r\n var FollowPathComponent = /** @class */ (function () {\r\n /**\r\n * Create a FollowPathComponent instance to add as a component to a Entity\r\n * @param points array of points for the path\r\n * @param duration duration of the movement through the path\r\n * @param onFinishCallback called when movement ends\r\n * @param onPointReachedCallback called everytime an entity reaches a point of the path\r\n */\r\n function FollowPathComponent(points, duration, onFinishCallback, onPointReachedCallback) {\r\n this.speed = [];\r\n this.normalizedTime = 0;\r\n this.currentIndex = 0;\r\n this.points = points;\r\n this.onFinishCallback = onFinishCallback;\r\n this.onPointReachedCallback = onPointReachedCallback;\r\n if (points.length < 2) {\r\n throw new Error('At least 2 points are needed for FollowPathComponent.');\r\n }\r\n if (duration > 0) {\r\n var sqTotalDist = 0;\r\n var sqPointsDist = [];\r\n for (var i = 0; i < points.length - 1; i++) {\r\n var sqDist = Vector3.DistanceSquared(points[i], points[i + 1]);\r\n sqTotalDist += sqDist;\r\n sqPointsDist.push(sqDist);\r\n }\r\n for (var i = 0; i < sqPointsDist.length; i++) {\r\n this.speed.push(1 / ((sqPointsDist[i] / sqTotalDist) * duration));\r\n }\r\n }\r\n else {\r\n this.normalizedTime = 1;\r\n this.currentIndex = points.length - 2;\r\n }\r\n transfromSystem_3.TransformSystem.createAndAddToEngine();\r\n }\r\n FollowPathComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed[this.currentIndex], 0, 1);\r\n if (this.normalizedTime >= 1 &&\r\n this.currentIndex < this.points.length - 2) {\r\n this.currentIndex++;\r\n this.normalizedTime = 0;\r\n if (this.onPointReachedCallback &&\r\n this.currentIndex < this.points.length - 1)\r\n this.onPointReachedCallback(this.points[this.currentIndex], this.points[this.currentIndex + 1]);\r\n }\r\n };\r\n FollowPathComponent.prototype.hasFinished = function () {\r\n return (this.currentIndex >= this.points.length - 2 && this.normalizedTime >= 1);\r\n };\r\n FollowPathComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.position = Vector3.Lerp(this.points[this.currentIndex], this.points[this.currentIndex + 1], this.normalizedTime);\r\n };\r\n FollowPathComponent = __decorate([\r\n Component('followPathComponent'),\r\n __metadata(\"design:paramtypes\", [Array, Number, Function, Function])\r\n ], FollowPathComponent);\r\n return FollowPathComponent;\r\n }());\r\n exports.FollowPathComponent = FollowPathComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/keeprotating\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\"], function (require, exports, transfromSystem_4) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.KeepRotatingComponent = void 0;\r\n /**\r\n * Component to rotate entity indefinitely until stop is called\r\n */\r\n var KeepRotatingComponent = /** @class */ (function () {\r\n /**\r\n * Rotates an entity continuously. The entity will keep rotating forever until it's explicitly stopped or the component is removed.\r\n * @param rotationVelocity a quaternion describing the desired rotation to perform each second second\r\n * @param onFinishCallback called when rotation ends\r\n */\r\n function KeepRotatingComponent(rotationVelocity, onFinishCallback) {\r\n this.rotationVelocity = rotationVelocity;\r\n this.onFinishCallback = onFinishCallback;\r\n this.rotation = Quaternion.Identity;\r\n this.finished = false;\r\n transfromSystem_4.TransformSystem.createAndAddToEngine();\r\n }\r\n KeepRotatingComponent.prototype.update = function (dt) {\r\n this.rotation = Quaternion.Slerp(Quaternion.Identity, this.rotationVelocity, dt);\r\n };\r\n KeepRotatingComponent.prototype.hasFinished = function () {\r\n return this.finished;\r\n };\r\n KeepRotatingComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.rotation = transform.rotation.multiply(this.rotation);\r\n };\r\n KeepRotatingComponent.prototype.stop = function () {\r\n this.finished = true;\r\n };\r\n KeepRotatingComponent = __decorate([\r\n Component('keepRotatingComponent'),\r\n __metadata(\"design:paramtypes\", [Quaternion, Function])\r\n ], KeepRotatingComponent);\r\n return KeepRotatingComponent;\r\n }());\r\n exports.KeepRotatingComponent = KeepRotatingComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/component/move\", \"node_modules/decentraland-ecs-utils/transform/component/rotate\", \"node_modules/decentraland-ecs-utils/transform/component/scale\", \"node_modules/decentraland-ecs-utils/transform/component/followpath\", \"node_modules/decentraland-ecs-utils/transform/component/keeprotating\"], function (require, exports, move_1, rotate_1, scale_1, followpath_1, keeprotating_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TransformSystem = void 0;\r\n var TransformSystem = /** @class */ (function () {\r\n function TransformSystem() {\r\n this._components = [];\r\n TransformSystem._instance = this;\r\n this._components.push(move_1.MoveTransformComponent);\r\n this._components.push(rotate_1.RotateTransformComponent);\r\n this._components.push(scale_1.ScaleTransformComponent);\r\n this._components.push(followpath_1.FollowPathComponent);\r\n this._components.push(keeprotating_1.KeepRotatingComponent);\r\n }\r\n TransformSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TransformSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n TransformSystem.registerCustomComponent = function (component) {\r\n this.createAndAddToEngine()._components.push(component);\r\n };\r\n TransformSystem.prototype.update = function (dt) {\r\n var _this = this;\r\n this._components.forEach(function (component) {\r\n _this.updateComponent(dt, component);\r\n });\r\n };\r\n TransformSystem.prototype.updateComponent = function (dt, component) {\r\n var group = engine.getComponentGroup(component, Transform);\r\n group.entities.forEach(function (entity) {\r\n var transform = entity.getComponent(Transform);\r\n var comp = entity.getComponent(component);\r\n comp.update(dt);\r\n comp.assignValueToTransform(transform);\r\n if (comp.hasFinished()) {\r\n entity.removeComponent(comp);\r\n if (comp.onFinishCallback != null)\r\n comp.onFinishCallback();\r\n }\r\n });\r\n };\r\n TransformSystem._instance = null;\r\n return TransformSystem;\r\n }());\r\n exports.TransformSystem = TransformSystem;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/transform/component/move\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\"], function (require, exports, transfromSystem_5, interpolation_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.MoveTransformComponent = void 0;\r\n /**\r\n * Component to translate entity from one position (start) to another (end) in an amount of time\r\n */\r\n var MoveTransformComponent = /** @class */ (function () {\r\n /**\r\n * Create a MoveTransformComponent instance to add as a component to a Entity\r\n * @param start starting position\r\n * @param end ending position\r\n * @param duration duration (in seconds) of start to end translation\r\n * @param onFinishCallback called when translation ends\r\n * @param interpolationType type of interpolation to be used (default: LINEAR)\r\n */\r\n function MoveTransformComponent(start, end, duration, onFinishCallback, interpolationType) {\r\n if (interpolationType === void 0) { interpolationType = interpolation_3.InterpolationType.LINEAR; }\r\n this.start = start;\r\n this.end = end;\r\n this.normalizedTime = 0;\r\n this.lerpTime = 0;\r\n this.onFinishCallback = onFinishCallback;\r\n this.interpolationType = interpolationType;\r\n if (duration != 0) {\r\n this.speed = 1 / duration;\r\n }\r\n else {\r\n this.speed = 0;\r\n this.normalizedTime = 1;\r\n this.lerpTime = 1;\r\n }\r\n transfromSystem_5.TransformSystem.createAndAddToEngine();\r\n }\r\n MoveTransformComponent.prototype.update = function (dt) {\r\n this.normalizedTime = Scalar.Clamp(this.normalizedTime + dt * this.speed, 0, 1);\r\n this.lerpTime = interpolation_3.Interpolate(this.interpolationType, this.normalizedTime);\r\n };\r\n MoveTransformComponent.prototype.hasFinished = function () {\r\n return this.normalizedTime >= 1;\r\n };\r\n MoveTransformComponent.prototype.assignValueToTransform = function (transform) {\r\n transform.position = Vector3.Lerp(this.start, this.end, this.lerpTime);\r\n };\r\n MoveTransformComponent = __decorate([\r\n Component('moveTransformComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Object, Number, Function, Number])\r\n ], MoveTransformComponent);\r\n return MoveTransformComponent;\r\n }());\r\n exports.MoveTransformComponent = MoveTransformComponent;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/toggle/toggleComponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ToggleComponent = exports.ToggleState = void 0;\r\n var ToggleState;\r\n (function (ToggleState) {\r\n ToggleState[ToggleState[\"Off\"] = 0] = \"Off\";\r\n ToggleState[ToggleState[\"On\"] = 1] = \"On\";\r\n })(ToggleState = exports.ToggleState || (exports.ToggleState = {}));\r\n /**\r\n * Toggle component for entities with two states (ON or OFF)\r\n */\r\n var ToggleComponent = /** @class */ (function () {\r\n /**\r\n * Create an instance of a ToggleComponent\r\n * @param startingState starting state of the toggle (ON or OFF)\r\n * @param onValueChangedCallback called when toggle state changed\r\n */\r\n function ToggleComponent(startingState, onValueChangedCallback) {\r\n if (startingState === void 0) { startingState = ToggleState.On; }\r\n this.enabled = true;\r\n this.state = ToggleState.Off;\r\n this.set(startingState);\r\n if (onValueChangedCallback)\r\n this.setCallback(onValueChangedCallback);\r\n }\r\n /**\r\n * Set trigger to a state\r\n * @param state new state\r\n */\r\n ToggleComponent.prototype.set = function (state) {\r\n this.state = state;\r\n if (this.onValueChangedCallback)\r\n this.onValueChangedCallback(state);\r\n };\r\n /**\r\n * Toggle state of ToggleComponent\r\n */\r\n ToggleComponent.prototype.toggle = function () {\r\n if (this.enabled) {\r\n this.set(1 - this.state);\r\n }\r\n };\r\n /**\r\n * Get if current toggle state is ON\r\n */\r\n ToggleComponent.prototype.isOn = function () {\r\n return this.state == ToggleState.On;\r\n };\r\n /**\r\n * Set callback for when ToggleComponent state changed\r\n * @param onValueChangedCallback callback\r\n */\r\n ToggleComponent.prototype.setCallback = function (onValueChangedCallback) {\r\n this.onValueChangedCallback = onValueChangedCallback;\r\n };\r\n ToggleComponent = __decorate([\r\n Component('toggle'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], ToggleComponent);\r\n return ToggleComponent;\r\n }());\r\n exports.ToggleComponent = ToggleComponent;\r\n exports.default = {\r\n ToggleComponent: ToggleComponent,\r\n ToggleState: ToggleState\r\n };\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/itimercomponent\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/interval\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Interval = void 0;\r\n /**\r\n * Execute every X milliseconds\r\n */\r\n var Interval = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function Interval(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_1.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function () {\r\n _this.elapsedTime = 0;\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n };\r\n }\r\n Interval.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n Interval = __decorate([\r\n Component('timerInterval'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], Interval);\r\n return Interval;\r\n }());\r\n exports.Interval = Interval;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/expire\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ExpireIn = void 0;\r\n /**\r\n * Remove entity after X milliseconds\r\n */\r\n var ExpireIn = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function ExpireIn(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_2.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function (entity) {\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n entity.removeComponent(_this);\r\n engine.removeEntity(entity);\r\n };\r\n }\r\n ExpireIn.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n ExpireIn = __decorate([\r\n Component('timerExpireIn'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], ExpireIn);\r\n return ExpireIn;\r\n }());\r\n exports.ExpireIn = ExpireIn;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/system/timerSystem\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/component/interval\", \"node_modules/decentraland-ecs-utils/timer/component/delay\", \"node_modules/decentraland-ecs-utils/timer/component/expire\"], function (require, exports, interval_1, delay_1, expire_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TimerSystem = void 0;\r\n var TimerSystem = /** @class */ (function () {\r\n function TimerSystem() {\r\n this._components = [];\r\n TimerSystem._instance = this;\r\n this._components.push(interval_1.Interval);\r\n this._components.push(delay_1.Delay);\r\n this._components.push(expire_1.ExpireIn);\r\n }\r\n TimerSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TimerSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n TimerSystem.registerCustomComponent = function (component) {\r\n this.createAndAddToEngine()._components.push(component);\r\n };\r\n TimerSystem.prototype.update = function (dt) {\r\n var _this = this;\r\n this._components.forEach(function (component) {\r\n _this.updateComponent(dt, component);\r\n });\r\n };\r\n TimerSystem.prototype.updateComponent = function (dt, component) {\r\n var record = engine.getEntitiesWithComponent(component);\r\n for (var key in record) {\r\n if (record.hasOwnProperty(key)) {\r\n var entity = record[key];\r\n var timerComponent = entity.getComponent(component);\r\n timerComponent.elapsedTime += dt;\r\n if (timerComponent.elapsedTime >= timerComponent.targetTime) {\r\n timerComponent.onTargetTimeReached(entity);\r\n }\r\n }\r\n }\r\n };\r\n TimerSystem._instance = null;\r\n return TimerSystem;\r\n }());\r\n exports.TimerSystem = TimerSystem;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/timer/component/delay\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/timer/system/timerSystem\"], function (require, exports, timerSystem_3) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Delay = void 0;\r\n /**\r\n * Execute once after X milliseconds\r\n */\r\n var Delay = /** @class */ (function () {\r\n /**\r\n * @param millisecs amount of time in milliseconds\r\n * @param onTimeReachedCallback callback for when time is reached\r\n */\r\n function Delay(millisecs, onTimeReachedCallback) {\r\n var _this = this;\r\n timerSystem_3.TimerSystem.createAndAddToEngine();\r\n this.elapsedTime = 0;\r\n this.targetTime = millisecs / 1000;\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n this.onTargetTimeReached = function (entity) {\r\n if (_this.onTimeReachedCallback)\r\n _this.onTimeReachedCallback();\r\n entity.removeComponent(_this);\r\n };\r\n }\r\n Delay.prototype.setCallback = function (onTimeReachedCallback) {\r\n this.onTimeReachedCallback = onTimeReachedCallback;\r\n };\r\n Delay = __decorate([\r\n Component('timerDelay'),\r\n __metadata(\"design:paramtypes\", [Number, Function])\r\n ], Delay);\r\n return Delay;\r\n }());\r\n exports.Delay = Delay;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/triggers/triggerSystem\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.TriggerSphereShape = exports.TriggerBoxShape = exports.TriggerComponent = exports.TriggerSystem = void 0;\r\n var TriggerSystem = /** @class */ (function () {\r\n function TriggerSystem() {\r\n this._triggers = {};\r\n TriggerSystem._instance = this;\r\n this._cameraTriggerWrapper = new CameraTrigger(new TriggerBoxShape(new Vector3(0.5, 1.8, 0.5), new Vector3(0, 0.91, 0)));\r\n }\r\n Object.defineProperty(TriggerSystem, \"instance\", {\r\n get: function () {\r\n return this.createAndAddToEngine();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerSystem.createAndAddToEngine = function () {\r\n if (this._instance == null) {\r\n this._instance = new TriggerSystem();\r\n engine.addSystem(this._instance);\r\n }\r\n return this._instance;\r\n };\r\n /**\r\n * set a custom trigger's shape for the camera\r\n * @param shape custom trigger's shape\r\n */\r\n TriggerSystem.prototype.setCameraTriggerShape = function (shape) {\r\n this._cameraTriggerWrapper.setShape(shape);\r\n };\r\n TriggerSystem.prototype.update = function () {\r\n var _this = this;\r\n //get entities with trigger component\r\n var entitiesWithTriggers = engine.getComponentGroup(TriggerComponent)\r\n .entities;\r\n //iterate through all entities with triggers and wrap entities that weren't wrapped yet\r\n entitiesWithTriggers.forEach(function (entity) {\r\n if (_this.shouldWrapTriggerEntity(entity)) {\r\n _this.wrapTriggerEntity(entity);\r\n }\r\n });\r\n //iterate through wrapped entities\r\n for (var key in this._triggers) {\r\n if (this._triggers.hasOwnProperty(key)) {\r\n var wrapper = this._triggers[key];\r\n //update debug entity\r\n if (wrapper.isDebugging()) {\r\n wrapper.updateDebugEntity();\r\n }\r\n if (!wrapper.isInEngine()) {\r\n //remove debugging\r\n if (wrapper.isDebugging()) {\r\n wrapper.removeDebugEntity();\r\n }\r\n //remove old collisions\r\n TriggerSystem.removeTriggerFromSystem(wrapper);\r\n //remove from record\r\n delete this._triggers[key];\r\n }\r\n else if (wrapper.trigger != null && wrapper.trigger.enabled) {\r\n //if was set as enabled in last frame\r\n if (!wrapper.wasEnabled) {\r\n if (wrapper.isDebugging()) {\r\n wrapper.addDebugEntity();\r\n }\r\n }\r\n //set as enabled\r\n wrapper.wasEnabled = true;\r\n //check collision camera\r\n if (wrapper.trigger.onCameraEnter || wrapper.trigger.onCameraExit) {\r\n this.checkCollisionAgainstCamera(wrapper);\r\n }\r\n //check collision with others\r\n if (wrapper.trigger.onTriggerEnter || wrapper.trigger.onTriggerExit) {\r\n this.checkCollisionAgainstOtherTriggers(wrapper);\r\n }\r\n }\r\n else if (wrapper.wasEnabled) {\r\n wrapper.wasEnabled = false;\r\n //remove debugging\r\n if (wrapper.isDebugging()) {\r\n wrapper.removeDebugEntity();\r\n }\r\n TriggerSystem.removeTriggerFromSystem(wrapper);\r\n }\r\n }\r\n }\r\n };\r\n TriggerSystem.prototype.shouldWrapTriggerEntity = function (entity) {\r\n return (this._triggers[entity.uuid] == undefined ||\r\n this._triggers[entity.uuid] == null);\r\n };\r\n TriggerSystem.prototype.wrapTriggerEntity = function (entity) {\r\n this._triggers[entity.uuid] = new TriggerWrapper(entity);\r\n };\r\n TriggerSystem.removeTriggerFromSystem = function (wrapper) {\r\n var activeCollisions = wrapper.getActiveCollisions();\r\n for (var i = 0; i < activeCollisions.length; i++) {\r\n if (activeCollisions[i].trigger.onTriggerExit && wrapper.entity)\r\n activeCollisions[i].trigger.onTriggerExit(wrapper.entity);\r\n activeCollisions[i].disengageActiveCollision(wrapper);\r\n wrapper.disengageActiveCollision(activeCollisions[i]);\r\n }\r\n };\r\n TriggerSystem.disengageCollision = function (t1, t2) {\r\n t1.disengageActiveCollision(t2);\r\n t2.disengageActiveCollision(t1);\r\n if (t1.trigger.onTriggerExit && t2.entity)\r\n t1.trigger.onTriggerExit(t2.entity);\r\n if (t2.trigger.onTriggerExit && t1.entity)\r\n t2.trigger.onTriggerExit(t1.entity);\r\n };\r\n TriggerSystem.engageCollision = function (t1, t2) {\r\n t1.engageCollision(t2);\r\n t2.engageCollision(t1);\r\n if (t1.trigger.onTriggerEnter && t2.entity)\r\n t1.trigger.onTriggerEnter(t2.entity);\r\n if (t2.trigger.onTriggerEnter && t1.entity)\r\n t2.trigger.onTriggerEnter(t1.entity);\r\n };\r\n TriggerSystem.prototype.checkCollisionAgainstCamera = function (wrapper) {\r\n var wereColliding = wrapper.hasActiveCollision(this._cameraTriggerWrapper);\r\n var areColliding = TriggerSystem.areColliding(wrapper, this._cameraTriggerWrapper);\r\n if (wereColliding && !areColliding) {\r\n wrapper.disengageActiveCollision(this._cameraTriggerWrapper);\r\n if (wrapper.trigger.onCameraExit)\r\n wrapper.trigger.onCameraExit();\r\n }\r\n else if (!wereColliding && areColliding) {\r\n wrapper.engageCollision(this._cameraTriggerWrapper);\r\n if (wrapper.trigger.onCameraEnter)\r\n wrapper.trigger.onCameraEnter();\r\n }\r\n };\r\n TriggerSystem.prototype.checkCollisionAgainstOtherTriggers = function (wrapper) {\r\n for (var key in this._triggers) {\r\n if (this._triggers.hasOwnProperty(key)) {\r\n if (key != wrapper.uuid && this._triggers[key].trigger.enabled) {\r\n if (TriggerSystem.canTriggersCollide(wrapper, this._triggers[key])) {\r\n var wereColliding = wrapper.hasActiveCollision(this._triggers[key]);\r\n var areColliding = TriggerSystem.areColliding(wrapper, this._triggers[key]);\r\n if (wereColliding && !areColliding)\r\n TriggerSystem.disengageCollision(wrapper, this._triggers[key]);\r\n else if (!wereColliding && areColliding)\r\n TriggerSystem.engageCollision(wrapper, this._triggers[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TriggerSystem.canTriggersCollide = function (t1, t2) {\r\n if (t1.trigger.triggeredByLayer == 0)\r\n return true;\r\n return (t2.trigger.layer & t1.trigger.triggeredByLayer) != 0;\r\n };\r\n TriggerSystem.areColliding = function (t1, t2) {\r\n if (t1.getShape() instanceof TriggerBoxShape &&\r\n t2.getShape() instanceof TriggerBoxShape) {\r\n return TriggerSystem.areCollidingAABB(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerSphereShape &&\r\n t2.getShape() instanceof TriggerSphereShape) {\r\n return TriggerSystem.areCollidingSphere(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerBoxShape &&\r\n t2.getShape() instanceof TriggerSphereShape) {\r\n return TriggerSystem.areCollidingAABBSphere(t1.getGlobalPosition(), t1.getShape(), t2.getGlobalPosition(), t2.getShape());\r\n }\r\n else if (t1.getShape() instanceof TriggerSphereShape &&\r\n t2.getShape() instanceof TriggerBoxShape) {\r\n return TriggerSystem.areCollidingAABBSphere(t2.getGlobalPosition(), t2.getShape(), t1.getGlobalPosition(), t1.getShape());\r\n }\r\n return false;\r\n };\r\n TriggerSystem.areCollidingAABB = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var t1 = TriggerSystem.getBoxShapeValues(t1GlobalPosition, t1Shape);\r\n var t2 = TriggerSystem.getBoxShapeValues(t2GlobalPosition, t2Shape);\r\n return (t1.min.x <= t2.max.x &&\r\n t1.max.x >= t2.min.x &&\r\n t1.min.y <= t2.max.y && t1.max.y >= t2.min.y &&\r\n t1.min.z <= t2.max.z && t1.max.z >= t2.min.z);\r\n };\r\n TriggerSystem.areCollidingSphere = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var sqDist = Vector3.DistanceSquared(t1GlobalPosition.add(t1Shape.position), t2GlobalPosition.add(t2Shape.position));\r\n return (sqDist < t1Shape.radius * t1Shape.radius + t2Shape.radius * t2Shape.radius);\r\n };\r\n TriggerSystem.areCollidingAABBSphere = function (t1GlobalPosition, t1Shape, t2GlobalPosition, t2Shape) {\r\n var box = TriggerSystem.getBoxShapeValues(t1GlobalPosition, t1Shape);\r\n var sphere = {\r\n center: t2GlobalPosition.add(t2Shape.position),\r\n radius: t2Shape.radius\r\n };\r\n var dmin = 0;\r\n if (sphere.center.x < box.min.x)\r\n dmin += (box.min.x - sphere.center.x) * (box.min.x - sphere.center.x);\r\n if (sphere.center.x > box.max.x)\r\n dmin += (sphere.center.x - box.max.x) * (sphere.center.x - box.max.x);\r\n if (sphere.center.y < box.min.y)\r\n dmin += (box.min.y - sphere.center.y) * (box.min.y - sphere.center.y);\r\n if (sphere.center.y > box.max.y)\r\n dmin += (sphere.center.y - box.max.y) * (sphere.center.y - box.max.y);\r\n if (sphere.center.z < box.min.z)\r\n dmin += (box.min.z - sphere.center.z) * (box.min.z - sphere.center.z);\r\n if (sphere.center.z > box.max.z)\r\n dmin += (sphere.center.z - box.max.z) * (sphere.center.z - box.max.z);\r\n return dmin < sphere.radius * sphere.radius;\r\n };\r\n TriggerSystem.getBoxShapeValues = function (entityGlobalPosition, shape) {\r\n var center = entityGlobalPosition.add(shape.position);\r\n return {\r\n center: center,\r\n min: center.subtract(shape.size.scale(0.5)),\r\n max: center.add(shape.size.scale(0.5))\r\n };\r\n };\r\n TriggerSystem._instance = null;\r\n return TriggerSystem;\r\n }());\r\n exports.TriggerSystem = TriggerSystem;\r\n var TriggerWrapper = /** @class */ (function () {\r\n function TriggerWrapper(entity) {\r\n this.wasEnabled = true;\r\n this._uuid = '';\r\n this._collidingWith = {};\r\n this._isDebug = false;\r\n this._debugEntity = null;\r\n this._entity = entity;\r\n if (entity) {\r\n this._trigger = entity.getComponent(TriggerComponent);\r\n this._uuid = entity.uuid;\r\n this._isDebug = this._trigger.debugEnabled;\r\n if (this._isDebug) {\r\n this.addDebugEntity();\r\n }\r\n }\r\n }\r\n Object.defineProperty(TriggerWrapper.prototype, \"entity\", {\r\n get: function () {\r\n return this._entity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriggerWrapper.prototype, \"trigger\", {\r\n get: function () {\r\n return this._trigger;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriggerWrapper.prototype, \"uuid\", {\r\n get: function () {\r\n return this._uuid;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerWrapper.prototype.getGlobalPosition = function () {\r\n if (this._entity)\r\n return TriggerWrapper.getEntityWorldPosition(this._entity);\r\n return Vector3.Zero();\r\n };\r\n TriggerWrapper.prototype.getShape = function () {\r\n return this._trigger.shape;\r\n };\r\n TriggerWrapper.prototype.isInEngine = function () {\r\n return this._entity != null && this._entity.isAddedToEngine();\r\n };\r\n TriggerWrapper.prototype.getActiveCollisions = function () {\r\n var ret = [];\r\n for (var key in this._collidingWith) {\r\n if (this._collidingWith.hasOwnProperty(key)) {\r\n ret.push(this._collidingWith[key]);\r\n }\r\n }\r\n return ret;\r\n };\r\n TriggerWrapper.prototype.hasActiveCollision = function (other) {\r\n return (this._collidingWith[other.uuid] != undefined &&\r\n this._collidingWith[other.uuid] != null);\r\n };\r\n TriggerWrapper.prototype.disengageActiveCollision = function (other) {\r\n delete this._collidingWith[other.uuid];\r\n };\r\n TriggerWrapper.prototype.engageCollision = function (other) {\r\n this._collidingWith[other.uuid] = other;\r\n };\r\n TriggerWrapper.prototype.isDebugging = function () {\r\n return this._isDebug;\r\n };\r\n TriggerWrapper.prototype.addDebugEntity = function () {\r\n if (!TriggerWrapper._debugMaterial) {\r\n TriggerWrapper._debugMaterial = new Material();\r\n TriggerWrapper._debugMaterial.alphaTest = 0.5;\r\n }\r\n if (this._debugEntity == null) {\r\n this._debugEntity = new Entity();\r\n var transform = new Transform();\r\n this._debugEntity.addComponent(transform);\r\n this._debugEntity.addComponent(TriggerWrapper._debugMaterial);\r\n if (this.getShape() instanceof TriggerBoxShape) {\r\n var shape = new BoxShape();\r\n shape.withCollisions = false;\r\n this._debugEntity.addComponent(shape);\r\n transform.scale = this.getShape().size;\r\n }\r\n if (this.getShape() instanceof TriggerSphereShape) {\r\n var shape = new SphereShape();\r\n shape.withCollisions = false;\r\n this._debugEntity.addComponent(shape);\r\n var rad = this.getShape().radius;\r\n transform.scale = new Vector3(rad, rad, rad);\r\n }\r\n }\r\n engine.addEntity(this._debugEntity);\r\n };\r\n TriggerWrapper.prototype.removeDebugEntity = function () {\r\n if (this._debugEntity != null)\r\n engine.removeEntity(this._debugEntity);\r\n };\r\n TriggerWrapper.prototype.updateDebugEntity = function () {\r\n if (this._debugEntity) {\r\n this._debugEntity.getComponent(Transform).position = this.getGlobalPosition().add(this.getShape().position);\r\n }\r\n };\r\n TriggerWrapper.getEntityWorldPosition = function (entity) {\r\n var entityPosition = entity.hasComponent(Transform)\r\n ? entity.getComponent(Transform).position\r\n : Vector3.Zero();\r\n var parentEntity = entity.getParent();\r\n if (parentEntity != null) {\r\n var parentRotation = parentEntity.hasComponent(Transform)\r\n ? parentEntity.getComponent(Transform).rotation\r\n : Quaternion.Identity;\r\n return this.getEntityWorldPosition(parentEntity).add(entityPosition.rotate(parentRotation));\r\n }\r\n return entityPosition;\r\n };\r\n TriggerWrapper._debugMaterial = null;\r\n return TriggerWrapper;\r\n }());\r\n var CameraTrigger = /** @class */ (function (_super) {\r\n __extends(CameraTrigger, _super);\r\n function CameraTrigger(shape) {\r\n var _this = _super.call(this) || this;\r\n _this._shape = shape;\r\n _this._uuid = 'cameraTrigger';\r\n return _this;\r\n }\r\n CameraTrigger.prototype.getGlobalPosition = function () {\r\n return Camera.instance.position;\r\n };\r\n CameraTrigger.prototype.getShape = function () {\r\n return this._shape;\r\n };\r\n CameraTrigger.prototype.setShape = function (shape) {\r\n this._shape = shape;\r\n };\r\n CameraTrigger.prototype.isInEngine = function () {\r\n return false;\r\n };\r\n CameraTrigger.prototype.hasActiveCollision = function (other) {\r\n return false;\r\n };\r\n CameraTrigger.prototype.disengageActiveCollision = function (other) { };\r\n CameraTrigger.prototype.engageCollision = function (other) { };\r\n CameraTrigger.prototype.isDebugging = function () {\r\n return false;\r\n };\r\n return CameraTrigger;\r\n }(TriggerWrapper));\r\n var TriggerComponent = /** @class */ (function () {\r\n /**\r\n *\r\n * @param shape shape of the triggering collider area\r\n * @param layer layer of the Trigger, useful to discriminate between trigger events. You can set multiple layers by using a | symbol.\r\n * @param triggeredByLayer against which layers to check collisions\r\n * @param onTriggerEnter callback when an entity of a valid layer enters the trigger area\r\n * @param onTriggerExit callback when an entity of a valid layer leaves the trigger area\r\n * @param onCameraEnter callback when the player enters the trigger area\r\n * @param onCameraExit callback when the player leaves the trigger area\r\n * @param enableDebug when true makes the trigger area visible for debug purposes.\r\n */\r\n function TriggerComponent(shape, layer, triggeredByLayer, onTriggerEnter, onTriggerExit, onCameraEnter, onCameraExit, enableDebug) {\r\n if (layer === void 0) { layer = 0; }\r\n if (triggeredByLayer === void 0) { triggeredByLayer = 0; }\r\n if (enableDebug === void 0) { enableDebug = false; }\r\n /**\r\n * is trigger enable?\r\n */\r\n this.enabled = true;\r\n /**\r\n * bit layer of the Tigger (usefull to discriminate between trigger events)\r\n */\r\n this.layer = 0;\r\n /**\r\n * against which layer are we going to check trigger's collisions\r\n */\r\n this.triggeredByLayer = 0;\r\n TriggerSystem.createAndAddToEngine();\r\n this.shape = shape;\r\n this.layer = layer;\r\n this.triggeredByLayer = triggeredByLayer;\r\n this.onTriggerEnter = onTriggerEnter;\r\n this.onTriggerExit = onTriggerExit;\r\n this.onCameraEnter = onCameraEnter;\r\n this.onCameraExit = onCameraExit;\r\n this._debugEnabled = enableDebug;\r\n }\r\n Object.defineProperty(TriggerComponent.prototype, \"debugEnabled\", {\r\n /**\r\n * get if debug is enabled\r\n */\r\n get: function () {\r\n return this._debugEnabled;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriggerComponent = __decorate([\r\n Component('triggerComponent'),\r\n __metadata(\"design:paramtypes\", [Object, Number, Number, Function, Function, Function, Function, Boolean])\r\n ], TriggerComponent);\r\n return TriggerComponent;\r\n }());\r\n exports.TriggerComponent = TriggerComponent;\r\n var TriggerBoxShape = /** @class */ (function () {\r\n function TriggerBoxShape(size, position) {\r\n this.size = size;\r\n this.position = position;\r\n }\r\n return TriggerBoxShape;\r\n }());\r\n exports.TriggerBoxShape = TriggerBoxShape;\r\n var TriggerSphereShape = /** @class */ (function () {\r\n function TriggerSphereShape(radius, position) {\r\n this.radius = radius;\r\n this.position = position;\r\n }\r\n return TriggerSphereShape;\r\n }());\r\n exports.TriggerSphereShape = TriggerSphereShape;\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/actionsSequenceSystem/actionsSequenceSystem\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.ActionsSequenceSystem = void 0;\r\n var ActionsSequenceSystem = /** @class */ (function () {\r\n function ActionsSequenceSystem(sequenceBuilt) {\r\n this.beginSequenceNode = null;\r\n this.currentSequenceNode = null;\r\n this.running = false;\r\n this.started = false;\r\n if (sequenceBuilt) {\r\n this.startSequence(sequenceBuilt);\r\n }\r\n }\r\n ActionsSequenceSystem.prototype.startSequence = function (sequenceBuilt) {\r\n this.beginSequenceNode = sequenceBuilt.beginSequenceNode;\r\n this.currentSequenceNode = this.beginSequenceNode;\r\n this.running = true;\r\n this.started = false;\r\n };\r\n ActionsSequenceSystem.prototype.setOnFinishCallback = function (onFinishCallback) {\r\n this.onFinishCallback = onFinishCallback;\r\n };\r\n ActionsSequenceSystem.prototype.isRunning = function () {\r\n return this.running;\r\n };\r\n ActionsSequenceSystem.prototype.stop = function () {\r\n this.running = false;\r\n };\r\n ActionsSequenceSystem.prototype.resume = function () {\r\n if (this.beginSequenceNode != null) {\r\n this.running = true;\r\n }\r\n };\r\n ActionsSequenceSystem.prototype.reset = function () {\r\n this.currentSequenceNode = this.beginSequenceNode;\r\n this.running = true;\r\n this.started = false;\r\n };\r\n ActionsSequenceSystem.prototype.getRunningAction = function () {\r\n var currentNode = this.currentSequenceNode;\r\n if (this.currentSequenceNode instanceof SubSequenceNode) {\r\n do {\r\n currentNode = currentNode.currentInnerSequence;\r\n } while (currentNode instanceof SubSequenceNode);\r\n }\r\n return currentNode.action;\r\n };\r\n ActionsSequenceSystem.prototype.update = function (dt) {\r\n if (this.running) {\r\n if (!this.started) {\r\n ;\r\n this.currentSequenceNode.onStart();\r\n this.started = true;\r\n }\r\n else {\r\n if (!this.currentSequenceNode.hasFinish()) {\r\n ;\r\n this.currentSequenceNode.update(dt);\r\n }\r\n else {\r\n ;\r\n this.currentSequenceNode.onFinish();\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.next;\r\n if (this.currentSequenceNode) {\r\n this.currentSequenceNode.onStart();\r\n }\r\n else {\r\n this.running = false;\r\n if (this.onFinishCallback)\r\n this.onFinishCallback();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return ActionsSequenceSystem;\r\n }());\r\n exports.ActionsSequenceSystem = ActionsSequenceSystem;\r\n (function (ActionsSequenceSystem) {\r\n var SequenceBuilder = /** @class */ (function () {\r\n function SequenceBuilder() {\r\n this.currentSequenceNode = null;\r\n this.beginSequenceNode = null;\r\n this.whileNodeStack = [];\r\n }\r\n SequenceBuilder.prototype.then = function (action) {\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = new SequenceNode();\r\n this.currentSequenceNode.action = action;\r\n this.beginSequenceNode = this.currentSequenceNode;\r\n }\r\n else {\r\n var next = new SequenceNode();\r\n next.action = action;\r\n this.currentSequenceNode = this.currentSequenceNode.then(next);\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.if = function (condition) {\r\n var ifSeq = new IfSequenceNode(condition);\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = ifSeq;\r\n this.beginSequenceNode = ifSeq;\r\n }\r\n else {\r\n this.currentSequenceNode = this.currentSequenceNode.then(ifSeq);\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.else = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof IfSequenceNode) {\r\n seq.closed = true;\r\n var elseSeq = new ElseSequenceNode(seq);\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.then(elseSeq);\r\n }\r\n else {\r\n throw new Error('IF statement is needed to be called before ELSE statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.endIf = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof IfSequenceNode || seq instanceof ElseSequenceNode) {\r\n seq.closed = true;\r\n }\r\n else {\r\n throw new Error('IF statement is needed to be called before ENDIF statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.while = function (condition) {\r\n var whileSeq = new WhileSequenceNode(condition);\r\n if (this.currentSequenceNode == null) {\r\n this.currentSequenceNode = whileSeq;\r\n this.beginSequenceNode = whileSeq;\r\n }\r\n else {\r\n this.currentSequenceNode = this.currentSequenceNode.then(whileSeq);\r\n }\r\n this.whileNodeStack.push(whileSeq);\r\n return this;\r\n };\r\n SequenceBuilder.prototype.endWhile = function () {\r\n var seq = this.currentSequenceNode.getSequence();\r\n if (seq instanceof WhileSequenceNode) {\r\n seq.closed = true;\r\n if (this.whileNodeStack.length > 0) {\r\n this.whileNodeStack.splice(this.whileNodeStack.length - 1, 1);\r\n }\r\n }\r\n else {\r\n throw new Error('WHILE statement is needed to be called before ENDWHILE statement.');\r\n }\r\n return this;\r\n };\r\n SequenceBuilder.prototype.breakWhile = function () {\r\n if (this.whileNodeStack.length > 0) {\r\n this.currentSequenceNode = this\r\n .currentSequenceNode.then(new BreakWhileSequenceNode(this.whileNodeStack[this.whileNodeStack.length - 1]));\r\n }\r\n else {\r\n throw new Error('WHILE statement is needed to be called before BREAKWHILE statement.');\r\n }\r\n return this;\r\n };\r\n return SequenceBuilder;\r\n }());\r\n ActionsSequenceSystem.SequenceBuilder = SequenceBuilder;\r\n })(ActionsSequenceSystem = exports.ActionsSequenceSystem || (exports.ActionsSequenceSystem = {}));\r\n exports.ActionsSequenceSystem = ActionsSequenceSystem;\r\n var SequenceNode = /** @class */ (function () {\r\n function SequenceNode() {\r\n this.action = null;\r\n this.next = null;\r\n }\r\n SequenceNode.prototype.then = function (next) {\r\n this.next = next;\r\n return next;\r\n };\r\n SequenceNode.prototype.onStart = function () {\r\n if (this.action)\r\n this.action.onStart();\r\n };\r\n SequenceNode.prototype.update = function (dt) {\r\n if (this.action)\r\n this.action.update(dt);\r\n };\r\n SequenceNode.prototype.onFinish = function () {\r\n if (this.action)\r\n this.action.onFinish();\r\n };\r\n SequenceNode.prototype.hasFinish = function () {\r\n if (this.action)\r\n return this.action.hasFinished;\r\n else\r\n return true;\r\n };\r\n SequenceNode.prototype.getSequence = function () {\r\n return this;\r\n };\r\n return SequenceNode;\r\n }());\r\n var SubSequenceNode = /** @class */ (function (_super) {\r\n __extends(SubSequenceNode, _super);\r\n function SubSequenceNode() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.currentInnerSequence = null;\r\n _this.startingInnerSequence = null;\r\n _this.closed = false;\r\n return _this;\r\n }\r\n SubSequenceNode.prototype.then = function (next) {\r\n if (this.currentInnerSequence == null) {\r\n this.currentInnerSequence = next;\r\n this.startingInnerSequence = next;\r\n }\r\n else {\r\n if (this.closed) {\r\n this.next = next;\r\n return next;\r\n }\r\n else {\r\n this.currentInnerSequence = this.currentInnerSequence.then(next);\r\n }\r\n }\r\n return this;\r\n };\r\n SubSequenceNode.prototype.onStart = function () {\r\n this.currentInnerSequence = this.startingInnerSequence;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n };\r\n SubSequenceNode.prototype.update = function (dt) {\r\n if (this.currentInnerSequence) {\r\n if (!this.currentInnerSequence.hasFinish()) {\r\n this.currentInnerSequence.update(dt);\r\n }\r\n else {\r\n this.currentInnerSequence.onFinish();\r\n this.currentInnerSequence = this.currentInnerSequence.next;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n }\r\n }\r\n };\r\n SubSequenceNode.prototype.onFinish = function () {\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onFinish();\r\n };\r\n SubSequenceNode.prototype.hasFinish = function () {\r\n return this.currentInnerSequence == null;\r\n };\r\n SubSequenceNode.prototype.getSequence = function () {\r\n if (this.currentInnerSequence) {\r\n var innerSeq = this.currentInnerSequence.getSequence();\r\n if (innerSeq instanceof SubSequenceNode) {\r\n if (!innerSeq.closed) {\r\n return innerSeq;\r\n }\r\n }\r\n }\r\n return this;\r\n };\r\n return SubSequenceNode;\r\n }(SequenceNode));\r\n var IfSequenceNode = /** @class */ (function (_super) {\r\n __extends(IfSequenceNode, _super);\r\n function IfSequenceNode(condition) {\r\n var _this = _super.call(this) || this;\r\n _this.result = false;\r\n _this.condition = condition;\r\n return _this;\r\n }\r\n IfSequenceNode.prototype.onStart = function () {\r\n this.result = this.condition();\r\n if (this.result)\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n return IfSequenceNode;\r\n }(SubSequenceNode));\r\n var ElseSequenceNode = /** @class */ (function (_super) {\r\n __extends(ElseSequenceNode, _super);\r\n function ElseSequenceNode(ifSequence) {\r\n var _this = _super.call(this) || this;\r\n _this.ifSequence = null;\r\n _this.ifSequence = ifSequence;\r\n return _this;\r\n }\r\n ElseSequenceNode.prototype.onStart = function () {\r\n if (this.ifSequence && !this.ifSequence.result)\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n return ElseSequenceNode;\r\n }(SubSequenceNode));\r\n var WhileSequenceNode = /** @class */ (function (_super) {\r\n __extends(WhileSequenceNode, _super);\r\n function WhileSequenceNode(condition) {\r\n var _this = _super.call(this) || this;\r\n _this.breakWhile = false;\r\n _this.condition = condition;\r\n return _this;\r\n }\r\n WhileSequenceNode.prototype.onStart = function () {\r\n this.breakWhile = false;\r\n if (this.condition())\r\n _super.prototype.onStart.call(this);\r\n else\r\n this.currentInnerSequence = null;\r\n };\r\n WhileSequenceNode.prototype.update = function (dt) {\r\n if (this.currentInnerSequence) {\r\n if (!this.currentInnerSequence.hasFinish()) {\r\n this.currentInnerSequence.update(dt);\r\n }\r\n else {\r\n this.currentInnerSequence.onFinish();\r\n this.currentInnerSequence = this.currentInnerSequence.next;\r\n if (this.currentInnerSequence == null)\r\n this.currentInnerSequence = this.startingInnerSequence;\r\n if (this.currentInnerSequence)\r\n this.currentInnerSequence.onStart();\r\n }\r\n }\r\n };\r\n WhileSequenceNode.prototype.hasFinish = function () {\r\n return this.breakWhile || !this.condition();\r\n };\r\n return WhileSequenceNode;\r\n }(SubSequenceNode));\r\n var BreakWhileSequenceNode = /** @class */ (function (_super) {\r\n __extends(BreakWhileSequenceNode, _super);\r\n function BreakWhileSequenceNode(whileNode) {\r\n var _this = _super.call(this) || this;\r\n _this.whileNode = whileNode;\r\n return _this;\r\n }\r\n BreakWhileSequenceNode.prototype.onStart = function () {\r\n this.whileNode.breakWhile = true;\r\n };\r\n return BreakWhileSequenceNode;\r\n }(SequenceNode));\r\n});\r\ndefine(\"node_modules/decentraland-ecs-utils/index\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/transform/component/move\", \"node_modules/decentraland-ecs-utils/transform/component/rotate\", \"node_modules/decentraland-ecs-utils/transform/component/scale\", \"node_modules/decentraland-ecs-utils/transform/component/followpath\", \"node_modules/decentraland-ecs-utils/transform/component/keeprotating\", \"node_modules/decentraland-ecs-utils/transform/system/transfromSystem\", \"node_modules/decentraland-ecs-utils/transform/math/interpolation\", \"node_modules/decentraland-ecs-utils/toggle/toggleComponent\", \"node_modules/decentraland-ecs-utils/timer/component/delay\", \"node_modules/decentraland-ecs-utils/timer/component/expire\", \"node_modules/decentraland-ecs-utils/timer/component/interval\", \"node_modules/decentraland-ecs-utils/triggers/triggerSystem\", \"node_modules/decentraland-ecs-utils/actionsSequenceSystem/actionsSequenceSystem\"], function (require, exports, move_2, rotate_2, scale_2, followpath_2, keeprotating_2, transfromSystem_6, interpolation_4, toggleComponent_1, delay_2, expire_2, interval_2, triggerSystem_1, actionsSequenceSystem_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = {\r\n TransformSystem: transfromSystem_6.TransformSystem,\r\n MoveTransformComponent: move_2.MoveTransformComponent,\r\n RotateTransformComponent: rotate_2.RotateTransformComponent,\r\n ScaleTransformComponent: scale_2.ScaleTransformComponent,\r\n FollowPathComponent: followpath_2.FollowPathComponent,\r\n KeepRotatingComponent: keeprotating_2.KeepRotatingComponent,\r\n Interpolate: interpolation_4.Interpolate,\r\n InterpolationType: interpolation_4.InterpolationType,\r\n ToggleComponent: toggleComponent_1.ToggleComponent,\r\n ToggleState: toggleComponent_1.ToggleState,\r\n Delay: delay_2.Delay,\r\n ExpireIn: expire_2.ExpireIn,\r\n Interval: interval_2.Interval,\r\n TriggerComponent: triggerSystem_1.TriggerComponent,\r\n TriggerSystem: triggerSystem_1.TriggerSystem,\r\n TriggerSphereShape: triggerSystem_1.TriggerSphereShape,\r\n TriggerBoxShape: triggerSystem_1.TriggerBoxShape,\r\n ActionsSequenceSystem: actionsSequenceSystem_1.ActionsSequenceSystem\r\n };\r\n});\r\ndefine(\"node_modules/eth-connect/eth-connect.esm\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n var ethconnect = function (t) { var e = {}; function r(n) { if (e[n])\r\n return e[n].exports; var o = e[n] = { i: n, l: !1, exports: {} }; return t[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports; } return r.m = t, r.c = e, r.d = function (t, e, n) { r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }); }, r.r = function (t) { \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(t, \"__esModule\", { value: !0 }); }, r.t = function (t, e) { if (1 & e && (t = r(t)), 8 & e)\r\n return t; if (4 & e && \"object\" == typeof t && t && t.__esModule)\r\n return t; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, \"default\", { enumerable: !0, value: t }), 2 & e && \"string\" != typeof t)\r\n for (var o in t)\r\n r.d(n, o, function (e) { return t[e]; }.bind(null, o)); return n; }, r.n = function (t) { var e = t && t.__esModule ? function () { return t.default; } : function () { return t; }; return r.d(e, \"a\", e), e; }, r.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e); }, r.p = \"\", r(r.s = 28); }([function (t, e, r) { var n; t.exports = (n = n || function (t, e) { var r = Object.create || function () { function t() { } return function (e) { var r; return t.prototype = e, r = new t, t.prototype = null, r; }; }(), n = {}, o = n.lib = {}, i = o.Base = { extend: function (t) { var e = r(this); return t && e.mixIn(t), e.hasOwnProperty(\"init\") && this.init !== e.init || (e.init = function () { e.$super.init.apply(this, arguments); }), e.init.prototype = e, e.$super = this, e; }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t; }, init: function () { }, mixIn: function (t) { for (var e in t)\r\n t.hasOwnProperty(e) && (this[e] = t[e]); t.hasOwnProperty(\"toString\") && (this.toString = t.toString); }, clone: function () { return this.init.prototype.extend(this); } }, s = o.WordArray = i.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 4 * t.length; }, toString: function (t) { return (t || c).stringify(this); }, concat: function (t) { var e = this.words, r = t.words, n = this.sigBytes, o = t.sigBytes; if (this.clamp(), n % 4)\r\n for (var i = 0; i < o; i++) {\r\n var s = r[i >>> 2] >>> 24 - i % 4 * 8 & 255;\r\n e[n + i >>> 2] |= s << 24 - (n + i) % 4 * 8;\r\n }\r\n else\r\n for (var i = 0; i < o; i += 4)\r\n e[n + i >>> 2] = r[i >>> 2]; return this.sigBytes += o, this; }, clamp: function () { var e = this.words, r = this.sigBytes; e[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, e.length = t.ceil(r / 4); }, clone: function () { var t = i.clone.call(this); return t.words = this.words.slice(0), t; }, random: function (e) { for (var r, n = [], o = function (e) { var e = e, r = 987654321, n = 4294967295; return function () { var o = ((r = 36969 * (65535 & r) + (r >> 16) & n) << 16) + (e = 18e3 * (65535 & e) + (e >> 16) & n) & n; return o /= 4294967296, (o += .5) * (t.random() > .5 ? 1 : -1); }; }, i = 0; i < e; i += 4) {\r\n var a = o(4294967296 * (r || t.random()));\r\n r = 987654071 * a(), n.push(4294967296 * a() | 0);\r\n } return new s.init(n, e); } }), a = n.enc = {}, c = a.Hex = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o++) {\r\n var i = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;\r\n n.push((i >>> 4).toString(16)), n.push((15 & i).toString(16));\r\n } return n.join(\"\"); }, parse: function (t) { for (var e = t.length, r = [], n = 0; n < e; n += 2)\r\n r[n >>> 3] |= parseInt(t.substr(n, 2), 16) << 24 - n % 8 * 4; return new s.init(r, e / 2); } }, u = a.Latin1 = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o++) {\r\n var i = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;\r\n n.push(String.fromCharCode(i));\r\n } return n.join(\"\"); }, parse: function (t) { for (var e = t.length, r = [], n = 0; n < e; n++)\r\n r[n >>> 2] |= (255 & t.charCodeAt(n)) << 24 - n % 4 * 8; return new s.init(r, e); } }, l = a.Utf8 = { stringify: function (t) { try {\r\n return decodeURIComponent(escape(u.stringify(t)));\r\n }\r\n catch (t) {\r\n throw new Error(\"Malformed UTF-8 data\");\r\n } }, parse: function (t) { return u.parse(unescape(encodeURIComponent(t))); } }, h = o.BufferedBlockAlgorithm = i.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0; }, _append: function (t) { \"string\" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; }, _process: function (e) { var r = this._data, n = r.words, o = r.sigBytes, i = this.blockSize, a = 4 * i, c = o / a, u = (c = e ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0)) * i, l = t.min(4 * u, o); if (u) {\r\n for (var h = 0; h < u; h += i)\r\n this._doProcessBlock(n, h);\r\n var f = n.splice(0, u);\r\n r.sigBytes -= l;\r\n } return new s.init(f, l); }, clone: function () { var t = i.clone.call(this); return t._data = this._data.clone(), t; }, _minBufferSize: 0 }), f = (o.Hasher = h.extend({ cfg: i.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset(); }, reset: function () { h.reset.call(this), this._doReset(); }, update: function (t) { return this._append(t), this._process(), this; }, finalize: function (t) { t && this._append(t); var e = this._doFinalize(); return e; }, blockSize: 16, _createHelper: function (t) { return function (e, r) { return new t.init(r).finalize(e); }; }, _createHmacHelper: function (t) { return function (e, r) { return new f.HMAC.init(t, r).finalize(e); }; } }), n.algo = {}); return n; }(Math), n); }, function (t, e, r) { var n; t.exports = (n = r(0), r(5), void (n.lib.Cipher || function (t) { var e = n, r = e.lib, o = r.Base, i = r.WordArray, s = r.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), u = e.algo, l = u.EvpKDF, h = r.Cipher = s.extend({ cfg: o.extend(), createEncryptor: function (t, e) { return this.create(this._ENC_XFORM_MODE, t, e); }, createDecryptor: function (t, e) { return this.create(this._DEC_XFORM_MODE, t, e); }, init: function (t, e, r) { this.cfg = this.cfg.extend(r), this._xformMode = t, this._key = e, this.reset(); }, reset: function () { s.reset.call(this), this._doReset(); }, process: function (t) { return this._append(t), this._process(); }, finalize: function (t) { t && this._append(t); var e = this._doFinalize(); return e; }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return \"string\" == typeof t ? F : w; } return function (e) { return { encrypt: function (r, n, o) { return t(n).encrypt(e, r, n, o); }, decrypt: function (r, n, o) { return t(n).decrypt(e, r, n, o); } }; }; }() }), f = (r.StreamCipher = h.extend({ _doFinalize: function () { var t = this._process(!0); return t; }, blockSize: 1 }), e.mode = {}), p = r.BlockCipherMode = o.extend({ createEncryptor: function (t, e) { return this.Encryptor.create(t, e); }, createDecryptor: function (t, e) { return this.Decryptor.create(t, e); }, init: function (t, e) { this._cipher = t, this._iv = e; } }), d = f.CBC = function () { var e = p.extend(); function r(e, r, n) { var o = this._iv; if (o) {\r\n var i = o;\r\n this._iv = t;\r\n }\r\n else\r\n var i = this._prevBlock; for (var s = 0; s < n; s++)\r\n e[r + s] ^= i[s]; } return e.Encryptor = e.extend({ processBlock: function (t, e) { var n = this._cipher, o = n.blockSize; r.call(this, t, e, o), n.encryptBlock(t, e), this._prevBlock = t.slice(e, e + o); } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var n = this._cipher, o = n.blockSize, i = t.slice(e, e + o); n.decryptBlock(t, e), r.call(this, t, e, o), this._prevBlock = i; } }), e; }(), m = e.pad = {}, y = m.Pkcs7 = { pad: function (t, e) { for (var r = 4 * e, n = r - t.sigBytes % r, o = n << 24 | n << 16 | n << 8 | n, s = [], a = 0; a < n; a += 4)\r\n s.push(o); var c = i.create(s, n); t.concat(c); }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, g = (r.BlockCipher = h.extend({ cfg: h.cfg.extend({ mode: d, padding: y }), reset: function () { h.reset.call(this); var t = this.cfg, e = t.iv, r = t.mode; if (this._xformMode == this._ENC_XFORM_MODE)\r\n var n = r.createEncryptor;\r\n else {\r\n var n = r.createDecryptor;\r\n this._minBufferSize = 1;\r\n } this._mode && this._mode.__creator == n ? this._mode.init(this, e && e.words) : (this._mode = n.call(r, this, e && e.words), this._mode.__creator = n); }, _doProcessBlock: function (t, e) { this._mode.processBlock(t, e); }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) {\r\n t.pad(this._data, this.blockSize);\r\n var e = this._process(!0);\r\n }\r\n else {\r\n var e = this._process(!0);\r\n t.unpad(e);\r\n } return e; }, blockSize: 4 }), r.CipherParams = o.extend({ init: function (t) { this.mixIn(t); }, toString: function (t) { return (t || this.formatter).stringify(this); } })), _ = e.format = {}, v = _.OpenSSL = { stringify: function (t) { var e = t.ciphertext, r = t.salt; if (r)\r\n var n = i.create([1398893684, 1701076831]).concat(r).concat(e);\r\n else\r\n var n = e; return n.toString(c); }, parse: function (t) { var e = c.parse(t), r = e.words; if (1398893684 == r[0] && 1701076831 == r[1]) {\r\n var n = i.create(r.slice(2, 4));\r\n r.splice(0, 4), e.sigBytes -= 16;\r\n } return g.create({ ciphertext: e, salt: n }); } }, w = r.SerializableCipher = o.extend({ cfg: o.extend({ format: v }), encrypt: function (t, e, r, n) { n = this.cfg.extend(n); var o = t.createEncryptor(r, n), i = o.finalize(e), s = o.cfg; return g.create({ ciphertext: i, key: r, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: n.format }); }, decrypt: function (t, e, r, n) { n = this.cfg.extend(n), e = this._parse(e, n.format); var o = t.createDecryptor(r, n).finalize(e.ciphertext); return o; }, _parse: function (t, e) { return \"string\" == typeof t ? e.parse(t, this) : t; } }), b = e.kdf = {}, B = b.OpenSSL = { execute: function (t, e, r, n) { n || (n = i.random(8)); var o = l.create({ keySize: e + r }).compute(t, n), s = i.create(o.words.slice(e), 4 * r); return o.sigBytes = 4 * e, g.create({ key: o, iv: s, salt: n }); } }, F = r.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: B }), encrypt: function (t, e, r, n) { var o = (n = this.cfg.extend(n)).kdf.execute(r, t.keySize, t.ivSize); n.iv = o.iv; var i = w.encrypt.call(this, t, e, o.key, n); return i.mixIn(o), i; }, decrypt: function (t, e, r, n) { n = this.cfg.extend(n), e = this._parse(e, n.format); var o = n.kdf.execute(r, t.keySize, t.ivSize, e.salt); n.iv = o.iv; var i = w.decrypt.call(this, t, e, o.key, n); return i; } }); }())); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(17), o = r(3), i = r(14), s = r(25);\r\n function a(t) { n.BigNumber.config(i.ETH_BIGNUMBER_ROUNDING_MODE); var e = o.padLeft(o.toTwosComplement(t).toString(16), 64); return new s.SolidityParam(e); }\r\n function c(t) { return \"1\" === new n.BigNumber(t.substr(0, 1), 16).toString(2).substr(0, 1); }\r\n function u(t) { var e = t.staticPart() || \"0\"; return c(e) ? new n.BigNumber(e, 16).minus(new n.BigNumber(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 16)).minus(1) : new n.BigNumber(e, 16); }\r\n function l(t) { var e = t.staticPart() || \"0\"; return new n.BigNumber(e, 16); }\r\n e.formatInputInt = a, e.formatInputBytes = function (t) { var e = o.toHex(t).substr(2), r = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * r), new s.SolidityParam(e); }, e.formatInputDynamicBytes = function (t) { var e = o.toHex(t).substr(2), r = e.length / 2, n = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * n), new s.SolidityParam(a(r).value + e); }, e.formatInputString = function (t) { var e = o.fromUtf8(t).substr(2), r = e.length / 2, n = Math.floor((e.length + 63) / 64); return e = o.padRight(e, 64 * n), new s.SolidityParam(a(r).value + e); }, e.formatInputBool = function (t) { var e = \"000000000000000000000000000000000000000000000000000000000000000\" + (t ? \"1\" : \"0\"); return new s.SolidityParam(e); }, e.formatInputReal = function (t) { return a(new n.BigNumber(t).times(new n.BigNumber(2).pow(128))); }, e.signedIsNegative = c, e.formatOutputInt = u, e.formatOutputUInt = l, e.formatOutputReal = function (t) { return u(t).dividedBy(new n.BigNumber(2).pow(128)); }, e.formatOutputUReal = function (t) { return l(t).dividedBy(new n.BigNumber(2).pow(128)); }, e.formatOutputBool = function (t) { return \"0000000000000000000000000000000000000000000000000000000000000001\" === t.staticPart(); }, e.formatOutputBytes = function (t, e) { var r = e.match(/^bytes([0-9]*)/), n = parseInt(r[1], 10); return \"0x\" + t.staticPart().slice(0, 2 * n); }, e.formatOutputDynamicBytes = function (t) { var e = 2 * new n.BigNumber(t.dynamicPart().slice(0, 64), 16).toNumber(); return \"0x\" + t.dynamicPart().substr(64, e); }, e.formatOutputString = function (t) { var e = 2 * new n.BigNumber(t.dynamicPart().slice(0, 64), 16).toNumber(); return o.toUtf8(t.dynamicPart().substr(64, e)); }, e.formatOutputAddress = function (t) { var e = t.staticPart(); return \"0x\" + e.slice(e.length - 40, e.length); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(17), o = r(31), i = r(32), s = r(20);\r\n function a(t, e) { var r = t; return e && \"hex\" === e.encoding && (r.length > 2 && \"0x\" === r.substr(0, 2) && (r = r.substr(2)), r = i.enc.Hex.parse(r)), s(r, { outputLength: 256 }).toString(); }\r\n e.sha3 = a;\r\n var c = { noether: \"0\", wei: \"1\", kwei: \"1000\", Kwei: \"1000\", babbage: \"1000\", femtoether: \"1000\", mwei: \"1000000\", Mwei: \"1000000\", lovelace: \"1000000\", picoether: \"1000000\", gwei: \"1000000000\", Gwei: \"1000000000\", shannon: \"1000000000\", nanoether: \"1000000000\", nano: \"1000000000\", szabo: \"1000000000000\", microether: \"1000000000000\", micro: \"1000000000000\", finney: \"1000000000000000\", milliether: \"1000000000000000\", milli: \"1000000000000000\", ether: \"1000000000000000000\", kether: \"1000000000000000000000\", grand: \"1000000000000000000000\", mether: \"1000000000000000000000000\", gether: \"1000000000000000000000000000\", tether: \"1000000000000000000000000000000\" };\r\n function u(t, e, r) { return new Array(e - t.length + 1).join(r || \"0\") + t; }\r\n function l(t, e) {\r\n if (e === void 0) { e = !1; }\r\n var r = o.encode(t), n = \"\";\r\n for (var t_1 = 0; t_1 < r.length; t_1++) {\r\n var o_1 = r.charCodeAt(t_1);\r\n if (0 === o_1) {\r\n if (!e)\r\n break;\r\n n += \"00\";\r\n }\r\n else {\r\n var t_2 = o_1.toString(16);\r\n n += t_2.length < 2 ? \"0\" + t_2 : t_2;\r\n }\r\n }\r\n return \"0x\" + n;\r\n }\r\n function h(t) { var e = d(t), r = e.toString(16); return e.isLessThan(0) ? \"-0x\" + r.substr(1) : \"0x\" + r; }\r\n function f(t) { if (v(t))\r\n return h(+t); if (g(t))\r\n return h(t); if (\"object\" == typeof t)\r\n return l(JSON.stringify(t)); if (_(t)) {\r\n var e_1 = t;\r\n if (0 === e_1.indexOf(\"-0x\"))\r\n return h(e_1);\r\n if (0 === e_1.indexOf(\"0x\"))\r\n return e_1;\r\n if (!isFinite(e_1))\r\n return l(e_1, !0);\r\n } return h(t); }\r\n function p(t) { var e = t ? t.toLowerCase() : \"ether\", r = c[e]; if (void 0 === r)\r\n throw new Error(\"This unit doesn't exists, please use the one of the following units\" + JSON.stringify(c, null, 2)); return new n.BigNumber(r, 10); }\r\n function d(t) { var e = t || 0; return g(e) ? e : \"string\" != typeof e || 0 !== e.indexOf(\"0x\") && 0 !== e.indexOf(\"-0x\") ? new n.BigNumber(e.toString(10), 10) : new n.BigNumber(e.replace(\"0x\", \"\"), 16); }\r\n function m(t) { return /^0x[0-9a-f]{40}$/i.test(t); }\r\n function y(t) { var e = t.replace(\"0x\", \"\"); var r = a(e.toLowerCase()); for (var t_3 = 0; t_3 < 40; t_3++)\r\n if (parseInt(r[t_3], 16) > 7 && e[t_3].toUpperCase() !== e[t_3] || parseInt(r[t_3], 16) <= 7 && e[t_3].toLowerCase() !== e[t_3])\r\n return !1; return !0; }\r\n function g(t) { return t instanceof n.BigNumber; }\r\n function _(t) { return \"string\" == typeof t || t && t.constructor && \"String\" === t.constructor.name; }\r\n function v(t) { return \"boolean\" == typeof t; }\r\n e.padLeft = u, e.padRight = function (t, e, r) { return t + new Array(e - t.length + 1).join(r || \"0\"); }, e.toUtf8 = function (t) { var e = \"\", r = 0, n = t.length; for (\"0x\" === t.substring(0, 2) && (r = 2); r < n; r += 2) {\r\n var n_1 = parseInt(t.substr(r, 2), 16);\r\n if (0 === n_1)\r\n break;\r\n e += String.fromCharCode(n_1);\r\n } return o.decode(e); }, e.toAscii = function (t) { var e = \"\", r = 0, n = t.length; for (\"0x\" === t.substring(0, 2) && (r = 2); r < n; r += 2) {\r\n var n_2 = parseInt(t.substr(r, 2), 16);\r\n e += String.fromCharCode(n_2);\r\n } return e; }, e.fromUtf8 = l, e.fromAscii = function (t, e) {\r\n if (e === void 0) { e = 0; }\r\n var r = \"\";\r\n for (var e_2 = 0; e_2 < t.length; e_2++) {\r\n var n_3 = t.charCodeAt(e_2).toString(16);\r\n r += n_3.length < 2 ? \"0\" + n_3 : n_3;\r\n }\r\n return \"0x\" + r.padEnd(e, \"0\");\r\n }, e.transformToFullName = function (t) { if (-1 !== t.name.indexOf(\"(\"))\r\n return t.name; var e = t.inputs.map(function (t) { return t.type; }).join(); return t.name + \"(\" + e + \")\"; }, e.extractDisplayName = function (t) { var e = t.indexOf(\"(\"), r = t.indexOf(\")\"); return -1 !== e && -1 !== r ? t.substr(0, e) : t; }, e.extractTypeName = function (t) { var e = t.indexOf(\"(\"), r = t.indexOf(\")\"); return -1 !== e && -1 !== r ? t.substr(e + 1, r - e - 1).replace(\" \", \"\") : \"\"; }, e.isHex = function (t) { return \"string\" == typeof t && /^0x[0-9a-fA-F]+$/.test(t); }, e.toNullDecimal = function (t) { return null == t ? t : d(t).toNumber(); }, e.toDecimal = function (t) { return d(t).toNumber(); }, e.toString = function (t) { return g(t) ? t.toString(10) : \"\" + t; }, e.toData = function (t) { return \"string\" == typeof t && !t.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t) ? \"0x\" + t : f(t); }, e.toBoolean = function (t) { return \"boolean\" == typeof t ? t : 0 !== d(t).toNumber(); }, e.fromDecimal = h, e.toHex = f, e.getValueOfUnit = p, e.fromWei = function (t, e) { var r = d(t).dividedBy(p(e)); return g(t) ? r : r.toString(10); }, e.toWei = function (t, e) { var r = d(t).times(p(e)); return g(t) ? r : r.toString(10); }, e.toBigNumber = d, e.toTwosComplement = function (t) { var e = d(t).integerValue(); return e.isLessThan(0) ? new n.BigNumber(\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 16).plus(e).plus(1) : e; }, e.isStrictAddress = m, e.isAddress = function (t) { return !!/^(0x)?[0-9a-f]{40}$/i.test(t) && (!(!/^(0x)?[0-9a-f]{40}$/.test(t) && !/^(0x)?[0-9A-F]{40}$/.test(t)) || y(t)); }, e.isChecksumAddress = y, e.toChecksumAddress = function (t) { if (void 0 === t)\r\n return \"\"; var e = t.toLowerCase().replace(\"0x\", \"\"), r = a(e); var n = \"0x\"; for (var t_4 = 0; t_4 < e.length; t_4++)\r\n parseInt(r[t_4], 16) > 7 ? n += e[t_4].toUpperCase() : n += e[t_4]; return n; }, e.toArray = function (t) { if (!Array.isArray(t))\r\n throw new Error(\"Value was not an array: \" + JSON.stringify(t)); return t; }, e.toAddress = function (t) { return m(t) ? t : /^[0-9a-f]{40}$/.test(t) ? \"0x\" + t : \"0x\" + u(f(t).substr(2), 40); }, e.isBigNumber = g, e.isString = _, e.isFunction = function (t) { return \"function\" == typeof t; }, e.isObject = function (t) { return null !== t && !Array.isArray(t) && \"object\" == typeof t; }, e.isBoolean = v, e.isArray = function (t) { return Array.isArray(t); }, e.isJson = function (t) { try {\r\n return !!JSON.parse(t);\r\n }\r\n catch (t) {\r\n return !1;\r\n } }, e.isBloom = function (t) { return !(!/^(0x)?[0-9a-f]{512}$/i.test(t) || !/^(0x)?[0-9a-f]{512}$/.test(t) && !/^(0x)?[0-9A-F]{512}$/.test(t)); }, e.isTopic = function (t) { return !(!/^(0x)?[0-9a-f]{64}$/i.test(t) || !/^(0x)?[0-9a-f]{64}$/.test(t) && !/^(0x)?[0-9A-F]{64}$/.test(t)); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(25);\r\n e.SolidityType = /** @class */ (function () {\r\n function SolidityType(t) {\r\n this._inputFormatter = t.inputFormatter, this._outputFormatter = t.outputFormatter;\r\n }\r\n SolidityType.prototype.isType = function (t) { throw new Error(\"this method should be overrwritten for type \" + t); };\r\n SolidityType.prototype.staticPartLength = function (t) { return (this.nestedTypes(t) || [\"[1]\"]).map(function (t) { return parseInt(t.slice(1, -1), 10) || 1; }).reduce(function (t, e) { return t * e; }, 32); };\r\n SolidityType.prototype.isDynamicArray = function (t) { var e = this.nestedTypes(t); return !!e && !e[e.length - 1].match(/[0-9]{1,}/g); };\r\n SolidityType.prototype.isStaticArray = function (t) { var e = this.nestedTypes(t); return !!e && !!e[e.length - 1].match(/[0-9]{1,}/g); };\r\n SolidityType.prototype.staticArrayLength = function (t) { var e = this.nestedTypes(t); if (e) {\r\n var t_5 = e[e.length - 1].match(/[0-9]{1,}/g);\r\n return parseInt(t_5[t_5.length - 1] || \"1\", 10);\r\n } return 1; };\r\n SolidityType.prototype.nestedName = function (t) { var e = this.nestedTypes(t); return e ? t.substr(0, t.length - e[e.length - 1].length) : t; };\r\n SolidityType.prototype.isDynamicType = function (t) { return !1; };\r\n SolidityType.prototype.nestedTypes = function (t) { return t.match(/(\\[[0-9]*\\])/g); };\r\n SolidityType.prototype.encode = function (t, e) {\r\n var _this = this;\r\n if (this.isDynamicArray(e)) {\r\n var r_1 = t.length, o_2 = this.nestedName(e), i_1 = [];\r\n return i_1.push(n.formatInputInt(r_1).encode()), t.forEach(function (t) { i_1.push(_this.encode(t, o_2)); }), i_1;\r\n }\r\n if (this.isStaticArray(e)) {\r\n var r_2 = this.staticArrayLength(e), n_4 = this.nestedName(e), o_3 = [];\r\n for (var e_3 = 0; e_3 < r_2; e_3++)\r\n o_3.push(this.encode(t[e_3], n_4));\r\n return o_3;\r\n }\r\n return this._inputFormatter(t, e).encode();\r\n };\r\n SolidityType.prototype.decode = function (t, e, r) { if (this.isDynamicArray(r)) {\r\n var n_5 = parseInt(\"0x\" + t.substr(2 * e, 64), 16), o_4 = parseInt(\"0x\" + t.substr(2 * n_5, 64), 16), i_2 = n_5 + 32, s = this.nestedName(r), a = this.staticPartLength(s), c = 32 * Math.floor((a + 31) / 32), u = [];\r\n for (var e_4 = 0; e_4 < o_4 * c; e_4 += c)\r\n u.push(this.decode(t, i_2 + e_4, s));\r\n return u;\r\n } if (this.isStaticArray(r)) {\r\n var n_6 = this.staticArrayLength(r), o_5 = e, i_3 = this.nestedName(r), s = this.staticPartLength(i_3), a = 32 * Math.floor((s + 31) / 32), c = [];\r\n for (var e_5 = 0; e_5 < n_6 * a; e_5 += a)\r\n c.push(this.decode(t, o_5 + e_5, i_3));\r\n return c;\r\n } if (this.isDynamicType(r)) {\r\n var n_7 = parseInt(\"0x\" + t.substr(2 * e, 64), 16), i_4 = parseInt(\"0x\" + t.substr(2 * n_7, 64), 16), s = Math.floor((i_4 + 31) / 32), a = new o.SolidityParam(t.substr(2 * n_7, 64 * (1 + s)), 0);\r\n return this._outputFormatter(a, r);\r\n } var n = this.staticPartLength(r), i = new o.SolidityParam(t.substr(2 * e, 2 * n)); return this._outputFormatter(i, r); };\r\n return SolidityType;\r\n }());\r\n }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), r(11), r(12), i = (o = n).lib, s = i.Base, a = i.WordArray, c = o.algo, u = c.MD5, l = c.EvpKDF = s.extend({ cfg: s.extend({ keySize: 4, hasher: u, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t); }, compute: function (t, e) { for (var r = this.cfg, n = r.hasher.create(), o = a.create(), i = o.words, s = r.keySize, c = r.iterations; i.length < s;) {\r\n u && n.update(u);\r\n var u = n.update(t).finalize(e);\r\n n.reset();\r\n for (var l = 1; l < c; l++)\r\n u = n.finalize(u), n.reset();\r\n o.concat(u);\r\n } return o.sigBytes = 4 * s, o; } }), o.EvpKDF = function (t, e, r) { return l.create(r).compute(t, e); }, n.EvpKDF); }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), i = (o = n).lib.WordArray, o.enc.Base64 = { stringify: function (t) { var e = t.words, r = t.sigBytes, n = this._map; t.clamp(); for (var o = [], i = 0; i < r; i += 3)\r\n for (var s = (e[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (e[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | e[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, a = 0; a < 4 && i + .75 * a < r; a++)\r\n o.push(n.charAt(s >>> 6 * (3 - a) & 63)); var c = n.charAt(64); if (c)\r\n for (; o.length % 4;)\r\n o.push(c); return o.join(\"\"); }, parse: function (t) { var e = t.length, r = this._map, n = this._reverseMap; if (!n) {\r\n n = this._reverseMap = [];\r\n for (var o = 0; o < r.length; o++)\r\n n[r.charCodeAt(o)] = o;\r\n } var s = r.charAt(64); if (s) {\r\n var a = t.indexOf(s);\r\n -1 !== a && (e = a);\r\n } return function (t, e, r) { for (var n = [], o = 0, s = 0; s < e; s++)\r\n if (s % 4) {\r\n var a = r[t.charCodeAt(s - 1)] << s % 4 * 2, c = r[t.charCodeAt(s)] >>> 6 - s % 4 * 2;\r\n n[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++;\r\n } return i.create(n, o); }(t, e, n); }, _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\" }, n.enc.Base64); }, function (t, e, r) { var n; t.exports = (n = r(0), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = []; !function () { for (var e = 0; e < 64; e++)\r\n a[e] = 4294967296 * t.abs(t.sin(e + 1)) | 0; }(); var c = s.MD5 = i.extend({ _doReset: function () { this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878]); }, _doProcessBlock: function (t, e) { for (var r = 0; r < 16; r++) {\r\n var n = e + r, o = t[n];\r\n t[n] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\r\n } var i = this._hash.words, s = t[e + 0], c = t[e + 1], p = t[e + 2], d = t[e + 3], m = t[e + 4], y = t[e + 5], g = t[e + 6], _ = t[e + 7], v = t[e + 8], w = t[e + 9], b = t[e + 10], B = t[e + 11], F = t[e + 12], N = t[e + 13], k = t[e + 14], x = t[e + 15], S = i[0], A = i[1], O = i[2], T = i[3]; S = u(S, A, O, T, s, 7, a[0]), T = u(T, S, A, O, c, 12, a[1]), O = u(O, T, S, A, p, 17, a[2]), A = u(A, O, T, S, d, 22, a[3]), S = u(S, A, O, T, m, 7, a[4]), T = u(T, S, A, O, y, 12, a[5]), O = u(O, T, S, A, g, 17, a[6]), A = u(A, O, T, S, _, 22, a[7]), S = u(S, A, O, T, v, 7, a[8]), T = u(T, S, A, O, w, 12, a[9]), O = u(O, T, S, A, b, 17, a[10]), A = u(A, O, T, S, B, 22, a[11]), S = u(S, A, O, T, F, 7, a[12]), T = u(T, S, A, O, N, 12, a[13]), O = u(O, T, S, A, k, 17, a[14]), S = l(S, A = u(A, O, T, S, x, 22, a[15]), O, T, c, 5, a[16]), T = l(T, S, A, O, g, 9, a[17]), O = l(O, T, S, A, B, 14, a[18]), A = l(A, O, T, S, s, 20, a[19]), S = l(S, A, O, T, y, 5, a[20]), T = l(T, S, A, O, b, 9, a[21]), O = l(O, T, S, A, x, 14, a[22]), A = l(A, O, T, S, m, 20, a[23]), S = l(S, A, O, T, w, 5, a[24]), T = l(T, S, A, O, k, 9, a[25]), O = l(O, T, S, A, d, 14, a[26]), A = l(A, O, T, S, v, 20, a[27]), S = l(S, A, O, T, N, 5, a[28]), T = l(T, S, A, O, p, 9, a[29]), O = l(O, T, S, A, _, 14, a[30]), S = h(S, A = l(A, O, T, S, F, 20, a[31]), O, T, y, 4, a[32]), T = h(T, S, A, O, v, 11, a[33]), O = h(O, T, S, A, B, 16, a[34]), A = h(A, O, T, S, k, 23, a[35]), S = h(S, A, O, T, c, 4, a[36]), T = h(T, S, A, O, m, 11, a[37]), O = h(O, T, S, A, _, 16, a[38]), A = h(A, O, T, S, b, 23, a[39]), S = h(S, A, O, T, N, 4, a[40]), T = h(T, S, A, O, s, 11, a[41]), O = h(O, T, S, A, d, 16, a[42]), A = h(A, O, T, S, g, 23, a[43]), S = h(S, A, O, T, w, 4, a[44]), T = h(T, S, A, O, F, 11, a[45]), O = h(O, T, S, A, x, 16, a[46]), S = f(S, A = h(A, O, T, S, p, 23, a[47]), O, T, s, 6, a[48]), T = f(T, S, A, O, _, 10, a[49]), O = f(O, T, S, A, k, 15, a[50]), A = f(A, O, T, S, y, 21, a[51]), S = f(S, A, O, T, F, 6, a[52]), T = f(T, S, A, O, d, 10, a[53]), O = f(O, T, S, A, b, 15, a[54]), A = f(A, O, T, S, c, 21, a[55]), S = f(S, A, O, T, v, 6, a[56]), T = f(T, S, A, O, x, 10, a[57]), O = f(O, T, S, A, g, 15, a[58]), A = f(A, O, T, S, N, 21, a[59]), S = f(S, A, O, T, m, 6, a[60]), T = f(T, S, A, O, B, 10, a[61]), O = f(O, T, S, A, p, 15, a[62]), A = f(A, O, T, S, w, 21, a[63]), i[0] = i[0] + S | 0, i[1] = i[1] + A | 0, i[2] = i[2] + O | 0, i[3] = i[3] + T | 0; }, _doFinalize: function () { var e = this._data, r = e.words, n = 8 * this._nDataBytes, o = 8 * e.sigBytes; r[o >>> 5] |= 128 << 24 - o % 32; var i = t.floor(n / 4294967296), s = n; r[15 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), r[14 + (o + 64 >>> 9 << 4)] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), e.sigBytes = 4 * (r.length + 1), this._process(); for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {\r\n var l = c[u];\r\n c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8);\r\n } return a; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); function u(t, e, r, n, o, i, s) { var a = t + (e & r | ~e & n) + o + s; return (a << i | a >>> 32 - i) + e; } function l(t, e, r, n, o, i, s) { var a = t + (e & n | r & ~n) + o + s; return (a << i | a >>> 32 - i) + e; } function h(t, e, r, n, o, i, s) { var a = t + (e ^ r ^ n) + o + s; return (a << i | a >>> 32 - i) + e; } function f(t, e, r, n, o, i, s) { var a = t + (r ^ (e | ~n)) + o + s; return (a << i | a >>> 32 - i) + e; } e.MD5 = i._createHelper(c), e.HmacMD5 = i._createHmacHelper(c); }(Math), n.MD5); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(14);\r\n function i(t) { return \"latest\" === t || \"pending\" === t || \"earliest\" === t; }\r\n function s(t) { if (void 0 !== t && null != t)\r\n return i(t) ? t : n.toHex(t); }\r\n function a(t) { return t ? (null !== t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), null !== t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.nonce = n.toDecimal(t.nonce), t.gas = n.toDecimal(t.gas), t.gasPrice = n.toBigNumber(t.gasPrice), t.value = n.toBigNumber(t.value), t) : null; }\r\n function c(t) { return t ? (t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.logIndex && (t.logIndex = n.toDecimal(t.logIndex)), t) : null; }\r\n function u(t) { if (n.isStrictAddress(t))\r\n return t; if (n.isAddress(t))\r\n return \"0x\" + t; throw new Error(\"Invalid address: \" + JSON.stringify(t)); }\r\n e.outputBigNumberFormatter = function (t) { return n.toBigNumber(t); }, e.isPredefinedBlockNumber = i, e.inputDefaultBlockNumberFormatter = function (t) { return void 0 === t ? o.defaultBlock : s(t); }, e.inputBlockNumberFormatter = s, e.inputCallFormatter = function (t) { return t.from = t.from, t.from && (t.from = u(t.from)), t.to && (t.to = u(t.to)), [\"gasPrice\", \"gas\", \"value\", \"nonce\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (e) { t[e] = n.fromDecimal(t[e]); }), t.data && !t.data.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t.data) && (t.data = \"0x\" + t.data), t; }, e.inputTransactionFormatter = function (t) { if (\"object\" != typeof t)\r\n throw new Error(\"Did not provide transaction options\"); if (!t.from)\r\n throw new Error('Missing \"from\" in transaction options'); return t.from = u(t.from), t.to && (t.to = u(t.to)), [\"gasPrice\", \"gas\", \"value\", \"nonce\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (e) { t[e] = n.fromDecimal(t[e]); }), t.data && !t.data.startsWith(\"0x\") && /^[A-Za-z0-9]+$/.test(t.data) && (t.data = \"0x\" + t.data), t; }, e.outputTransactionFormatter = a, e.outputTransactionReceiptFormatter = function (t) { return t ? (null !== t.blockNumber && (t.blockNumber = n.toDecimal(t.blockNumber)), null !== t.transactionIndex && (t.transactionIndex = n.toDecimal(t.transactionIndex)), t.cumulativeGasUsed = n.toDecimal(t.cumulativeGasUsed), t.gasUsed = n.toDecimal(t.gasUsed), n.isArray(t.logs) && (t.logs = t.logs.map(function (t) { return c(t); })), t.status = n.toDecimal(t.status), t) : null; }, e.outputBlockFormatter = function (t) { return t ? (t.gasLimit = n.toDecimal(t.gasLimit), t.gasUsed = n.toDecimal(t.gasUsed), t.size = n.toDecimal(t.size), t.timestamp = n.toDecimal(t.timestamp), null !== t.number && (t.number = n.toDecimal(t.number)), t.difficulty = n.toBigNumber(t.difficulty), t.totalDifficulty = n.toBigNumber(t.totalDifficulty), n.isArray(t.transactions) && t.transactions.forEach(function (t) { if (!n.isString(t))\r\n return a(t); }), t) : null; }, e.outputLogFormatter = c, e.inputPostFormatter = function (t) { return t ? (t.ttl = n.fromDecimal(t.ttl), t.workToProve = n.fromDecimal(t.workToProve), t.priority = n.fromDecimal(t.priority), n.isArray(t.topics) || (t.topics = t.topics ? [t.topics] : []), t.topics = t.topics.map(function (t) { return 0 === t.indexOf(\"0x\") ? t : n.fromUtf8(t); }), t) : null; }, e.outputPostFormatter = function (t) { return t ? (t.expiry = n.toDecimal(t.expiry), t.sent = n.toDecimal(t.sent), t.ttl = n.toDecimal(t.ttl), t.workProved = n.toDecimal(t.workProved), t.topics || (t.topics = []), t.topics = t.topics.map(function (t) { return n.toAscii(t); }), t) : null; }, e.inputAddressFormatter = u, e.outputSyncingFormatter = function (t) { return t ? (t.startingBlock = n.toDecimal(t.startingBlock), t.currentBlock = n.toDecimal(t.currentBlock), t.highestBlock = n.toDecimal(t.highestBlock), t.knownStates && (t.knownStates = n.toDecimal(t.knownStates), t.pulledStates = n.toDecimal(t.pulledStates)), t) : t; };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n function n() { var t, e; var r = new Promise(function (n, o) { t = (function (t) { n(t), r.isPending = !1; }), e = (function (t) { o(t), r.isPending = !1; }); }).catch(function (t) { return Promise.reject(t); }); return r.resolve = t, r.reject = e, \"finally\" in r || (r.finally = (function (t) { r.then(t), r.catch(t); })), r.isPending = !0, r; }\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.future = n, e.default = n;\r\n }, function (t, e, r) { var n, o, i, s, a, c; t.exports = (n = r(0), i = (o = n).lib, s = i.Base, a = i.WordArray, (c = o.x64 = {}).Word = s.extend({ init: function (t, e) { this.high = t, this.low = e; } }), c.WordArray = s.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 8 * t.length; }, toX32: function () { for (var t = this.words, e = t.length, r = [], n = 0; n < e; n++) {\r\n var o = t[n];\r\n r.push(o.high), r.push(o.low);\r\n } return a.create(r, this.sigBytes); }, clone: function () { for (var t = s.clone.call(this), e = t.words = this.words.slice(0), r = e.length, n = 0; n < r; n++)\r\n e[n] = e[n].clone(); return t; } }), n); }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), i = (o = n).lib, s = i.WordArray, a = i.Hasher, c = o.algo, u = [], l = c.SHA1 = a.extend({ _doReset: function () { this._hash = new s.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], c = 0; c < 80; c++) {\r\n if (c < 16)\r\n u[c] = 0 | t[e + c];\r\n else {\r\n var l = u[c - 3] ^ u[c - 8] ^ u[c - 14] ^ u[c - 16];\r\n u[c] = l << 1 | l >>> 31;\r\n }\r\n var h = (n << 5 | n >>> 27) + a + u[c];\r\n h += c < 20 ? 1518500249 + (o & i | ~o & s) : c < 40 ? 1859775393 + (o ^ i ^ s) : c < 60 ? (o & i | o & s | i & s) - 1894007588 : (o ^ i ^ s) - 899497514, a = s, s = i, i = o << 30 | o >>> 2, o = n, n = h;\r\n } r[0] = r[0] + n | 0, r[1] = r[1] + o | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0; }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[14 + (n + 64 >>> 9 << 4)] = Math.floor(r / 4294967296), e[15 + (n + 64 >>> 9 << 4)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash; }, clone: function () { var t = a.clone.call(this); return t._hash = this._hash.clone(), t; } }), o.SHA1 = a._createHelper(l), o.HmacSHA1 = a._createHmacHelper(l), n.SHA1); }, function (t, e, r) { var n, o, i, s, a, c, u; t.exports = (n = r(0), i = (o = n).lib, s = i.Base, a = o.enc, c = a.Utf8, u = o.algo, void (u.HMAC = s.extend({ init: function (t, e) { t = this._hasher = new t.init, \"string\" == typeof e && (e = c.parse(e)); var r = t.blockSize, n = 4 * r; e.sigBytes > n && (e = t.finalize(e)), e.clamp(); for (var o = this._oKey = e.clone(), i = this._iKey = e.clone(), s = o.words, a = i.words, u = 0; u < r; u++)\r\n s[u] ^= 1549556828, a[u] ^= 909522486; o.sigBytes = i.sigBytes = n, this.reset(); }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey); }, update: function (t) { return this._hasher.update(t), this; }, finalize: function (t) { var e = this._hasher, r = e.finalize(t); e.reset(); var n = e.finalize(this._oKey.clone().concat(r)); return n; } }))); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.InvalidNumberOfSolidityArgs = function (t, e) { return new Error(\"Invalid number of arguments to Solidity function. given: \" + t + \", expected: \" + e); }, e.InvalidNumberOfRPCParams = function (t, e, r) { return new Error(\"Invalid number of input parameters to RPC method \\\"\" + t + \"\\\" given: \" + e + \", expected: \" + r); }, e.InvalidConnection = function (t) { return new Error(\"CONNECTION ERROR: Couldn't connect to node \" + t + \".\"); }, e.InvalidProvider = function () { return new Error(\"Provider not set or invalid\"); }, e.InvalidResponse = function (t) { var e = t && t.error && t.error.message ? t.error.message : \"Invalid JSON RPC response: \" + JSON.stringify(t); return new Error(e); }, e.ConnectionTimeout = function (t) { return new Error(\"CONNECTION TIMEOUT: timeout of \" + t + \" ms achived\"); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(57);\r\n e.ETH_UNITS = [\"wei\", \"kwei\", \"Mwei\", \"Gwei\", \"szabo\", \"finney\", \"femtoether\", \"picoether\", \"nanoether\", \"microether\", \"milliether\", \"nano\", \"micro\", \"milli\", \"ether\", \"grand\", \"Mether\", \"Gether\", \"Tether\", \"Pether\", \"Eether\", \"Zether\", \"Yether\", \"Nether\", \"Dether\", \"Vether\", \"Uether\"], e.ETH_PADDING = 32, e.ETH_SIGNATURE_LENGTH = 4, e.ETH_BIGNUMBER_ROUNDING_MODE = { ROUNDING_MODE: n.BigNumberRoundingMode.ROUND_DOWN }, e.ETH_POLLING_TIMEOUT = 500, e.defaultBlock = \"latest\";\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(61), i = r(62), s = r(63), a = r(64), c = r(65), u = r(66), l = r(67), h = r(68), f = r(69);\r\n function p(t, e) { return t.isDynamicType(e) || t.isDynamicArray(e); }\r\n var d = /** @class */ (function () {\r\n function d(t) {\r\n this._types = t;\r\n }\r\n d.prototype._requireType = function (t) { var e = this._types.filter(function (e) { return e.isType(t); })[0]; if (!e)\r\n throw Error(\"invalid solidity type!: \" + t); return e; };\r\n d.prototype.encodeParam = function (t, e) { return this.encodeParams([t], [e]); };\r\n d.prototype.encodeParams = function (t, e) { var r = this.getSolidityTypes(t), n = r.map(function (r, n) { return r.encode(e[n], t[n]); }), o = r.reduce(function (e, n, o) { var i = n.staticPartLength(t[o]), s = 32 * Math.floor((i + 31) / 32); return e + (p(r[o], t[o]) ? 32 : s); }, 0); return this.encodeMultiWithOffset(t, r, n, o); };\r\n d.prototype.encodeMultiWithOffset = function (t, e, r, o) {\r\n var _this = this;\r\n var i = o, s = \"\";\r\n return t.forEach(function (o, a) { if (p(e[a], t[a])) {\r\n s += n.formatInputInt(i).encode();\r\n var o_6 = _this.encodeWithOffset(t[a], e[a], r[a], i);\r\n i += o_6.length / 2;\r\n }\r\n else\r\n s += _this.encodeWithOffset(t[a], e[a], r[a], i); }), t.forEach(function (n, o) { if (p(e[o], t[o])) {\r\n var n_8 = _this.encodeWithOffset(t[o], e[o], r[o], i);\r\n i += n_8.length / 2, s += n_8;\r\n } }), s;\r\n };\r\n d.prototype.encodeWithOffset = function (t, e, r, o) { var i = 1, s = 2, a = 3, c = e.isDynamicArray(t) ? i : e.isStaticArray(t) ? s : a; if (c !== a) {\r\n var a_1 = e.nestedName(t), u_1 = e.staticPartLength(a_1), l_1 = c === i ? r[0] : \"\";\r\n if (e.isDynamicArray(a_1)) {\r\n var t_6 = c === i ? 2 : 0;\r\n for (var e_6 = 0; e_6 < r.length; e_6++)\r\n c === i ? t_6 += +r[e_6 - 1][0] || 0 : c === s && (t_6 += +(r[e_6 - 1] || [])[0] || 0), l_1 += n.formatInputInt(o + e_6 * u_1 + 32 * t_6).encode();\r\n }\r\n var h_1 = c === i ? r.length - 1 : r.length;\r\n for (var t_7 = 0; t_7 < h_1; t_7++) {\r\n var n_9 = l_1 / 2;\r\n c === i ? l_1 += this.encodeWithOffset(a_1, e, r[t_7 + 1], o + n_9) : c === s && (l_1 += this.encodeWithOffset(a_1, e, r[t_7], o + n_9));\r\n }\r\n return l_1;\r\n } return r; };\r\n d.prototype.decodeParam = function (t, e) { return this.decodeParams([t], e)[0]; };\r\n d.prototype.decodeParams = function (t, e) { var r = this.getSolidityTypes(t), n = this.getOffsets(t, r); return r.map(function (r, o) { return r.decode(e, n[o], t[o]); }); };\r\n d.prototype.getOffsets = function (t, e) { var r = e.map(function (e, r) { return e.staticPartLength(t[r]); }); for (var t_8 = 1; t_8 < r.length; t_8++)\r\n r[t_8] += r[t_8 - 1]; return r.map(function (r, n) { return r - e[n].staticPartLength(t[n]); }); };\r\n d.prototype.getSolidityTypes = function (t) {\r\n var _this = this;\r\n return t.map(function (t) { return _this._requireType(t); });\r\n };\r\n return d;\r\n }());\r\n e.SolidityCoder = d, e.coder = new d([new o.SolidityTypeAddress, new i.SolidityTypeBool, new s.SolidityTypeInt, new a.SolidityTypeUInt, new c.SolidityTypeDynamicBytes, new f.SolidityTypeBytes, new u.SolidityTypeString, new l.SolidityTypeReal, new h.SolidityTypeUReal]);\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.toRPC = function (t) { if (t.jsonrpc = \"2.0\", !t.id || \"number\" != typeof t.id || Math.floor(t.id) !== t.id)\r\n throw new Error(\"Invalid RPC message(invalid id) message: \" + JSON.stringify(t)); if (!t.method || \"string\" != typeof t.method || 0 === t.method.trim().length)\r\n throw new Error(\"Invalid RPC message(invalid method) message: \" + JSON.stringify(t)); if (!t.params || \"object\" != typeof t.params)\r\n throw new Error(\"Invalid RPC message(invalid params) message: \" + JSON.stringify(t)); return t; };\r\n }, function (t, e, r) { var n; !function (o) {\r\n \"use strict\";\r\n var i, s = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i, a = Math.ceil, c = Math.floor, u = \"[BigNumber Error] \", l = u + \"Number primitive has more than 15 significant digits: \", h = 1e14, f = 14, p = 9007199254740991, d = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], m = 1e7, y = 1e9;\r\n function g(t) { var e = 0 | t; return t > 0 || t === e ? e : e - 1; }\r\n function _(t) { for (var e, r, n = 1, o = t.length, i = t[0] + \"\"; n < o;) {\r\n for (e = t[n++] + \"\", r = f - e.length; r--; e = \"0\" + e)\r\n ;\r\n i += e;\r\n } for (o = i.length; 48 === i.charCodeAt(--o);)\r\n ; return i.slice(0, o + 1 || 1); }\r\n function v(t, e) { var r, n, o = t.c, i = e.c, s = t.s, a = e.s, c = t.e, u = e.e; if (!s || !a)\r\n return null; if (r = o && !o[0], n = i && !i[0], r || n)\r\n return r ? n ? 0 : -a : s; if (s != a)\r\n return s; if (r = s < 0, n = c == u, !o || !i)\r\n return n ? 0 : !o ^ r ? 1 : -1; if (!n)\r\n return c > u ^ r ? 1 : -1; for (a = (c = o.length) < (u = i.length) ? c : u, s = 0; s < a; s++)\r\n if (o[s] != i[s])\r\n return o[s] > i[s] ^ r ? 1 : -1; return c == u ? 0 : c > u ^ r ? 1 : -1; }\r\n function w(t, e, r, n) { if (t < e || t > r || t !== (t < 0 ? a(t) : c(t)))\r\n throw Error(u + (n || \"Argument\") + (\"number\" == typeof t ? t < e || t > r ? \" out of range: \" : \" not an integer: \" : \" not a primitive number: \") + t); }\r\n function b(t) { return \"[object Array]\" == Object.prototype.toString.call(t); }\r\n function B(t) { var e = t.c.length - 1; return g(t.e / f) == e && t.c[e] % 2 != 0; }\r\n function F(t, e) { return (t.length > 1 ? t.charAt(0) + \".\" + t.slice(1) : t) + (e < 0 ? \"e\" : \"e+\") + e; }\r\n function N(t, e, r) { var n, o; if (e < 0) {\r\n for (o = r + \".\"; ++e; o += r)\r\n ;\r\n t = o + t;\r\n }\r\n else if (++e > (n = t.length)) {\r\n for (o = r, e -= n; --e; o += r)\r\n ;\r\n t += o;\r\n }\r\n else\r\n e < n && (t = t.slice(0, e) + \".\" + t.slice(e)); return t; }\r\n (i = function t(e) { var r, n, o, i, k, x, S, A, O, T = W.prototype = { constructor: W, toString: null, valueOf: null }, P = new W(1), M = 20, C = 4, E = -7, D = 21, R = -1e7, I = 1e7, H = !1, j = 1, U = 0, L = { decimalSeparator: \".\", groupSeparator: \",\", groupSize: 3, secondaryGroupSize: 0, fractionGroupSeparator: \" \", fractionGroupSize: 0 }, z = \"0123456789abcdefghijklmnopqrstuvwxyz\"; function W(t, e) { var r, i, a, u, h, d, m, y = this; if (!(y instanceof W))\r\n return new W(t, e); if (null == e) {\r\n if (t instanceof W)\r\n return y.s = t.s, y.e = t.e, void (y.c = (t = t.c) ? t.slice() : t);\r\n if ((h = \"number\" == typeof t) && 0 * t == 0) {\r\n if (y.s = 1 / t < 0 ? (t = -t, -1) : 1, t === ~~t) {\r\n for (a = 0, u = t; u >= 10; u /= 10, a++)\r\n ;\r\n return y.e = a, void (y.c = [t]);\r\n }\r\n m = t + \"\";\r\n }\r\n else {\r\n if (!s.test(m = t + \"\"))\r\n return o(y, m, h);\r\n y.s = 45 == m.charCodeAt(0) ? (m = m.slice(1), -1) : 1;\r\n }\r\n }\r\n else {\r\n if (w(e, 2, z.length, \"Base\"), m = t + \"\", 10 == e)\r\n return V(y = new W(t instanceof W ? t : m), M + y.e + 1, C);\r\n if (h = \"number\" == typeof t) {\r\n if (0 * t != 0)\r\n return o(y, m, h, e);\r\n if (y.s = 1 / t < 0 ? (m = m.slice(1), -1) : 1, W.DEBUG && m.replace(/^0\\.0*|\\./, \"\").length > 15)\r\n throw Error(l + t);\r\n h = !1;\r\n }\r\n else\r\n y.s = 45 === m.charCodeAt(0) ? (m = m.slice(1), -1) : 1, e > 10 && e < 37 && (m = m.toLowerCase());\r\n for (r = z.slice(0, e), a = u = 0, d = m.length; u < d; u++)\r\n if (r.indexOf(i = m.charAt(u)) < 0) {\r\n if (\".\" == i && u > a) {\r\n a = d;\r\n continue;\r\n }\r\n return o(y, t + \"\", h, e);\r\n }\r\n m = n(m, e, 10, y.s);\r\n } for ((a = m.indexOf(\".\")) > -1 && (m = m.replace(\".\", \"\")), (u = m.search(/e/i)) > 0 ? (a < 0 && (a = u), a += +m.slice(u + 1), m = m.substring(0, u)) : a < 0 && (a = m.length), u = 0; 48 === m.charCodeAt(u); u++)\r\n ; for (d = m.length; 48 === m.charCodeAt(--d);)\r\n ; if (m = m.slice(u, ++d)) {\r\n if (d -= u, h && W.DEBUG && d > 15 && (t > p || t !== c(t)))\r\n throw Error(l + y.s * t);\r\n if ((a = a - u - 1) > I)\r\n y.c = y.e = null;\r\n else if (a < R)\r\n y.c = [y.e = 0];\r\n else {\r\n if (y.e = a, y.c = [], u = (a + 1) % f, a < 0 && (u += f), u < d) {\r\n for (u && y.c.push(+m.slice(0, u)), d -= f; u < d;)\r\n y.c.push(+m.slice(u, u += f));\r\n m = m.slice(u), u = f - m.length;\r\n }\r\n else\r\n u -= d;\r\n for (; u--; m += \"0\")\r\n ;\r\n y.c.push(+m);\r\n }\r\n }\r\n else\r\n y.c = [y.e = 0]; } function q(t, e, r, n) { var o, i, s, a, c; if (null == r ? r = C : w(r, 0, 8), !t.c)\r\n return t.toString(); if (o = t.c[0], s = t.e, null == e)\r\n c = _(t.c), c = 1 == n || 2 == n && s <= E ? F(c, s) : N(c, s, \"0\");\r\n else if (i = (t = V(new W(t), e, r)).e, a = (c = _(t.c)).length, 1 == n || 2 == n && (e <= i || i <= E)) {\r\n for (; a < e; c += \"0\", a++)\r\n ;\r\n c = F(c, i);\r\n }\r\n else if (e -= s, c = N(c, i, \"0\"), i + 1 > a) {\r\n if (--e > 0)\r\n for (c += \".\"; e--; c += \"0\")\r\n ;\r\n }\r\n else if ((e += i - a) > 0)\r\n for (i + 1 == a && (c += \".\"); e--; c += \"0\")\r\n ; return t.s < 0 && o ? \"-\" + c : c; } function $(t, e) { var r, n, o = 0; for (b(t[0]) && (t = t[0]), r = new W(t[0]); ++o < t.length;) {\r\n if (!(n = new W(t[o])).s) {\r\n r = n;\r\n break;\r\n }\r\n e.call(r, n) && (r = n);\r\n } return r; } function G(t, e, r) { for (var n = 1, o = e.length; !e[--o]; e.pop())\r\n ; for (o = e[0]; o >= 10; o /= 10, n++)\r\n ; return (r = n + r * f - 1) > I ? t.c = t.e = null : r < R ? t.c = [t.e = 0] : (t.e = r, t.c = e), t; } function V(t, e, r, n) { var o, i, s, u, l, p, m, y = t.c, g = d; if (y) {\r\n t: {\r\n for (o = 1, u = y[0]; u >= 10; u /= 10, o++)\r\n ;\r\n if ((i = e - o) < 0)\r\n i += f, s = e, m = (l = y[p = 0]) / g[o - s - 1] % 10 | 0;\r\n else if ((p = a((i + 1) / f)) >= y.length) {\r\n if (!n)\r\n break t;\r\n for (; y.length <= p; y.push(0))\r\n ;\r\n l = m = 0, o = 1, s = (i %= f) - f + 1;\r\n }\r\n else {\r\n for (l = u = y[p], o = 1; u >= 10; u /= 10, o++)\r\n ;\r\n m = (s = (i %= f) - f + o) < 0 ? 0 : l / g[o - s - 1] % 10 | 0;\r\n }\r\n if (n = n || e < 0 || null != y[p + 1] || (s < 0 ? l : l % g[o - s - 1]), n = r < 4 ? (m || n) && (0 == r || r == (t.s < 0 ? 3 : 2)) : m > 5 || 5 == m && (4 == r || n || 6 == r && (i > 0 ? s > 0 ? l / g[o - s] : 0 : y[p - 1]) % 10 & 1 || r == (t.s < 0 ? 8 : 7)), e < 1 || !y[0])\r\n return y.length = 0, n ? (e -= t.e + 1, y[0] = g[(f - e % f) % f], t.e = -e || 0) : y[0] = t.e = 0, t;\r\n if (0 == i ? (y.length = p, u = 1, p--) : (y.length = p + 1, u = g[f - i], y[p] = s > 0 ? c(l / g[o - s] % g[s]) * u : 0), n)\r\n for (;;) {\r\n if (0 == p) {\r\n for (i = 1, s = y[0]; s >= 10; s /= 10, i++)\r\n ;\r\n for (s = y[0] += u, u = 1; s >= 10; s /= 10, u++)\r\n ;\r\n i != u && (t.e++, y[0] == h && (y[0] = 1));\r\n break;\r\n }\r\n if (y[p] += u, y[p] != h)\r\n break;\r\n y[p--] = 0, u = 1;\r\n }\r\n for (i = y.length; 0 === y[--i]; y.pop())\r\n ;\r\n }\r\n t.e > I ? t.c = t.e = null : t.e < R && (t.c = [t.e = 0]);\r\n } return t; } return W.clone = t, W.ROUND_UP = 0, W.ROUND_DOWN = 1, W.ROUND_CEIL = 2, W.ROUND_FLOOR = 3, W.ROUND_HALF_UP = 4, W.ROUND_HALF_DOWN = 5, W.ROUND_HALF_EVEN = 6, W.ROUND_HALF_CEIL = 7, W.ROUND_HALF_FLOOR = 8, W.EUCLID = 9, W.config = W.set = function (t) { var e, r; if (null != t) {\r\n if (\"object\" != typeof t)\r\n throw Error(u + \"Object expected: \" + t);\r\n if (t.hasOwnProperty(e = \"DECIMAL_PLACES\") && (w(r = t[e], 0, y, e), M = r), t.hasOwnProperty(e = \"ROUNDING_MODE\") && (w(r = t[e], 0, 8, e), C = r), t.hasOwnProperty(e = \"EXPONENTIAL_AT\") && (b(r = t[e]) ? (w(r[0], -y, 0, e), w(r[1], 0, y, e), E = r[0], D = r[1]) : (w(r, -y, y, e), E = -(D = r < 0 ? -r : r))), t.hasOwnProperty(e = \"RANGE\"))\r\n if (b(r = t[e]))\r\n w(r[0], -y, -1, e), w(r[1], 1, y, e), R = r[0], I = r[1];\r\n else {\r\n if (w(r, -y, y, e), !r)\r\n throw Error(u + e + \" cannot be zero: \" + r);\r\n R = -(I = r < 0 ? -r : r);\r\n }\r\n if (t.hasOwnProperty(e = \"CRYPTO\")) {\r\n if ((r = t[e]) !== !!r)\r\n throw Error(u + e + \" not true or false: \" + r);\r\n if (r) {\r\n if (\"undefined\" == typeof crypto || !crypto || !crypto.getRandomValues && !crypto.randomBytes)\r\n throw H = !r, Error(u + \"crypto unavailable\");\r\n H = r;\r\n }\r\n else\r\n H = r;\r\n }\r\n if (t.hasOwnProperty(e = \"MODULO_MODE\") && (w(r = t[e], 0, 9, e), j = r), t.hasOwnProperty(e = \"POW_PRECISION\") && (w(r = t[e], 0, y, e), U = r), t.hasOwnProperty(e = \"FORMAT\")) {\r\n if (\"object\" != typeof (r = t[e]))\r\n throw Error(u + e + \" not an object: \" + r);\r\n L = r;\r\n }\r\n if (t.hasOwnProperty(e = \"ALPHABET\")) {\r\n if (\"string\" != typeof (r = t[e]) || /^.$|\\.|(.).*\\1/.test(r))\r\n throw Error(u + e + \" invalid: \" + r);\r\n z = r;\r\n }\r\n } return { DECIMAL_PLACES: M, ROUNDING_MODE: C, EXPONENTIAL_AT: [E, D], RANGE: [R, I], CRYPTO: H, MODULO_MODE: j, POW_PRECISION: U, FORMAT: L, ALPHABET: z }; }, W.isBigNumber = function (t) { return t instanceof W || t && !0 === t._isBigNumber || !1; }, W.maximum = W.max = function () { return $(arguments, T.lt); }, W.minimum = W.min = function () { return $(arguments, T.gt); }, W.random = (i = 9007199254740992 * Math.random() & 2097151 ? function () { return c(9007199254740992 * Math.random()); } : function () { return 8388608 * (1073741824 * Math.random() | 0) + (8388608 * Math.random() | 0); }, function (t) { var e, r, n, o, s, l = 0, h = [], p = new W(P); if (null == t ? t = M : w(t, 0, y), o = a(t / f), H)\r\n if (crypto.getRandomValues) {\r\n for (e = crypto.getRandomValues(new Uint32Array(o *= 2)); l < o;)\r\n (s = 131072 * e[l] + (e[l + 1] >>> 11)) >= 9e15 ? (r = crypto.getRandomValues(new Uint32Array(2)), e[l] = r[0], e[l + 1] = r[1]) : (h.push(s % 1e14), l += 2);\r\n l = o / 2;\r\n }\r\n else {\r\n if (!crypto.randomBytes)\r\n throw H = !1, Error(u + \"crypto unavailable\");\r\n for (e = crypto.randomBytes(o *= 7); l < o;)\r\n (s = 281474976710656 * (31 & e[l]) + 1099511627776 * e[l + 1] + 4294967296 * e[l + 2] + 16777216 * e[l + 3] + (e[l + 4] << 16) + (e[l + 5] << 8) + e[l + 6]) >= 9e15 ? crypto.randomBytes(7).copy(e, l) : (h.push(s % 1e14), l += 7);\r\n l = o / 7;\r\n } if (!H)\r\n for (; l < o;)\r\n (s = i()) < 9e15 && (h[l++] = s % 1e14); for (o = h[--l], t %= f, o && t && (s = d[f - t], h[l] = c(o / s) * s); 0 === h[l]; h.pop(), l--)\r\n ; if (l < 0)\r\n h = [n = 0];\r\n else {\r\n for (n = -1; 0 === h[0]; h.splice(0, 1), n -= f)\r\n ;\r\n for (l = 1, s = h[0]; s >= 10; s /= 10, l++)\r\n ;\r\n l < f && (n -= f - l);\r\n } return p.e = n, p.c = h, p; }), n = function () { function t(t, e, r, n) { for (var o, i, s = [0], a = 0, c = t.length; a < c;) {\r\n for (i = s.length; i--; s[i] *= e)\r\n ;\r\n for (s[0] += n.indexOf(t.charAt(a++)), o = 0; o < s.length; o++)\r\n s[o] > r - 1 && (null == s[o + 1] && (s[o + 1] = 0), s[o + 1] += s[o] / r | 0, s[o] %= r);\r\n } return s.reverse(); } return function (e, n, o, i, s) { var a, c, u, l, h, f, p, d, m = e.indexOf(\".\"), y = M, g = C; for (m >= 0 && (l = U, U = 0, e = e.replace(\".\", \"\"), f = (d = new W(n)).pow(e.length - m), U = l, d.c = t(N(_(f.c), f.e, \"0\"), 10, o, \"0123456789\"), d.e = d.c.length), u = l = (p = t(e, n, o, s ? (a = z, \"0123456789\") : (a = \"0123456789\", z))).length; 0 == p[--l]; p.pop())\r\n ; if (!p[0])\r\n return a.charAt(0); if (m < 0 ? --u : (f.c = p, f.e = u, f.s = i, p = (f = r(f, d, y, g, o)).c, h = f.r, u = f.e), m = p[c = u + y + 1], l = o / 2, h = h || c < 0 || null != p[c + 1], h = g < 4 ? (null != m || h) && (0 == g || g == (f.s < 0 ? 3 : 2)) : m > l || m == l && (4 == g || h || 6 == g && 1 & p[c - 1] || g == (f.s < 0 ? 8 : 7)), c < 1 || !p[0])\r\n e = h ? N(a.charAt(1), -y, a.charAt(0)) : a.charAt(0);\r\n else {\r\n if (p.length = c, h)\r\n for (--o; ++p[--c] > o;)\r\n p[c] = 0, c || (++u, p = [1].concat(p));\r\n for (l = p.length; !p[--l];)\r\n ;\r\n for (m = 0, e = \"\"; m <= l; e += a.charAt(p[m++]))\r\n ;\r\n e = N(e, u, a.charAt(0));\r\n } return e; }; }(), r = function () { function t(t, e, r) { var n, o, i, s, a = 0, c = t.length, u = e % m, l = e / m | 0; for (t = t.slice(); c--;)\r\n a = ((o = u * (i = t[c] % m) + (n = l * i + (s = t[c] / m | 0) * u) % m * m + a) / r | 0) + (n / m | 0) + l * s, t[c] = o % r; return a && (t = [a].concat(t)), t; } function e(t, e, r, n) { var o, i; if (r != n)\r\n i = r > n ? 1 : -1;\r\n else\r\n for (o = i = 0; o < r; o++)\r\n if (t[o] != e[o]) {\r\n i = t[o] > e[o] ? 1 : -1;\r\n break;\r\n } return i; } function r(t, e, r, n) { for (var o = 0; r--;)\r\n t[r] -= o, o = t[r] < e[r] ? 1 : 0, t[r] = o * n + t[r] - e[r]; for (; !t[0] && t.length > 1; t.splice(0, 1))\r\n ; } return function (n, o, i, s, a) { var u, l, p, d, m, y, _, v, w, b, B, F, N, k, x, S, A, O = n.s == o.s ? 1 : -1, T = n.c, P = o.c; if (!(T && T[0] && P && P[0]))\r\n return new W(n.s && o.s && (T ? !P || T[0] != P[0] : P) ? T && 0 == T[0] || !P ? 0 * O : O / 0 : NaN); for (w = (v = new W(O)).c = [], O = i + (l = n.e - o.e) + 1, a || (a = h, l = g(n.e / f) - g(o.e / f), O = O / f | 0), p = 0; P[p] == (T[p] || 0); p++)\r\n ; if (P[p] > (T[p] || 0) && l--, O < 0)\r\n w.push(1), d = !0;\r\n else {\r\n for (k = T.length, S = P.length, p = 0, O += 2, (m = c(a / (P[0] + 1))) > 1 && (P = t(P, m, a), T = t(T, m, a), S = P.length, k = T.length), N = S, B = (b = T.slice(0, S)).length; B < S; b[B++] = 0)\r\n ;\r\n A = P.slice(), A = [0].concat(A), x = P[0], P[1] >= a / 2 && x++;\r\n do {\r\n if (m = 0, (u = e(P, b, S, B)) < 0) {\r\n if (F = b[0], S != B && (F = F * a + (b[1] || 0)), (m = c(F / x)) > 1)\r\n for (m >= a && (m = a - 1), _ = (y = t(P, m, a)).length, B = b.length; 1 == e(y, b, _, B);)\r\n m--, r(y, S < _ ? A : P, _, a), _ = y.length, u = 1;\r\n else\r\n 0 == m && (u = m = 1), _ = (y = P.slice()).length;\r\n if (_ < B && (y = [0].concat(y)), r(b, y, B, a), B = b.length, -1 == u)\r\n for (; e(P, b, S, B) < 1;)\r\n m++, r(b, S < B ? A : P, B, a), B = b.length;\r\n }\r\n else\r\n 0 === u && (m++, b = [0]);\r\n w[p++] = m, b[0] ? b[B++] = T[N] || 0 : (b = [T[N]], B = 1);\r\n } while ((N++ < k || null != b[0]) && O--);\r\n d = null != b[0], w[0] || w.splice(0, 1);\r\n } if (a == h) {\r\n for (p = 1, O = w[0]; O >= 10; O /= 10, p++)\r\n ;\r\n V(v, i + (v.e = p + l * f - 1) + 1, s, d);\r\n }\r\n else\r\n v.e = l, v.r = +d; return v; }; }(), k = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i, x = /^([^.]+)\\.$/, S = /^\\.([^.]+)$/, A = /^-?(Infinity|NaN)$/, O = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g, o = function (t, e, r, n) { var o, i = r ? e : e.replace(O, \"\"); if (A.test(i))\r\n t.s = isNaN(i) ? null : i < 0 ? -1 : 1, t.c = t.e = null;\r\n else {\r\n if (!r && (i = i.replace(k, function (t, e, r) { return o = \"x\" == (r = r.toLowerCase()) ? 16 : \"b\" == r ? 2 : 8, n && n != o ? t : e; }), n && (o = n, i = i.replace(x, \"$1\").replace(S, \"0.$1\")), e != i))\r\n return new W(i, o);\r\n if (W.DEBUG)\r\n throw Error(u + \"Not a\" + (n ? \" base \" + n : \"\") + \" number: \" + e);\r\n t.c = t.e = t.s = null;\r\n } }, T.absoluteValue = T.abs = function () { var t = new W(this); return t.s < 0 && (t.s = 1), t; }, T.comparedTo = function (t, e) { return v(this, new W(t, e)); }, T.decimalPlaces = T.dp = function (t, e) { var r, n, o, i = this; if (null != t)\r\n return w(t, 0, y), null == e ? e = C : w(e, 0, 8), V(new W(i), t + i.e + 1, e); if (!(r = i.c))\r\n return null; if (n = ((o = r.length - 1) - g(this.e / f)) * f, o = r[o])\r\n for (; o % 10 == 0; o /= 10, n--)\r\n ; return n < 0 && (n = 0), n; }, T.dividedBy = T.div = function (t, e) { return r(this, new W(t, e), M, C); }, T.dividedToIntegerBy = T.idiv = function (t, e) { return r(this, new W(t, e), 0, 1); }, T.exponentiatedBy = T.pow = function (t, e) { var r, n, o, i, s, l, h, p = this; if ((t = new W(t)).c && !t.isInteger())\r\n throw Error(u + \"Exponent not an integer: \" + t); if (null != e && (e = new W(e)), i = t.e > 14, !p.c || !p.c[0] || 1 == p.c[0] && !p.e && 1 == p.c.length || !t.c || !t.c[0])\r\n return h = new W(Math.pow(+p.valueOf(), i ? 2 - B(t) : +t)), e ? h.mod(e) : h; if (s = t.s < 0, e) {\r\n if (e.c ? !e.c[0] : !e.s)\r\n return new W(NaN);\r\n (n = !s && p.isInteger() && e.isInteger()) && (p = p.mod(e));\r\n }\r\n else {\r\n if (t.e > 9 && (p.e > 0 || p.e < -1 || (0 == p.e ? p.c[0] > 1 || i && p.c[1] >= 24e7 : p.c[0] < 8e13 || i && p.c[0] <= 9999975e7)))\r\n return o = p.s < 0 && B(t) ? -0 : 0, p.e > -1 && (o = 1 / o), new W(s ? 1 / o : o);\r\n U && (o = a(U / f + 2));\r\n } for (i ? (r = new W(.5), l = B(t)) : l = t % 2, s && (t.s = 1), h = new W(P);;) {\r\n if (l) {\r\n if (!(h = h.times(p)).c)\r\n break;\r\n o ? h.c.length > o && (h.c.length = o) : n && (h = h.mod(e));\r\n }\r\n if (i) {\r\n if (V(t = t.times(r), t.e + 1, 1), !t.c[0])\r\n break;\r\n i = t.e > 14, l = B(t);\r\n }\r\n else {\r\n if (!(t = c(t / 2)))\r\n break;\r\n l = t % 2;\r\n }\r\n p = p.times(p), o ? p.c && p.c.length > o && (p.c.length = o) : n && (p = p.mod(e));\r\n } return n ? h : (s && (h = P.div(h)), e ? h.mod(e) : o ? V(h, U, C, void 0) : h); }, T.integerValue = function (t) { var e = new W(this); return null == t ? t = C : w(t, 0, 8), V(e, e.e + 1, t); }, T.isEqualTo = T.eq = function (t, e) { return 0 === v(this, new W(t, e)); }, T.isFinite = function () { return !!this.c; }, T.isGreaterThan = T.gt = function (t, e) { return v(this, new W(t, e)) > 0; }, T.isGreaterThanOrEqualTo = T.gte = function (t, e) { return 1 === (e = v(this, new W(t, e))) || 0 === e; }, T.isInteger = function () { return !!this.c && g(this.e / f) > this.c.length - 2; }, T.isLessThan = T.lt = function (t, e) { return v(this, new W(t, e)) < 0; }, T.isLessThanOrEqualTo = T.lte = function (t, e) { return -1 === (e = v(this, new W(t, e))) || 0 === e; }, T.isNaN = function () { return !this.s; }, T.isNegative = function () { return this.s < 0; }, T.isPositive = function () { return this.s > 0; }, T.isZero = function () { return !!this.c && 0 == this.c[0]; }, T.minus = function (t, e) { var r, n, o, i, s = this, a = s.s; if (e = (t = new W(t, e)).s, !a || !e)\r\n return new W(NaN); if (a != e)\r\n return t.s = -e, s.plus(t); var c = s.e / f, u = t.e / f, l = s.c, p = t.c; if (!c || !u) {\r\n if (!l || !p)\r\n return l ? (t.s = -e, t) : new W(p ? s : NaN);\r\n if (!l[0] || !p[0])\r\n return p[0] ? (t.s = -e, t) : new W(l[0] ? s : 3 == C ? -0 : 0);\r\n } if (c = g(c), u = g(u), l = l.slice(), a = c - u) {\r\n for ((i = a < 0) ? (a = -a, o = l) : (u = c, o = p), o.reverse(), e = a; e--; o.push(0))\r\n ;\r\n o.reverse();\r\n }\r\n else\r\n for (n = (i = (a = l.length) < (e = p.length)) ? a : e, a = e = 0; e < n; e++)\r\n if (l[e] != p[e]) {\r\n i = l[e] < p[e];\r\n break;\r\n } if (i && (o = l, l = p, p = o, t.s = -t.s), (e = (n = p.length) - (r = l.length)) > 0)\r\n for (; e--; l[r++] = 0)\r\n ; for (e = h - 1; n > a;) {\r\n if (l[--n] < p[n]) {\r\n for (r = n; r && !l[--r]; l[r] = e)\r\n ;\r\n --l[r], l[n] += h;\r\n }\r\n l[n] -= p[n];\r\n } for (; 0 == l[0]; l.splice(0, 1), --u)\r\n ; return l[0] ? G(t, l, u) : (t.s = 3 == C ? -1 : 1, t.c = [t.e = 0], t); }, T.modulo = T.mod = function (t, e) { var n, o, i = this; return t = new W(t, e), !i.c || !t.s || t.c && !t.c[0] ? new W(NaN) : !t.c || i.c && !i.c[0] ? new W(i) : (9 == j ? (o = t.s, t.s = 1, n = r(i, t, 0, 3), t.s = o, n.s *= o) : n = r(i, t, 0, j), (t = i.minus(n.times(t))).c[0] || 1 != j || (t.s = i.s), t); }, T.multipliedBy = T.times = function (t, e) { var r, n, o, i, s, a, c, u, l, p, d, y, _, v, w, b = this, B = b.c, F = (t = new W(t, e)).c; if (!(B && F && B[0] && F[0]))\r\n return !b.s || !t.s || B && !B[0] && !F || F && !F[0] && !B ? t.c = t.e = t.s = null : (t.s *= b.s, B && F ? (t.c = [0], t.e = 0) : t.c = t.e = null), t; for (n = g(b.e / f) + g(t.e / f), t.s *= b.s, (c = B.length) < (p = F.length) && (_ = B, B = F, F = _, o = c, c = p, p = o), o = c + p, _ = []; o--; _.push(0))\r\n ; for (v = h, w = m, o = p; --o >= 0;) {\r\n for (r = 0, d = F[o] % w, y = F[o] / w | 0, i = o + (s = c); i > o;)\r\n r = ((u = d * (u = B[--s] % w) + (a = y * u + (l = B[s] / w | 0) * d) % w * w + _[i] + r) / v | 0) + (a / w | 0) + y * l, _[i--] = u % v;\r\n _[i] = r;\r\n } return r ? ++n : _.splice(0, 1), G(t, _, n); }, T.negated = function () { var t = new W(this); return t.s = -t.s || null, t; }, T.plus = function (t, e) { var r, n = this, o = n.s; if (e = (t = new W(t, e)).s, !o || !e)\r\n return new W(NaN); if (o != e)\r\n return t.s = -e, n.minus(t); var i = n.e / f, s = t.e / f, a = n.c, c = t.c; if (!i || !s) {\r\n if (!a || !c)\r\n return new W(o / 0);\r\n if (!a[0] || !c[0])\r\n return c[0] ? t : new W(a[0] ? n : 0 * o);\r\n } if (i = g(i), s = g(s), a = a.slice(), o = i - s) {\r\n for (o > 0 ? (s = i, r = c) : (o = -o, r = a), r.reverse(); o--; r.push(0))\r\n ;\r\n r.reverse();\r\n } for ((o = a.length) - (e = c.length) < 0 && (r = c, c = a, a = r, e = o), o = 0; e;)\r\n o = (a[--e] = a[e] + c[e] + o) / h | 0, a[e] = h === a[e] ? 0 : a[e] % h; return o && (a = [o].concat(a), ++s), G(t, a, s); }, T.precision = T.sd = function (t, e) { var r, n, o, i = this; if (null != t && t !== !!t)\r\n return w(t, 1, y), null == e ? e = C : w(e, 0, 8), V(new W(i), t, e); if (!(r = i.c))\r\n return null; if (n = (o = r.length - 1) * f + 1, o = r[o]) {\r\n for (; o % 10 == 0; o /= 10, n--)\r\n ;\r\n for (o = r[0]; o >= 10; o /= 10, n++)\r\n ;\r\n } return t && i.e + 1 > n && (n = i.e + 1), n; }, T.shiftedBy = function (t) { return w(t, -p, p), this.times(\"1e\" + t); }, T.squareRoot = T.sqrt = function () { var t, e, n, o, i, s = this, a = s.c, c = s.s, u = s.e, l = M + 4, h = new W(\"0.5\"); if (1 !== c || !a || !a[0])\r\n return new W(!c || c < 0 && (!a || a[0]) ? NaN : a ? s : 1 / 0); if (0 == (c = Math.sqrt(+s)) || c == 1 / 0 ? (((e = _(a)).length + u) % 2 == 0 && (e += \"0\"), c = Math.sqrt(e), u = g((u + 1) / 2) - (u < 0 || u % 2), n = new W(e = c == 1 / 0 ? \"1e\" + u : (e = c.toExponential()).slice(0, e.indexOf(\"e\") + 1) + u)) : n = new W(c + \"\"), n.c[0])\r\n for ((c = (u = n.e) + l) < 3 && (c = 0);;)\r\n if (i = n, n = h.times(i.plus(r(s, i, l, 1))), _(i.c).slice(0, c) === (e = _(n.c)).slice(0, c)) {\r\n if (n.e < u && --c, \"9999\" != (e = e.slice(c - 3, c + 1)) && (o || \"4999\" != e)) {\r\n +e && (+e.slice(1) || \"5\" != e.charAt(0)) || (V(n, n.e + M + 2, 1), t = !n.times(n).eq(s));\r\n break;\r\n }\r\n if (!o && (V(i, i.e + M + 2, 0), i.times(i).eq(s))) {\r\n n = i;\r\n break;\r\n }\r\n l += 4, c += 4, o = 1;\r\n } return V(n, n.e + M + 1, C, t); }, T.toExponential = function (t, e) { return null != t && (w(t, 0, y), t++), q(this, t, e, 1); }, T.toFixed = function (t, e) { return null != t && (w(t, 0, y), t = t + this.e + 1), q(this, t, e); }, T.toFormat = function (t, e) { var r = this.toFixed(t, e); if (this.c) {\r\n var n, o = r.split(\".\"), i = +L.groupSize, s = +L.secondaryGroupSize, a = L.groupSeparator, c = o[0], u = o[1], l = this.s < 0, h = l ? c.slice(1) : c, f = h.length;\r\n if (s && (n = i, i = s, s = n, f -= n), i > 0 && f > 0) {\r\n for (n = f % i || i, c = h.substr(0, n); n < f; n += i)\r\n c += a + h.substr(n, i);\r\n s > 0 && (c += a + h.slice(n)), l && (c = \"-\" + c);\r\n }\r\n r = u ? c + L.decimalSeparator + ((s = +L.fractionGroupSize) ? u.replace(new RegExp(\"\\\\d{\" + s + \"}\\\\B\", \"g\"), \"$&\" + L.fractionGroupSeparator) : u) : c;\r\n } return r; }, T.toFraction = function (t) { var e, n, o, i, s, a, c, l, h, p, m, y, g = this, v = g.c; if (null != t && (!(l = new W(t)).isInteger() && (l.c || 1 !== l.s) || l.lt(P)))\r\n throw Error(u + \"Argument \" + (l.isInteger() ? \"out of range: \" : \"not an integer: \") + t); if (!v)\r\n return g.toString(); for (n = new W(P), p = o = new W(P), i = h = new W(P), y = _(v), a = n.e = y.length - g.e - 1, n.c[0] = d[(c = a % f) < 0 ? f + c : c], t = !t || l.comparedTo(n) > 0 ? a > 0 ? n : p : l, c = I, I = 1 / 0, l = new W(y), h.c[0] = 0; m = r(l, n, 0, 1), 1 != (s = o.plus(m.times(i))).comparedTo(t);)\r\n o = i, i = s, p = h.plus(m.times(s = p)), h = s, n = l.minus(m.times(s = n)), l = s; return s = r(t.minus(o), i, 0, 1), h = h.plus(s.times(p)), o = o.plus(s.times(i)), h.s = p.s = g.s, e = r(p, i, a *= 2, C).minus(g).abs().comparedTo(r(h, o, a, C).minus(g).abs()) < 1 ? [p.toString(), i.toString()] : [h.toString(), o.toString()], I = c, e; }, T.toNumber = function () { return +this; }, T.toPrecision = function (t, e) { return null != t && w(t, 1, y), q(this, t, e, 2); }, T.toString = function (t) { var e, r = this, o = r.s, i = r.e; return null === i ? o ? (e = \"Infinity\", o < 0 && (e = \"-\" + e)) : e = \"NaN\" : (e = _(r.c), null == t ? e = i <= E || i >= D ? F(e, i) : N(e, i, \"0\") : (w(t, 2, z.length, \"Base\"), e = n(N(e, i, \"0\"), 10, t, o, !0)), o < 0 && r.c[0] && (e = \"-\" + e)), e; }, T.valueOf = T.toJSON = function () { var t, e = this, r = e.e; return null === r ? e.toString() : (t = _(e.c), t = r <= E || r >= D ? F(t, r) : N(t, r, \"0\"), e.s < 0 ? \"-\" + t : t); }, T._isBigNumber = !0, null != e && W.set(e), W; }()).default = i.BigNumber = i, void 0 === (n = function () { return i; }.call(e, r, e, t)) || (t.exports = n);\r\n }(); }, function (t, e, r) { var n; t.exports = (n = r(0), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = [], c = []; !function () { function e(e) { for (var r = t.sqrt(e), n = 2; n <= r; n++)\r\n if (!(e % n))\r\n return !1; return !0; } function r(t) { return 4294967296 * (t - (0 | t)) | 0; } for (var n = 2, o = 0; o < 64;)\r\n e(n) && (o < 8 && (a[o] = r(t.pow(n, .5))), c[o] = r(t.pow(n, 1 / 3)), o++), n++; }(); var u = [], l = s.SHA256 = i.extend({ _doReset: function () { this._hash = new o.init(a.slice(0)); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], f = r[7], p = 0; p < 64; p++) {\r\n if (p < 16)\r\n u[p] = 0 | t[e + p];\r\n else {\r\n var d = u[p - 15], m = (d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3, y = u[p - 2], g = (y << 15 | y >>> 17) ^ (y << 13 | y >>> 19) ^ y >>> 10;\r\n u[p] = m + u[p - 7] + g + u[p - 16];\r\n }\r\n var _ = n & o ^ n & i ^ o & i, v = (n << 30 | n >>> 2) ^ (n << 19 | n >>> 13) ^ (n << 10 | n >>> 22), w = f + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & l ^ ~a & h) + c[p] + u[p];\r\n f = h, h = l, l = a, a = s + w | 0, s = i, i = o, o = n, n = w + (v + _) | 0;\r\n } r[0] = r[0] + n | 0, r[1] = r[1] + o | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0, r[5] = r[5] + l | 0, r[6] = r[6] + h | 0, r[7] = r[7] + f | 0; }, _doFinalize: function () { var e = this._data, r = e.words, n = 8 * this._nDataBytes, o = 8 * e.sigBytes; return r[o >>> 5] |= 128 << 24 - o % 32, r[14 + (o + 64 >>> 9 << 4)] = t.floor(n / 4294967296), r[15 + (o + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * r.length, this._process(), this._hash; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); e.SHA256 = i._createHelper(l), e.HmacSHA256 = i._createHmacHelper(l); }(Math), n.SHA256); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), function () { var t = n, e = t.lib.Hasher, r = t.x64, o = r.Word, i = r.WordArray, s = t.algo; function a() { return o.create.apply(o, arguments); } var c = [a(1116352408, 3609767458), a(1899447441, 602891725), a(3049323471, 3964484399), a(3921009573, 2173295548), a(961987163, 4081628472), a(1508970993, 3053834265), a(2453635748, 2937671579), a(2870763221, 3664609560), a(3624381080, 2734883394), a(310598401, 1164996542), a(607225278, 1323610764), a(1426881987, 3590304994), a(1925078388, 4068182383), a(2162078206, 991336113), a(2614888103, 633803317), a(3248222580, 3479774868), a(3835390401, 2666613458), a(4022224774, 944711139), a(264347078, 2341262773), a(604807628, 2007800933), a(770255983, 1495990901), a(1249150122, 1856431235), a(1555081692, 3175218132), a(1996064986, 2198950837), a(2554220882, 3999719339), a(2821834349, 766784016), a(2952996808, 2566594879), a(3210313671, 3203337956), a(3336571891, 1034457026), a(3584528711, 2466948901), a(113926993, 3758326383), a(338241895, 168717936), a(666307205, 1188179964), a(773529912, 1546045734), a(1294757372, 1522805485), a(1396182291, 2643833823), a(1695183700, 2343527390), a(1986661051, 1014477480), a(2177026350, 1206759142), a(2456956037, 344077627), a(2730485921, 1290863460), a(2820302411, 3158454273), a(3259730800, 3505952657), a(3345764771, 106217008), a(3516065817, 3606008344), a(3600352804, 1432725776), a(4094571909, 1467031594), a(275423344, 851169720), a(430227734, 3100823752), a(506948616, 1363258195), a(659060556, 3750685593), a(883997877, 3785050280), a(958139571, 3318307427), a(1322822218, 3812723403), a(1537002063, 2003034995), a(1747873779, 3602036899), a(1955562222, 1575990012), a(2024104815, 1125592928), a(2227730452, 2716904306), a(2361852424, 442776044), a(2428436474, 593698344), a(2756734187, 3733110249), a(3204031479, 2999351573), a(3329325298, 3815920427), a(3391569614, 3928383900), a(3515267271, 566280711), a(3940187606, 3454069534), a(4118630271, 4000239992), a(116418474, 1914138554), a(174292421, 2731055270), a(289380356, 3203993006), a(460393269, 320620315), a(685471733, 587496836), a(852142971, 1086792851), a(1017036298, 365543100), a(1126000580, 2618297676), a(1288033470, 3409855158), a(1501505948, 4234509866), a(1607167915, 987167468), a(1816402316, 1246189591)], u = []; !function () { for (var t = 0; t < 80; t++)\r\n u[t] = a(); }(); var l = s.SHA512 = e.extend({ _doReset: function () { this._hash = new i.init([new o.init(1779033703, 4089235720), new o.init(3144134277, 2227873595), new o.init(1013904242, 4271175723), new o.init(2773480762, 1595750129), new o.init(1359893119, 2917565137), new o.init(2600822924, 725511199), new o.init(528734635, 4215389547), new o.init(1541459225, 327033209)]); }, _doProcessBlock: function (t, e) { for (var r = this._hash.words, n = r[0], o = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], f = r[7], p = n.high, d = n.low, m = o.high, y = o.low, g = i.high, _ = i.low, v = s.high, w = s.low, b = a.high, B = a.low, F = l.high, N = l.low, k = h.high, x = h.low, S = f.high, A = f.low, O = p, T = d, P = m, M = y, C = g, E = _, D = v, R = w, I = b, H = B, j = F, U = N, L = k, z = x, W = S, q = A, $ = 0; $ < 80; $++) {\r\n var G = u[$];\r\n if ($ < 16)\r\n var V = G.high = 0 | t[e + 2 * $], J = G.low = 0 | t[e + 2 * $ + 1];\r\n else {\r\n var K = u[$ - 15], X = K.high, Z = K.low, Y = (X >>> 1 | Z << 31) ^ (X >>> 8 | Z << 24) ^ X >>> 7, Q = (Z >>> 1 | X << 31) ^ (Z >>> 8 | X << 24) ^ (Z >>> 7 | X << 25), tt = u[$ - 2], et = tt.high, rt = tt.low, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ et >>> 6, ot = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ (rt >>> 6 | et << 26), it = u[$ - 7], st = it.high, at = it.low, ct = u[$ - 16], ut = ct.high, lt = ct.low;\r\n V = (V = (V = Y + st + ((J = Q + at) >>> 0 < Q >>> 0 ? 1 : 0)) + nt + ((J += ot) >>> 0 < ot >>> 0 ? 1 : 0)) + ut + ((J += lt) >>> 0 < lt >>> 0 ? 1 : 0), G.high = V, G.low = J;\r\n }\r\n var ht, ft = I & j ^ ~I & L, pt = H & U ^ ~H & z, dt = O & P ^ O & C ^ P & C, mt = T & M ^ T & E ^ M & E, yt = (O >>> 28 | T << 4) ^ (O << 30 | T >>> 2) ^ (O << 25 | T >>> 7), gt = (T >>> 28 | O << 4) ^ (T << 30 | O >>> 2) ^ (T << 25 | O >>> 7), _t = (I >>> 14 | H << 18) ^ (I >>> 18 | H << 14) ^ (I << 23 | H >>> 9), vt = (H >>> 14 | I << 18) ^ (H >>> 18 | I << 14) ^ (H << 23 | I >>> 9), wt = c[$], bt = wt.high, Bt = wt.low, Ft = W + _t + ((ht = q + vt) >>> 0 < q >>> 0 ? 1 : 0), Nt = gt + mt;\r\n W = L, q = z, L = j, z = U, j = I, U = H, I = D + (Ft = (Ft = (Ft = Ft + ft + ((ht += pt) >>> 0 < pt >>> 0 ? 1 : 0)) + bt + ((ht += Bt) >>> 0 < Bt >>> 0 ? 1 : 0)) + V + ((ht += J) >>> 0 < J >>> 0 ? 1 : 0)) + ((H = R + ht | 0) >>> 0 < R >>> 0 ? 1 : 0) | 0, D = C, R = E, C = P, E = M, P = O, M = T, O = Ft + (yt + dt + (Nt >>> 0 < gt >>> 0 ? 1 : 0)) + ((T = ht + Nt | 0) >>> 0 < ht >>> 0 ? 1 : 0) | 0;\r\n } d = n.low = d + T, n.high = p + O + (d >>> 0 < T >>> 0 ? 1 : 0), y = o.low = y + M, o.high = m + P + (y >>> 0 < M >>> 0 ? 1 : 0), _ = i.low = _ + E, i.high = g + C + (_ >>> 0 < E >>> 0 ? 1 : 0), w = s.low = w + R, s.high = v + D + (w >>> 0 < R >>> 0 ? 1 : 0), B = a.low = B + H, a.high = b + I + (B >>> 0 < H >>> 0 ? 1 : 0), N = l.low = N + U, l.high = F + j + (N >>> 0 < U >>> 0 ? 1 : 0), x = h.low = x + z, h.high = k + L + (x >>> 0 < z >>> 0 ? 1 : 0), A = f.low = A + q, f.high = S + W + (A >>> 0 < q >>> 0 ? 1 : 0); }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[30 + (n + 128 >>> 10 << 5)] = Math.floor(r / 4294967296), e[31 + (n + 128 >>> 10 << 5)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash.toX32(); }, clone: function () { var t = e.clone.call(this); return t._hash = this._hash.clone(), t; }, blockSize: 32 }); t.SHA512 = e._createHelper(l), t.HmacSHA512 = e._createHmacHelper(l); }(), n.SHA512); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.x64.Word, a = e.algo, c = [], u = [], l = []; !function () { for (var t = 1, e = 0, r = 0; r < 24; r++) {\r\n c[t + 5 * e] = (r + 1) * (r + 2) / 2 % 64;\r\n var n = (2 * t + 3 * e) % 5;\r\n t = e % 5, e = n;\r\n } for (t = 0; t < 5; t++)\r\n for (e = 0; e < 5; e++)\r\n u[t + 5 * e] = e + (2 * t + 3 * e) % 5 * 5; for (var o = 1, i = 0; i < 24; i++) {\r\n for (var a = 0, h = 0, f = 0; f < 7; f++) {\r\n if (1 & o) {\r\n var p = (1 << f) - 1;\r\n p < 32 ? h ^= 1 << p : a ^= 1 << p - 32;\r\n }\r\n 128 & o ? o = o << 1 ^ 113 : o <<= 1;\r\n }\r\n l[i] = s.create(a, h);\r\n } }(); var h = []; !function () { for (var t = 0; t < 25; t++)\r\n h[t] = s.create(); }(); var f = a.SHA3 = i.extend({ cfg: i.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], e = 0; e < 25; e++)\r\n t[e] = new s.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; }, _doProcessBlock: function (t, e) { for (var r = this._state, n = this.blockSize / 2, o = 0; o < n; o++) {\r\n var i = t[e + 2 * o], s = t[e + 2 * o + 1];\r\n i = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), (A = r[o]).high ^= s, A.low ^= i;\r\n } for (var a = 0; a < 24; a++) {\r\n for (var f = 0; f < 5; f++) {\r\n for (var p = 0, d = 0, m = 0; m < 5; m++)\r\n p ^= (A = r[f + 5 * m]).high, d ^= A.low;\r\n var y = h[f];\r\n y.high = p, y.low = d;\r\n }\r\n for (f = 0; f < 5; f++) {\r\n var g = h[(f + 4) % 5], _ = h[(f + 1) % 5], v = _.high, w = _.low;\r\n for (p = g.high ^ (v << 1 | w >>> 31), d = g.low ^ (w << 1 | v >>> 31), m = 0; m < 5; m++)\r\n (A = r[f + 5 * m]).high ^= p, A.low ^= d;\r\n }\r\n for (var b = 1; b < 25; b++) {\r\n var B = (A = r[b]).high, F = A.low, N = c[b];\r\n N < 32 ? (p = B << N | F >>> 32 - N, d = F << N | B >>> 32 - N) : (p = F << N - 32 | B >>> 64 - N, d = B << N - 32 | F >>> 64 - N);\r\n var k = h[u[b]];\r\n k.high = p, k.low = d;\r\n }\r\n var x = h[0], S = r[0];\r\n for (x.high = S.high, x.low = S.low, f = 0; f < 5; f++)\r\n for (m = 0; m < 5; m++) {\r\n var A = r[b = f + 5 * m], O = h[b], T = h[(f + 1) % 5 + 5 * m], P = h[(f + 2) % 5 + 5 * m];\r\n A.high = O.high ^ ~T.high & P.high, A.low = O.low ^ ~T.low & P.low;\r\n }\r\n A = r[0];\r\n var M = l[a];\r\n A.high ^= M.high, A.low ^= M.low;\r\n } }, _doFinalize: function () { var e = this._data, r = e.words, n = (this._nDataBytes, 8 * e.sigBytes), i = 32 * this.blockSize; r[n >>> 5] |= 1 << 24 - n % 32, r[(t.ceil((n + 1) / i) * i >>> 5) - 1] |= 128, e.sigBytes = 4 * r.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, u = [], l = 0; l < c; l++) {\r\n var h = s[l], f = h.high, p = h.low;\r\n f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), p = 16711935 & (p << 8 | p >>> 24) | 4278255360 & (p << 24 | p >>> 8), u.push(p), u.push(f);\r\n } return new o.init(u, a); }, clone: function () { for (var t = i.clone.call(this), e = t._state = this._state.slice(0), r = 0; r < 25; r++)\r\n e[r] = e[r].clone(); return t; } }); e.SHA3 = i._createHelper(f), e.HmacSHA3 = i._createHmacHelper(f); }(Math), n.SHA3); }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(8), o = r(3), i = r(22), s = r(23);\r\n !function (t) { t.eth_getBalance = new i.Method({ callName: \"eth_getBalance\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: n.outputBigNumberFormatter }), t.eth_getStorageAt = new i.Method({ callName: \"eth_getStorageAt\", params: 3, inputFormatter: [n.inputAddressFormatter, o.toHex, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_getCode = new i.Method({ callName: \"eth_getCode\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_getBlockByHash = new i.Method({ callName: \"eth_getBlockByHash\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, function (t) { return !!t; }], outputFormatter: n.outputBlockFormatter }), t.eth_getBlockByNumber = new i.Method({ callName: \"eth_getBlockByNumber\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, function (t) { return !!t; }], outputFormatter: n.outputBlockFormatter }), t.eth_getUncleByBlockHashAndIndex = new i.Method({ callName: \"eth_getUncleByBlockHashAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputBlockFormatter }), t.eth_getUncleByBlockNumberAndIndex = new i.Method({ callName: \"eth_getUncleByBlockNumberAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputBlockFormatter }), t.eth_getBlockTransactionCountByHash = new i.Method({ callName: \"eth_getBlockTransactionCountByHash\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getBlockTransactionCountByNumber = new i.Method({ callName: \"eth_getBlockTransactionCountByNumber\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getUncleCountByBlockHash = new i.Method({ callName: \"eth_getUncleCountByBlockHash\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getUncleCountByBlockNumber = new i.Method({ callName: \"eth_getUncleCountByBlockNumber\", params: 1, inputFormatter: [n.inputBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_getTransactionByHash = new i.Method({ callName: \"eth_getTransactionByHash\", params: 1, outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionByBlockHashAndIndex = new i.Method({ callName: \"eth_getTransactionByBlockHashAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionByBlockNumberAndIndex = new i.Method({ callName: \"eth_getTransactionByBlockNumberAndIndex\", params: 2, inputFormatter: [n.inputBlockNumberFormatter, o.toHex], outputFormatter: n.outputTransactionFormatter }), t.eth_getTransactionReceipt = new i.Method({ callName: \"eth_getTransactionReceipt\", params: 1, outputFormatter: n.outputTransactionReceiptFormatter }), t.eth_getTransactionCount = new i.Method({ callName: \"eth_getTransactionCount\", params: 2, inputFormatter: [n.inputAddressFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toDecimal }), t.eth_sendRawTransaction = new i.Method({ callName: \"eth_sendRawTransaction\", params: 1, inputFormatter: [null], outputFormatter: o.toData }), t.web3_sha3 = new i.Method({ callName: \"web3_sha3\", params: 1, inputFormatter: [null], outputFormatter: o.toData }), t.eth_sendTransaction = new i.Method({ callName: \"eth_sendTransaction\", params: 1, inputFormatter: [n.inputTransactionFormatter], outputFormatter: o.toData }), t.eth_sign = new i.Method({ callName: \"eth_sign\", params: 2, inputFormatter: [n.inputAddressFormatter, null], outputFormatter: o.toData }), t.eth_call = new i.Method({ callName: \"eth_call\", params: 2, inputFormatter: [n.inputCallFormatter, n.inputDefaultBlockNumberFormatter], outputFormatter: o.toData }), t.eth_estimateGas = new i.Method({ callName: \"eth_estimateGas\", params: 1, inputFormatter: [n.inputCallFormatter], outputFormatter: o.toDecimal }), t.eth_submitWork = new i.Method({ callName: \"eth_submitWork\", params: 3, outputFormatter: o.toBoolean }), t.eth_getWork = new i.Method({ callName: \"eth_getWork\", params: 1, outputFormatter: o.toArray }), t.eth_coinbase = new s.Property({ getter: \"eth_coinbase\", outputFormatter: o.toAddress }), t.eth_mining = new s.Property({ getter: \"eth_mining\", outputFormatter: o.toBoolean }), t.eth_hashrate = new s.Property({ getter: \"eth_hashrate\", outputFormatter: o.toDecimal }), t.eth_syncing = new s.Property({ getter: \"eth_syncing\", outputFormatter: n.outputSyncingFormatter }), t.eth_gasPrice = new s.Property({ getter: \"eth_gasPrice\", outputFormatter: n.outputBigNumberFormatter }), t.eth_accounts = new s.Property({ getter: \"eth_accounts\", outputFormatter: o.toArray }), t.eth_blockNumber = new s.Property({ getter: \"eth_blockNumber\", outputFormatter: o.toDecimal }), t.eth_protocolVersion = new s.Property({ getter: \"eth_protocolVersion\", outputFormatter: o.toDecimal }), t.web3_clientVersion = new s.Property({ getter: \"web3_clientVersion\", outputFormatter: o.toString }), t.net_version = new s.Property({ getter: \"net_version\", outputFormatter: o.toString }), t.shh_version = new i.Method({ callName: \"shh_version\", params: 0, outputFormatter: o.toDecimal }), t.shh_post = new i.Method({ callName: \"shh_post\", params: 1, inputFormatter: [null], outputFormatter: o.toBoolean }), t.personal_newAccount = new i.Method({ callName: \"personal_newAccount\", params: 1, inputFormatter: [null], outputFormatter: o.toAddress }), t.personal_importRawKey = new i.Method({ callName: \"personal_importRawKey\", params: 2, outputFormatter: o.toAddress }), t.personal_sign = new i.Method({ callName: \"personal_sign\", params: 3, inputFormatter: [null, n.inputAddressFormatter, null], outputFormatter: o.toData }), t.personal_ecRecover = new i.Method({ callName: \"personal_ecRecover\", params: 2, outputFormatter: o.toAddress }), t.personal_unlockAccount = new i.Method({ callName: \"personal_unlockAccount\", params: 3, inputFormatter: [n.inputAddressFormatter, null, o.toNullDecimal], outputFormatter: o.toBoolean }), t.personal_sendTransaction = new i.Method({ callName: \"personal_sendTransaction\", params: 2, inputFormatter: [n.inputTransactionFormatter, null], outputFormatter: o.toData }), t.personal_lockAccount = new i.Method({ callName: \"personal_lockAccount\", params: 1, inputFormatter: [n.inputAddressFormatter], outputFormatter: o.toBoolean }), t.personal_listAccounts = new s.Property({ getter: \"personal_listAccounts\", outputFormatter: o.toArray }), t.net_listening = new s.Property({ getter: \"net_listening\", outputFormatter: o.toBoolean }), t.net_peerCount = new s.Property({ getter: \"net_peerCount\", outputFormatter: o.toDecimal }), t.eth_newFilter = new i.Method({ callName: \"eth_newFilter\", params: 1, outputFormatter: o.toHex }), t.eth_getLogs = new i.Method({ callName: \"eth_getLogs\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_newBlockFilter = new i.Method({ callName: \"eth_newBlockFilter\", params: 0, outputFormatter: o.toHex }), t.eth_newPendingTransactionFilter = new i.Method({ callName: \"eth_newPendingTransactionFilter\", params: 0, outputFormatter: o.toHex }), t.eth_uninstallFilter = new i.Method({ callName: \"eth_uninstallFilter\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toBoolean }), t.eth_getFilterLogs = new i.Method({ callName: \"eth_getFilterLogs\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_getFilterChanges = new i.Method({ callName: \"eth_getFilterChanges\", params: 1, inputFormatter: [o.toHex], outputFormatter: o.toArray }), t.eth_submitHashrate = new i.Method({ callName: \"eth_submitHashrate\", params: 2, outputFormatter: o.toBoolean }), t.shh_newIdentity = new i.Method({ callName: \"shh_newIdentity\", params: 0, outputFormatter: o.toData }), t.shh_hasIdentity = new i.Method({ callName: \"shh_hasIdentity\", params: 1, outputFormatter: o.toBoolean }), t.shh_newGroup = new i.Method({ callName: \"shh_newGroup\", params: 0, outputFormatter: o.toData }), t.shh_addToGroup = new i.Method({ callName: \"shh_addToGroup\", params: 1, outputFormatter: o.toBoolean }), t.shh_newFilter = new i.Method({ callName: \"shh_newFilter\", params: 1, outputFormatter: o.toHex }), t.shh_uninstallFilter = new i.Method({ callName: \"shh_uninstallFilter\", params: 1, outputFormatter: o.toBoolean }), t.shh_getLogs = new i.Method({ callName: \"shh_getLogs\", params: 1, outputFormatter: o.toArray }), t.shh_getFilterMessages = new i.Method({ callName: \"shh_getFilterMessages\", params: 1, outputFormatter: o.toArray }), t.shh_getFilterChanges = new i.Method({ callName: \"shh_getFilterChanges\", params: 1, outputFormatter: o.toArray }), t.shh_getMessages = new i.Method({ callName: \"shh_getMessages\", params: 1, outputFormatter: o.toArray }); }(e.eth || (e.eth = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(13);\r\n e.Method = /** @class */ (function () {\r\n function class_1(t) {\r\n this.callName = t.callName, this.params = t.params || 0, this.inputFormatter = t.inputFormatter || null, this.outputFormatter = t.outputFormatter, this.requestManager = null;\r\n }\r\n class_1.prototype.validateArgs = function (t) { if (t.length !== this.params)\r\n throw n.InvalidNumberOfRPCParams(this.callName, t.length, this.params); };\r\n class_1.prototype.formatInput = function (t) { return this.inputFormatter ? this.inputFormatter.map(function (e, r) { return e ? e(t[r]) : t[r]; }) : t; };\r\n class_1.prototype.formatOutput = function (t) { return null !== t ? this.outputFormatter(t) : null; };\r\n class_1.prototype.toPayload = function (t) { var e = this.formatInput(t); return this.validateArgs(e), { method: this.callName, params: e }; };\r\n class_1.prototype.execute = function (t) {\r\n var e = [];\r\n for (var _a = 1; _a < arguments.length; _a++) {\r\n e[_a - 1] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var r, n; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n r = this.toPayload(e);\r\n if (!t)\r\n throw new Error(\"Missing RequestManager in method#exec\");\r\n return [4 /*yield*/, t.sendAsync(r)];\r\n case 1:\r\n n = _c.sent();\r\n return [2 /*return*/, this.formatOutput(n)];\r\n }\r\n }); });\r\n };\r\n return class_1;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n e.Property = /** @class */ (function () {\r\n function class_2(t) {\r\n this.getter = t.getter, this.outputFormatter = t.outputFormatter;\r\n }\r\n class_2.prototype.formatOutput = function (t) { return this.outputFormatter(t); };\r\n class_2.prototype.execute = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, t.sendAsync({ method: this.getter, params: [] })];\r\n case 1:\r\n e = _a.sent();\r\n return [2 /*return*/, this.formatOutput(e)];\r\n }\r\n }); });\r\n };\r\n return class_2;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(60), o = r(26), i = r(70);\r\n e.Contract = /** @class */ (function () {\r\n function Contract(t, e, r) {\r\n var s;\r\n this.requestManager = t, this.abi = e, this.address = r, this.events = {}, this.transactionHash = null, this.transactionHash = null, this.address = r, this.abi = e, (s = this).abi.filter(function (t) { return \"function\" === t.type; }).map(function (t) { return new n.SolidityFunction(s.requestManager, t, s.address); }).forEach(function (t) { t.attachToContract(s); }), function (t) { var e = t.abi.filter(function (t) { return \"event\" === t.type; }); new i.AllSolidityEvents(t.requestManager, e, t.address).attachToContract(t), e.map(function (e) { return new o.SolidityEvent(t.requestManager, e, t.address); }).forEach(function (e) { e.attachToContract(t); }); }(this);\r\n }\r\n return Contract;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3);\r\n e.SolidityParam = /** @class */ (function () {\r\n function SolidityParam(t, e) {\r\n this.offset = void 0, this.value = t || \"\", this.offset = e;\r\n }\r\n SolidityParam.prototype.isDynamic = function () { return void 0 !== this.offset; };\r\n SolidityParam.prototype.offsetAsBytes = function () { return this.isDynamic() ? n.padLeft(n.toTwosComplement(this.offset).toString(16), 64) : \"\"; };\r\n SolidityParam.prototype.staticPart = function () { return this.isDynamic() ? this.offsetAsBytes() : this.value; };\r\n SolidityParam.prototype.dynamicPart = function () { return this.isDynamic() ? this.value : \"\"; };\r\n SolidityParam.prototype.encode = function () { return this.staticPart() + this.dynamicPart(); };\r\n return SolidityParam;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(15), s = r(27);\r\n e.SolidityEvent = /** @class */ (function () {\r\n function class_3(t, e, r) {\r\n this.requestManager = t, this.address = r, this._anonymous = !1, this._params = e.inputs, this._name = n.transformToFullName(e), this._anonymous = e.anonymous;\r\n }\r\n class_3.prototype.types = function (t) { return this._params.filter(function (e) { return e.indexed === t; }).map(function (t) { return t.type; }); };\r\n class_3.prototype.displayName = function () { return n.extractDisplayName(this._name); };\r\n class_3.prototype.typeName = function () { return n.extractTypeName(this._name) || \"void\"; };\r\n class_3.prototype.signature = function () { return n.sha3(this._name); };\r\n class_3.prototype.encode = function (t, e) {\r\n if (t === void 0) { t = {}; }\r\n if (e === void 0) { e = {}; }\r\n var r = { topics: [], address: this.address };\r\n [\"fromBlock\", \"toBlock\"].filter(function (t) { return void 0 !== e[t]; }).forEach(function (t) { r[t] = o.inputBlockNumberFormatter(e[t]); }), this._anonymous || r.topics.push(\"0x\" + this.signature());\r\n var s = this._params.filter(function (t) { return !0 === t.indexed; }).map(function (e) { var r = t[e.name]; return null == r ? null : n.isArray(r) ? r.map(function (t) { return \"0x\" + i.coder.encodeParam(e.type, t); }) : \"0x\" + i.coder.encodeParam(e.type, r); });\r\n return r.topics = r.topics.concat(s), r;\r\n };\r\n class_3.prototype.decode = function (t) { t.data = t.data || \"\", t.topics = t.topics || []; var e = (this._anonymous ? t.topics : t.topics.slice(1)).map(function (t) { return t.slice(2); }).join(\"\"), r = i.coder.decodeParams(this.types(!0), e), n = t.data.slice(2), s = i.coder.decodeParams(this.types(!1), n), a = o.outputLogFormatter(t); return a.event = this.displayName(), a.address = t.address, a.args = this._params.reduce(function (t, e) { return t[e.name] = e.indexed ? r.shift() : s.shift(), t; }, {}), delete a.data, delete a.topics, a; };\r\n class_3.prototype.execute = function (t, e) {\r\n return __awaiter(this, void 0, void 0, function () { var r, n; return __generator(this, function (_a) {\r\n r = this.encode(t, e), n = this.decode.bind(this);\r\n return [2 /*return*/, new s.EthFilter(this.requestManager, r, n)];\r\n }); });\r\n };\r\n class_3.prototype.attachToContract = function (t) { var e = this.execute.bind(this), r = this.displayName(); t.events[r] || (t.events[r] = e), t.events[r][this.typeName()] = this.execute.bind(this, t); };\r\n return class_3;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(14), s = r(9);\r\n function a(t) { if (null == t)\r\n return null; var e = String(t).toString(); return 0 === e.indexOf(\"0x\") ? e : n.fromUtf8(e); }\r\n var c = /** @class */ (function () {\r\n function c(t) {\r\n this.requestManager = t, this.isStarted = !1, this.isDisposed = !1, this.filterId = s.future(), this.callbacks = [], this.stopSemaphore = s.future();\r\n }\r\n c.prototype.watch = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var _a, _c; return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (this.isDisposed)\r\n throw new Error(\"The filter was disposed\");\r\n _a = t;\r\n if (!_a) return [3 /*break*/, 3];\r\n this.callbacks.push(t);\r\n _c = this.isStarted;\r\n if (_c) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.start()];\r\n case 1:\r\n _c = (_d.sent());\r\n _d.label = 2;\r\n case 2:\r\n _a = (_c);\r\n _d.label = 3;\r\n case 3:\r\n _a;\r\n return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.start = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t_10, t_9; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (this.isDisposed)\r\n throw new Error(\"The filter was disposed\");\r\n if (!!this.isStarted) return [3 /*break*/, 6];\r\n this.isStarted = !0;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.getNewFilter()];\r\n case 2:\r\n t_10 = _a.sent();\r\n if (!t_10)\r\n throw new Error(\"Could not create a filter, response: \" + JSON.stringify(t_10));\r\n this.filterId.resolve(t_10);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n t_9 = _a.sent();\r\n throw t_9;\r\n case 4:\r\n this.stopSemaphore = s.future();\r\n return [4 /*yield*/, this.poll()];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.stop = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t, _a, _c; return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (!this.isStarted)\r\n return [2 /*return*/];\r\n if (this.isDisposed)\r\n return [2 /*return*/];\r\n this.isDisposed = !0;\r\n return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _d.sent();\r\n this.isStarted = !1;\r\n _a = this.stopSemaphore;\r\n if (!_a) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.stopSemaphore];\r\n case 2:\r\n _a = (_d.sent());\r\n _d.label = 3;\r\n case 3:\r\n _a;\r\n _c = !0;\r\n return [4 /*yield*/, this.uninstall()];\r\n case 4:\r\n if (_c !== (_d.sent()))\r\n throw new Error(\"Couldn't stop the eth filter: \" + t);\r\n return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n c.prototype.poll = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var t_11, t;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.isStarted) return [3 /*break*/, 3];\r\n if (!this.callbacks.length) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.getChanges()];\r\n case 1:\r\n t_11 = _a.sent();\r\n this.callbacks.forEach(function (e) { _this.formatter ? t_11.forEach(function (t) { e(_this.formatter(t)); }) : t_11.forEach(function (t) { return e(t); }); });\r\n _a.label = 2;\r\n case 2:\r\n this.stopSemaphore.resolve(1), this.isStarted && (this.stopSemaphore = s.future(), setTimeout((t = (function () { return _this.poll(); }), function () { t().catch(function (t) { return console.error(t); }); }), i.ETH_POLLING_TIMEOUT));\r\n return [3 /*break*/, 4];\r\n case 3:\r\n this.stopSemaphore.resolve(1);\r\n _a.label = 4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return c;\r\n }());\r\n e.AbstractFilter = c;\r\n e.SHHFilter = /** @class */ (function (_super) {\r\n __extends(class_4, _super);\r\n function class_4(t, e) {\r\n var _this = this;\r\n _this = _super.call(this, t) || this, _this.requestManager = t, _this.options = e, _this.options = _this.options || { topics: [] }, _this.options.topics = _this.options.topics || [], _this.options.topics = _this.options.topics.map(function (t) { return a(t); }), _this.options = { topics: _this.options.topics, to: _this.options.to };\r\n return _this;\r\n }\r\n class_4.prototype.getMessages = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_getMessages(t)];\r\n }\r\n }); });\r\n };\r\n class_4.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.shh_newFilter(this.options)];\r\n }); });\r\n };\r\n class_4.prototype.getChanges = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_getFilterChanges(t)];\r\n }\r\n }); });\r\n };\r\n class_4.prototype.uninstall = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.shh_uninstallFilter(t)];\r\n }\r\n }); });\r\n };\r\n return class_4;\r\n }(c));\r\n var u = /** @class */ (function (_super) {\r\n __extends(u, _super);\r\n function u(t, e, r) {\r\n if (r === void 0) { r = (function (t) { return t; }); }\r\n var _this = this;\r\n _this = _super.call(this, t) || this, _this.requestManager = t, _this.options = e, _this.formatter = r, _this.options = _this.options || {}, _this.options.topics = _this.options.topics || [], _this.options.topics = _this.options.topics.map(function (t) { return a(t); }), _this.options = { topics: _this.options.topics, address: _this.options.address ? _this.options.address : void 0, fromBlock: \"number\" == typeof _this.options.fromBlock || \"string\" == typeof _this.options.fromBlock ? o.inputBlockNumberFormatter(_this.options.fromBlock) : \"latest\", toBlock: \"number\" == typeof _this.options.toBlock || \"string\" == typeof _this.options.toBlock ? o.inputBlockNumberFormatter(_this.options.toBlock) : \"latest\" };\r\n return _this;\r\n }\r\n u.prototype.getLogs = function () {\r\n return __awaiter(this, void 0, void 0, function () { var _a, t; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _a = this.isStarted;\r\n if (_a) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.start()];\r\n case 1:\r\n _a = (_c.sent());\r\n _c.label = 2;\r\n case 2:\r\n _a;\r\n return [4 /*yield*/, this.filterId];\r\n case 3:\r\n t = _c.sent();\r\n return [2 /*return*/, this.requestManager.eth_getFilterLogs(t)];\r\n }\r\n }); });\r\n };\r\n u.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newFilter(this.options)];\r\n }); });\r\n };\r\n u.prototype.getChanges = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.eth_getFilterChanges(t)];\r\n }\r\n }); });\r\n };\r\n u.prototype.uninstall = function () {\r\n return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.filterId];\r\n case 1:\r\n t = _a.sent();\r\n return [2 /*return*/, this.requestManager.eth_uninstallFilter(t)];\r\n }\r\n }); });\r\n };\r\n return u;\r\n }(c));\r\n e.EthFilter = u;\r\n e.EthPendingTransactionFilter = /** @class */ (function (_super) {\r\n __extends(class_5, _super);\r\n function class_5(t) {\r\n return _super.call(this, t, null, function (t) { return t; }) || this;\r\n }\r\n class_5.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newPendingTransactionFilter()];\r\n }); });\r\n };\r\n return class_5;\r\n }(u));\r\n e.EthBlockFilter = /** @class */ (function (_super) {\r\n __extends(class_6, _super);\r\n function class_6(t) {\r\n return _super.call(this, t, null, function (t) { return t; }) || this;\r\n }\r\n class_6.prototype.getNewFilter = function () {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n return [2 /*return*/, this.requestManager.eth_newBlockFilter()];\r\n }); });\r\n };\r\n return class_6;\r\n }(u));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(29);\r\n e.HTTPProvider = n.HTTPProvider;\r\n var o = r(30);\r\n e.WebSocketProvider = o.WebSocketProvider, function (t) { for (var r in t)\r\n e.hasOwnProperty(r) || (e[r] = t[r]); }(r(3));\r\n var i = r(55);\r\n e.RequestManager = i.RequestManager;\r\n var s = r(24);\r\n e.Contract = s.Contract;\r\n var a = r(71);\r\n e.ContractFactory = a.ContractFactory;\r\n var c = r(22);\r\n e.Method = c.Method;\r\n var u = r(23);\r\n e.Property = u.Property;\r\n var l = r(21);\r\n e.eth = l.eth;\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(16);\r\n e.HTTPProvider = /** @class */ (function () {\r\n function class_7(t, e) {\r\n if (e === void 0) { e = {}; }\r\n this.host = t, this.options = e, this.debug = !1, this.host = t || \"http://localhost:8545\";\r\n }\r\n class_7.prototype.send = function () { throw new Error(\"Sync requests are deprecated\"); };\r\n class_7.prototype.sendAsync = function (t, e) {\r\n var _this = this;\r\n try {\r\n var r_3 = null;\r\n if (r_3 = t instanceof Array ? t.map(function (t) { return n.toRPC(t); }) : n.toRPC(t), \"undefined\" == typeof fetch)\r\n throw new Error(\"There is no global fetch object. Please install and import isomorphic-fetch\");\r\n var o = { body: JSON.stringify(r_3), method: \"POST\", headers: Object.assign({}, this.options.headers, { \"Content-Type\": \"application/json\" }) };\r\n this.debug && console.log(\"SEND >> \" + o.body), fetch(this.host, o).then(function (t) { return __awaiter(_this, void 0, void 0, function () { var r_4; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!t.ok) return [3 /*break*/, 2];\r\n return [4 /*yield*/, t.json()];\r\n case 1:\r\n r_4 = _a.sent();\r\n this.debug && console.log(\"RECV << \" + JSON.stringify(r_4)), r_4.error ? e(Object.assign(new Error(r_4.error.json || r_4.error), r_4.error)) : e(null, r_4);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(new Error(\"External error. response code: \" + t.status));\r\n _a.label = 3;\r\n case 3: return [2 /*return*/];\r\n }\r\n }); }); }, function (t) { _this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(t); });\r\n }\r\n catch (t) {\r\n this.debug && console.log(\"ERR << \" + JSON.stringify(t)), e(t);\r\n }\r\n };\r\n return class_7;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(16), o = r(9);\r\n var i = /** @class */ (function () {\r\n function i(t, e) {\r\n if (e === void 0) { e = {}; }\r\n this.url = t, this.options = e, this.isDisposed = !1, this.responseCallbacks = new Map, this.notificationCallbacks = new Set, this.debug = !1, this.lastChunk = \"\", this.connect();\r\n }\r\n i.prototype.dispose = function () { this.isDisposed = !0; var t = this.connection; this.timeout(new Error(\"Provider disposed.\")), t.then(function (t) { return t.close(); }); };\r\n i.prototype.send = function () { throw new Error(\"Sync requests are deprecated\"); };\r\n i.prototype.sendAsync = function (t, e) {\r\n var _this = this;\r\n var r = [];\r\n var i;\r\n if (t instanceof Array)\r\n i = Promise.all(t.map(function (t) { var e = o.future(); try {\r\n var o_7 = n.toRPC(t);\r\n r.push(o_7), _this.responseCallbacks.set(o_7.id, e);\r\n }\r\n catch (t) {\r\n e.reject(t);\r\n } return e; }));\r\n else {\r\n var e_7 = o.future();\r\n try {\r\n var o_8 = n.toRPC(t);\r\n r.push(o_8), this.responseCallbacks.set(o_8.id, e_7);\r\n }\r\n catch (t) {\r\n e_7.reject(t);\r\n }\r\n i = e_7;\r\n }\r\n i.then(function (t) { return e(null, t); }, function (t) { return e(t); }), this.connection.then(function (t) { r.forEach(function (e) { var r = JSON.stringify(e); _this.debug && console.log(\"SEND >> \" + r), t.send(r); }); }, function (t) { e(t); });\r\n };\r\n i.prototype.parseResponse = function (t) {\r\n var _this = this;\r\n var e = [];\r\n return t.replace(/\\}[\\n\\r]?\\{/g, \"}|--|{\").replace(/\\}\\][\\n\\r]?\\[\\{/g, \"}]|--|[{\").replace(/\\}[\\n\\r]?\\[\\{/g, \"}|--|[{\").replace(/\\}\\][\\n\\r]?\\{/g, \"}]|--|{\").split(\"|--|\").forEach(function (t) { var r = t; _this.lastChunk && (r = _this.lastChunk + r); var n = null; try {\r\n n = JSON.parse(r);\r\n }\r\n catch (t) {\r\n return _this.lastChunk = r, clearTimeout(_this.lastChunkTimeout), void (_this.lastChunkTimeout = setTimeout(function () { _this.timeout(); }, 15e3));\r\n } clearTimeout(_this.lastChunkTimeout), _this.lastChunk = null, n && e.push(n); }), e;\r\n };\r\n i.prototype.processMessage = function (t) { if (\"id\" in t) {\r\n var e_8 = t.id, r_5 = this.responseCallbacks.get(e_8);\r\n if (!r_5)\r\n return void console.error(\"Error: Received a response for an unknown request\", t);\r\n this.responseCallbacks.delete(e_8), \"error\" in t ? r_5.reject(Object.assign(new Error(t.error.message || t.error), t.error)) : \"result\" in t && r_5.resolve(t);\r\n }\r\n else\r\n this.notificationCallbacks.forEach(function (e) { return e(null, t); }); };\r\n i.prototype.timeout = function (t) { this.connection && this.connection.isPending || (this.connection = o.future()); var e = t || new Error(\"Connection timeout\"); this.responseCallbacks.forEach(function (t) { return t.reject(e); }), this.responseCallbacks.clear(), this.isDisposed || this.connect(); };\r\n i.prototype.connect = function () {\r\n var _this = this;\r\n this.connection && !this.connection.isPending && this.connection.then(function (t) { return t.close(); }), this.connection && this.connection.isPending || (this.connection = o.future()), this.lastChunk = \"\";\r\n var t = this.options.WebSocketConstructor || (\"undefined\" != typeof WebSocket ? WebSocket : void 0);\r\n if (!t)\r\n throw new Error(\"Please provide a WebSocketConstructor\");\r\n var e = new t(this.url, this.options.protocol);\r\n e.onopen = (function () { _this.connection.resolve(e); }), e.onerror = (function (t) { _this.timeout(t); }), e.onclose = (function (t) { _this.timeout(new Error(\"Connection closed (\" + (t && t.reason || \"Unknown reason\") + \")\")); }), e.onmessage = (function (t) { var e = \"string\" == typeof t.data ? t.data : \"\"; _this.debug && console.log(\"RECV << \" + t.data), _this.parseResponse(e).forEach(function (t) { t instanceof Array ? t.forEach(function (t) { return _this.processMessage(t); }) : _this.processMessage(t); }); });\r\n };\r\n return i;\r\n }());\r\n e.WebSocketProvider = i, e.default = i;\r\n }, function (t, e, r) { !function (t) { var e, r, n, o = String.fromCharCode; function i(t) { for (var e, r, n = [], o = 0, i = t.length; o < i;)\r\n (e = t.charCodeAt(o++)) >= 55296 && e <= 56319 && o < i ? 56320 == (64512 & (r = t.charCodeAt(o++))) ? n.push(((1023 & e) << 10) + (1023 & r) + 65536) : (n.push(e), o--) : n.push(e); return n; } function s(t) { if (t >= 55296 && t <= 57343)\r\n throw Error(\"Lone surrogate U+\" + t.toString(16).toUpperCase() + \" is not a scalar value\"); } function a(t, e) { return o(t >> e & 63 | 128); } function c(t) { if (0 == (4294967168 & t))\r\n return o(t); var e = \"\"; return 0 == (4294965248 & t) ? e = o(t >> 6 & 31 | 192) : 0 == (4294901760 & t) ? (s(t), e = o(t >> 12 & 15 | 224), e += a(t, 6)) : 0 == (4292870144 & t) && (e = o(t >> 18 & 7 | 240), e += a(t, 12), e += a(t, 6)), e += o(63 & t | 128); } function u() { if (n >= r)\r\n throw Error(\"Invalid byte index\"); var t = 255 & e[n]; if (n++, 128 == (192 & t))\r\n return 63 & t; throw Error(\"Invalid continuation byte\"); } function l() { var t, o; if (n > r)\r\n throw Error(\"Invalid byte index\"); if (n == r)\r\n return !1; if (t = 255 & e[n], n++, 0 == (128 & t))\r\n return t; if (192 == (224 & t)) {\r\n if ((o = (31 & t) << 6 | u()) >= 128)\r\n return o;\r\n throw Error(\"Invalid continuation byte\");\r\n } if (224 == (240 & t)) {\r\n if ((o = (15 & t) << 12 | u() << 6 | u()) >= 2048)\r\n return s(o), o;\r\n throw Error(\"Invalid continuation byte\");\r\n } if (240 == (248 & t) && (o = (7 & t) << 18 | u() << 12 | u() << 6 | u()) >= 65536 && o <= 1114111)\r\n return o; throw Error(\"Invalid UTF-8 detected\"); } t.version = \"3.0.0\", t.encode = function (t) { for (var e = i(t), r = e.length, n = -1, o = \"\"; ++n < r;)\r\n o += c(e[n]); return o; }, t.decode = function (t) { e = i(t), r = e.length, n = 0; for (var s, a = []; !1 !== (s = l());)\r\n a.push(s); return function (t) { for (var e, r = t.length, n = -1, i = \"\"; ++n < r;)\r\n (e = t[n]) > 65535 && (i += o((e -= 65536) >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), i += o(e); return i; }(a); }; }(e); }, function (t, e, r) { var n; t.exports = (n = r(0), r(10), r(33), r(34), r(6), r(7), r(11), r(18), r(35), r(19), r(36), r(20), r(37), r(12), r(38), r(5), r(1), r(39), r(40), r(41), r(42), r(43), r(44), r(45), r(46), r(47), r(48), r(49), r(50), r(51), r(52), r(53), r(54), n); }, function (t, e, r) { var n; t.exports = (n = r(0), function () { if (\"function\" == typeof ArrayBuffer) {\r\n var t = n.lib.WordArray, e = t.init;\r\n (t.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || \"undefined\" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) {\r\n for (var r = t.byteLength, n = [], o = 0; o < r; o++)\r\n n[o >>> 2] |= t[o] << 24 - o % 4 * 8;\r\n e.call(this, n, r);\r\n }\r\n else\r\n e.apply(this, arguments); }).prototype = t;\r\n } }(), n.lib.WordArray); }, function (t, e, r) { var n; t.exports = (n = r(0), function () { var t = n, e = t.lib.WordArray, r = t.enc; function o(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935; } r.Utf16 = r.Utf16BE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], o = 0; o < r; o += 2) {\r\n var i = e[o >>> 2] >>> 16 - o % 4 * 8 & 65535;\r\n n.push(String.fromCharCode(i));\r\n } return n.join(\"\"); }, parse: function (t) { for (var r = t.length, n = [], o = 0; o < r; o++)\r\n n[o >>> 1] |= t.charCodeAt(o) << 16 - o % 2 * 16; return e.create(n, 2 * r); } }, r.Utf16LE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, n = [], i = 0; i < r; i += 2) {\r\n var s = o(e[i >>> 2] >>> 16 - i % 4 * 8 & 65535);\r\n n.push(String.fromCharCode(s));\r\n } return n.join(\"\"); }, parse: function (t) { for (var r = t.length, n = [], i = 0; i < r; i++)\r\n n[i >>> 1] |= o(t.charCodeAt(i) << 16 - i % 2 * 16); return e.create(n, 2 * r); } }; }(), n.enc.Utf16); }, function (t, e, r) { var n, o, i, s, a, c; t.exports = (n = r(0), r(18), i = (o = n).lib.WordArray, s = o.algo, a = s.SHA256, c = s.SHA224 = a.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); }, _doFinalize: function () { var t = a._doFinalize.call(this); return t.sigBytes -= 4, t; } }), o.SHA224 = a._createHelper(c), o.HmacSHA224 = a._createHmacHelper(c), n.SHA224); }, function (t, e, r) { var n, o, i, s, a, c, u, l; t.exports = (n = r(0), r(10), r(19), i = (o = n).x64, s = i.Word, a = i.WordArray, c = o.algo, u = c.SHA512, l = c.SHA384 = u.extend({ _doReset: function () { this._hash = new a.init([new s.init(3418070365, 3238371032), new s.init(1654270250, 914150663), new s.init(2438529370, 812702999), new s.init(355462360, 4144912697), new s.init(1731405415, 4290775857), new s.init(2394180231, 1750603025), new s.init(3675008525, 1694076839), new s.init(1203062813, 3204075428)]); }, _doFinalize: function () { var t = u._doFinalize.call(this); return t.sigBytes -= 16, t; } }), o.SHA384 = u._createHelper(l), o.HmacSHA384 = u._createHmacHelper(l), n.SHA384); }, function (t, e, r) {\r\n var n;\r\n t.exports = (n = r(0),\r\n /** @preserve\r\n (c) 2012 by Cédric Mesnil. All rights reserved.\r\n \n Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\r\n \n - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\r\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\r\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\r\n function (t) { var e = n, r = e.lib, o = r.WordArray, i = r.Hasher, s = e.algo, a = o.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), c = o.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), u = o.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), l = o.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), h = o.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), f = o.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), p = s.RIPEMD160 = i.extend({ _doReset: function () { this._hash = o.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); }, _doProcessBlock: function (t, e) { for (var r = 0; r < 16; r++) {\r\n var n = e + r, o = t[n];\r\n t[n] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\r\n } var i, s, p, w, b, B, F, N, k, x, S, A = this._hash.words, O = h.words, T = f.words, P = a.words, M = c.words, C = u.words, E = l.words; for (B = i = A[0], F = s = A[1], N = p = A[2], k = w = A[3], x = b = A[4], r = 0; r < 80; r += 1)\r\n S = i + t[e + P[r]] | 0, S += r < 16 ? d(s, p, w) + O[0] : r < 32 ? m(s, p, w) + O[1] : r < 48 ? y(s, p, w) + O[2] : r < 64 ? g(s, p, w) + O[3] : _(s, p, w) + O[4], S = (S = v(S |= 0, C[r])) + b | 0, i = b, b = w, w = v(p, 10), p = s, s = S, S = B + t[e + M[r]] | 0, S += r < 16 ? _(F, N, k) + T[0] : r < 32 ? g(F, N, k) + T[1] : r < 48 ? y(F, N, k) + T[2] : r < 64 ? m(F, N, k) + T[3] : d(F, N, k) + T[4], S = (S = v(S |= 0, E[r])) + x | 0, B = x, x = k, k = v(N, 10), N = F, F = S; S = A[1] + p + k | 0, A[1] = A[2] + w + x | 0, A[2] = A[3] + b + B | 0, A[3] = A[4] + i + F | 0, A[4] = A[0] + s + N | 0, A[0] = S; }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32, e[14 + (n + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var o = this._hash, i = o.words, s = 0; s < 5; s++) {\r\n var a = i[s];\r\n i[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8);\r\n } return o; }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t; } }); function d(t, e, r) { return t ^ e ^ r; } function m(t, e, r) { return t & e | ~t & r; } function y(t, e, r) { return (t | ~e) ^ r; } function g(t, e, r) { return t & r | e & ~r; } function _(t, e, r) { return t ^ (e | ~r); } function v(t, e) { return t << e | t >>> 32 - e; } e.RIPEMD160 = i._createHelper(p), e.HmacRIPEMD160 = i._createHmacHelper(p); }(Math), n.RIPEMD160);\r\n }, function (t, e, r) { var n, o, i, s, a, c, u, l, h; t.exports = (n = r(0), r(11), r(12), i = (o = n).lib, s = i.Base, a = i.WordArray, c = o.algo, u = c.SHA1, l = c.HMAC, h = c.PBKDF2 = s.extend({ cfg: s.extend({ keySize: 4, hasher: u, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t); }, compute: function (t, e) { for (var r = this.cfg, n = l.create(r.hasher, t), o = a.create(), i = a.create([1]), s = o.words, c = i.words, u = r.keySize, h = r.iterations; s.length < u;) {\r\n var f = n.update(e).finalize(i);\r\n n.reset();\r\n for (var p = f.words, d = p.length, m = f, y = 1; y < h; y++) {\r\n m = n.finalize(m), n.reset();\r\n for (var g = m.words, _ = 0; _ < d; _++)\r\n p[_] ^= g[_];\r\n }\r\n o.concat(f), c[0]++;\r\n } return o.sigBytes = 4 * u, o; } }), o.PBKDF2 = function (t, e, r) { return h.create(r).compute(t, e); }, n.PBKDF2); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.mode.CFB = function () { var t = n.lib.BlockCipherMode.extend(); function e(t, e, r, n) { var o = this._iv; if (o) {\r\n var i = o.slice(0);\r\n this._iv = void 0;\r\n }\r\n else\r\n i = this._prevBlock; n.encryptBlock(i, 0); for (var s = 0; s < r; s++)\r\n t[e + s] ^= i[s]; } return t.Encryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize; e.call(this, t, r, o, n), this._prevBlock = t.slice(r, r + o); } }), t.Decryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize, i = t.slice(r, r + o); e.call(this, t, r, o, n), this._prevBlock = i; } }), t; }(), n.mode.CFB); }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), r(1), n.mode.CTR = (o = n.lib.BlockCipherMode.extend(), i = o.Encryptor = o.extend({ processBlock: function (t, e) { var r = this._cipher, n = r.blockSize, o = this._iv, i = this._counter; o && (i = this._counter = o.slice(0), this._iv = void 0); var s = i.slice(0); r.encryptBlock(s, 0), i[n - 1] = i[n - 1] + 1 | 0; for (var a = 0; a < n; a++)\r\n t[e + a] ^= s[a]; } }), o.Decryptor = i, o), n.mode.CTR); }, function (t, e, r) {\r\n var n;\r\n t.exports = (n = r(0), r(1),\r\n /** @preserve\r\n * Counter block mode compatible with Dr Brian Gladman fileenc.c\r\n * derived from CryptoJS.mode.CTR\r\n * Jan Hruby jhruby.web@gmail.com\r\n */\r\n n.mode.CTRGladman = function () { var t = n.lib.BlockCipherMode.extend(); function e(t) { if (255 == (t >> 24 & 255)) {\r\n var e = t >> 16 & 255, r = t >> 8 & 255, n = 255 & t;\r\n 255 === e ? (e = 0, 255 === r ? (r = 0, 255 === n ? n = 0 : ++n) : ++r) : ++e, t = 0, t += e << 16, t += r << 8, t += n;\r\n }\r\n else\r\n t += 1 << 24; return t; } var r = t.Encryptor = t.extend({ processBlock: function (t, r) { var n = this._cipher, o = n.blockSize, i = this._iv, s = this._counter; i && (s = this._counter = i.slice(0), this._iv = void 0), function (t) { 0 === (t[0] = e(t[0])) && (t[1] = e(t[1])); }(s); var a = s.slice(0); n.encryptBlock(a, 0); for (var c = 0; c < o; c++)\r\n t[r + c] ^= a[c]; } }); return t.Decryptor = r, t; }(), n.mode.CTRGladman);\r\n }, function (t, e, r) { var n, o, i; t.exports = (n = r(0), r(1), n.mode.OFB = (o = n.lib.BlockCipherMode.extend(), i = o.Encryptor = o.extend({ processBlock: function (t, e) { var r = this._cipher, n = r.blockSize, o = this._iv, i = this._keystream; o && (i = this._keystream = o.slice(0), this._iv = void 0), r.encryptBlock(i, 0); for (var s = 0; s < n; s++)\r\n t[e + s] ^= i[s]; } }), o.Decryptor = i, o), n.mode.OFB); }, function (t, e, r) { var n, o; t.exports = (n = r(0), r(1), n.mode.ECB = ((o = n.lib.BlockCipherMode.extend()).Encryptor = o.extend({ processBlock: function (t, e) { this._cipher.encryptBlock(t, e); } }), o.Decryptor = o.extend({ processBlock: function (t, e) { this._cipher.decryptBlock(t, e); } }), o), n.mode.ECB); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.AnsiX923 = { pad: function (t, e) { var r = t.sigBytes, n = 4 * e, o = n - r % n, i = r + o - 1; t.clamp(), t.words[i >>> 2] |= o << 24 - i % 4 * 8, t.sigBytes += o; }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, n.pad.Ansix923); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.Iso10126 = { pad: function (t, e) { var r = 4 * e, o = r - t.sigBytes % r; t.concat(n.lib.WordArray.random(o - 1)).concat(n.lib.WordArray.create([o << 24], 1)); }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e; } }, n.pad.Iso10126); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.Iso97971 = { pad: function (t, e) { t.concat(n.lib.WordArray.create([2147483648], 1)), n.pad.ZeroPadding.pad(t, e); }, unpad: function (t) { n.pad.ZeroPadding.unpad(t), t.sigBytes--; } }, n.pad.Iso97971); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.ZeroPadding = { pad: function (t, e) { var r = 4 * e; t.clamp(), t.sigBytes += r - (t.sigBytes % r || r); }, unpad: function (t) { for (var e = t.words, r = t.sigBytes - 1; !(e[r >>> 2] >>> 24 - r % 4 * 8 & 255);)\r\n r--; t.sigBytes = r + 1; } }, n.pad.ZeroPadding); }, function (t, e, r) { var n; t.exports = (n = r(0), r(1), n.pad.NoPadding = { pad: function () { }, unpad: function () { } }, n.pad.NoPadding); }, function (t, e, r) { var n, o, i, s; t.exports = (n = r(0), r(1), i = (o = n).lib.CipherParams, s = o.enc.Hex, o.format.Hex = { stringify: function (t) { return t.ciphertext.toString(s); }, parse: function (t) { var e = s.parse(t); return i.create({ ciphertext: e }); } }, n.format.Hex); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.BlockCipher, r = t.algo, o = [], i = [], s = [], a = [], c = [], u = [], l = [], h = [], f = [], p = []; !function () { for (var t = [], e = 0; e < 256; e++)\r\n t[e] = e < 128 ? e << 1 : e << 1 ^ 283; var r = 0, n = 0; for (e = 0; e < 256; e++) {\r\n var d = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4;\r\n d = d >>> 8 ^ 255 & d ^ 99, o[r] = d, i[d] = r;\r\n var m = t[r], y = t[m], g = t[y], _ = 257 * t[d] ^ 16843008 * d;\r\n s[r] = _ << 24 | _ >>> 8, a[r] = _ << 16 | _ >>> 16, c[r] = _ << 8 | _ >>> 24, u[r] = _, _ = 16843009 * g ^ 65537 * y ^ 257 * m ^ 16843008 * r, l[d] = _ << 24 | _ >>> 8, h[d] = _ << 16 | _ >>> 16, f[d] = _ << 8 | _ >>> 24, p[d] = _, r ? (r = m ^ t[t[t[g ^ m]]], n ^= t[t[n]]) : r = n = 1;\r\n } }(); var d = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], m = r.AES = e.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) {\r\n for (var t = this._keyPriorReset = this._key, e = t.words, r = t.sigBytes / 4, n = 4 * ((this._nRounds = r + 6) + 1), i = this._keySchedule = [], s = 0; s < n; s++)\r\n if (s < r)\r\n i[s] = e[s];\r\n else {\r\n var a = i[s - 1];\r\n s % r ? r > 6 && s % r == 4 && (a = o[a >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a]) : (a = o[(a = a << 8 | a >>> 24) >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a], a ^= d[s / r | 0] << 24), i[s] = i[s - r] ^ a;\r\n }\r\n for (var c = this._invKeySchedule = [], u = 0; u < n; u++)\r\n s = n - u, a = u % 4 ? i[s] : i[s - 4], c[u] = u < 4 || s <= 4 ? a : l[o[a >>> 24]] ^ h[o[a >>> 16 & 255]] ^ f[o[a >>> 8 & 255]] ^ p[o[255 & a]];\r\n } }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._keySchedule, s, a, c, u, o); }, decryptBlock: function (t, e) { var r = t[e + 1]; t[e + 1] = t[e + 3], t[e + 3] = r, this._doCryptBlock(t, e, this._invKeySchedule, l, h, f, p, i), r = t[e + 1], t[e + 1] = t[e + 3], t[e + 3] = r; }, _doCryptBlock: function (t, e, r, n, o, i, s, a) { for (var c = this._nRounds, u = t[e] ^ r[0], l = t[e + 1] ^ r[1], h = t[e + 2] ^ r[2], f = t[e + 3] ^ r[3], p = 4, d = 1; d < c; d++) {\r\n var m = n[u >>> 24] ^ o[l >>> 16 & 255] ^ i[h >>> 8 & 255] ^ s[255 & f] ^ r[p++], y = n[l >>> 24] ^ o[h >>> 16 & 255] ^ i[f >>> 8 & 255] ^ s[255 & u] ^ r[p++], g = n[h >>> 24] ^ o[f >>> 16 & 255] ^ i[u >>> 8 & 255] ^ s[255 & l] ^ r[p++], _ = n[f >>> 24] ^ o[u >>> 16 & 255] ^ i[l >>> 8 & 255] ^ s[255 & h] ^ r[p++];\r\n u = m, l = y, h = g, f = _;\r\n } m = (a[u >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & f]) ^ r[p++], y = (a[l >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ r[p++], g = (a[h >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & l]) ^ r[p++], _ = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & h]) ^ r[p++], t[e] = m, t[e + 1] = y, t[e + 2] = g, t[e + 3] = _; }, keySize: 8 }); t.AES = e._createHelper(m); }(), n.AES); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib, r = e.WordArray, o = e.BlockCipher, i = t.algo, s = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], a = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], c = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], u = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], l = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], h = i.DES = o.extend({ _doReset: function () { for (var t = this._key.words, e = [], r = 0; r < 56; r++) {\r\n var n = s[r] - 1;\r\n e[r] = t[n >>> 5] >>> 31 - n % 32 & 1;\r\n } for (var o = this._subKeys = [], i = 0; i < 16; i++) {\r\n var u = o[i] = [], l = c[i];\r\n for (r = 0; r < 24; r++)\r\n u[r / 6 | 0] |= e[(a[r] - 1 + l) % 28] << 31 - r % 6, u[4 + (r / 6 | 0)] |= e[28 + (a[r + 24] - 1 + l) % 28] << 31 - r % 6;\r\n for (u[0] = u[0] << 1 | u[0] >>> 31, r = 1; r < 7; r++)\r\n u[r] = u[r] >>> 4 * (r - 1) + 3;\r\n u[7] = u[7] << 5 | u[7] >>> 27;\r\n } var h = this._invSubKeys = []; for (r = 0; r < 16; r++)\r\n h[r] = o[15 - r]; }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._subKeys); }, decryptBlock: function (t, e) { this._doCryptBlock(t, e, this._invSubKeys); }, _doCryptBlock: function (t, e, r) { this._lBlock = t[e], this._rBlock = t[e + 1], f.call(this, 4, 252645135), f.call(this, 16, 65535), p.call(this, 2, 858993459), p.call(this, 8, 16711935), f.call(this, 1, 1431655765); for (var n = 0; n < 16; n++) {\r\n for (var o = r[n], i = this._lBlock, s = this._rBlock, a = 0, c = 0; c < 8; c++)\r\n a |= u[c][((s ^ o[c]) & l[c]) >>> 0];\r\n this._lBlock = s, this._rBlock = i ^ a;\r\n } var h = this._lBlock; this._lBlock = this._rBlock, this._rBlock = h, f.call(this, 1, 1431655765), p.call(this, 8, 16711935), p.call(this, 2, 858993459), f.call(this, 16, 65535), f.call(this, 4, 252645135), t[e] = this._lBlock, t[e + 1] = this._rBlock; }, keySize: 2, ivSize: 2, blockSize: 2 }); function f(t, e) { var r = (this._lBlock >>> t ^ this._rBlock) & e; this._rBlock ^= r, this._lBlock ^= r << t; } function p(t, e) { var r = (this._rBlock >>> t ^ this._lBlock) & e; this._lBlock ^= r, this._rBlock ^= r << t; } t.DES = o._createHelper(h); var d = i.TripleDES = o.extend({ _doReset: function () { var t = this._key.words; this._des1 = h.createEncryptor(r.create(t.slice(0, 2))), this._des2 = h.createEncryptor(r.create(t.slice(2, 4))), this._des3 = h.createEncryptor(r.create(t.slice(4, 6))); }, encryptBlock: function (t, e) { this._des1.encryptBlock(t, e), this._des2.decryptBlock(t, e), this._des3.encryptBlock(t, e); }, decryptBlock: function (t, e) { this._des3.decryptBlock(t, e), this._des2.encryptBlock(t, e), this._des1.decryptBlock(t, e); }, keySize: 6, ivSize: 2, blockSize: 2 }); t.TripleDES = o._createHelper(d); }(), n.TripleDES); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = r.RC4 = e.extend({ _doReset: function () { for (var t = this._key, e = t.words, r = t.sigBytes, n = this._S = [], o = 0; o < 256; o++)\r\n n[o] = o; o = 0; for (var i = 0; o < 256; o++) {\r\n var s = o % r, a = e[s >>> 2] >>> 24 - s % 4 * 8 & 255;\r\n i = (i + n[o] + a) % 256;\r\n var c = n[o];\r\n n[o] = n[i], n[i] = c;\r\n } this._i = this._j = 0; }, _doProcessBlock: function (t, e) { t[e] ^= i.call(this); }, keySize: 8, ivSize: 0 }); function i() { for (var t = this._S, e = this._i, r = this._j, n = 0, o = 0; o < 4; o++) {\r\n r = (r + t[e = (e + 1) % 256]) % 256;\r\n var i = t[e];\r\n t[e] = t[r], t[r] = i, n |= t[(t[e] + t[r]) % 256] << 24 - 8 * o;\r\n } return this._i = e, this._j = r, n; } t.RC4 = e._createHelper(o); var s = r.RC4Drop = o.extend({ cfg: o.cfg.extend({ drop: 192 }), _doReset: function () { o._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)\r\n i.call(this); } }); t.RC4Drop = e._createHelper(s); }(), n.RC4); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = [], i = [], s = [], a = r.Rabbit = e.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, r = 0; r < 4; r++)\r\n t[r] = 16711935 & (t[r] << 8 | t[r] >>> 24) | 4278255360 & (t[r] << 24 | t[r] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; for (this._b = 0, r = 0; r < 4; r++)\r\n c.call(this); for (r = 0; r < 8; r++)\r\n o[r] ^= n[r + 4 & 7]; if (e) {\r\n var i = e.words, s = i[0], a = i[1], u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), h = u >>> 16 | 4294901760 & l, f = l << 16 | 65535 & u;\r\n for (o[0] ^= u, o[1] ^= h, o[2] ^= l, o[3] ^= f, o[4] ^= u, o[5] ^= h, o[6] ^= l, o[7] ^= f, r = 0; r < 4; r++)\r\n c.call(this);\r\n } }, _doProcessBlock: function (t, e) { var r = this._X; c.call(this), o[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, o[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, o[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, o[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16; for (var n = 0; n < 4; n++)\r\n o[n] = 16711935 & (o[n] << 8 | o[n] >>> 24) | 4278255360 & (o[n] << 24 | o[n] >>> 8), t[e + n] ^= o[n]; }, blockSize: 4, ivSize: 2 }); function c() { for (var t = this._X, e = this._C, r = 0; r < 8; r++)\r\n i[r] = e[r]; for (e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {\r\n var n = t[r] + e[r], o = 65535 & n, a = n >>> 16, c = ((o * o >>> 17) + o * a >>> 15) + a * a, u = ((4294901760 & n) * n | 0) + ((65535 & n) * n | 0);\r\n s[r] = c ^ u;\r\n } t[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, t[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, t[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, t[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, t[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, t[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, t[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, t[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0; } t.Rabbit = e._createHelper(a); }(), n.Rabbit); }, function (t, e, r) { var n; t.exports = (n = r(0), r(6), r(7), r(5), r(1), function () { var t = n, e = t.lib.StreamCipher, r = t.algo, o = [], i = [], s = [], a = r.RabbitLegacy = e.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, r = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)\r\n c.call(this); for (o = 0; o < 8; o++)\r\n n[o] ^= r[o + 4 & 7]; if (e) {\r\n var i = e.words, s = i[0], a = i[1], u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), h = u >>> 16 | 4294901760 & l, f = l << 16 | 65535 & u;\r\n for (n[0] ^= u, n[1] ^= h, n[2] ^= l, n[3] ^= f, n[4] ^= u, n[5] ^= h, n[6] ^= l, n[7] ^= f, o = 0; o < 4; o++)\r\n c.call(this);\r\n } }, _doProcessBlock: function (t, e) { var r = this._X; c.call(this), o[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, o[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, o[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, o[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16; for (var n = 0; n < 4; n++)\r\n o[n] = 16711935 & (o[n] << 8 | o[n] >>> 24) | 4278255360 & (o[n] << 24 | o[n] >>> 8), t[e + n] ^= o[n]; }, blockSize: 4, ivSize: 2 }); function c() { for (var t = this._X, e = this._C, r = 0; r < 8; r++)\r\n i[r] = e[r]; for (e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {\r\n var n = t[r] + e[r], o = 65535 & n, a = n >>> 16, c = ((o * o >>> 17) + o * a >>> 15) + a * a, u = ((4294901760 & n) * n | 0) + ((65535 & n) * n | 0);\r\n s[r] = c ^ u;\r\n } t[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, t[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, t[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, t[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, t[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, t[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, t[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, t[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0; } t.RabbitLegacy = e._createHelper(a); }(), n.RabbitLegacy); }, function (t, e, r) {\r\n \"use strict\";\r\n var n = this && this.__decorate || function (t, e, r, n) { var o, i = arguments.length, s = i < 3 ? e : null === n ? n = Object.getOwnPropertyDescriptor(e, r) : n; if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate)\r\n s = Reflect.decorate(t, e, r, n);\r\n else\r\n for (var a = t.length - 1; a >= 0; a--)\r\n (o = t[a]) && (s = (i < 3 ? o(s) : i > 3 ? o(e, r, s) : o(e, r)) || s); return i > 3 && s && Object.defineProperty(e, r, s), s; }, o = this && this.__metadata || function (t, e) { if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.metadata)\r\n return Reflect.metadata(t, e); };\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var i = r(56), s = r(13), a = r(9), c = r(21), u = r(58), l = r(59);\r\n function h(t, e) { var r = c.eth[e]; if (!r)\r\n throw new Error(\"Could not find the method/property named \" + e.toString()); Object.defineProperty(t, e, { value: function () {\r\n var _a;\r\n return (_a = r.execute).call.apply(_a, __spread([r, this], arguments));\r\n } }); }\r\n e.TRANSACTION_FETCH_DELAY = 2e3, e.inject = h;\r\n var f = /** @class */ (function () {\r\n function f(t) {\r\n this.provider = t, this.requests = new Map;\r\n }\r\n f.prototype.sendAsync = function (t) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e, r;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n if (!this.provider)\r\n throw s.InvalidProvider();\r\n e = i.toPayload(t.method, t.params);\r\n r = a.future();\r\n return [2 /*return*/, (this.requests.set(e.id, r), this.provider.sendAsync(e, function (t, n) { _this.requests.delete(e.id), t ? r.reject(t) : i.isValidResponse(n) ? r.resolve(n.result) : r.reject(s.InvalidResponse(n)); }), r)];\r\n });\r\n });\r\n };\r\n f.prototype.setProvider = function (t) { this.provider = t; };\r\n f.prototype.getConfirmedTransaction = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.waitForCompletion(t)];\r\n case 1:\r\n e = _a.sent();\r\n if (this.isFailure(e))\r\n throw new Error(\"Transaction \\\"\" + t + \"\\\" failed\");\r\n return [2 /*return*/, e];\r\n }\r\n }); });\r\n };\r\n f.prototype.waitForCompletion = function (t, r) {\r\n return __awaiter(this, void 0, void 0, function () { var e_9, r_6; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.isTxDropped(t, r)];\r\n case 1:\r\n if (!_a.sent()) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 2:\r\n e_9 = _a.sent();\r\n return [2 /*return*/, Object.assign({}, e_9, { status: u.TransactionStatus.failed })];\r\n case 3: return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 4:\r\n r_6 = _a.sent();\r\n if (!this.isPending(r_6) && r_6.receipt)\r\n return [2 /*return*/, Object.assign({}, r_6, { status: this.isFailure(r_6) ? u.TransactionStatus.failed : u.TransactionStatus.confirmed })];\r\n return [4 /*yield*/, l.sleep(e.TRANSACTION_FETCH_DELAY)];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 3];\r\n case 7: return [2 /*return*/];\r\n }\r\n }); });\r\n };\r\n f.prototype.getTransaction = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e, r, n, t_15, _a, t_12, _c, t_13, _d, t_14; return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n _e.trys.push([0, 4, , 5]);\r\n return [4 /*yield*/, this.eth_accounts()];\r\n case 1:\r\n t_15 = (_e.sent())[0];\r\n _a = t_15;\r\n if (!_a) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.eth_getTransactionCount(t_15, \"latest\")];\r\n case 2:\r\n _a = (e = _e.sent());\r\n _e.label = 3;\r\n case 3:\r\n _a;\r\n return [3 /*break*/, 5];\r\n case 4:\r\n t_12 = _e.sent();\r\n e = null;\r\n return [3 /*break*/, 5];\r\n case 5:\r\n _e.trys.push([5, 7, , 8]);\r\n _c = null;\r\n return [4 /*yield*/, this.eth_getTransactionByHash(t)];\r\n case 6:\r\n if (_c == (r = _e.sent()))\r\n return [2 /*return*/, null];\r\n return [3 /*break*/, 8];\r\n case 7:\r\n t_13 = _e.sent();\r\n return [2 /*return*/, null];\r\n case 8:\r\n if (null == r.blockNumber) {\r\n if (null != e) {\r\n if (r.nonce < e) {\r\n return [2 /*return*/, { hash: t, type: u.TransactionType.replaced, nonce: r.nonce }];\r\n }\r\n if (r.nonce > e) {\r\n return [2 /*return*/, { hash: t, type: u.TransactionType.queued, nonce: r.nonce }];\r\n }\r\n }\r\n return [2 /*return*/, Object.assign({ type: u.TransactionType.pending }, r)];\r\n }\r\n _e.label = 9;\r\n case 9:\r\n _e.trys.push([9, 11, , 12]);\r\n _d = null;\r\n return [4 /*yield*/, this.eth_getTransactionReceipt(t)];\r\n case 10:\r\n if (_d == (n = _e.sent()) || 0 === n.status) {\r\n return [2 /*return*/, Object.assign({ type: u.TransactionType.reverted }, r)];\r\n }\r\n return [3 /*break*/, 12];\r\n case 11:\r\n t_14 = _e.sent();\r\n return [2 /*return*/, null];\r\n case 12: return [2 /*return*/, Object.assign({ type: u.TransactionType.confirmed }, r, { receipt: n })];\r\n }\r\n }); });\r\n };\r\n f.prototype.isTxDropped = function (t, r) {\r\n if (r === void 0) { r = 15; }\r\n return __awaiter(this, void 0, void 0, function () { var n, _a; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n n = r;\r\n _c.label = 1;\r\n case 1:\r\n if (!(n > 0)) return [3 /*break*/, 5];\r\n _a = null;\r\n return [4 /*yield*/, this.getTransactionAndReceipt(t)];\r\n case 2:\r\n if (_a !== (_c.sent()))\r\n return [2 /*return*/, !1];\r\n n -= 1;\r\n return [4 /*yield*/, l.sleep(e.TRANSACTION_FETCH_DELAY)];\r\n case 3:\r\n _c.sent();\r\n _c.label = 4;\r\n case 4: return [3 /*break*/, 1];\r\n case 5: return [2 /*return*/, !0];\r\n }\r\n }); });\r\n };\r\n f.prototype.getTransactionAndReceipt = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var _a, e, r; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0: return [4 /*yield*/, Promise.all([this.eth_getTransactionByHash(t), this.eth_getTransactionReceipt(t)])];\r\n case 1:\r\n _a = __read.apply(void 0, [_c.sent(), 2]), e = _a[0], r = _a[1];\r\n return [2 /*return*/, e ? Object.assign({}, e, { receipt: r }) : null];\r\n }\r\n }); });\r\n };\r\n f.prototype.isPending = function (t) { return t && null === t.blockNumber; };\r\n f.prototype.isFailure = function (t) { return t && (!t.receipt || 0 === t.receipt.status); };\r\n return f;\r\n }());\r\n n([h, o(\"design:type\", Function)], f.prototype, \"web3_clientVersion\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"web3_sha3\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_version\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_peerCount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"net_listening\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_protocolVersion\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_syncing\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_coinbase\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_mining\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_hashrate\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_gasPrice\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_accounts\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_blockNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBalance\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getStorageAt\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionCount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockTransactionCountByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockTransactionCountByNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleCountByBlockHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleCountByBlockNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getCode\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sign\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sendTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_sendRawTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_call\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_estimateGas\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getBlockByNumber\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByHash\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByBlockHashAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionByBlockNumberAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getTransactionReceipt\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleByBlockHashAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getUncleByBlockNumberAndIndex\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newBlockFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_newPendingTransactionFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_uninstallFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getFilterChanges\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getFilterLogs\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getLogs\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_getWork\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_submitWork\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"eth_submitHashrate\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_post\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_version\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newIdentity\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_hasIdentity\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newGroup\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_addToGroup\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_newFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_uninstallFilter\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_getFilterChanges\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"shh_getMessages\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_unlockAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_newAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_listAccounts\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_lockAccount\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_importRawKey\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_sendTransaction\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_sign\", void 0), n([h, o(\"design:type\", Function)], f.prototype, \"personal_ecRecover\", void 0), e.RequestManager = f;\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n function n(t, r) { if (!t)\r\n throw new Error(\"jsonrpc method should be specified!\"); if (\"string\" != typeof t)\r\n throw new Error(\"jsonrpc must be a string, got \" + typeof t + \"!\"); return e.messageId++, { jsonrpc: \"2.0\", id: e.messageId, method: t, params: r || [] }; }\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.messageId = 0, e.toPayload = n, e.isValidResponse = function (t) { return Array.isArray(t) ? t.every(e) : e(t); function e(t) { return !(!t || t.error || \"2.0\" !== t.jsonrpc || \"number\" != typeof t.id || null == t.result && void 0 === t.result); } }, e.toBatchPayload = function (t) { return t.map(function (t) { return n(t.method, t.params); }); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function (t) { t[t.ROUND_UP = 0] = \"ROUND_UP\", t[t.ROUND_DOWN = 1] = \"ROUND_DOWN\", t[t.ROUND_CE = 2] = \"ROUND_CE\", t[t.ROUND_FLOOR = 3] = \"ROUND_FLOOR\", t[t.ROUND_HALF_UP = 4] = \"ROUND_HALF_UP\", t[t.ROUND_HALF_DOWN = 5] = \"ROUND_HALF_DOWN\", t[t.ROUND_HALF_EVEN = 6] = \"ROUND_HALF_EVEN\", t[t.ROUND_HALF_CEIL = 7] = \"ROUND_HALF_CEIL\", t[t.ROUND_HALF_FLOOR = 8] = \"ROUND_HALF_FLOOR\"; }(e.BigNumberRoundingMode || (e.BigNumberRoundingMode = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function (t) { t.pending = \"pending\", t.confirmed = \"confirmed\", t.failed = \"failed\"; }(e.TransactionStatus || (e.TransactionStatus = {})), function (t) { t.queued = \"queued\", t.dropped = \"dropped\", t.replaced = \"replaced\", t.pending = \"pending\", t.reverted = \"reverted\", t.confirmed = \"confirmed\"; }(e.TransactionType || (e.TransactionType = {}));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.sleep = function (t) { return new Promise(function (e) { return setTimeout(e, t); }); };\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(13), s = r(15);\r\n e.SolidityFunction = /** @class */ (function () {\r\n function class_8(t, e, r) {\r\n this.requestManager = t, this.json = e, this._inputTypes = e.inputs.map(function (t) { return t.type; }), this._outputTypes = e.outputs.map(function (t) { return t.type; }), this._constant = e.constant, this._payable = e.payable, this.needsToBeTransaction = \"payable\" in e && e.payable || \"constant\" in e && !e.constant || \"stateMutability\" in e && \"nonpayable\" === e.stateMutability, this._name = n.transformToFullName(e), this._address = r;\r\n }\r\n class_8.prototype.extractDefaultBlock = function (t) { if (t.length > this._inputTypes.length && !n.isObject(t[t.length - 1]))\r\n return o.inputDefaultBlockNumberFormatter(t.pop()); };\r\n class_8.prototype.validateArgs = function (t) { if (t.some(function (t) { return void 0 === t; }))\r\n throw new Error(\"Invalid call, some arguments are undefined\"); var e = t.filter(function (t) { return !(!0 === n.isObject(t) && !1 === n.isArray(t) && !1 === n.isBigNumber(t)); }); if (e.length !== this._inputTypes.length)\r\n throw i.InvalidNumberOfSolidityArgs(e.length, this._inputTypes.length); };\r\n class_8.prototype.toPayload = function (t) { var e = { to: void 0, data: void 0, value: void 0, from: void 0 }; return t.length > this._inputTypes.length && n.isObject(t[t.length - 1]) && (e = t[t.length - 1]), this.validateArgs(t), e.to = this._address, e.data = \"0x\" + this.signature() + s.coder.encodeParams(this._inputTypes, t), e; };\r\n class_8.prototype.signature = function () { return n.sha3(this._name).slice(0, 8); };\r\n class_8.prototype.unpackOutput = function (t) { if (!t)\r\n return; var e = t.length >= 2 ? t.slice(2) : t; var r = s.coder.decodeParams(this._outputTypes, e); return 1 === r.length ? r[0] : r; };\r\n class_8.prototype.execute = function (t) {\r\n var e = [];\r\n for (var _a = 1; _a < arguments.length; _a++) {\r\n e[_a - 1] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var r_7, r_8, n_10, o_9; return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n if (!t)\r\n throw new Error(\"Cannot call function \" + this.displayName() + \" because there is no requestManager\");\r\n if (!this.needsToBeTransaction) return [3 /*break*/, 2];\r\n r_7 = this.toPayload(e);\r\n if (r_7.value > 0 && !this._payable)\r\n throw new Error(\"Cannot send value to non-payable function\");\r\n if (!r_7.from)\r\n throw new Error('Missing \"from\" in transaction options');\r\n return [4 /*yield*/, t.eth_sendTransaction(r_7)];\r\n case 1: return [2 /*return*/, _c.sent()];\r\n case 2:\r\n r_8 = this.extractDefaultBlock(e), n_10 = this.toPayload(e);\r\n return [4 /*yield*/, t.eth_call(n_10, r_8)];\r\n case 3:\r\n o_9 = _c.sent();\r\n return [2 /*return*/, this.unpackOutput(o_9)];\r\n }\r\n }); });\r\n };\r\n class_8.prototype.estimateGas = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n var e = this.toPayload(t);\r\n return this.requestManager.eth_estimateGas(e);\r\n };\r\n class_8.prototype.getData = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return this.toPayload(t).data;\r\n };\r\n class_8.prototype.displayName = function () { return n.extractDisplayName(this._name); };\r\n class_8.prototype.typeName = function () { return n.extractTypeName(this._name) || \"void\"; };\r\n class_8.prototype.attachToContract = function (t) { var e = this.displayName(); var r = this, n = Object.assign(function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n var e = this.requestManager || r.requestManager;\r\n return r.execute.apply(r, __spread([e], t));\r\n }, { estimateGas: this.estimateGas.bind(this) }); t[e] || (t[e] = n), t[e][this.typeName()] = n; };\r\n return class_8;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeAddress = /** @class */ (function (_super) {\r\n __extends(SolidityTypeAddress, _super);\r\n function SolidityTypeAddress() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputAddress }) || this;\r\n }\r\n SolidityTypeAddress.prototype.isType = function (t) { return !!t.match(/address(\\[([0-9]*)\\])?/); };\r\n return SolidityTypeAddress;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeBool = /** @class */ (function (_super) {\r\n __extends(SolidityTypeBool, _super);\r\n function SolidityTypeBool() {\r\n return _super.call(this, { inputFormatter: n.formatInputBool, outputFormatter: n.formatOutputBool }) || this;\r\n }\r\n SolidityTypeBool.prototype.isType = function (t) { return !!t.match(/^bool(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeBool;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeInt = /** @class */ (function (_super) {\r\n __extends(SolidityTypeInt, _super);\r\n function SolidityTypeInt() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputInt }) || this;\r\n }\r\n SolidityTypeInt.prototype.isType = function (t) { return !!t.match(/^int([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeInt;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeUInt = /** @class */ (function (_super) {\r\n __extends(SolidityTypeUInt, _super);\r\n function SolidityTypeUInt() {\r\n return _super.call(this, { inputFormatter: n.formatInputInt, outputFormatter: n.formatOutputUInt }) || this;\r\n }\r\n SolidityTypeUInt.prototype.isType = function (t) { return !!t.match(/^uint([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeUInt;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeDynamicBytes = /** @class */ (function (_super) {\r\n __extends(SolidityTypeDynamicBytes, _super);\r\n function SolidityTypeDynamicBytes() {\r\n return _super.call(this, { inputFormatter: n.formatInputDynamicBytes, outputFormatter: n.formatOutputDynamicBytes }) || this;\r\n }\r\n SolidityTypeDynamicBytes.prototype.isType = function (t) { return !!t.match(/^bytes(\\[([0-9]*)\\])*$/); };\r\n SolidityTypeDynamicBytes.prototype.isDynamicType = function () { return !0; };\r\n return SolidityTypeDynamicBytes;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeString = /** @class */ (function (_super) {\r\n __extends(SolidityTypeString, _super);\r\n function SolidityTypeString() {\r\n return _super.call(this, { inputFormatter: n.formatInputString, outputFormatter: n.formatOutputString }) || this;\r\n }\r\n SolidityTypeString.prototype.isType = function (t) { return !!t.match(/^string(\\[([0-9]*)\\])*$/); };\r\n SolidityTypeString.prototype.isDynamicType = function () { return !0; };\r\n return SolidityTypeString;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeReal = /** @class */ (function (_super) {\r\n __extends(SolidityTypeReal, _super);\r\n function SolidityTypeReal() {\r\n return _super.call(this, { inputFormatter: n.formatInputReal, outputFormatter: n.formatOutputReal }) || this;\r\n }\r\n SolidityTypeReal.prototype.isType = function (t) { return !!t.match(/real([0-9]*)?(\\[([0-9]*)\\])?/); };\r\n return SolidityTypeReal;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeUReal = /** @class */ (function (_super) {\r\n __extends(SolidityTypeUReal, _super);\r\n function SolidityTypeUReal() {\r\n return _super.call(this, { inputFormatter: n.formatInputReal, outputFormatter: n.formatOutputUReal }) || this;\r\n }\r\n SolidityTypeUReal.prototype.isType = function (t) { return !!t.match(/^ureal([0-9]*)?(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeUReal;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(2), o = r(4);\r\n e.SolidityTypeBytes = /** @class */ (function (_super) {\r\n __extends(SolidityTypeBytes, _super);\r\n function SolidityTypeBytes() {\r\n return _super.call(this, { inputFormatter: n.formatInputBytes, outputFormatter: n.formatOutputBytes }) || this;\r\n }\r\n SolidityTypeBytes.prototype.isType = function (t) { return !!t.match(/^bytes([0-9]{1,})(\\[([0-9]*)\\])*$/); };\r\n return SolidityTypeBytes;\r\n }(o.SolidityType));\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(8), i = r(26), s = r(27);\r\n e.AllSolidityEvents = /** @class */ (function () {\r\n function class_9(t, e, r) {\r\n this._requestManager = t, this._json = e, this._address = r;\r\n }\r\n class_9.prototype.encode = function (t) {\r\n if (t === void 0) { t = {}; }\r\n var e = { address: this._address };\r\n return [\"fromBlock\", \"toBlock\"].filter(function (e) { return void 0 !== t[e]; }).forEach(function (r) { e[r] = o.inputBlockNumberFormatter(t[r]); }), e;\r\n };\r\n class_9.prototype.decode = function (t) { t.data = t.data || \"\"; var e = n.isArray(t.topics) && n.isString(t.topics[0]) ? t.topics[0].slice(2) : \"\", r = this._json.filter(function (t) { return e === n.sha3(n.transformToFullName(t)); })[0]; return r ? new i.SolidityEvent(this._requestManager, r, this._address).decode(t) : o.outputLogFormatter(t); };\r\n class_9.prototype.execute = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { var e, r; return __generator(this, function (_a) {\r\n e = this.encode(t), r = this.decode.bind(this);\r\n return [2 /*return*/, new s.EthFilter(this._requestManager, e, r)];\r\n }); });\r\n };\r\n class_9.prototype.attachToContract = function (t) { var e = this.execute.bind(this); t.allEvents = e; };\r\n return class_9;\r\n }());\r\n }, function (t, e, r) {\r\n \"use strict\";\r\n Object.defineProperty(e, \"__esModule\", { value: !0 });\r\n var n = r(3), o = r(15), i = r(24), s = r(9);\r\n function a(t, e) { return t.filter(function (t) { return \"constructor\" === t.type && t.inputs.length === e.length; }).map(function (t) { return t.inputs.map(function (t) { return t.type; }); }).map(function (t) { return o.coder.encodeParams(t, e); })[0] || \"\"; }\r\n e.ContractFactory = /** @class */ (function () {\r\n function class_10(t, e) {\r\n this.requestManager = t, this.abi = e;\r\n }\r\n class_10.prototype.deploy = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var e, r, o, _c, _d, i, c, u; return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n r = t[t.length - 1];\r\n if (n.isObject(r) && !n.isArray(r) && (e = t.pop()), !e)\r\n throw new Error(\"Missing options object\");\r\n if (!e.data || \"string\" != typeof e.data)\r\n throw new Error(\"Invalid options.data\");\r\n if (e.value > 0 && !(this.abi.filter(function (e) { return \"constructor\" === e.type && e.inputs.length === t.length; })[0] || {}).payable)\r\n throw new Error(\"Cannot send value to non-payable constructor\");\r\n o = a(this.abi, t);\r\n e.data += o;\r\n _c = e.gas;\r\n if (_c) return [3 /*break*/, 2];\r\n _d = e;\r\n return [4 /*yield*/, this.requestManager.eth_estimateGas(e)];\r\n case 1:\r\n _c = (_d.gas = _e.sent());\r\n _e.label = 2;\r\n case 2:\r\n _c;\r\n return [4 /*yield*/, this.requestManager.eth_sendTransaction(e)];\r\n case 3:\r\n i = _e.sent();\r\n return [4 /*yield*/, function (t, e) {\r\n return __awaiter(this, void 0, void 0, function () { var r, n, o, i, a; return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n r = s.future();\r\n n = 0;\r\n o = function () { ++n > 50 ? r.reject(new Error(\"Contract transaction couldn't be found after 50 blocks\")) : t.eth_getTransactionReceipt(e).then(function (t) { t && t.blockHash ? r.resolve(t) : setTimeout(o, 1e3); }, function (t) { return r.reject(t); }); };\r\n o();\r\n return [4 /*yield*/, r];\r\n case 1:\r\n i = _a.sent();\r\n return [4 /*yield*/, t.eth_getCode(i.contractAddress, \"latest\")];\r\n case 2:\r\n a = _a.sent();\r\n if (a.length > 3)\r\n return [2 /*return*/, i.contractAddress];\r\n throw Object.assign(new Error(\"The contract code couldn't be stored, please check your gas amount.\"), { response: a, receipt: i });\r\n }\r\n }); });\r\n }(this.requestManager, i)];\r\n case 4:\r\n c = _e.sent();\r\n return [4 /*yield*/, this.at(c)];\r\n case 5:\r\n u = _e.sent();\r\n return [2 /*return*/, (u.transactionHash = i, u)];\r\n }\r\n }); });\r\n };\r\n class_10.prototype.at = function (t) {\r\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\r\n if (!n.isAddress(t))\r\n throw new TypeError(\"Invalid address \" + JSON.stringify(t));\r\n return [2 /*return*/, new i.Contract(this.requestManager, this.abi, t)];\r\n }); });\r\n };\r\n class_10.prototype.getData = function () {\r\n var t = [];\r\n for (var _a = 0; _a < arguments.length; _a++) {\r\n t[_a] = arguments[_a];\r\n }\r\n return __awaiter(this, void 0, void 0, function () { var e, r, o; return __generator(this, function (_c) {\r\n e = { data: void 0 };\r\n r = t[t.length - 1];\r\n if (n.isObject(r) && !n.isArray(r) && (e = t.pop()), !e)\r\n throw new Error(\"Missing options object\");\r\n if (!e.data || \"string\" != typeof e.data)\r\n throw new Error(\"Invalid options.data\");\r\n o = a(this.abi, t);\r\n return [2 /*return*/, (e.data += o, e.data)];\r\n }); });\r\n };\r\n return class_10;\r\n }());\r\n }]);\r\n exports.default = ethconnect;\r\n});\r\n// tslint:disable\r\ndefine(\"node_modules/eth-connect/esm\", [\"require\", \"exports\", \"node_modules/eth-connect/eth-connect.esm\"], function (require, exports, eth_connect_esm_1) {\r\n \"use strict\";\r\n var EthConnect = eth_connect_esm_1.default;\r\n return EthConnect;\r\n});\r\ndefine(\"src/abis/PoapDelegateMint\", [\"require\", \"exports\"], function (require, exports) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.default = [\r\n {\r\n inputs: [\r\n {\r\n internalType: 'address',\r\n name: '_poapContractAddress',\r\n type: 'address',\r\n },\r\n { internalType: 'address', name: '_validSigner', type: 'address' },\r\n ],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'constructor',\r\n },\r\n {\r\n anonymous: false,\r\n inputs: [\r\n {\r\n indexed: false,\r\n internalType: 'bytes',\r\n name: '_signedMessage',\r\n type: 'bytes',\r\n },\r\n ],\r\n name: 'VerifiedSignature',\r\n type: 'event',\r\n },\r\n {\r\n constant: false,\r\n inputs: [\r\n { internalType: 'uint256', name: 'event_id', type: 'uint256' },\r\n { internalType: 'address', name: 'receiver', type: 'address' },\r\n { internalType: 'bytes', name: 'signedMessage', type: 'bytes' },\r\n ],\r\n name: 'mintToken',\r\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'name',\r\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'owner',\r\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [{ internalType: 'bytes', name: '', type: 'bytes' }],\r\n name: 'processed',\r\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n {\r\n constant: true,\r\n inputs: [],\r\n name: 'validSigner',\r\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\r\n payable: false,\r\n stateMutability: 'view',\r\n type: 'function',\r\n },\r\n ];\r\n});\r\ndefine(\"src/game\", [\"require\", \"exports\", \"src/dispenser\"], function (require, exports, dispenser_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.sceneMessageBus = void 0;\r\n exports.sceneMessageBus = new MessageBus();\r\n var POAPBooth = new dispenser_1.Dispenser(new GLTFShape('models/POAP_dispenser.glb'), {\r\n position: new Vector3(8, 0, 8),\r\n });\r\n exports.sceneMessageBus.on('activatePoap', function () {\r\n POAPBooth.activate();\r\n });\r\n});\r\n// let POAPBooth = new Entity()\r\n// POAPBooth.addComponent(new Transform()).position = new Vector3(8, 0, 8)\r\n// POAPBooth.addComponent(new GLTFShape('models/dispenser.glb'))\r\n// engine.addEntity(POAPBooth)\r\n// POAPBooth.addComponent(\r\n// new OnPointerDown((e) => {\r\n// makeTransaction()\r\n// })\r\n// )\r\ndefine(\"src/poapHandler\", [\"require\", \"exports\", \"@decentraland/Identity\", \"node_modules/eth-connect/esm\", \"@decentraland/EthereumController\", \"@decentraland/web3-provider\", \"src/abis/PoapDelegateMint\", \"src/game\"], function (require, exports, Identity_1, eth, EthereumController, web3_provider_1, PoapDelegateMint_1, game_1) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.makeTransaction = exports.callAPI = exports.ethController = void 0;\r\n exports.ethController = EthereumController;\r\n var poapSignerAddress = '0xa4b4b7b9bbaf770af51f491f11f72cdfe253eb02';\r\n var userData;\r\n function fetchUserData() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, Identity_1.getUserData()];\r\n case 1:\r\n data = _a.sent();\r\n log(data.displayName);\r\n return [2 /*return*/, data];\r\n }\r\n });\r\n });\r\n }\r\n function callAPI(user) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, response, json, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n url = 'http://localhost:5001/non-dcl-experiments/us-central1/app/get-poap-code?playerid=' +\r\n user +\r\n '&code=2';\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 4, , 5]);\r\n return [4 /*yield*/, fetch(url)];\r\n case 2:\r\n response = _b.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 3:\r\n json = _b.sent();\r\n log(json);\r\n return [2 /*return*/, json];\r\n case 4:\r\n _a = _b.sent();\r\n log('error fetching from POAP handling server ', url);\r\n return [3 /*break*/, 5];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.callAPI = callAPI;\r\n function makeTransaction() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var userId, json, signature, event, signer, provider, rm, poapTokenFactory, PoapDelegatedMint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n userId = '0xe2b6024873d218B2E83B462D3658D8D7C3f55a18';\r\n if (!!userData) return [3 /*break*/, 2];\r\n return [4 /*yield*/, fetchUserData()];\r\n case 1:\r\n userData = _a.sent();\r\n userId = userData.userId;\r\n _a.label = 2;\r\n case 2:\r\n if (!userData.hasConnectedWeb3) {\r\n log('no wallet');\r\n //return\r\n }\r\n return [4 /*yield*/, callAPI(userId)];\r\n case 3:\r\n json = _a.sent();\r\n signature = json.signedCode;\r\n event = json.event;\r\n signer = json.signer;\r\n return [4 /*yield*/, web3_provider_1.getProvider()];\r\n case 4:\r\n provider = _a.sent();\r\n rm = new eth.RequestManager(provider);\r\n return [4 /*yield*/, new eth.ContractFactory(rm, PoapDelegateMint_1.default)];\r\n case 5:\r\n poapTokenFactory = _a.sent();\r\n return [4 /*yield*/, poapTokenFactory.at(\r\n //ropsten\r\n //'0x2f3c23b50396EcB55C73956B069CF04e493bdEf9'\r\n //mainnet\r\n '0xAac2497174f2Ec4069A98375A67D798db8a05337')];\r\n case 6:\r\n PoapDelegatedMint = (_a.sent());\r\n return [4 /*yield*/, PoapDelegatedMint.mintToken(event, userId, signature, {\r\n from: userData.userId,\r\n }).then(game_1.sceneMessageBus.emit('activatePoap', {}))];\r\n case 7:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n exports.makeTransaction = makeTransaction;\r\n});\r\ndefine(\"src/dispenser\", [\"require\", \"exports\", \"node_modules/decentraland-ecs-utils/index\", \"src/poapHandler\", \"src/game\"], function (require, exports, index_1, poapHandler_1, game_2) {\r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n exports.Dispenser = void 0;\r\n var Dispenser = /** @class */ (function (_super) {\r\n __extends(Dispenser, _super);\r\n function Dispenser(model, transform, wearableName, id\r\n //,sound: AudioClip\r\n ) {\r\n var _this = _super.call(this) || this;\r\n _this.idleAnim = new AnimationState('Idle_POAP', { looping: true });\r\n _this.buyAnim = new AnimationState('Action_POAP', { looping: false });\r\n _this.buttonAnim = new AnimationState('Button_Action', { looping: false });\r\n engine.addEntity(_this);\r\n _this.addComponent(model);\r\n _this.addComponent(new Transform(transform));\r\n _this.addComponent(new Animator());\r\n _this.getComponent(Animator).addClip(_this.idleAnim);\r\n _this.getComponent(Animator).addClip(_this.buyAnim);\r\n _this.idleAnim.play();\r\n _this.id = id;\r\n var button = new Entity();\r\n button.addComponent(new GLTFShape('models/POAP_button.glb'));\r\n button.addComponent(new Animator());\r\n button.getComponent(Animator).addClip(_this.buttonAnim);\r\n button.setParent(_this);\r\n button.addComponent(new OnPointerDown(function (e) {\r\n button.getComponent(Animator).getClip('Action').stop();\r\n button.getComponent(Animator).getClip('Action').play();\r\n game_2.sceneMessageBus.emit('activatePoap', {});\r\n poapHandler_1.makeTransaction();\r\n //openUI1(wearableName, this)\r\n }, { hoverText: 'Get Attendance Token' }));\r\n engine.addEntity(button);\r\n return _this;\r\n //this.addComponent(new AudioSource(sound))\r\n }\r\n Dispenser.prototype.activate = function () {\r\n var anim = this.getComponent(Animator);\r\n anim.getClip('Idle_POAP').stop();\r\n anim.getClip('Action_POAP').stop();\r\n anim.getClip('Action_POAP').play();\r\n this.addComponentOrReplace(new index_1.default.Delay(4000, function () {\r\n anim.getClip('Action_POAP').stop();\r\n anim.getClip('Idle_POAP').play();\r\n }));\r\n };\r\n return Dispenser;\r\n }(Entity));\r\n exports.Dispenser = Dispenser;\r\n});\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9jb21wb25lbnQvaXRyYW5zZm9ybWNvbXBvbmVudC50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9tYXRoL2ludGVycG9sYXRpb24udHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L3JvdGF0ZS50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9jb21wb25lbnQvc2NhbGUudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L2ZvbGxvd3BhdGgudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90cmFuc2Zvcm0vY29tcG9uZW50L2tlZXByb3RhdGluZy50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RyYW5zZm9ybS9zeXN0ZW0vdHJhbnNmcm9tU3lzdGVtLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdHJhbnNmb3JtL2NvbXBvbmVudC9tb3ZlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdG9nZ2xlL3RvZ2dsZUNvbXBvbmVudC50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL3RpbWVyL2NvbXBvbmVudC9pdGltZXJjb21wb25lbnQudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90aW1lci9jb21wb25lbnQvaW50ZXJ2YWwudHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy90aW1lci9jb21wb25lbnQvZXhwaXJlLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdGltZXIvc3lzdGVtL3RpbWVyU3lzdGVtLnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdGltZXIvY29tcG9uZW50L2RlbGF5LnRzIiwiLi4vbm9kZV9tb2R1bGVzL2RlY2VudHJhbGFuZC1lY3MtdXRpbHMvdHJpZ2dlcnMvdHJpZ2dlclN5c3RlbS50cyIsIi4uL25vZGVfbW9kdWxlcy9kZWNlbnRyYWxhbmQtZWNzLXV0aWxzL2FjdGlvbnNTZXF1ZW5jZVN5c3RlbS9hY3Rpb25zU2VxdWVuY2VTeXN0ZW0udHMiLCIuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy9pbmRleC50cyIsIi4uL25vZGVfbW9kdWxlcy9ldGgtY29ubmVjdC9ldGgtY29ubmVjdC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvZXRoLWNvbm5lY3QvZXNtLnRzIiwiLi4vc3JjL2FiaXMvUG9hcERlbGVnYXRlTWludC5qcyIsIi4uL3NyYy9nYW1lLnRzIiwiLi4vc3JjL3BvYXBIYW5kbGVyLnRzIiwiLi4vc3JjL2Rpc3BlbnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0FBLElBQVksaUJBS1g7SUFMRCxXQUFZLGlCQUFpQjtRQUMzQiw2REFBTSxDQUFBO1FBQ04scUVBQVUsQ0FBQTtRQUNWLHVFQUFXLENBQUE7UUFDWCxpRUFBUSxDQUFBO0lBQ1YsQ0FBQyxFQUxXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBSzVCO0lBRUQsU0FBZ0IsV0FBVyxDQUFDLElBQXVCLEVBQUUsQ0FBUztRQUM1RCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssaUJBQWlCLENBQUMsTUFB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QUMsSUFBRSxXQUFXLElBQUUsT0FBTyxNQUFNLElBQUUsTUFBTSxDQUFDLFdBQVcsSUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxNQUFNLENBQUMsV0FBVyxFQUFDLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7UUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxRQUFRLElBQUUsT0FBTyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxVQUFVO1FBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUM7UUFBQyxLQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUEsY0FBVyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLGNBQVcsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxNQUFNLENBQUMsTUFBTSxJQUFFLGNBQVcsU0FBUyxDQUFDLEtBQUcsQ0FBQyxDQUFBLE9BQU8sVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLElBQUksRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUUsSUFBSSxDQUFDLElBQUksS0FBRyxDQUFDLENBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxjQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxJQUFJLEVBQUMsY0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLElBQUksQ0FBQztnQkFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUEsQ0FBQSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsSUFBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2lCQUFDOztnQkFBSyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO29CQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUUsQ0FBQyxFQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxVQUFVLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxVQUFVLENBQUMsQ0FBQSxPQUFPLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxHQUFDLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLFVBQVUsRUFBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFDLFNBQVMsRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBRztnQkFBQyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDO1lBQUEsT0FBTSxDQUFDLEVBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsUUFBUSxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztvQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsSUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxhQUFhLEVBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUUsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFTLENBQUMsSUFBRSxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsYUFBYSxFQUFDLGNBQVcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxJQUFFLE9BQU0sRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7U0FBQzs7WUFBSyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxHQUFDLEVBQUMsR0FBRyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDO2dCQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsSUFBSSxDQUFDLFVBQVUsSUFBRSxJQUFJLENBQUMsZUFBZTtnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO2lCQUFJO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7Z0JBQUEsSUFBSSxDQUFDLGNBQWMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxLQUFLLElBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUEsSUFBRyxJQUFJLENBQUMsVUFBVSxJQUFFLElBQUksQ0FBQyxlQUFlLEVBQUM7Z0JBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQztpQkFBSTtnQkFBQyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Z0JBQUssSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUEsSUFBRyxVQUFVLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLFVBQVUsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLElBQUUsRUFBRSxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTSxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTSxHQUFHLEtBQUcsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLElBQUUsR0FBRyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrRUFBa0UsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFFLEdBQUcsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxDQUFDLENBQUMsY0FBYyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsdUJBQXVCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLGlFQUFpRSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUEsQ0FBQyxDQUFBLEdBQUcsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxrRUFBa0UsS0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHdCQUF3QixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLEtBQUssS0FBRyxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLElBQUUsSUFBSSxLQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFDLFlBQVksRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQztZQUFBLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxZQUFZLEVBQUMsSUFBSSxFQUFDLFlBQVksRUFBQyxPQUFPLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsSUFBSSxFQUFDLFlBQVksRUFBQyxLQUFLLEVBQUMsZUFBZSxFQUFDLFVBQVUsRUFBQyxlQUFlLEVBQUMsS0FBSyxFQUFDLGVBQWUsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsVUFBVSxFQUFDLGtCQUFrQixFQUFDLEtBQUssRUFBQyxrQkFBa0IsRUFBQyxLQUFLLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxFQUFDLHdCQUF3QixFQUFDLEtBQUssRUFBQyx3QkFBd0IsRUFBQyxNQUFNLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxFQUFDLDhCQUE4QixFQUFDLE1BQU0sRUFBQyxpQ0FBaUMsRUFBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFFLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBSTtnQkFBSixrQkFBQSxFQUFBLEtBQUcsQ0FBQztnQkFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7Z0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsR0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFDLENBQUMsQ0FBQztvQkFBQSxJQUFHLENBQUMsS0FBRyxHQUFDLEVBQUM7d0JBQUMsSUFBRyxDQUFDLENBQUM7NEJBQUMsTUFBTTt3QkFBQSxDQUFDLElBQUUsSUFBSSxDQUFBO3FCQUFDO3lCQUFJO3dCQUFDLElBQUksR0FBQyxHQUFDLEdBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQUEsQ0FBQyxJQUFFLEdBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLEdBQUMsR0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFDLENBQUE7cUJBQUM7aUJBQUM7Z0JBQUEsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFBO1lBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEtBQUssR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsUUFBUSxJQUFFLE9BQU8sQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFNLEdBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLEtBQUcsR0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLEtBQUcsR0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQUMsT0FBTyxHQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLFFBQVEsQ0FBQyxHQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsR0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQSxDQUFDLENBQUEsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLEtBQUssQ0FBQyxLQUFHLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLEVBQUUsRUFBQyxHQUFDLEVBQUU7Z0JBQUMsSUFBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDO29CQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFBLENBQUEsQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxPQUFNLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBRSxRQUFRLEtBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sU0FBUyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsR0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFFLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxLQUFJLElBQUksS0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxHQUFDLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxLQUFHLEdBQUM7b0JBQUMsTUFBTTtnQkFBQSxDQUFDLElBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxLQUFJLElBQUksS0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxHQUFDLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUFBLENBQUMsSUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUc7Z0JBQUgsa0JBQUEsRUFBQSxLQUFHO2dCQUFFLElBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQztnQkFBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxHQUFDLEVBQUUsRUFBQztvQkFBQyxJQUFJLEdBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFBQSxDQUFDLElBQUUsR0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUcsR0FBQyxHQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUMsQ0FBQTtpQkFBQztnQkFBQSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQTtZQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLFFBQVEsSUFBRSxPQUFPLENBQUMsSUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sUUFBUSxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sU0FBUyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLGtFQUFrRSxFQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUcsS0FBSyxDQUFDLEtBQUcsQ0FBQztnQkFBQyxPQUFNLEVBQUUsQ0FBQyxDQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxHQUFDLEVBQUU7Z0JBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUEyQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxVQUFVLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksS0FBRyxDQUFDLElBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUc7Z0JBQUMsT0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDO1lBQUEsT0FBTSxDQUFDLEVBQUM7Z0JBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFB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TyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsUUFBUSxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsR0FBQyxHQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsR0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEdBQUMsR0FBQyxHQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7b0JBQUEsS0FBSSxJQUFJLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxJQUFFLENBQUM7d0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsR0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsT0FBTyxDQUFDLENBQUE7aUJBQUMsQ0FBQSxJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxHQUFDLEdBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQztvQkFBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLElBQUUsQ0FBQzt3QkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxHQUFDLEVBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxPQUFPLENBQUMsQ0FBQTtpQkFBQyxDQUFBLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFBQyxJQUFJLEdBQUMsR0FBQyxRQUFRLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxHQUFDLEdBQUMsUUFBUSxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxHQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLEdBQUMsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxHQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSxtQkFBQztZQUFELENBQUMsQUFBOTVELEdBQTg1RCxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUcsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxPQUFPLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxHQUFFO2dCQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUM7Z0JBQUMsT0FBSyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUM7b0JBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEdBQUMsRUFBRSxDQUFDO2dCQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLElBQUcsQ0FBQyxHQUFDLENBQUMsRUFBQztvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUE7aUJBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsSUFBSSxFQUFDLG1FQUFtRSxFQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFNLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sUUFBUSxLQUFHLENBQUMsSUFBRSxTQUFTLEtBQUcsQ0FBQyxJQUFFLFVBQVUsS0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUcsS0FBSyxDQUFDLEtBQUcsQ0FBQyxJQUFFLElBQUksSUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUksS0FBRyxDQUFDLENBQUMsV0FBVyxJQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLElBQUksS0FBRyxDQUFDLENBQUMsZ0JBQWdCLElBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLElBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTSxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUEsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLENBQUMsQ0FBQyx3QkFBd0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHVCQUF1QixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZ0NBQWdDLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMseUJBQXlCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLElBQUksR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyx5QkFBeUIsR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLFFBQVEsSUFBRSxPQUFPLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLEtBQUssQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFTLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsMEJBQTBCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxpQ0FBaUMsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLFdBQVcsSUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxJQUFJLEtBQUcsQ0FBQyxDQUFDLGdCQUFnQixJQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxvQkFBb0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksS0FBRyxDQUFDLENBQUMsTUFBTSxJQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsS0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLElBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMscUJBQXFCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsYUFBYSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxJQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLFNBQVMsQ0FBQyxLQUFHLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLElBQU0sQ0FBQyxHQUFDLElBQUksT0FBTyxDQUFDLFVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxVQUFBLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLFVBQUEsQ0FBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBQSxDQUFDLElBQUUsT0FBQSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFqQixDQUFpQixDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLFNBQVMsSUFBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsVUFBQSxDQUFDLElBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLEdBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQUk7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQztvQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFBO2lCQUFDO2dCQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsUUFBUSxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQywyQkFBMkIsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyw4REFBNEQsQ0FBQyxvQkFBZSxDQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsd0JBQXdCLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksS0FBSyxD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R0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBQyxDQUFDLEVBQUMsR0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDO29CQUFBLElBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFDLENBQUMsRUFBQzt3QkFBQyxJQUFJLEdBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQzt3QkFBQSxLQUFJLElBQUksR0FBQyxHQUFDLENBQUMsRUFBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxHQUFDLEVBQUU7NEJBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBQyxJQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFDLEdBQUMsR0FBQyxHQUFDLEdBQUMsRUFBRSxHQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO3FCQUFDO29CQUFBLElBQUksR0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDO29CQUFBLEtBQUksSUFBSSxHQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUMsR0FBQyxHQUFDLEVBQUMsR0FBQyxFQUFFLEVBQUM7d0JBQUMsSUFBSSxHQUFDLEdBQUMsR0FBQyxHQUFDLENBQUMs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LENBQUMsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBNEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUcsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUUsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWdELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFFLFFBQVEsSUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWdELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLFVBQVMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBQyw0Q0FBNEMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsb0JBQW9CLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyx3REFBd0QsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLGdCQUFnQixFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBRTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQztvQkFBQyxDQUFDO2dCQUFBLENBQUMsSUFBRSxDQUFDLENBQUE7YUFBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLFVBQVUsQ0FBQyxHQUFDLENBQUMsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLGlCQUFpQixDQUFBLENBQUMsQ0FBQSxtQkFBbUIsQ0FBQSxDQUFDLENBQUEsMkJBQTJCLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsT0FBTSxnQkFBZ0IsSUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUM7WUFBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQztvQkFBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUM7aUJBQUssSUFBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLElBQUUsQ0FBQyxDQUFBO2FBQUM7O2dCQUFLLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQztZQUFBLENBQUMsQ0FBQyxHQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLEVBQUMsV0FBVyxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUMsZ0JBQWdCLEVBQUMsR0FBRyxFQUFDLGNBQWMsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxrQkFBa0IsRUFBQyxDQUFDLEVBQUMsc0JBQXNCLEVBQUMsR0FBRyxFQUFDLGlCQUFpQixFQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsR0FBQyxzQ0FBc0MsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLFlBQVksQ0FBQztvQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxDQUFDLEdBQUMsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7b0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUM7d0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTs0QkFBQyxDQUFDO3dCQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO3FCQUFDO29CQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFBO2lCQUFDO3FCQUFJO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDO3dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUE7aUJBQUM7YUFBQztpQkFBSTtnQkFBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsRUFBRSxJQUFFLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFBLElBQUcsQ0FBQyxHQUFDLFFBQVEsSUFBRSxPQUFPLENBQUMsRUFBQztvQkFBQyxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQzt3QkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLElBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFDLEVBQUU7d0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQzs7b0JBQUssQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLElBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzt3QkFBQyxJQUFHLEdBQUcsSUFBRSxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzs0QkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDOzRCQUFBLFNBQVE7eUJBQUM7d0JBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO3FCQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLEtBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsS0FBSyxJQUFFLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7b0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQztxQkFBSyxJQUFHLENBQUMsR0FBQyxDQUFDO29CQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUFJO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM7d0JBQUMsS0FBSSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7NEJBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7cUJBQUM7O3dCQUFLLENBQUMsSUFBRSxDQUFDLENBQUM7b0JBQUEsT0FBSyxDQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsR0FBRzt3QkFBQyxDQUFDO29CQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUM7YUFBQzs7Z0JBQUssQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxJQUFFLENBQUM7Z0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQztpQkFBSyxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFDO2dCQUFDLE9BQUssQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsR0FBRyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDO2dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUM7aUJBQUssSUFBRyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQztnQkFBQyxJQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUM7b0JBQUMsS0FBSSxDQUFDLElBQUUsR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsSUFBRSxHQUFHO3dCQUFDLENBQUM7YUFBQztpQkFBSyxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsR0FBRyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxJQUFFLEdBQUc7b0JBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFFO2dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFBLE1BQUs7aUJBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLENBQUMsRUFBQztvQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO3dCQUFDLENBQUM7b0JBQUEsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQzt3QkFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDO3lCQUFLLElBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBQzt3QkFBQyxJQUFHLENBQUMsQ0FBQzs0QkFBQyxNQUFNLENBQUMsQ0FBQzt3QkFBQSxPQUFLLENBQUMsQ0FBQyxNQUFNLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUFDLENBQUM7d0JBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtxQkFBQzt5QkFBSTt3QkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTs0QkFBQyxDQUFDO3dCQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFBO3FCQUFDO29CQUFBLElBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO29CQUFBLElBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDO3dCQUFDLFNBQU87NEJBQUMsSUFBRyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dDQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0NBQUMsQ0FBQztnQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsRUFBRTtvQ0FBQyxDQUFDO2dDQUFBLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUFBLE1BQUs7NkJBQUM7NEJBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDO2dDQUFDLE1BQU07NEJBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7eUJBQUM7b0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTt3QkFBQyxDQUFDO2lCQUFDO2dCQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUcsUUFBUSxJQUFFLE9BQU8sQ0FBQztvQkFBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEdBQUMsbUJBQW1CLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxnQkFBZ0IsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsZUFBZSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxnQkFBZ0IsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxPQUFPLENBQUM7b0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQUk7d0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7NEJBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxtQkFBbUIsR0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FB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QyxDQUFDLEdBQUcsR0FBQyxjQUFXLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsR0FBQyxnQkFBZ0IsR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQSxjQUFXLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxjQUFXLE9BQU8sT0FBTyxHQUFDLENBQUMsVUFBVSxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLE9BQU8sR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7Z0JBQUMsSUFBRyxNQUFNLENBQUMsZUFBZSxFQUFDO29CQUFDLEtBQUksQ0FBQyxHQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7d0JBQUUsQ0FBQyxDQUFDLEdBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2lCQUFDO3FCQUFJO29CQUFDLElBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVzt3QkFBQyxNQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQUEsS0FBSSxDQUFDLEdBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7d0JBQUUsQ0FBQyxDQUFDLEdBQUMsZUFBZSxHQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQSxDQUFDLENBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtpQkFBQyxDQUFBLElBQUcsQ0FBQyxDQUFDO2dCQUFDLE9BQUssQ0FBQyxHQUFDLENBQUM7b0JBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFJO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLGNBQVcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBRTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDO29CQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUEsQ0FBQSxDQUFDLENBQUEsT0FBTyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLFlBQVksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxZQUFZLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQUk7Z0JBQUMsSUFBRyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDO29CQUFDLEtBQUksRUFBRSxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDO3dCQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFBRSxDQUFDO2dCQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxjQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsRUFBRTtnQkFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDO2dCQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDOztnQkFBSyxLQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzt3QkFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQzt3QkFBQSxNQUFLO3FCQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDO2dCQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFJO2dCQUFDLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsRUFBRSxDQUFDO2dCQUFBLEdBQUU7b0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzt3QkFBQyxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7NEJBQUMsS0FBSSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7Z0NBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQzs7NEJBQUssQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQzt3QkFBQSxJQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQzs0QkFBQyxPQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDO2dDQUFFLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO3FCQUFDOzt3QkFBSyxDQUFDLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQyxRQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxJQUFFLElBQUksSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFBQSxDQUFDLEdBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUMsRUFBQztnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQzs7Z0JBQUssQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLDZCQUE2QixFQUFDLENBQUMsR0FBQyxhQUFhLEVBQUMsQ0FBQyxHQUFDLGFBQWEsRUFBQyxDQUFDLEdBQUMsb0JBQW9CLEVBQUMsQ0FBQyxHQUFDLDRCQUE0QixFQUFDLENBQUMsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUM7aUJBQUk7Z0JBQUMsSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLEdBQUcsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsQ0FBQSxHQUFHLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztvQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFHLENBQUMsQ0FBQyxLQUFLO29CQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLFFBQVEsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxHQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUE7YUFBQyxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsRUFBRSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHLElBQUksSUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE9BQUssQ0FBQyxHQUFDLEVBQUUsSUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7Z0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLDJCQUEyQixHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDO2lCQUFJO2dCQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsU0FBUyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLEtBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFHO2dCQUFDLElBQUcsQ0FBQyxFQUFDO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxNQUFNO29CQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsSUFBRyxDQUFDLEVBQUM7b0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBQyxNQUFNO29CQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDO3FCQUFJO29CQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFDLE1BQU07b0JBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLGNBQVcsT0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLHNCQUFzQixHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsY0FBVyxPQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxjQUFXLE9BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsY0FBVyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsY0FBVyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsY0FBVyxPQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDO2dCQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztvQkFBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQztnQkFBQyxLQUFJLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO2FBQUM7O2dCQUFLLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDO3dCQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLE1BQUs7cUJBQUMsQ0FBQSxJQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFDLENBQUM7Z0JBQUMsT0FBSyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxDQUFDO29CQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUU7Z0JBQUMsSUFBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDO3dCQUFDLENBQUM7b0JBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFLLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDO2dCQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxJQUFFLENBQUMsR0FBRTtnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUM7b0JBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUM7b0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsSUFBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQztnQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7YUFBQyxDQUFBLEtBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDO2dCQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFBLElBQUcsSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQztnQkFBQyxPQUFLLENBQUMsR0FBQyxFQUFFLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQzthQUFDLENBQUEsT0FBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxjQUFXLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEdBQUcsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUUsR0FBRyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLEtBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7b0JBQUcsSUFBRyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUM7d0JBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsRUFBQyxNQUFNLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLE1BQU0sSUFBRSxDQUFDLENBQUMsRUFBQzs0QkFBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFBQSxNQUFLO3lCQUFDO3dCQUFBLElBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDOzRCQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7NEJBQUEsTUFBSzt5QkFBQzt3QkFBQSxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtxQkFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsSUFBSSxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFBQSxJQUFHLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM7b0JBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUM7d0JBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUMsQ0FBQyxHQUFDLE1BQU0sRUFBQyxHQUFHLENBQUMsRUFBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxJQUFJLElBQUUsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFDLFdBQVcsR0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQSxDQUFDLENBQUEsZ0JBQWdCLENBQUEsQ0FBQyxDQUFBLGtCQUFrQixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEtBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLGNBQVcsT0FBTSxDQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFPLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxVQUFVLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEtBQUssQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLGNBQVcsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU8sSUFBSSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxHQUFHLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxjQUFXLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsRUFBRTtZQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFBLE9BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU8sVUFBVSxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUU7WUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFHLENBQUMsR0FBQyxFQUFFO29CQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztxQkFBSTtvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUM7b0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsU0FBUyxDQUFDLEtBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsSUFBRyxDQUFDLEdBQUMsRUFBRTtvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUFJO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLElBQUksRUFBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFFLEdBQUMsQ0FBQyxFQUFFLEtBQUcsRUFBRSxHQUFDLEVBQUUsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUMsRUFBRSxLQUFHLEVBQUUsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsRUFBRSxLQUFHLEVBQUUsR0FBQyxFQUFFLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLEVBQUUsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUUsS0FBRyxDQUFDLEdBQUMsRUFBRSxJQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBRyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO29CQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsS0FBRyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxJQUFJLEVBQUUsRUFBQyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxFQUFFLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxFQUFFLElBQUUsRUFBRSxDQUFDLEtBQUcsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBRSxFQUFFLENBQUMsS0FBRyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUUsS0FBRyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLEtBQUcsRUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLEtBQUcsRUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtTQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztnQkFBQyxJQUFHLENBQUMsR0FBQyxDQUFDLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxJQUFFLENBQUMsR0FBQyxFQUFFLENBQUE7aUJBQUM7Z0JBQUEsR0FBRyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsR0FBRyxDQUFBLENBQUMsQ0FBQSxDQUFDLEtBQUcsQ0FBQyxDQUFBO2FBQUM7WUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFJLENBQUMsU0FBUyxHQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUUsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7b0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO3dCQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7b0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBRSxDQUFDLENBQUE7aUJBQUM7Z0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQztvQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBQSxDQUFDLENBQUMsSUFBSSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQTtpQkFBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQzt3QkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7cUJBQUM7Z0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEdBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFBQSxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFD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LENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFDLElBQUksQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGdCQUFnQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxhQUFhLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxzQkFBc0IsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsd0JBQXdCLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFDLGFBQWEsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsYUFBYSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLElBQUksQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHFCQUFxQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxxQkFBcUIsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsZUFBZSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBQyxJQUFJLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHdCQUF3QixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyx3QkFBd0IsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLEVBQUMsSUFBSSxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxvQkFBb0IsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLHFCQUFxQixHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyx1QkFBdUIsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxNQUFNLEVBQUMsZUFBZSxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQU0sRUFBQyxlQUFlLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGVBQWUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxhQUFhLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLCtCQUErQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHFCQUFxQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLG1CQUFtQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsb0JBQW9CLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHNCQUFzQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLG9CQUFvQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQWMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxlQUFlLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxxQkFBcUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxhQUFhLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLHFCQUFxQixHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyx1QkFBdUIsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsb0JBQW9CLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLHNCQUFzQixFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFB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QUM7b0JBQUEsSUFBSSxDQUFDLGNBQWMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxFQUFFLEVBQUMsSUFBSSxDQUFDLGVBQWUsR0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLGVBQWUsR0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLFVBQVUsS0FBRyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU0sT0FBTyxLQUFHLENBQUMsQ0FBQyxJQUFJLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FB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QyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7b0JBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLElBQUUsT0FBTSxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsT0FBTyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLElBQUksSUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFNLElBQUksR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLElBQUksR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7b0JBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQTtnQkFBQSxDQUFDO2dCQUFBLHdCQUFNLEdBQU4sVUFBTyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsSUFBSSxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLElBQUUsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxF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LEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsaUJBQWlCLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLElBQUksQ0FBQztnQkFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGNBQWMsR0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLGVBQWUsR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO1lBQUUsWUFBWSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxZQUFZO2dCQUFPLGlCQUFZLENBQUMsRUFBQyxDQUFJO29CQUFKLGtCQUFBLEVBQUEsTUFBSTtvQkFBRSxJQUFJLENBQUMsSUFBSSxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxJQUFJLEdBQUMsQ0FBQyxJQUFFLHVCQUF1QixDQUFBO2dCQUFBLENBQUM7Z0JBQUEsc0JBQUksR0FBSixjQUFPLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsMkJBQVMsR0FBVCxVQUFVLENBQUMsRUFBQyxDQUFDO29CQUFiLGlCQUF5ekI7b0JBQTF5QixJQUFHO3dCQUFDLElBQUksR0FBQyxHQUFDLElBQUksQ0FBQzt3QkFBQSxJQUFHLEdBQUMsR0FBQyxDQUFDLFlBQVksS0FBSyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBVixDQUFVLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxXQUFXLElBQUUsT0FBTyxLQUFLOzRCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkVBQTZFLENBQUMsQ0FBQzt3QkFBQSxJQUFNLENBQUMsR0FBQyxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFDLEVBQUMsY0FBYyxFQUFDLGtCQUFrQixFQUFDLENBQUMsRUFBQyxDQUFDO3dCQUFBLElBQUksQ0FBQyxLQUFLLElBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFNLENBQUM7Ozt5Q0FBTSxDQUFDLENBQUMsRUFBRSxFQUFKLHdCQUFJO29DQUFVLHFCQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBQTs7b0NBQWhCLE1BQUUsU0FBYztvQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxHQUFDLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBRSxHQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsR0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLEVBQUMsR0FBQyxDQUFDLENBQUE7OztvQ0FBTSxJQUFJLENBQUMsS0FBSyxJQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7Ozs7aUNBQUMsRUFBQyxVQUFBLENBQUMsSUFBRyxLQUFJLENBQUMsS0FBSyxJQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQTtxQkFBQztvQkFBQSxPQUFNLENBQUMsRUFBQzt3QkFBQyxJQUFJLENBQUMsS0FBSyxJQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7cUJBQUM7Z0JBQUEsQ0FBQztnQkFBQSxjQUFDO1lBQUQsQ0FBQyxBQUF6OUIsR0FBeTlCLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQUEsSUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQTtnQkFBUSxXQUFZLENBQUMsRUFBQyxDQUFJO29CQUFKLGtCQUFBLEVBQUEsTUFBSTtvQkFBRSxJQUFJLENBQUMsR0FBRyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBQyxJQUFJLEdBQUcsRUFBQyxJQUFJLENBQUMscUJBQXFCLEdBQUMsSUFBSSxHQUFHLEVBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsU0FBUyxHQUFDLEVBQUUsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSxtQkFBTyxHQUFQLGNBQVUsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQU0sQ0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFULENBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSxnQkFBSSxHQUFKLGNBQU8sTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBLENBQUEsQ0FBQztnQkFBQSxxQkFBUyxHQUFULFVBQVUsQ0FBQyxFQUFDLENBQUM7b0JBQWIsaUJBQXVkO29CQUF4YyxJQUFNLENBQUMsR0FBQyxFQUFFLENBQUM7b0JBQUEsSUFBSSxDQUFDLENBQUM7b0JBQUEsSUFBRyxDQUFDLFlBQVksS0FBSzt3QkFBQyxDQUFDLEdBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFHLElBQU0sQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBLElBQUc7NEJBQUMsSUFBTSxHQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQTt5QkFBQzt3QkFBQSxPQUFNLENBQUMsRUFBQzs0QkFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO3lCQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUFJO3dCQUFDLElBQU0sR0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFBQSxJQUFHOzRCQUFDLElBQU0sR0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxFQUFFLEVBQUMsR0FBQyxDQUFDLENBQUE7eUJBQUM7d0JBQUEsT0FBTSxDQUFDLEVBQUM7NEJBQUMsR0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTt5QkFBQzt3QkFBQSxDQUFDLEdBQUMsR0FBQyxDQUFBO3FCQUFDO29CQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUUsT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFULENBQVMsRUFBQyxVQUFBLENBQUMsSUFBRSxPQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBSixDQUFJLENBQUMsRUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFHLElBQU0sQ0FBQyxHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsS0FBSyxJQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFBLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQTtnQkFBQSxDQUFDO2dCQUFBLHlCQUFhLEdBQWIsVUFBYyxDQUFDO29CQUFmLGlCQUF5ZTtvQkFBeGQsSUFBSSxDQUFDLEdBQUMsRUFBRSxDQUFDO29CQUFBLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBRyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsU0FBUyxJQUFFLENBQUMsQ0FBQyxHQUFDLEtBQUksQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFHO3dCQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO3FCQUFDO29CQUFBLE9BQU0sQ0FBQyxFQUFDO3dCQUFDLE9BQU8sS0FBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsWUFBWSxDQUFDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLEtBQUksQ0FBQyxLQUFJLENBQUMsZ0JBQWdCLEdBQUMsVUFBVSxDQUFDLGNBQUssS0FBSSxDQUFDLE9BQU8sRUFBRSxDQUFBLENBQUEsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7cUJBQUMsQ0FBQSxZQUFZLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsS0FBSSxDQUFDLFNBQVMsR0FBQyxJQUFJLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUE7Z0JBQUEsQ0FBQztnQkFBQSwwQkFBYyxHQUFkLFVBQWUsQ0FBQyxJQUFFLElBQUcsSUFBSSxJQUFHLENBQUMsRUFBQztvQkFBQyxJQUFNLEdBQUMsR0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLEdBQUMsR0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDO29CQUFBLElBQUcsQ0FBQyxHQUFDO3dCQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxFQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFBLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBQyxDQUFDLEVBQUMsT0FBTyxJQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsUUFBUSxJQUFHLENBQUMsSUFBRSxHQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDOztvQkFBSyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsRUFBVCxDQUFTLENBQUMsQ0FBQSxDQUFBLENBQUM7Z0JBQUEsbUJBQU8sR0FBUCxVQUFRLENBQUMsSUFBRSxJQUFJLENBQUMsVUFBVSxJQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxJQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFBLElBQU0sQ0FBQyxHQUFDLENBQUMsSUFBRSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBRSxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQVgsQ0FBVyxDQUFDLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFDLElBQUksQ0FBQyxVQUFVLElBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBLENBQUEsQ0FBQztnQkFBQSxtQkFBTyxHQUFQO29CQUFBLGlCQUFtd0I7b0JBQXp2QixJQUFJLENBQUMsVUFBVSxJQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLElBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUUsT0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQVQsQ0FBUyxDQUFDLEVBQUMsSUFBSSxDQUFDLFVBQVUsSUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxFQUFFLENBQUM7b0JBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsSUFBRSxDQUFDLFdBQVcsSUFBRSxPQUFPLFNBQVMsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFBLENBQUMsQ0FBQSxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUFBLElBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztvQkFBQSxJQUFNLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQUEsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLGNBQUssS0FBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsVUFBQSxDQUFDLElBQUcsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxVQUFBLENBQUMsSUFBRyxLQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLHlCQUFzQixDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBRSxnQkFBZ0IsT0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxVQUFBLENBQUMsSUFBRyxJQUFJLENBQUMsR0FBQyxRQUFRLElBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQSxLQUFJLENBQUMsS0FBSyxJQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBRyxDQUFDLFlBQVksS0FBSyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsS0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFBLENBQUMsQ0FBQSxLQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQTtnQkFBQSxDQUFDO2dCQUFBLFFBQUM7WUFBRCxDQUFDLEFBQWhvRixJQUFnb0Y7WUFBQSxDQUFDLENBQUMsaUJBQWlCLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQztZQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFFLEtBQUssSUFBRSxDQUFDLElBQUUsS0FBSyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEtBQUssSUFBRSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLElBQUcsQ0FBQyxJQUFFLEtBQUssSUFBRSxDQUFDLElBQUUsS0FBSztZQUFDLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixHQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUMsd0JBQXdCLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxHQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRSxJQUFHLENBQUMsSUFBRSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFFLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxHQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxFQUFFLEdBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsS0FBRyxJQUFHLENBQUMsSUFBRSxDQUFDO1lBQUMsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsRUFBRSxFQUFDLEdBQUcsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUM7WUFBQyxPQUFPLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQSxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxHQUFDLENBQUM7WUFBQyxNQUFNLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLElBQUUsQ0FBQztZQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFHLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFBLElBQUcsR0FBRyxJQUFFLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxFQUFDO1lBQUMsSUFBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsSUFBRSxHQUFHO2dCQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQUEsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtTQUFDLENBQUEsSUFBRyxHQUFHLElBQUUsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEVBQUM7WUFBQyxJQUFHLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsSUFBRSxJQUFJO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUFBLE1BQU0sS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUE7U0FBQyxDQUFBLElBQUcsR0FBRyxJQUFFLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEVBQUUsSUFBRSxFQUFFLEdBQUMsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLElBQUUsS0FBSyxJQUFFLENBQUMsSUFBRSxPQUFPO1lBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQztZQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQztZQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEdBQUMsQ0FBQztZQUFFLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsS0FBSyxDQUFDLEtBQUcsRUFBRSxHQUFDLElBQUksR0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLElBQUksR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBRyxVQUFVLElBQUUsT0FBTyxXQUFXLEVBQUM7WUFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBQyxVQUFTLENBQUMsSUFBRSxJQUFHLENBQUMsWUFBWSxXQUFXLElBQUUsQ0FBQyxDQUFDLEdBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxTQUFTLElBQUUsV0FBVyxJQUFFLE9BQU8saUJBQWlCLElBQUUsQ0FBQyxZQUFZLGlCQUFpQixJQUFFLENBQUMsWUFBWSxVQUFVLElBQUUsQ0FBQyxZQUFZLFdBQVcsSUFBRSxDQUFDLFlBQVksVUFBVSxJQUFFLENBQUMsWUFBWSxXQUFXLElBQUUsQ0FBQyxZQUFZLFlBQVksSUFBRSxDQUFDLFlBQVksWUFBWSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsWUFBWSxVQUFVLEVBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUM7O2dCQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQTtTQUFDLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxRQUFRLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsT0FBTyxHQUFDLEVBQUMsU0FBUyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQztnQkFBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsRUFBQyxTQUFTLEVBQUMsVUFBUyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsS0FBSyxFQUFDLFVBQVMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxXQUFXLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxRQUFRLElBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLElBQUksQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsd2lGOzs7Ozs7Ozs7c0JBU0c7Z0JBQ0gsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxlQUFlLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7d0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQTtxQkFBQyxDQUFBLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLElBQUUsQ0FBQzt3QkFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsV0FBVyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7d0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQTtxQkFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxjQUFXLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxPQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFHLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsR0FBRTtnQkFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO29CQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUFDO2dCQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7YUFBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO1lBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFHLEdBQUMsS0FBSyxDQUFDLENBQUE7U0FBQzs7WUFBSyxDQUFDLEdBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxJQUFFLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsR0FBRyxHQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLElBQUksQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeGxJOzs7O3VCQUlJO2dCQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRyxHQUFHLElBQUUsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLEdBQUcsQ0FBQyxFQUFDO29CQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsR0FBRyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQztvQkFBQSxHQUFHLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQTtpQkFBQzs7b0JBQUssQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxVQUFTLENBQUMsSUFBRSxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTt3QkFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxHQUFHLEdBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFDLEVBQUMsR0FBRyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxRQUFRLElBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFDLEVBQUMsR0FBRyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxLQUFLLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQSxDQUFBLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBQyxFQUFDLEdBQUcsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUMsUUFBUSxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7Z0JBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUMsRUFBQyxHQUFHLEVBQUMsY0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFDLGNBQVcsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBQyxFQUFDLFNBQVMsRUFBQyxVQUFTLENBQUMsSUFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLEtBQUssRUFBQyxVQUFTLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsRUFBRTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLElBQUUsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxHQUFHLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQztZQUFBLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQztZQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsR0FBQyxHQUFHLEdBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFFLElBQUksQ0FBQyxjQUFjLEtBQUcsSUFBSSxDQUFDLElBQUksRUFBQztnQkFBQyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxjQUFjLEdBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxZQUFZLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsSUFBRyxDQUFDLEdBQUMsQ0FBQzt3QkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUFJO3dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQUEsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtxQkFBQztnQkFBQSxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxlQUFlLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsSUFBRSxDQUFDLElBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGFBQWEsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxHQUFHLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztnQkFBQSxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQTthQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLFdBQVcsR0FBQyxFQUFFLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsWUFBWSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxhQUFhLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUM7Z0JBQUMsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO29CQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQztnQkFBQSxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7YUFBQyxDQUFBLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQSxJQUFJLENBQUMsT0FBTyxHQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsT0FBTyxJQUFFLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsT0FBTyxJQUFFLENBQUMsRUFBQyxJQUFJLENBQUMsT0FBTyxJQUFFLENBQUMsSUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxZQUFZLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFlBQVksRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBVyxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUMsY0FBVyxLQUFJLElBQUksQ0FBQyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFBQSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQztnQkFBQSxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBO2FBQUMsQ0FBQSxJQUFJLENBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztZQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDO1lBQUEsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLE9BQU8sSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFHLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxjQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxPQUFPLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxLQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7Z0JBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxVQUFVLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUM7Z0JBQUEsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtvQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQUMsQ0FBQSxDQUFDLEVBQUMsZUFBZSxFQUFDLFVBQVMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxDQUFBLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUEsU0FBUyxDQUFDLEtBQUcsS0FBSSxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztZQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQTtTQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLGNBQVcsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsS0FBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO2dCQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLElBQUcsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsS0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLEdBQUMsVUFBVSxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDO2dCQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUFDLENBQUEsQ0FBQyxFQUFDLGVBQWUsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsQ0FBQSxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRTtnQkFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsQ0FBQyxLQUFHLEtBQUksSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsSUFBSSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUM7WUFBQyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUE7U0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxJQUFJLENBQUMsR0FBQyxJQUFJLElBQUUsSUFBSSxDQUFDLFVBQVUsSUFBRSxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsRUFBQyxDQUFDLEdBQUMsU0FBUyxDQUFDLE1BQU0sRUFBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLEtBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLEdBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUEsSUFBRyxRQUFRLElBQUUsT0FBTyxPQUFPLElBQUUsVUFBVSxJQUFFLE9BQU8sT0FBTyxDQUFDLFFBQVE7Z0JBQUMsQ0FBQyxHQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7O2dCQUFLLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLENBQUMsRUFBQyxDQUFDLEVBQUU7b0JBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxPQUFPLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLEVBQUMsQ0FBQyxHQUFDLElBQUksSUFBRSxJQUFJLENBQUMsVUFB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RUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsZUFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHFCQUFxQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsWUFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGtCQUFrQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHlCQUF5QixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG9DQUFvQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHNDQUFzQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLDhCQUE4QixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGdDQUFnQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsd0JBQXdCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG9CQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHNCQUFzQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLDBCQUEwQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHVDQUF1QyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLHlDQUF5QyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLDJCQUEyQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGlDQUFpQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG1DQUFtQyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGVBQWUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxvQkFBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQ0FBaUMsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLG9CQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxhQUFhLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFDLGVBQWUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxpQkFBaUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx3QkFBd0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxxQkFBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx1QkFBdUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyx1QkFBdUIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQywwQkFBMEIsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsb0JBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxHQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsSUFBRyxDQUFDLENBQUM7Z0JBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLENBQUEsSUFBRyxRQUFRLElBQUUsT0FBTyxDQUFDO2dCQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQWlDLE9BQU8sQ0FBQyxNQUFHLENBQUMsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFDLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLElBQUUsRUFBRSxFQUFDLENBQUEsQ0FBQSxDQUFDO1lBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxHQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxHQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxLQUFLLElBQUUsS0FBSyxLQUFHLENBQUMsQ0FBQyxPQUFPLElBQUUsUUFBUSxJQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBRSxJQUFJLElBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBRSxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUMsVUFBUyxDQUFDLElBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsQ0FBQyxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUE7UUFBQSxDQUFDLEVBQUMsVUFBUyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7WUFBRSxZQUFZLENBQUM7WUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVMsQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsR0FBQyxZQUFZLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxHQUFDLGFBQWEsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBQyxDQUFDLENBQUMsR0FBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLEdBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLEdBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLEdBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBQyxDQUFDLENBQUMsR0FBQyxrQkFBa0IsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLElBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxRQUFRLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixJQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsVUFBUyxDQUFDLElBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBQyxXQUFXLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBQyxVQUFTLENBQUMsSUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFFLE9BQUEsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBZixDQUFlLENBQUMsQ0FBQSxDQUFBLENBQUMsQ0FBQTtRQUFBLENBQUMsRUFBQyxVQUFTLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUFFLFlBQVksQ0FBQztZQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFBQSxJQUFNLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxD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QUMsSUFBSSxFQUFFLENBQUE7Z0JBRWxDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7UUFDSCxnQkFBQztJQUFELENBQUMsQUFoRUQsQ0FBK0IsTUFBTSxHQWdFcEM7SUFoRVksOEJBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElUcmFuc2Zvcm1Db21wb25lbnQge1xuICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuICB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWRcbiAgaGFzRmluaXNoZWQoKTogYm9vbGVhblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKTogdm9pZFxufVxuIiwiZXhwb3J0IGVudW0gSW50ZXJwb2xhdGlvblR5cGUge1xuICBMSU5FQVIsXG4gIEVBU0VJTlFVQUQsXG4gIEVBU0VPVVRRVUFELFxuICBFQVNFUVVBRFxufVxuXG5leHBvcnQgZnVuY3Rpb24gSW50ZXJwb2xhdGUodHlwZTogSW50ZXJwb2xhdGlvblR5cGUsIHQ6IG51bWJlcik6IG51bWJlciB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuTElORUFSOlxuICAgICAgcmV0dXJuIEludGVycG9sYXRlTGluZWFyKHQpXG4gICAgY2FzZSBJbnRlcnBvbGF0aW9uVHlwZS5FQVNFSU5RVUFEOlxuICAgICAgcmV0dXJuIEludGVycG9sYXRlRWFzZUluUXVhZCh0KVxuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuRUFTRU9VVFFVQUQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVFYXNlT3V0UXVhZCh0KVxuICAgIGNhc2UgSW50ZXJwb2xhdGlvblR5cGUuRUFTRVFVQUQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVFYXNlUXVhZCh0KVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gSW50ZXJwb2xhdGVMaW5lYXIodClcbiAgfVxufVxuZnVuY3Rpb24gSW50ZXJwb2xhdGVMaW5lYXIodDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHRcbn1cbmZ1bmN0aW9uIEludGVycG9sYXRlRWFzZUluUXVhZCh0OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gdCAqIHRcbn1cbmZ1bmN0aW9uIEludGVycG9sYXRlRWFzZU91dFF1YWQodDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHQgKiAoMiAtIHQpXG59XG5mdW5jdGlvbiBJbnRlcnBvbGF0ZUVhc2VRdWFkKHQ6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiAodCAqIHQpIC8gKDIuMCAqICh0ICogdCAtIHQpICsgMS4wKVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHJvdGF0ZSBlbnRpdHkgZnJvbSBvbmUgcm90YXRpb24gKHN0YXJ0KSB0byBhbm90aGVyIChlbmQpIGluIGFuIGFtb3VudCBvZiB0aW1lXG4gKi9cbkBDb21wb25lbnQoJ3JvdGF0ZVRyYW5zZm9ybUNvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhcnQ6IFJlYWRPbmx5UXVhdGVybmlvblxuICBwcml2YXRlIGVuZDogUmVhZE9ubHlRdWF0ZXJuaW9uXG4gIHByaXZhdGUgc3BlZWQ6IG51bWJlclxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGVcbiAgcHJpdmF0ZSBsZXJwVGltZTogbnVtYmVyXG5cbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IGluc3RhbmNlIHRvIGFkZCBhcyBhIGNvbXBvbmVudCB0byBhIEVudGl0eVxuICAgKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgcm90YXRpb25cbiAgICogQHBhcmFtIGVuZCBlbmRpbmcgcm90YXRpb25cbiAgICogQHBhcmFtIGR1cmF0aW9uIGR1cmF0aW9uIChpbiBzZWNvbmRzKSBvZiBzdGFydCB0byBlbmQgcm90YXRpb25cbiAgICogQHBhcmFtIG9uRmluaXNoQ2FsbGJhY2sgY2FsbGVkIHdoZW4gcm90YXRpb24gZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVF1YXRlcm5pb24sXG4gICAgZW5kOiBSZWFkT25seVF1YXRlcm5pb24sXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnJvdGF0aW9uID0gUXVhdGVybmlvbi5TbGVycCh0aGlzLnN0YXJ0LCB0aGlzLmVuZCwgdGhpcy5sZXJwVGltZSlcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHNjYWxlIGVudGl0eSBmcm9tIG9uZSB2YWx1ZSAoc3RhcnQpIHRvIGFub3RoZXIgKGVuZCkgaW4gYW4gYW1vdW50IG9mIHRpbWVcbiAqL1xuQENvbXBvbmVudCgnc2NhbGVUcmFuc2Zvcm1Db21wb25lbnQnKVxuZXhwb3J0IGNsYXNzIFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhcnQ6IFJlYWRPbmx5VmVjdG9yM1xuICBwcml2YXRlIGVuZDogUmVhZE9ubHlWZWN0b3IzXG4gIHByaXZhdGUgc3BlZWQ6IG51bWJlclxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGVcbiAgcHJpdmF0ZSBsZXJwVGltZTogbnVtYmVyXG5cbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQgaW5zdGFuY2UgdG8gYWRkIGFzIGEgY29tcG9uZW50IHRvIGEgRW50aXR5XG4gICAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzY2FsZVxuICAgKiBAcGFyYW0gZW5kIGVuZGluZyBzY2FsZVxuICAgKiBAcGFyYW0gZHVyYXRpb24gZHVyYXRpb24gKGluIHNlY29uZHMpIG9mIHN0YXJ0IHRvIGVuZCBzY2FsaW5nXG4gICAqIEBwYXJhbSBvbkZpbmlzaENhbGxiYWNrIGNhbGxlZCB3aGVuIHNjYWxpbmcgZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVZlY3RvcjMsXG4gICAgZW5kOiBSZWFkT25seVZlY3RvcjMsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnNjYWxlID0gVmVjdG9yMy5MZXJwKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLmxlcnBUaW1lKVxuICB9XG59XG4iLCJpbXBvcnQgeyBJVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi4vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gbW92ZSBhIGVudGl0eSBkb3duIGEgZml4ZWQgcGF0aCBpbiBhbiBhbW91bnQgb2YgdGltZVxuICovXG5AQ29tcG9uZW50KCdmb2xsb3dQYXRoQ29tcG9uZW50JylcbmV4cG9ydCBjbGFzcyBGb2xsb3dQYXRoQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcG9pbnRzOiBWZWN0b3IzW11cbiAgcHJpdmF0ZSBzcGVlZDogbnVtYmVyW10gPSBbXVxuICBwcml2YXRlIG5vcm1hbGl6ZWRUaW1lOiBudW1iZXJcbiAgcHJpdmF0ZSBjdXJyZW50SW5kZXg6IG51bWJlclxuXG4gIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXG4gIG9uUG9pbnRSZWFjaGVkQ2FsbGJhY2s/OiAoY3VycmVudFBvaW50OiBWZWN0b3IzLCBuZXh0UG9pbnQ6IFZlY3RvcjMpID0+IHZvaWRcblxuICAvKipcbiAgICogQ3JlYXRlIGEgRm9sbG93UGF0aENvbXBvbmVudCBpbnN0YW5jZSB0byBhZGQgYXMgYSBjb21wb25lbnQgdG8gYSBFbnRpdHlcbiAgICogQHBhcmFtIHBvaW50cyBhcnJheSBvZiBwb2ludHMgZm9yIHRoZSBwYXRoXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBkdXJhdGlvbiBvZiB0aGUgbW92ZW1lbnQgdGhyb3VnaCB0aGUgcGF0aFxuICAgKiBAcGFyYW0gb25GaW5pc2hDYWxsYmFjayBjYWxsZWQgd2hlbiBtb3ZlbWVudCBlbmRzXG4gICAqIEBwYXJhbSBvblBvaW50UmVhY2hlZENhbGxiYWNrIGNhbGxlZCBldmVyeXRpbWUgYW4gZW50aXR5IHJlYWNoZXMgYSBwb2ludCBvZiB0aGUgcGF0aFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcG9pbnRzOiBWZWN0b3IzW10sXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBvblBvaW50UmVhY2hlZENhbGxiYWNrPzogKGN1cnJlbnRQb2ludDogVmVjdG9yMywgbmV4dFBvaW50OiBWZWN0b3IzKSA9PiB2b2lkXG4gICkge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAwXG4gICAgdGhpcy5jdXJyZW50SW5kZXggPSAwXG4gICAgdGhpcy5wb2ludHMgPSBwb2ludHNcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5vblBvaW50UmVhY2hlZENhbGxiYWNrID0gb25Qb2ludFJlYWNoZWRDYWxsYmFja1xuXG4gICAgaWYgKHBvaW50cy5sZW5ndGggPCAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IDIgcG9pbnRzIGFyZSBuZWVkZWQgZm9yIEZvbGxvd1BhdGhDb21wb25lbnQuJylcbiAgICB9XG5cbiAgICBpZiAoZHVyYXRpb24gPiAwKSB7XG4gICAgICBsZXQgc3FUb3RhbERpc3QgPSAwXG4gICAgICBsZXQgc3FQb2ludHNEaXN0ID0gW11cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBsZXQgc3FEaXN0ID0gVmVjdG9yMy5EaXN0YW5jZVNxdWFyZWQocG9pbnRzW2ldLCBwb2ludHNbaSArIDFdKVxuICAgICAgICBzcVRvdGFsRGlzdCArPSBzcURpc3RcbiAgICAgICAgc3FQb2ludHNEaXN0LnB1c2goc3FEaXN0KVxuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcVBvaW50c0Rpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5zcGVlZC5wdXNoKDEgLyAoKHNxUG9pbnRzRGlzdFtpXSAvIHNxVG90YWxEaXN0KSAqIGR1cmF0aW9uKSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDFcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gcG9pbnRzLmxlbmd0aCAtIDJcbiAgICB9XG5cbiAgICBUcmFuc2Zvcm1TeXN0ZW0uY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gU2NhbGFyLkNsYW1wKFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSArIGR0ICogdGhpcy5zcGVlZFt0aGlzLmN1cnJlbnRJbmRleF0sXG4gICAgICAwLFxuICAgICAgMVxuICAgIClcbiAgICBpZiAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID49IDEgJiZcbiAgICAgIHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5wb2ludHMubGVuZ3RoIC0gMlxuICAgICkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXgrK1xuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZSA9IDBcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5vblBvaW50UmVhY2hlZENhbGxiYWNrICYmXG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5wb2ludHMubGVuZ3RoIC0gMVxuICAgICAgKVxuICAgICAgICB0aGlzLm9uUG9pbnRSZWFjaGVkQ2FsbGJhY2soXG4gICAgICAgICAgdGhpcy5wb2ludHNbdGhpcy5jdXJyZW50SW5kZXhdLFxuICAgICAgICAgIHRoaXMucG9pbnRzW3RoaXMuY3VycmVudEluZGV4ICsgMV1cbiAgICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGhhc0ZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCA+PSB0aGlzLnBvaW50cy5sZW5ndGggLSAyICYmIHRoaXMubm9ybWFsaXplZFRpbWUgPj0gMVxuICAgIClcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pIHtcbiAgICB0cmFuc2Zvcm0ucG9zaXRpb24gPSBWZWN0b3IzLkxlcnAoXG4gICAgICB0aGlzLnBvaW50c1t0aGlzLmN1cnJlbnRJbmRleF0sXG4gICAgICB0aGlzLnBvaW50c1t0aGlzLmN1cnJlbnRJbmRleCArIDFdLFxuICAgICAgdGhpcy5ub3JtYWxpemVkVGltZVxuICAgIClcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHJvdGF0ZSBlbnRpdHkgaW5kZWZpbml0ZWx5IHVudGlsIHN0b3AgaXMgY2FsbGVkXG4gKi9cbkBDb21wb25lbnQoJ2tlZXBSb3RhdGluZ0NvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgS2VlcFJvdGF0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgSVRyYW5zZm9ybUNvbXBvbmVudCB7XG4gIG9uRmluaXNoQ2FsbGJhY2s/OiAoKSA9PiB2b2lkXG5cbiAgcHJpdmF0ZSByb3RhdGlvblZlbG9jaXR5OiBRdWF0ZXJuaW9uXG4gIHByaXZhdGUgcm90YXRpb246IFF1YXRlcm5pb25cbiAgcHJpdmF0ZSBmaW5pc2hlZDogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBSb3RhdGVzIGFuIGVudGl0eSBjb250aW51b3VzbHkuIFRoZSBlbnRpdHkgd2lsbCBrZWVwIHJvdGF0aW5nIGZvcmV2ZXIgdW50aWwgaXQncyBleHBsaWNpdGx5IHN0b3BwZWQgb3IgdGhlIGNvbXBvbmVudCBpcyByZW1vdmVkLlxuICAgKiBAcGFyYW0gcm90YXRpb25WZWxvY2l0eSBhIHF1YXRlcm5pb24gZGVzY3JpYmluZyB0aGUgZGVzaXJlZCByb3RhdGlvbiB0byBwZXJmb3JtIGVhY2ggc2Vjb25kIHNlY29uZFxuICAgKiBAcGFyYW0gb25GaW5pc2hDYWxsYmFjayBjYWxsZWQgd2hlbiByb3RhdGlvbiBlbmRzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihyb3RhdGlvblZlbG9jaXR5OiBRdWF0ZXJuaW9uLCBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucm90YXRpb25WZWxvY2l0eSA9IHJvdGF0aW9uVmVsb2NpdHlcbiAgICB0aGlzLm9uRmluaXNoQ2FsbGJhY2sgPSBvbkZpbmlzaENhbGxiYWNrXG4gICAgdGhpcy5yb3RhdGlvbiA9IFF1YXRlcm5pb24uSWRlbnRpdHlcbiAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2VcblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucm90YXRpb24gPSBRdWF0ZXJuaW9uLlNsZXJwKFxuICAgICAgUXVhdGVybmlvbi5JZGVudGl0eSxcbiAgICAgIHRoaXMucm90YXRpb25WZWxvY2l0eSxcbiAgICAgIGR0XG4gICAgKVxuICB9XG5cbiAgaGFzRmluaXNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmluaXNoZWRcbiAgfVxuXG4gIGFzc2lnblZhbHVlVG9UcmFuc2Zvcm0odHJhbnNmb3JtOiBUcmFuc2Zvcm0pOiB2b2lkIHtcbiAgICB0cmFuc2Zvcm0ucm90YXRpb24gPSB0cmFuc2Zvcm0ucm90YXRpb24ubXVsdGlwbHkodGhpcy5yb3RhdGlvbilcbiAgfVxuXG4gIHN0b3AoKSB7XG4gICAgdGhpcy5maW5pc2hlZCA9IHRydWVcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9pdHJhbnNmb3JtY29tcG9uZW50J1xuaW1wb3J0IHsgTW92ZVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9tb3ZlJ1xuaW1wb3J0IHsgUm90YXRlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3JvdGF0ZSdcbmltcG9ydCB7IFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3NjYWxlJ1xuaW1wb3J0IHsgRm9sbG93UGF0aENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC9mb2xsb3dwYXRoJ1xuaW1wb3J0IHsgS2VlcFJvdGF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L2tlZXByb3RhdGluZydcblxuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybVN5c3RlbSBpbXBsZW1lbnRzIElTeXN0ZW0ge1xuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IFRyYW5zZm9ybVN5c3RlbSB8IG51bGwgPSBudWxsXG5cbiAgcHJpdmF0ZSBfY29tcG9uZW50czogQ29tcG9uZW50Q29uc3RydWN0b3I8SVRyYW5zZm9ybUNvbXBvbmVudD5bXSA9IFtdXG5cbiAgc3RhdGljIGNyZWF0ZUFuZEFkZFRvRW5naW5lKCk6IFRyYW5zZm9ybVN5c3RlbSB7XG4gICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpIHtcbiAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IFRyYW5zZm9ybVN5c3RlbSgpXG4gICAgICBlbmdpbmUuYWRkU3lzdGVtKHRoaXMuX2luc3RhbmNlKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faW5zdGFuY2VcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlckN1c3RvbUNvbXBvbmVudDxUIGV4dGVuZHMgSVRyYW5zZm9ybUNvbXBvbmVudD4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRDb25zdHJ1Y3RvcjxUPlxuICApIHtcbiAgICB0aGlzLmNyZWF0ZUFuZEFkZFRvRW5naW5lKCkuX2NvbXBvbmVudHMucHVzaChjb21wb25lbnQpXG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIFRyYW5zZm9ybVN5c3RlbS5faW5zdGFuY2UgPSB0aGlzXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKE1vdmVUcmFuc2Zvcm1Db21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKFJvdGF0ZVRyYW5zZm9ybUNvbXBvbmVudClcbiAgICB0aGlzLl9jb21wb25lbnRzLnB1c2goU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEZvbGxvd1BhdGhDb21wb25lbnQpXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEtlZXBSb3RhdGluZ0NvbXBvbmVudClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgdGhpcy5fY29tcG9uZW50cy5mb3JFYWNoKGNvbXBvbmVudCA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudChkdCwgY29tcG9uZW50KVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudDxUIGV4dGVuZHMgSVRyYW5zZm9ybUNvbXBvbmVudD4oXG4gICAgZHQ6IG51bWJlcixcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudENvbnN0cnVjdG9yPFQ+XG4gICkge1xuICAgIGNvbnN0IGdyb3VwID0gZW5naW5lLmdldENvbXBvbmVudEdyb3VwKGNvbXBvbmVudCwgVHJhbnNmb3JtKVxuXG4gICAgZ3JvdXAuZW50aXRpZXMuZm9yRWFjaChlbnRpdHkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNmb3JtID0gZW50aXR5LmdldENvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICBjb25zdCBjb21wID0gZW50aXR5LmdldENvbXBvbmVudChjb21wb25lbnQpXG5cbiAgICAgIGNvbXAudXBkYXRlKGR0KVxuICAgICAgY29tcC5hc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybSlcbiAgICAgIGlmIChjb21wLmhhc0ZpbmlzaGVkKCkpIHtcbiAgICAgICAgZW50aXR5LnJlbW92ZUNvbXBvbmVudChjb21wKVxuICAgICAgICBpZiAoY29tcC5vbkZpbmlzaENhbGxiYWNrICE9IG51bGwpIGNvbXAub25GaW5pc2hDYWxsYmFjaygpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuIiwiaW1wb3J0IHsgSVRyYW5zZm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaXRyYW5zZm9ybWNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90cmFuc2Zyb21TeXN0ZW0nXG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uVHlwZSwgSW50ZXJwb2xhdGUgfSBmcm9tICcuLi9tYXRoL2ludGVycG9sYXRpb24nXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHRyYW5zbGF0ZSBlbnRpdHkgZnJvbSBvbmUgcG9zaXRpb24gKHN0YXJ0KSB0byBhbm90aGVyIChlbmQpIGluIGFuIGFtb3VudCBvZiB0aW1lXG4gKi9cbkBDb21wb25lbnQoJ21vdmVUcmFuc2Zvcm1Db21wb25lbnQnKVxuZXhwb3J0IGNsYXNzIE1vdmVUcmFuc2Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBJVHJhbnNmb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGFydDogUmVhZE9ubHlWZWN0b3IzXG4gIHByaXZhdGUgZW5kOiBSZWFkT25seVZlY3RvcjNcbiAgcHJpdmF0ZSBzcGVlZDogbnVtYmVyXG4gIHByaXZhdGUgbm9ybWFsaXplZFRpbWU6IG51bWJlclxuICBwcml2YXRlIGludGVycG9sYXRpb25UeXBlOiBJbnRlcnBvbGF0aW9uVHlwZVxuICBwcml2YXRlIGxlcnBUaW1lOiBudW1iZXJcblxuICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50IGluc3RhbmNlIHRvIGFkZCBhcyBhIGNvbXBvbmVudCB0byBhIEVudGl0eVxuICAgKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgcG9zaXRpb25cbiAgICogQHBhcmFtIGVuZCBlbmRpbmcgcG9zaXRpb25cbiAgICogQHBhcmFtIGR1cmF0aW9uIGR1cmF0aW9uIChpbiBzZWNvbmRzKSBvZiBzdGFydCB0byBlbmQgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtIG9uRmluaXNoQ2FsbGJhY2sgY2FsbGVkIHdoZW4gdHJhbnNsYXRpb24gZW5kc1xuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGlvblR5cGUgdHlwZSBvZiBpbnRlcnBvbGF0aW9uIHRvIGJlIHVzZWQgKGRlZmF1bHQ6IExJTkVBUilcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0OiBSZWFkT25seVZlY3RvcjMsXG4gICAgZW5kOiBSZWFkT25seVZlY3RvcjMsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBvbkZpbmlzaENhbGxiYWNrPzogKCkgPT4gdm9pZCxcbiAgICBpbnRlcnBvbGF0aW9uVHlwZTogSW50ZXJwb2xhdGlvblR5cGUgPSBJbnRlcnBvbGF0aW9uVHlwZS5MSU5FQVJcbiAgKSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0XG4gICAgdGhpcy5lbmQgPSBlbmRcbiAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lID0gMFxuICAgIHRoaXMubGVycFRpbWUgPSAwXG4gICAgdGhpcy5vbkZpbmlzaENhbGxiYWNrID0gb25GaW5pc2hDYWxsYmFja1xuICAgIHRoaXMuaW50ZXJwb2xhdGlvblR5cGUgPSBpbnRlcnBvbGF0aW9uVHlwZVxuXG4gICAgaWYgKGR1cmF0aW9uICE9IDApIHtcbiAgICAgIHRoaXMuc3BlZWQgPSAxIC8gZHVyYXRpb25cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGVlZCA9IDBcbiAgICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSAxXG4gICAgICB0aGlzLmxlcnBUaW1lID0gMVxuICAgIH1cblxuICAgIFRyYW5zZm9ybVN5c3RlbS5jcmVhdGVBbmRBZGRUb0VuZ2luZSgpXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIHRoaXMubm9ybWFsaXplZFRpbWUgPSBTY2FsYXIuQ2xhbXAoXG4gICAgICB0aGlzLm5vcm1hbGl6ZWRUaW1lICsgZHQgKiB0aGlzLnNwZWVkLFxuICAgICAgMCxcbiAgICAgIDFcbiAgICApXG4gICAgdGhpcy5sZXJwVGltZSA9IEludGVycG9sYXRlKHRoaXMuaW50ZXJwb2xhdGlvblR5cGUsIHRoaXMubm9ybWFsaXplZFRpbWUpXG4gIH1cblxuICBoYXNGaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkVGltZSA+PSAxXG4gIH1cblxuICBhc3NpZ25WYWx1ZVRvVHJhbnNmb3JtKHRyYW5zZm9ybTogVHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtLnBvc2l0aW9uID0gVmVjdG9yMy5MZXJwKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLmxlcnBUaW1lKVxuICB9XG59XG4iLCJleHBvcnQgZW51bSBUb2dnbGVTdGF0ZSB7XG4gIE9mZiA9IDAsXG4gIE9uXG59XG5cbi8qKlxuICogVG9nZ2xlIGNvbXBvbmVudCBmb3IgZW50aXRpZXMgd2l0aCB0d28gc3RhdGVzIChPTiBvciBPRkYpXG4gKi9cbkBDb21wb25lbnQoJ3RvZ2dsZScpXG5leHBvcnQgY2xhc3MgVG9nZ2xlQ29tcG9uZW50IHtcbiAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG5cbiAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrPzogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICBwcml2YXRlIHN0YXRlOiBUb2dnbGVTdGF0ZSA9IFRvZ2dsZVN0YXRlLk9mZlxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYSBUb2dnbGVDb21wb25lbnRcbiAgICogQHBhcmFtIHN0YXJ0aW5nU3RhdGUgc3RhcnRpbmcgc3RhdGUgb2YgdGhlIHRvZ2dsZSAoT04gb3IgT0ZGKVxuICAgKiBAcGFyYW0gb25WYWx1ZUNoYW5nZWRDYWxsYmFjayBjYWxsZWQgd2hlbiB0b2dnbGUgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhcnRpbmdTdGF0ZTogVG9nZ2xlU3RhdGUgPSBUb2dnbGVTdGF0ZS5PbixcbiAgICBvblZhbHVlQ2hhbmdlZENhbGxiYWNrPzogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICApIHtcbiAgICB0aGlzLnNldChzdGFydGluZ1N0YXRlKVxuICAgIGlmIChvblZhbHVlQ2hhbmdlZENhbGxiYWNrKSB0aGlzLnNldENhbGxiYWNrKG9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2spXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRyaWdnZXIgdG8gYSBzdGF0ZVxuICAgKiBAcGFyYW0gc3RhdGUgbmV3IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgc2V0KHN0YXRlOiBUb2dnbGVTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZVxuICAgIGlmICh0aGlzLm9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2spIHRoaXMub25WYWx1ZUNoYW5nZWRDYWxsYmFjayhzdGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgc3RhdGUgb2YgVG9nZ2xlQ29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2V0KDEgLSB0aGlzLnN0YXRlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaWYgY3VycmVudCB0b2dnbGUgc3RhdGUgaXMgT05cbiAgICovXG4gIHB1YmxpYyBpc09uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09IFRvZ2dsZVN0YXRlLk9uXG4gIH1cblxuICAvKipcbiAgICogU2V0IGNhbGxiYWNrIGZvciB3aGVuIFRvZ2dsZUNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VkXG4gICAqIEBwYXJhbSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrIGNhbGxiYWNrXG4gICAqL1xuICBwdWJsaWMgc2V0Q2FsbGJhY2soXG4gICAgb25WYWx1ZUNoYW5nZWRDYWxsYmFjazogKHZhbHVlOiBUb2dnbGVTdGF0ZSkgPT4gdm9pZFxuICApOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkQ2FsbGJhY2sgPSBvblZhbHVlQ2hhbmdlZENhbGxiYWNrXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBUb2dnbGVDb21wb25lbnQsXG4gIFRvZ2dsZVN0YXRlXG59XG4iLCJleHBvcnQgaW50ZXJmYWNlIElUaW1lckNvbXBvbmVudCB7XHJcbiAgZWxhcHNlZFRpbWU6IG51bWJlclxyXG4gIHRhcmdldFRpbWU6IG51bWJlclxyXG4gIG9uVGFyZ2V0VGltZVJlYWNoZWQ6IChvd25lckVudGl0eTogSUVudGl0eSkgPT4gdm9pZFxyXG59XHJcbiIsImltcG9ydCB7IElUaW1lckNvbXBvbmVudCB9IGZyb20gJy4vaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBUaW1lclN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90aW1lclN5c3RlbSdcclxuXHJcbi8qKlxyXG4gKiBFeGVjdXRlIGV2ZXJ5IFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckludGVydmFsJylcclxuZXhwb3J0IGNsYXNzIEludGVydmFsIGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5lbGFwc2VkVGltZSA9IDBcclxuICAgICAgaWYgKHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrKSB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaygpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYWxsYmFjayhvblRpbWVSZWFjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrID0gb25UaW1lUmVhY2hlZENhbGxiYWNrXHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IElUaW1lckNvbXBvbmVudCB9IGZyb20gJy4vaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBUaW1lclN5c3RlbSB9IGZyb20gJy4uL3N5c3RlbS90aW1lclN5c3RlbSdcclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgZW50aXR5IGFmdGVyIFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckV4cGlyZUluJylcclxuZXhwb3J0IGNsYXNzIEV4cGlyZUluIGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9IGVudGl0eSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaykgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2soKVxyXG4gICAgICBlbnRpdHkucmVtb3ZlQ29tcG9uZW50KHRoaXMpXHJcbiAgICAgIGVuZ2luZS5yZW1vdmVFbnRpdHkoZW50aXR5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FsbGJhY2sob25UaW1lUmVhY2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XHJcbiAgICB0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjayA9IG9uVGltZVJlYWNoZWRDYWxsYmFja1xyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgeyBJVGltZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQvaXRpbWVyY29tcG9uZW50J1xyXG5pbXBvcnQgeyBJbnRlcnZhbCB9IGZyb20gJy4uL2NvbXBvbmVudC9pbnRlcnZhbCdcclxuaW1wb3J0IHsgRGVsYXkgfSBmcm9tICcuLi9jb21wb25lbnQvZGVsYXknXHJcbmltcG9ydCB7IEV4cGlyZUluIH0gZnJvbSAnLi4vY29tcG9uZW50L2V4cGlyZSdcclxuXHJcbmV4cG9ydCBjbGFzcyBUaW1lclN5c3RlbSBpbXBsZW1lbnRzIElTeXN0ZW0ge1xyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVGltZXJTeXN0ZW0gfCBudWxsID0gbnVsbFxyXG5cclxuICBwcml2YXRlIF9jb21wb25lbnRzOiBDb21wb25lbnRDb25zdHJ1Y3RvcjxJVGltZXJDb21wb25lbnQ+W10gPSBbXVxyXG5cclxuICBzdGF0aWMgY3JlYXRlQW5kQWRkVG9FbmdpbmUoKTogVGltZXJTeXN0ZW0ge1xyXG4gICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpIHtcclxuICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgVGltZXJTeXN0ZW0oKVxyXG4gICAgICBlbmdpbmUuYWRkU3lzdGVtKHRoaXMuX2luc3RhbmNlKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVnaXN0ZXJDdXN0b21Db21wb25lbnQ8VCBleHRlbmRzIElUaW1lckNvbXBvbmVudD4oXHJcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudENvbnN0cnVjdG9yPFQ+XHJcbiAgKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUFuZEFkZFRvRW5naW5lKCkuX2NvbXBvbmVudHMucHVzaChjb21wb25lbnQpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgVGltZXJTeXN0ZW0uX2luc3RhbmNlID0gdGhpc1xyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEludGVydmFsKVxyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKERlbGF5KVxyXG4gICAgdGhpcy5fY29tcG9uZW50cy5wdXNoKEV4cGlyZUluKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2NvbXBvbmVudHMuZm9yRWFjaChjb21wb25lbnQgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudChkdCwgY29tcG9uZW50KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50PFQgZXh0ZW5kcyBJVGltZXJDb21wb25lbnQ+KFxyXG4gICAgZHQ6IG51bWJlcixcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50Q29uc3RydWN0b3I8VD5cclxuICApIHtcclxuICAgIGxldCByZWNvcmQgPSBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoQ29tcG9uZW50KGNvbXBvbmVudClcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiByZWNvcmQpIHtcclxuICAgICAgaWYgKHJlY29yZC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgbGV0IGVudGl0eSA9IHJlY29yZFtrZXldXHJcbiAgICAgICAgbGV0IHRpbWVyQ29tcG9uZW50ID0gZW50aXR5LmdldENvbXBvbmVudChjb21wb25lbnQpXHJcblxyXG4gICAgICAgIHRpbWVyQ29tcG9uZW50LmVsYXBzZWRUaW1lICs9IGR0XHJcbiAgICAgICAgaWYgKHRpbWVyQ29tcG9uZW50LmVsYXBzZWRUaW1lID49IHRpbWVyQ29tcG9uZW50LnRhcmdldFRpbWUpIHtcclxuICAgICAgICAgIHRpbWVyQ29tcG9uZW50Lm9uVGFyZ2V0VGltZVJlYWNoZWQoZW50aXR5KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgeyBJVGltZXJDb21wb25lbnQgfSBmcm9tICcuL2l0aW1lcmNvbXBvbmVudCdcclxuaW1wb3J0IHsgVGltZXJTeXN0ZW0gfSBmcm9tICcuLi9zeXN0ZW0vdGltZXJTeXN0ZW0nXHJcblxyXG4vKipcclxuICogRXhlY3V0ZSBvbmNlIGFmdGVyIFggbWlsbGlzZWNvbmRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KCd0aW1lckRlbGF5JylcclxuZXhwb3J0IGNsYXNzIERlbGF5IGltcGxlbWVudHMgSVRpbWVyQ29tcG9uZW50IHtcclxuICBlbGFwc2VkVGltZTogbnVtYmVyXHJcbiAgdGFyZ2V0VGltZTogbnVtYmVyXHJcbiAgb25UYXJnZXRUaW1lUmVhY2hlZDogKG93bmVyRW50aXR5OiBJRW50aXR5KSA9PiB2b2lkXHJcblxyXG4gIHByaXZhdGUgb25UaW1lUmVhY2hlZENhbGxiYWNrPzogKCkgPT4gdm9pZFxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNzIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBvblRpbWVSZWFjaGVkQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIHdoZW4gdGltZSBpcyByZWFjaGVkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IobWlsbGlzZWNzOiBudW1iZXIsIG9uVGltZVJlYWNoZWRDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcclxuICAgIFRpbWVyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcclxuXHJcbiAgICB0aGlzLmVsYXBzZWRUaW1lID0gMFxyXG4gICAgdGhpcy50YXJnZXRUaW1lID0gbWlsbGlzZWNzIC8gMTAwMFxyXG4gICAgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2sgPSBvblRpbWVSZWFjaGVkQ2FsbGJhY2tcclxuICAgIHRoaXMub25UYXJnZXRUaW1lUmVhY2hlZCA9IGVudGl0eSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9uVGltZVJlYWNoZWRDYWxsYmFjaykgdGhpcy5vblRpbWVSZWFjaGVkQ2FsbGJhY2soKVxyXG4gICAgICBlbnRpdHkucmVtb3ZlQ29tcG9uZW50KHRoaXMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYWxsYmFjayhvblRpbWVSZWFjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25UaW1lUmVhY2hlZENhbGxiYWNrID0gb25UaW1lUmVhY2hlZENhbGxiYWNrXHJcbiAgfVxyXG59XHJcbiIsImV4cG9ydCBjbGFzcyBUcmlnZ2VyU3lzdGVtIGltcGxlbWVudHMgSVN5c3RlbSB7XG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVHJpZ2dlclN5c3RlbSB8IG51bGwgPSBudWxsXG4gIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogVHJpZ2dlclN5c3RlbSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQW5kQWRkVG9FbmdpbmUoKVxuICB9XG5cbiAgcHJpdmF0ZSBfdHJpZ2dlcnM6IFJlY29yZDxzdHJpbmcsIFRyaWdnZXJXcmFwcGVyPiA9IHt9XG4gIHByaXZhdGUgX2NhbWVyYVRyaWdnZXJXcmFwcGVyOiBDYW1lcmFUcmlnZ2VyXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBUcmlnZ2VyU3lzdGVtLl9pbnN0YW5jZSA9IHRoaXNcbiAgICB0aGlzLl9jYW1lcmFUcmlnZ2VyV3JhcHBlciA9IG5ldyBDYW1lcmFUcmlnZ2VyKFxuICAgICAgbmV3IFRyaWdnZXJCb3hTaGFwZShuZXcgVmVjdG9yMygwLjUsIDEuOCwgMC41KSwgbmV3IFZlY3RvcjMoMCwgMC45MSwgMCkpXG4gICAgKVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUFuZEFkZFRvRW5naW5lKCk6IFRyaWdnZXJTeXN0ZW0ge1xuICAgIGlmICh0aGlzLl9pbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBUcmlnZ2VyU3lzdGVtKClcbiAgICAgIGVuZ2luZS5hZGRTeXN0ZW0odGhpcy5faW5zdGFuY2UpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZVxuICB9XG5cbiAgLyoqXG4gICAqIHNldCBhIGN1c3RvbSB0cmlnZ2VyJ3Mgc2hhcGUgZm9yIHRoZSBjYW1lcmFcbiAgICogQHBhcmFtIHNoYXBlIGN1c3RvbSB0cmlnZ2VyJ3Mgc2hhcGVcbiAgICovXG4gIHNldENhbWVyYVRyaWdnZXJTaGFwZShzaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlKSB7XG4gICAgdGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIuc2V0U2hhcGUoc2hhcGUpXG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgLy9nZXQgZW50aXRpZXMgd2l0aCB0cmlnZ2VyIGNvbXBvbmVudFxuICAgIGxldCBlbnRpdGllc1dpdGhUcmlnZ2VycyA9IGVuZ2luZS5nZXRDb21wb25lbnRHcm91cChUcmlnZ2VyQ29tcG9uZW50KVxuICAgICAgLmVudGl0aWVzXG5cbiAgICAvL2l0ZXJhdGUgdGhyb3VnaCBhbGwgZW50aXRpZXMgd2l0aCB0cmlnZ2VycyBhbmQgd3JhcCBlbnRpdGllcyB0aGF0IHdlcmVuJ3Qgd3JhcHBlZCB5ZXRcbiAgICBlbnRpdGllc1dpdGhUcmlnZ2Vycy5mb3JFYWNoKGVudGl0eSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG91bGRXcmFwVHJpZ2dlckVudGl0eShlbnRpdHkpKSB7XG4gICAgICAgIHRoaXMud3JhcFRyaWdnZXJFbnRpdHkoZW50aXR5KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvL2l0ZXJhdGUgdGhyb3VnaCB3cmFwcGVkIGVudGl0aWVzXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fdHJpZ2dlcnMpIHtcbiAgICAgIGlmICh0aGlzLl90cmlnZ2Vycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGxldCB3cmFwcGVyID0gdGhpcy5fdHJpZ2dlcnNba2V5XVxuXG4gICAgICAgIC8vdXBkYXRlIGRlYnVnIGVudGl0eVxuICAgICAgICBpZiAod3JhcHBlci5pc0RlYnVnZ2luZygpKSB7XG4gICAgICAgICAgd3JhcHBlci51cGRhdGVEZWJ1Z0VudGl0eSgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdyYXBwZXIuaXNJbkVuZ2luZSgpKSB7XG4gICAgICAgICAgLy9yZW1vdmUgZGVidWdnaW5nXG4gICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgd3JhcHBlci5yZW1vdmVEZWJ1Z0VudGl0eSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vcmVtb3ZlIG9sZCBjb2xsaXNpb25zXG4gICAgICAgICAgVHJpZ2dlclN5c3RlbS5yZW1vdmVUcmlnZ2VyRnJvbVN5c3RlbSh3cmFwcGVyKVxuICAgICAgICAgIC8vcmVtb3ZlIGZyb20gcmVjb3JkXG4gICAgICAgICAgZGVsZXRlIHRoaXMuX3RyaWdnZXJzW2tleV1cbiAgICAgICAgfSBlbHNlIGlmICh3cmFwcGVyLnRyaWdnZXIgIT0gbnVsbCAmJiB3cmFwcGVyLnRyaWdnZXIuZW5hYmxlZCkge1xuICAgICAgICAgIC8vaWYgd2FzIHNldCBhcyBlbmFibGVkIGluIGxhc3QgZnJhbWVcbiAgICAgICAgICBpZiAoIXdyYXBwZXIud2FzRW5hYmxlZCkge1xuICAgICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgICB3cmFwcGVyLmFkZERlYnVnRW50aXR5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy9zZXQgYXMgZW5hYmxlZFxuICAgICAgICAgIHdyYXBwZXIud2FzRW5hYmxlZCA9IHRydWVcblxuICAgICAgICAgIC8vY2hlY2sgY29sbGlzaW9uIGNhbWVyYVxuICAgICAgICAgIGlmICh3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFbnRlciB8fCB3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFeGl0KSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ29sbGlzaW9uQWdhaW5zdENhbWVyYSh3cmFwcGVyKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vY2hlY2sgY29sbGlzaW9uIHdpdGggb3RoZXJzXG4gICAgICAgICAgaWYgKHdyYXBwZXIudHJpZ2dlci5vblRyaWdnZXJFbnRlciB8fCB3cmFwcGVyLnRyaWdnZXIub25UcmlnZ2VyRXhpdCkge1xuICAgICAgICAgICAgdGhpcy5jaGVja0NvbGxpc2lvbkFnYWluc3RPdGhlclRyaWdnZXJzKHdyYXBwZXIpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHdyYXBwZXIud2FzRW5hYmxlZCkge1xuICAgICAgICAgIHdyYXBwZXIud2FzRW5hYmxlZCA9IGZhbHNlXG4gICAgICAgICAgLy9yZW1vdmUgZGVidWdnaW5nXG4gICAgICAgICAgaWYgKHdyYXBwZXIuaXNEZWJ1Z2dpbmcoKSkge1xuICAgICAgICAgICAgd3JhcHBlci5yZW1vdmVEZWJ1Z0VudGl0eSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIFRyaWdnZXJTeXN0ZW0ucmVtb3ZlVHJpZ2dlckZyb21TeXN0ZW0od3JhcHBlcilcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkV3JhcFRyaWdnZXJFbnRpdHkoZW50aXR5OiBJRW50aXR5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX3RyaWdnZXJzW2VudGl0eS51dWlkXSA9PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX3RyaWdnZXJzW2VudGl0eS51dWlkXSA9PSBudWxsXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSB3cmFwVHJpZ2dlckVudGl0eShlbnRpdHk6IElFbnRpdHkpIHtcbiAgICB0aGlzLl90cmlnZ2Vyc1tlbnRpdHkudXVpZF0gPSBuZXcgVHJpZ2dlcldyYXBwZXIoZW50aXR5IGFzIEVudGl0eSlcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlbW92ZVRyaWdnZXJGcm9tU3lzdGVtKHdyYXBwZXI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgbGV0IGFjdGl2ZUNvbGxpc2lvbnMgPSB3cmFwcGVyLmdldEFjdGl2ZUNvbGxpc2lvbnMoKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWN0aXZlQ29sbGlzaW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFjdGl2ZUNvbGxpc2lvbnNbaV0udHJpZ2dlci5vblRyaWdnZXJFeGl0ICYmIHdyYXBwZXIuZW50aXR5KVxuICAgICAgICAoYWN0aXZlQ29sbGlzaW9uc1tpXS50cmlnZ2VyLm9uVHJpZ2dlckV4aXQgYXMgKFxuICAgICAgICAgIGVudGl0eTogSUVudGl0eVxuICAgICAgICApID0+IHZvaWQpKHdyYXBwZXIuZW50aXR5KVxuICAgICAgYWN0aXZlQ29sbGlzaW9uc1tpXS5kaXNlbmdhZ2VBY3RpdmVDb2xsaXNpb24od3JhcHBlcilcbiAgICAgIHdyYXBwZXIuZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKGFjdGl2ZUNvbGxpc2lvbnNbaV0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZGlzZW5nYWdlQ29sbGlzaW9uKHQxOiBUcmlnZ2VyV3JhcHBlciwgdDI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgdDEuZGlzZW5nYWdlQWN0aXZlQ29sbGlzaW9uKHQyKVxuICAgIHQyLmRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbih0MSlcblxuICAgIGlmICh0MS50cmlnZ2VyLm9uVHJpZ2dlckV4aXQgJiYgdDIuZW50aXR5KVxuICAgICAgdDEudHJpZ2dlci5vblRyaWdnZXJFeGl0KHQyLmVudGl0eSlcbiAgICBpZiAodDIudHJpZ2dlci5vblRyaWdnZXJFeGl0ICYmIHQxLmVudGl0eSlcbiAgICAgIHQyLnRyaWdnZXIub25UcmlnZ2VyRXhpdCh0MS5lbnRpdHkpXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBlbmdhZ2VDb2xsaXNpb24odDE6IFRyaWdnZXJXcmFwcGVyLCB0MjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICB0MS5lbmdhZ2VDb2xsaXNpb24odDIpXG4gICAgdDIuZW5nYWdlQ29sbGlzaW9uKHQxKVxuXG4gICAgaWYgKHQxLnRyaWdnZXIub25UcmlnZ2VyRW50ZXIgJiYgdDIuZW50aXR5KVxuICAgICAgdDEudHJpZ2dlci5vblRyaWdnZXJFbnRlcih0Mi5lbnRpdHkpXG4gICAgaWYgKHQyLnRyaWdnZXIub25UcmlnZ2VyRW50ZXIgJiYgdDEuZW50aXR5KVxuICAgICAgdDIudHJpZ2dlci5vblRyaWdnZXJFbnRlcih0MS5lbnRpdHkpXG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ29sbGlzaW9uQWdhaW5zdENhbWVyYSh3cmFwcGVyOiBUcmlnZ2VyV3JhcHBlcikge1xuICAgIGxldCB3ZXJlQ29sbGlkaW5nID0gd3JhcHBlci5oYXNBY3RpdmVDb2xsaXNpb24odGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIpXG4gICAgbGV0IGFyZUNvbGxpZGluZyA9IFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nKFxuICAgICAgd3JhcHBlcixcbiAgICAgIHRoaXMuX2NhbWVyYVRyaWdnZXJXcmFwcGVyXG4gICAgKVxuXG4gICAgaWYgKHdlcmVDb2xsaWRpbmcgJiYgIWFyZUNvbGxpZGluZykge1xuICAgICAgd3JhcHBlci5kaXNlbmdhZ2VBY3RpdmVDb2xsaXNpb24odGhpcy5fY2FtZXJhVHJpZ2dlcldyYXBwZXIpXG4gICAgICBpZiAod3JhcHBlci50cmlnZ2VyLm9uQ2FtZXJhRXhpdCkgd3JhcHBlci50cmlnZ2VyLm9uQ2FtZXJhRXhpdCgpXG4gICAgfSBlbHNlIGlmICghd2VyZUNvbGxpZGluZyAmJiBhcmVDb2xsaWRpbmcpIHtcbiAgICAgIHdyYXBwZXIuZW5nYWdlQ29sbGlzaW9uKHRoaXMuX2NhbWVyYVRyaWdnZXJXcmFwcGVyKVxuICAgICAgaWYgKHdyYXBwZXIudHJpZ2dlci5vbkNhbWVyYUVudGVyKSB3cmFwcGVyLnRyaWdnZXIub25DYW1lcmFFbnRlcigpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NvbGxpc2lvbkFnYWluc3RPdGhlclRyaWdnZXJzKHdyYXBwZXI6IFRyaWdnZXJXcmFwcGVyKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fdHJpZ2dlcnMpIHtcbiAgICAgIGlmICh0aGlzLl90cmlnZ2Vycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmIChrZXkgIT0gd3JhcHBlci51dWlkICYmIHRoaXMuX3RyaWdnZXJzW2tleV0udHJpZ2dlci5lbmFibGVkKSB7XG4gICAgICAgICAgaWYgKFRyaWdnZXJTeXN0ZW0uY2FuVHJpZ2dlcnNDb2xsaWRlKHdyYXBwZXIsIHRoaXMuX3RyaWdnZXJzW2tleV0pKSB7XG4gICAgICAgICAgICBsZXQgd2VyZUNvbGxpZGluZyA9IHdyYXBwZXIuaGFzQWN0aXZlQ29sbGlzaW9uKHRoaXMuX3RyaWdnZXJzW2tleV0pXG4gICAgICAgICAgICBsZXQgYXJlQ29sbGlkaW5nID0gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmcoXG4gICAgICAgICAgICAgIHdyYXBwZXIsXG4gICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJzW2tleV1cbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKHdlcmVDb2xsaWRpbmcgJiYgIWFyZUNvbGxpZGluZylcbiAgICAgICAgICAgICAgVHJpZ2dlclN5c3RlbS5kaXNlbmdhZ2VDb2xsaXNpb24od3JhcHBlciwgdGhpcy5fdHJpZ2dlcnNba2V5XSlcbiAgICAgICAgICAgIGVsc2UgaWYgKCF3ZXJlQ29sbGlkaW5nICYmIGFyZUNvbGxpZGluZylcbiAgICAgICAgICAgICAgVHJpZ2dlclN5c3RlbS5lbmdhZ2VDb2xsaXNpb24od3JhcHBlciwgdGhpcy5fdHJpZ2dlcnNba2V5XSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjYW5UcmlnZ2Vyc0NvbGxpZGUoXG4gICAgdDE6IFRyaWdnZXJXcmFwcGVyLFxuICAgIHQyOiBUcmlnZ2VyV3JhcHBlclxuICApOiBib29sZWFuIHtcbiAgICBpZiAodDEudHJpZ2dlci50cmlnZ2VyZWRCeUxheWVyID09IDApIHJldHVybiB0cnVlXG4gICAgcmV0dXJuICh0Mi50cmlnZ2VyLmxheWVyICYgdDEudHJpZ2dlci50cmlnZ2VyZWRCeUxheWVyKSAhPSAwXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmcodDE6IFRyaWdnZXJXcmFwcGVyLCB0MjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0MS5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlckJveFNoYXBlICYmXG4gICAgICB0Mi5nZXRTaGFwZSgpIGluc3RhbmNlb2YgVHJpZ2dlckJveFNoYXBlXG4gICAgKSB7XG4gICAgICByZXR1cm4gVHJpZ2dlclN5c3RlbS5hcmVDb2xsaWRpbmdBQUJCKFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJCb3hTaGFwZSxcbiAgICAgICAgdDIuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDIuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGVcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdDEuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZSAmJlxuICAgICAgdDIuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICkge1xuICAgICAgcmV0dXJuIFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nU3BoZXJlKFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJTcGhlcmVTaGFwZSxcbiAgICAgICAgdDIuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDIuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdDEuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJCb3hTaGFwZSAmJlxuICAgICAgdDIuZ2V0U2hhcGUoKSBpbnN0YW5jZW9mIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICkge1xuICAgICAgcmV0dXJuIFRyaWdnZXJTeXN0ZW0uYXJlQ29sbGlkaW5nQUFCQlNwaGVyZShcbiAgICAgICAgdDEuZ2V0R2xvYmFsUG9zaXRpb24oKSxcbiAgICAgICAgdDEuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGUsXG4gICAgICAgIHQyLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQyLmdldFNoYXBlKCkgYXMgVHJpZ2dlclNwaGVyZVNoYXBlXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHQxLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyU3BoZXJlU2hhcGUgJiZcbiAgICAgIHQyLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyQm94U2hhcGVcbiAgICApIHtcbiAgICAgIHJldHVybiBUcmlnZ2VyU3lzdGVtLmFyZUNvbGxpZGluZ0FBQkJTcGhlcmUoXG4gICAgICAgIHQyLmdldEdsb2JhbFBvc2l0aW9uKCksXG4gICAgICAgIHQyLmdldFNoYXBlKCkgYXMgVHJpZ2dlckJveFNoYXBlLFxuICAgICAgICB0MS5nZXRHbG9iYWxQb3NpdGlvbigpLFxuICAgICAgICB0MS5nZXRTaGFwZSgpIGFzIFRyaWdnZXJTcGhlcmVTaGFwZVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFyZUNvbGxpZGluZ0FBQkIoXG4gICAgdDFHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MVNoYXBlOiBUcmlnZ2VyQm94U2hhcGUsXG4gICAgdDJHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MlNoYXBlOiBUcmlnZ2VyQm94U2hhcGVcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IHQxID0gVHJpZ2dlclN5c3RlbS5nZXRCb3hTaGFwZVZhbHVlcyh0MUdsb2JhbFBvc2l0aW9uLCB0MVNoYXBlKVxuICAgIGxldCB0MiA9IFRyaWdnZXJTeXN0ZW0uZ2V0Qm94U2hhcGVWYWx1ZXModDJHbG9iYWxQb3NpdGlvbiwgdDJTaGFwZSlcbiAgICByZXR1cm4gKFxuICAgICAgdDEubWluLnggPD0gdDIubWF4LnggJiZcbiAgICAgIHQxLm1heC54ID49IHQyLm1pbi54ICYmXG4gICAgICB0MS5taW4ueSA8PSB0Mi5tYXgueSAmJiB0MS5tYXgueSA+PSB0Mi5taW4ueSAmJlxuICAgICAgdDEubWluLnogPD0gdDIubWF4LnogJiYgdDEubWF4LnogPj0gdDIubWluLnpcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmdTcGhlcmUoXG4gICAgdDFHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MVNoYXBlOiBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gICAgdDJHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICB0MlNoYXBlOiBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IHNxRGlzdCA9IFZlY3RvcjMuRGlzdGFuY2VTcXVhcmVkKFxuICAgICAgdDFHbG9iYWxQb3NpdGlvbi5hZGQodDFTaGFwZS5wb3NpdGlvbiksXG4gICAgICB0Mkdsb2JhbFBvc2l0aW9uLmFkZCh0MlNoYXBlLnBvc2l0aW9uKVxuICAgIClcbiAgICByZXR1cm4gKFxuICAgICAgc3FEaXN0IDwgdDFTaGFwZS5yYWRpdXMgKiB0MVNoYXBlLnJhZGl1cyArIHQyU2hhcGUucmFkaXVzICogdDJTaGFwZS5yYWRpdXNcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcmVDb2xsaWRpbmdBQUJCU3BoZXJlKFxuICAgIHQxR2xvYmFsUG9zaXRpb246IFZlY3RvcjMsXG4gICAgdDFTaGFwZTogVHJpZ2dlckJveFNoYXBlLFxuICAgIHQyR2xvYmFsUG9zaXRpb246IFZlY3RvcjMsXG4gICAgdDJTaGFwZTogVHJpZ2dlclNwaGVyZVNoYXBlXG4gICk6IGJvb2xlYW4ge1xuICAgIGxldCBib3ggPSBUcmlnZ2VyU3lzdGVtLmdldEJveFNoYXBlVmFsdWVzKHQxR2xvYmFsUG9zaXRpb24sIHQxU2hhcGUpXG4gICAgbGV0IHNwaGVyZSA9IHtcbiAgICAgIGNlbnRlcjogdDJHbG9iYWxQb3NpdGlvbi5hZGQodDJTaGFwZS5wb3NpdGlvbiksXG4gICAgICByYWRpdXM6IHQyU2hhcGUucmFkaXVzXG4gICAgfVxuXG4gICAgbGV0IGRtaW4gPSAwXG4gICAgaWYgKHNwaGVyZS5jZW50ZXIueCA8IGJveC5taW4ueClcbiAgICAgIGRtaW4gKz0gKGJveC5taW4ueCAtIHNwaGVyZS5jZW50ZXIueCkgKiAoYm94Lm1pbi54IC0gc3BoZXJlLmNlbnRlci54KVxuICAgIGlmIChzcGhlcmUuY2VudGVyLnggPiBib3gubWF4LngpXG4gICAgICBkbWluICs9IChzcGhlcmUuY2VudGVyLnggLSBib3gubWF4LngpICogKHNwaGVyZS5jZW50ZXIueCAtIGJveC5tYXgueClcbiAgICBpZiAoc3BoZXJlLmNlbnRlci55IDwgYm94Lm1pbi55KVxuICAgICAgZG1pbiArPSAoYm94Lm1pbi55IC0gc3BoZXJlLmNlbnRlci55KSAqIChib3gubWluLnkgLSBzcGhlcmUuY2VudGVyLnkpXG4gICAgaWYgKHNwaGVyZS5jZW50ZXIueSA+IGJveC5tYXgueSlcbiAgICAgIGRtaW4gKz0gKHNwaGVyZS5jZW50ZXIueSAtIGJveC5tYXgueSkgKiAoc3BoZXJlLmNlbnRlci55IC0gYm94Lm1heC55KVxuICAgIGlmIChzcGhlcmUuY2VudGVyLnogPCBib3gubWluLnopXG4gICAgICBkbWluICs9IChib3gubWluLnogLSBzcGhlcmUuY2VudGVyLnopICogKGJveC5taW4ueiAtIHNwaGVyZS5jZW50ZXIueilcbiAgICBpZiAoc3BoZXJlLmNlbnRlci56ID4gYm94Lm1heC56KVxuICAgICAgZG1pbiArPSAoc3BoZXJlLmNlbnRlci56IC0gYm94Lm1heC56KSAqIChzcGhlcmUuY2VudGVyLnogLSBib3gubWF4LnopXG5cbiAgICByZXR1cm4gZG1pbiA8IHNwaGVyZS5yYWRpdXMgKiBzcGhlcmUucmFkaXVzXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRCb3hTaGFwZVZhbHVlcyhcbiAgICBlbnRpdHlHbG9iYWxQb3NpdGlvbjogVmVjdG9yMyxcbiAgICBzaGFwZTogVHJpZ2dlckJveFNoYXBlXG4gICk6IHsgY2VudGVyOiBWZWN0b3IzOyBtaW46IFZlY3RvcjM7IG1heDogVmVjdG9yMyB9IHtcbiAgICBsZXQgY2VudGVyID0gZW50aXR5R2xvYmFsUG9zaXRpb24uYWRkKHNoYXBlLnBvc2l0aW9uKVxuICAgIHJldHVybiB7XG4gICAgICBjZW50ZXI6IGNlbnRlcixcbiAgICAgIG1pbjogY2VudGVyLnN1YnRyYWN0KHNoYXBlLnNpemUuc2NhbGUoMC41KSksXG4gICAgICBtYXg6IGNlbnRlci5hZGQoc2hhcGUuc2l6ZS5zY2FsZSgwLjUpKVxuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBUcmlnZ2VyV3JhcHBlciB7XG4gIHdhc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG5cbiAgZ2V0IGVudGl0eSgpOiBFbnRpdHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlcbiAgfVxuICBnZXQgdHJpZ2dlcigpOiBUcmlnZ2VyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlclxuICB9XG4gIGdldCB1dWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3V1aWRcbiAgfVxuXG4gIHByb3RlY3RlZCBfZW50aXR5PzogRW50aXR5XG4gIHByb3RlY3RlZCBfdHJpZ2dlciE6IFRyaWdnZXJDb21wb25lbnRcbiAgcHJvdGVjdGVkIF91dWlkOiBzdHJpbmcgPSAnJ1xuICBwcm90ZWN0ZWQgX2NvbGxpZGluZ1dpdGg6IFJlY29yZDxzdHJpbmcsIFRyaWdnZXJXcmFwcGVyPiA9IHt9XG5cbiAgcHJpdmF0ZSBfaXNEZWJ1ZzogYm9vbGVhbiA9IGZhbHNlXG4gIHByaXZhdGUgX2RlYnVnRW50aXR5OiBFbnRpdHkgfCBudWxsID0gbnVsbFxuICBwcml2YXRlIHN0YXRpYyBfZGVidWdNYXRlcmlhbDogTWF0ZXJpYWwgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGVudGl0eT86IEVudGl0eSkge1xuICAgIHRoaXMuX2VudGl0eSA9IGVudGl0eVxuICAgIGlmIChlbnRpdHkpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXIgPSBlbnRpdHkuZ2V0Q29tcG9uZW50KFRyaWdnZXJDb21wb25lbnQpXG4gICAgICB0aGlzLl91dWlkID0gZW50aXR5LnV1aWRcbiAgICAgIHRoaXMuX2lzRGVidWcgPSB0aGlzLl90cmlnZ2VyLmRlYnVnRW5hYmxlZFxuICAgICAgaWYgKHRoaXMuX2lzRGVidWcpIHtcbiAgICAgICAgdGhpcy5hZGREZWJ1Z0VudGl0eSgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0R2xvYmFsUG9zaXRpb24oKTogVmVjdG9yMyB7XG4gICAgaWYgKHRoaXMuX2VudGl0eSkgcmV0dXJuIFRyaWdnZXJXcmFwcGVyLmdldEVudGl0eVdvcmxkUG9zaXRpb24odGhpcy5fZW50aXR5KVxuICAgIHJldHVybiBWZWN0b3IzLlplcm8oKVxuICB9XG5cbiAgZ2V0U2hhcGUoKTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlIHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlci5zaGFwZVxuICB9XG5cbiAgaXNJbkVuZ2luZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5ICE9IG51bGwgJiYgdGhpcy5fZW50aXR5LmlzQWRkZWRUb0VuZ2luZSgpXG4gIH1cblxuICBnZXRBY3RpdmVDb2xsaXNpb25zKCk6IFRyaWdnZXJXcmFwcGVyW10ge1xuICAgIGxldCByZXQ6IFRyaWdnZXJXcmFwcGVyW10gPSBbXVxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fY29sbGlkaW5nV2l0aCkge1xuICAgICAgaWYgKHRoaXMuX2NvbGxpZGluZ1dpdGguaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICByZXQucHVzaCh0aGlzLl9jb2xsaWRpbmdXaXRoW2tleV0pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXRcbiAgfVxuXG4gIGhhc0FjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fY29sbGlkaW5nV2l0aFtvdGhlci51dWlkXSAhPSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuX2NvbGxpZGluZ1dpdGhbb3RoZXIudXVpZF0gIT0gbnVsbFxuICAgIClcbiAgfVxuXG4gIGRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpIHtcbiAgICBkZWxldGUgdGhpcy5fY29sbGlkaW5nV2l0aFtvdGhlci51dWlkXVxuICB9XG5cbiAgZW5nYWdlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcikge1xuICAgIHRoaXMuX2NvbGxpZGluZ1dpdGhbb3RoZXIudXVpZF0gPSBvdGhlclxuICB9XG5cbiAgaXNEZWJ1Z2dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRGVidWdcbiAgfVxuXG4gIGFkZERlYnVnRW50aXR5KCkge1xuICAgIGlmICghVHJpZ2dlcldyYXBwZXIuX2RlYnVnTWF0ZXJpYWwpIHtcbiAgICAgIFRyaWdnZXJXcmFwcGVyLl9kZWJ1Z01hdGVyaWFsID0gbmV3IE1hdGVyaWFsKClcbiAgICAgIFRyaWdnZXJXcmFwcGVyLl9kZWJ1Z01hdGVyaWFsLmFscGhhVGVzdCA9IDAuNVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9kZWJ1Z0VudGl0eSA9PSBudWxsKSB7XG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eSA9IG5ldyBFbnRpdHkoKVxuXG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSBuZXcgVHJhbnNmb3JtKClcbiAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudCh0cmFuc2Zvcm0pXG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eS5hZGRDb21wb25lbnQoVHJpZ2dlcldyYXBwZXIuX2RlYnVnTWF0ZXJpYWwpXG5cbiAgICAgIGlmICh0aGlzLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyQm94U2hhcGUpIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBuZXcgQm94U2hhcGUoKVxuICAgICAgICBzaGFwZS53aXRoQ29sbGlzaW9ucyA9IGZhbHNlXG4gICAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudChzaGFwZSlcbiAgICAgICAgdHJhbnNmb3JtLnNjYWxlID0gKHRoaXMuZ2V0U2hhcGUoKSBhcyBUcmlnZ2VyQm94U2hhcGUpLnNpemVcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmdldFNoYXBlKCkgaW5zdGFuY2VvZiBUcmlnZ2VyU3BoZXJlU2hhcGUpIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBuZXcgU3BoZXJlU2hhcGUoKVxuICAgICAgICBzaGFwZS53aXRoQ29sbGlzaW9ucyA9IGZhbHNlXG4gICAgICAgIHRoaXMuX2RlYnVnRW50aXR5LmFkZENvbXBvbmVudChzaGFwZSlcbiAgICAgICAgbGV0IHJhZCA9ICh0aGlzLmdldFNoYXBlKCkgYXMgVHJpZ2dlclNwaGVyZVNoYXBlKS5yYWRpdXNcbiAgICAgICAgdHJhbnNmb3JtLnNjYWxlID0gbmV3IFZlY3RvcjMocmFkLCByYWQsIHJhZClcbiAgICAgIH1cbiAgICB9XG4gICAgZW5naW5lLmFkZEVudGl0eSh0aGlzLl9kZWJ1Z0VudGl0eSlcbiAgfVxuXG4gIHJlbW92ZURlYnVnRW50aXR5KCkge1xuICAgIGlmICh0aGlzLl9kZWJ1Z0VudGl0eSAhPSBudWxsKSBlbmdpbmUucmVtb3ZlRW50aXR5KHRoaXMuX2RlYnVnRW50aXR5KVxuICB9XG5cbiAgdXBkYXRlRGVidWdFbnRpdHkoKSB7XG4gICAgaWYgKHRoaXMuX2RlYnVnRW50aXR5KSB7XG4gICAgICB0aGlzLl9kZWJ1Z0VudGl0eS5nZXRDb21wb25lbnQoXG4gICAgICAgIFRyYW5zZm9ybVxuICAgICAgKS5wb3NpdGlvbiA9IHRoaXMuZ2V0R2xvYmFsUG9zaXRpb24oKS5hZGQodGhpcy5nZXRTaGFwZSgpLnBvc2l0aW9uKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldEVudGl0eVdvcmxkUG9zaXRpb24oZW50aXR5OiBJRW50aXR5KTogVmVjdG9yMyB7XG4gICAgbGV0IGVudGl0eVBvc2l0aW9uID0gZW50aXR5Lmhhc0NvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICA/IGVudGl0eS5nZXRDb21wb25lbnQoVHJhbnNmb3JtKS5wb3NpdGlvblxuICAgICAgOiBWZWN0b3IzLlplcm8oKVxuICAgIGxldCBwYXJlbnRFbnRpdHkgPSBlbnRpdHkuZ2V0UGFyZW50KClcblxuICAgIGlmIChwYXJlbnRFbnRpdHkgIT0gbnVsbCkge1xuICAgICAgbGV0IHBhcmVudFJvdGF0aW9uID0gcGFyZW50RW50aXR5Lmhhc0NvbXBvbmVudChUcmFuc2Zvcm0pXG4gICAgICAgID8gcGFyZW50RW50aXR5LmdldENvbXBvbmVudChUcmFuc2Zvcm0pLnJvdGF0aW9uXG4gICAgICAgIDogUXVhdGVybmlvbi5JZGVudGl0eVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5V29ybGRQb3NpdGlvbihwYXJlbnRFbnRpdHkpLmFkZChcbiAgICAgICAgZW50aXR5UG9zaXRpb24ucm90YXRlKHBhcmVudFJvdGF0aW9uKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZW50aXR5UG9zaXRpb25cbiAgfVxufVxuXG5jbGFzcyBDYW1lcmFUcmlnZ2VyIGV4dGVuZHMgVHJpZ2dlcldyYXBwZXIge1xuICBwcml2YXRlIF9zaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlXG5cbiAgY29uc3RydWN0b3Ioc2hhcGU6IFRyaWdnZXJCb3hTaGFwZSB8IFRyaWdnZXJTcGhlcmVTaGFwZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLl9zaGFwZSA9IHNoYXBlXG4gICAgdGhpcy5fdXVpZCA9ICdjYW1lcmFUcmlnZ2VyJ1xuICB9XG5cbiAgZ2V0R2xvYmFsUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIENhbWVyYS5pbnN0YW5jZS5wb3NpdGlvblxuICB9XG5cbiAgZ2V0U2hhcGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NoYXBlXG4gIH1cblxuICBzZXRTaGFwZShzaGFwZTogVHJpZ2dlckJveFNoYXBlIHwgVHJpZ2dlclNwaGVyZVNoYXBlKSB7XG4gICAgdGhpcy5fc2hhcGUgPSBzaGFwZVxuICB9XG5cbiAgaXNJbkVuZ2luZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGhhc0FjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGRpc2VuZ2FnZUFjdGl2ZUNvbGxpc2lvbihvdGhlcjogVHJpZ2dlcldyYXBwZXIpIHt9XG5cbiAgZW5nYWdlQ29sbGlzaW9uKG90aGVyOiBUcmlnZ2VyV3JhcHBlcikge31cbiAgaXNEZWJ1Z2dpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQENvbXBvbmVudCgndHJpZ2dlckNvbXBvbmVudCcpXG5leHBvcnQgY2xhc3MgVHJpZ2dlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBpcyB0cmlnZ2VyIGVuYWJsZT9cbiAgICovXG4gIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlXG4gIC8qKlxuICAgKiBzaGFwZSBvZiB0aGUgY29sbGlkZXJcbiAgICovXG4gIHNoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGVcbiAgLyoqXG4gICAqIGJpdCBsYXllciBvZiB0aGUgVGlnZ2VyICh1c2VmdWxsIHRvIGRpc2NyaW1pbmF0ZSBiZXR3ZWVuIHRyaWdnZXIgZXZlbnRzKVxuICAgKi9cbiAgbGF5ZXI6IG51bWJlciA9IDBcbiAgLyoqXG4gICAqIGFnYWluc3Qgd2hpY2ggbGF5ZXIgYXJlIHdlIGdvaW5nIHRvIGNoZWNrIHRyaWdnZXIncyBjb2xsaXNpb25zXG4gICAqL1xuICB0cmlnZ2VyZWRCeUxheWVyOiBudW1iZXIgPSAwXG4gIC8qKlxuICAgKiBjYWxsYmFjayB3aGVuIHRyaWdnZXIgaXMgZW50ZXJlZFxuICAgKi9cbiAgb25UcmlnZ2VyRW50ZXI/OiAoZW50aXR5OiBFbnRpdHkpID0+IHZvaWRcbiAgLyoqXG4gICAqIGNhbGxiYWNrIHdoZW4gdHJpZ2dlciBpcyBleGl0XG4gICAqL1xuICBvblRyaWdnZXJFeGl0PzogKGVudGl0eTogRW50aXR5KSA9PiB2b2lkXG4gIC8qKlxuICAgKiBjYWxsYmFjayB3aGVuIHRyaWdnZXIgaXMgZW50ZXJlZFxuICAgKi9cbiAgb25DYW1lcmFFbnRlcj86ICgpID0+IHZvaWRcbiAgLyoqXG4gICAqIGNhbGxiYWNrIHdoZW4gdHJpZ2dlciBpcyBleGl0XG4gICAqL1xuICBvbkNhbWVyYUV4aXQ/OiAoKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBnZXQgaWYgZGVidWcgaXMgZW5hYmxlZFxuICAgKi9cbiAgZ2V0IGRlYnVnRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGVidWdFbmFibGVkXG4gIH1cblxuICBwcml2YXRlIF9kZWJ1Z0VuYWJsZWQ6IGJvb2xlYW5cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHNoYXBlIHNoYXBlIG9mIHRoZSB0cmlnZ2VyaW5nIGNvbGxpZGVyIGFyZWFcbiAgICogQHBhcmFtIGxheWVyIGxheWVyIG9mIHRoZSBUcmlnZ2VyLCB1c2VmdWwgdG8gZGlzY3JpbWluYXRlIGJldHdlZW4gdHJpZ2dlciBldmVudHMuIFlvdSBjYW4gc2V0IG11bHRpcGxlIGxheWVycyBieSB1c2luZyBhIHwgc3ltYm9sLlxuICAgKiBAcGFyYW0gdHJpZ2dlcmVkQnlMYXllciBhZ2FpbnN0IHdoaWNoIGxheWVycyB0byBjaGVjayBjb2xsaXNpb25zXG4gICAqIEBwYXJhbSBvblRyaWdnZXJFbnRlciBjYWxsYmFjayB3aGVuIGFuIGVudGl0eSBvZiBhIHZhbGlkIGxheWVyIGVudGVycyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBvblRyaWdnZXJFeGl0IGNhbGxiYWNrIHdoZW4gYW4gZW50aXR5IG9mIGEgdmFsaWQgbGF5ZXIgbGVhdmVzIHRoZSB0cmlnZ2VyIGFyZWFcbiAgICogQHBhcmFtIG9uQ2FtZXJhRW50ZXIgY2FsbGJhY2sgd2hlbiB0aGUgcGxheWVyIGVudGVycyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBvbkNhbWVyYUV4aXQgY2FsbGJhY2sgd2hlbiB0aGUgcGxheWVyIGxlYXZlcyB0aGUgdHJpZ2dlciBhcmVhXG4gICAqIEBwYXJhbSBlbmFibGVEZWJ1ZyB3aGVuIHRydWUgbWFrZXMgdGhlIHRyaWdnZXIgYXJlYSB2aXNpYmxlIGZvciBkZWJ1ZyBwdXJwb3Nlcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNoYXBlOiBUcmlnZ2VyQm94U2hhcGUgfCBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gICAgbGF5ZXI6IG51bWJlciA9IDAsXG4gICAgdHJpZ2dlcmVkQnlMYXllcjogbnVtYmVyID0gMCxcbiAgICBvblRyaWdnZXJFbnRlcj86IChlbnRpdHk6IEVudGl0eSkgPT4gdm9pZCxcbiAgICBvblRyaWdnZXJFeGl0PzogKGVudGl0eTogRW50aXR5KSA9PiB2b2lkLFxuICAgIG9uQ2FtZXJhRW50ZXI/OiAoKSA9PiB2b2lkLFxuICAgIG9uQ2FtZXJhRXhpdD86ICgpID0+IHZvaWQsXG4gICAgZW5hYmxlRGVidWc6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBUcmlnZ2VyU3lzdGVtLmNyZWF0ZUFuZEFkZFRvRW5naW5lKClcbiAgICB0aGlzLnNoYXBlID0gc2hhcGVcbiAgICB0aGlzLmxheWVyID0gbGF5ZXJcbiAgICB0aGlzLnRyaWdnZXJlZEJ5TGF5ZXIgPSB0cmlnZ2VyZWRCeUxheWVyXG4gICAgdGhpcy5vblRyaWdnZXJFbnRlciA9IG9uVHJpZ2dlckVudGVyXG4gICAgdGhpcy5vblRyaWdnZXJFeGl0ID0gb25UcmlnZ2VyRXhpdFxuICAgIHRoaXMub25DYW1lcmFFbnRlciA9IG9uQ2FtZXJhRW50ZXJcbiAgICB0aGlzLm9uQ2FtZXJhRXhpdCA9IG9uQ2FtZXJhRXhpdFxuICAgIHRoaXMuX2RlYnVnRW5hYmxlZCA9IGVuYWJsZURlYnVnXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyaWdnZXJCb3hTaGFwZSB7XG4gIHNpemU6IFZlY3RvcjNcbiAgcG9zaXRpb246IFZlY3RvcjNcblxuICBjb25zdHJ1Y3RvcihzaXplOiBWZWN0b3IzLCBwb3NpdGlvbjogVmVjdG9yMykge1xuICAgIHRoaXMuc2l6ZSA9IHNpemVcbiAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb25cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJpZ2dlclNwaGVyZVNoYXBlIHtcbiAgcmFkaXVzOiBudW1iZXJcbiAgcG9zaXRpb246IFZlY3RvcjNcblxuICBjb25zdHJ1Y3RvcihyYWRpdXM6IG51bWJlciwgcG9zaXRpb246IFZlY3RvcjMpIHtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1c1xuICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvblxuICB9XG59XG4iLCJleHBvcnQgY2xhc3MgQWN0aW9uc1NlcXVlbmNlU3lzdGVtIGltcGxlbWVudHMgSVN5c3RlbSB7XG4gIHByaXZhdGUgYmVnaW5TZXF1ZW5jZU5vZGU6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgY3VycmVudFNlcXVlbmNlTm9kZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcblxuICBwcml2YXRlIHJ1bm5pbmc6IGJvb2xlYW4gPSBmYWxzZVxuICBwcml2YXRlIHN0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIHByaXZhdGUgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcblxuICBjb25zdHJ1Y3RvcihzZXF1ZW5jZUJ1aWx0PzogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLlNlcXVlbmNlQnVpbGRlcikge1xuICAgIGlmIChzZXF1ZW5jZUJ1aWx0KSB7XG4gICAgICB0aGlzLnN0YXJ0U2VxdWVuY2Uoc2VxdWVuY2VCdWlsdClcbiAgICB9XG4gIH1cblxuICBzdGFydFNlcXVlbmNlKHNlcXVlbmNlQnVpbHQ6IEFjdGlvbnNTZXF1ZW5jZVN5c3RlbS5TZXF1ZW5jZUJ1aWxkZXIpIHtcbiAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gc2VxdWVuY2VCdWlsdC5iZWdpblNlcXVlbmNlTm9kZVxuICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGVcbiAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2VcbiAgfVxuXG4gIHNldE9uRmluaXNoQ2FsbGJhY2sob25GaW5pc2hDYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25GaW5pc2hDYWxsYmFjayA9IG9uRmluaXNoQ2FsbGJhY2tcbiAgfVxuXG4gIGlzUnVubmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ydW5uaW5nXG4gIH1cblxuICBzdG9wKCkge1xuICAgIHRoaXMucnVubmluZyA9IGZhbHNlXG4gIH1cblxuICByZXN1bWUoKSB7XG4gICAgaWYgKHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5ydW5uaW5nID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuYmVnaW5TZXF1ZW5jZU5vZGVcbiAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2VcbiAgfVxuXG4gIGdldFJ1bm5pbmdBY3Rpb24oKTogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLklBY3Rpb24gfCBudWxsIHtcbiAgICBsZXQgY3VycmVudE5vZGU6IFNlcXVlbmNlTm9kZSB8IG51bGwgPSB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGVcblxuICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgaW5zdGFuY2VvZiBTdWJTZXF1ZW5jZU5vZGUpIHtcbiAgICAgIGRvIHtcbiAgICAgICAgY3VycmVudE5vZGUgPSAoY3VycmVudE5vZGUgYXMgU3ViU2VxdWVuY2VOb2RlKS5jdXJyZW50SW5uZXJTZXF1ZW5jZVxuICAgICAgfSB3aGlsZSAoY3VycmVudE5vZGUgaW5zdGFuY2VvZiBTdWJTZXF1ZW5jZU5vZGUpXG4gICAgfVxuICAgIHJldHVybiAoY3VycmVudE5vZGUgYXMgU2VxdWVuY2VOb2RlKS5hY3Rpb25cbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucnVubmluZykge1xuICAgICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgOyh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5vblN0YXJ0KClcbiAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCEodGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlIGFzIFNlcXVlbmNlTm9kZSkuaGFzRmluaXNoKCkpIHtcbiAgICAgICAgICA7KHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLnVwZGF0ZShkdClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICA7KHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLm9uRmluaXNoKClcbiAgICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSAodGhpc1xuICAgICAgICAgICAgLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5uZXh0XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlLm9uU3RhcnQoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZVxuICAgICAgICAgICAgaWYgKHRoaXMub25GaW5pc2hDYWxsYmFjaykgdGhpcy5vbkZpbmlzaENhbGxiYWNrKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0ge1xuICBleHBvcnQgaW50ZXJmYWNlIElBY3Rpb24ge1xuICAgIG9uU3RhcnQoKTogdm9pZFxuICAgIHVwZGF0ZShkdDogbnVtYmVyKTogdm9pZFxuICAgIG9uRmluaXNoKCk6IHZvaWRcbiAgICBoYXNGaW5pc2hlZDogYm9vbGVhblxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIFNlcXVlbmNlQnVpbGRlciB7XG4gICAgcHJpdmF0ZSBjdXJyZW50U2VxdWVuY2VOb2RlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuICAgIHB1YmxpYyBiZWdpblNlcXVlbmNlTm9kZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcblxuICAgIHByaXZhdGUgd2hpbGVOb2RlU3RhY2s6IFdoaWxlU2VxdWVuY2VOb2RlW10gPSBbXVxuXG4gICAgdGhlbihhY3Rpb246IEFjdGlvbnNTZXF1ZW5jZVN5c3RlbS5JQWN0aW9uKTogU2VxdWVuY2VCdWlsZGVyIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSBuZXcgU2VxdWVuY2VOb2RlKClcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlLmFjdGlvbiA9IGFjdGlvblxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgbmV4dCA9IG5ldyBTZXF1ZW5jZU5vZGUoKVxuICAgICAgICBuZXh0LmFjdGlvbiA9IGFjdGlvblxuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUudGhlbihuZXh0KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBpZihjb25kaXRpb246ICgpID0+IGJvb2xlYW4pOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IGlmU2VxID0gbmV3IElmU2VxdWVuY2VOb2RlKGNvbmRpdGlvbilcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSBpZlNlcVxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gaWZTZXFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZS50aGVuKGlmU2VxKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbHNlKCk6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBsZXQgc2VxID0gKHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLmdldFNlcXVlbmNlKClcbiAgICAgIGlmIChzZXEgaW5zdGFuY2VvZiBJZlNlcXVlbmNlTm9kZSkge1xuICAgICAgICBzZXEuY2xvc2VkID0gdHJ1ZVxuICAgICAgICBsZXQgZWxzZVNlcSA9IG5ldyBFbHNlU2VxdWVuY2VOb2RlKHNlcSlcbiAgICAgICAgdGhpcy5jdXJyZW50U2VxdWVuY2VOb2RlID0gKHRoaXNcbiAgICAgICAgICAuY3VycmVudFNlcXVlbmNlTm9kZSBhcyBTZXF1ZW5jZU5vZGUpLnRoZW4oZWxzZVNlcSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnSUYgc3RhdGVtZW50IGlzIG5lZWRlZCB0byBiZSBjYWxsZWQgYmVmb3JlIEVMU0Ugc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbmRJZigpOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHNlcSA9ICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5nZXRTZXF1ZW5jZSgpXG4gICAgICBpZiAoc2VxIGluc3RhbmNlb2YgSWZTZXF1ZW5jZU5vZGUgfHwgc2VxIGluc3RhbmNlb2YgRWxzZVNlcXVlbmNlTm9kZSkge1xuICAgICAgICBzZXEuY2xvc2VkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdJRiBzdGF0ZW1lbnQgaXMgbmVlZGVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgRU5ESUYgc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICB3aGlsZShjb25kaXRpb246ICgpID0+IGJvb2xlYW4pOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHdoaWxlU2VxID0gbmV3IFdoaWxlU2VxdWVuY2VOb2RlKGNvbmRpdGlvbilcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgPSB3aGlsZVNlcVxuICAgICAgICB0aGlzLmJlZ2luU2VxdWVuY2VOb2RlID0gd2hpbGVTZXFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9IHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZS50aGVuKHdoaWxlU2VxKVxuICAgICAgfVxuICAgICAgdGhpcy53aGlsZU5vZGVTdGFjay5wdXNoKHdoaWxlU2VxKVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBlbmRXaGlsZSgpOiBTZXF1ZW5jZUJ1aWxkZXIge1xuICAgICAgbGV0IHNlcSA9ICh0aGlzLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS5nZXRTZXF1ZW5jZSgpXG4gICAgICBpZiAoc2VxIGluc3RhbmNlb2YgV2hpbGVTZXF1ZW5jZU5vZGUpIHtcbiAgICAgICAgc2VxLmNsb3NlZCA9IHRydWVcbiAgICAgICAgaWYgKHRoaXMud2hpbGVOb2RlU3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMud2hpbGVOb2RlU3RhY2suc3BsaWNlKHRoaXMud2hpbGVOb2RlU3RhY2subGVuZ3RoIC0gMSwgMSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdXSElMRSBzdGF0ZW1lbnQgaXMgbmVlZGVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgRU5EV0hJTEUgc3RhdGVtZW50LidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBicmVha1doaWxlKCk6IFNlcXVlbmNlQnVpbGRlciB7XG4gICAgICBpZiAodGhpcy53aGlsZU5vZGVTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlcXVlbmNlTm9kZSA9ICh0aGlzXG4gICAgICAgICAgLmN1cnJlbnRTZXF1ZW5jZU5vZGUgYXMgU2VxdWVuY2VOb2RlKS50aGVuKFxuICAgICAgICAgIG5ldyBCcmVha1doaWxlU2VxdWVuY2VOb2RlKFxuICAgICAgICAgICAgdGhpcy53aGlsZU5vZGVTdGFja1t0aGlzLndoaWxlTm9kZVN0YWNrLmxlbmd0aCAtIDFdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1dISUxFIHN0YXRlbWVudCBpcyBuZWVkZWQgdG8gYmUgY2FsbGVkIGJlZm9yZSBCUkVBS1dISUxFIHN0YXRlbWVudC4nXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFNlcXVlbmNlTm9kZSB7XG4gIGFjdGlvbjogQWN0aW9uc1NlcXVlbmNlU3lzdGVtLklBY3Rpb24gfCBudWxsID0gbnVsbFxuICBuZXh0OiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuXG4gIHRoZW4obmV4dDogU2VxdWVuY2VOb2RlKTogU2VxdWVuY2VOb2RlIHtcbiAgICB0aGlzLm5leHQgPSBuZXh0XG4gICAgcmV0dXJuIG5leHRcbiAgfVxuXG4gIG9uU3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuYWN0aW9uKSB0aGlzLmFjdGlvbi5vblN0YXJ0KClcbiAgfVxuXG4gIHVwZGF0ZShkdDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuYWN0aW9uKSB0aGlzLmFjdGlvbi51cGRhdGUoZHQpXG4gIH1cblxuICBvbkZpbmlzaCgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHRoaXMuYWN0aW9uLm9uRmluaXNoKClcbiAgfVxuXG4gIGhhc0ZpbmlzaCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHJldHVybiB0aGlzLmFjdGlvbi5oYXNGaW5pc2hlZFxuICAgIGVsc2UgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGdldFNlcXVlbmNlKCk6IFNlcXVlbmNlTm9kZSB7XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG5jbGFzcyBTdWJTZXF1ZW5jZU5vZGUgZXh0ZW5kcyBTZXF1ZW5jZU5vZGUge1xuICBjdXJyZW50SW5uZXJTZXF1ZW5jZTogU2VxdWVuY2VOb2RlIHwgbnVsbCA9IG51bGxcbiAgc3RhcnRpbmdJbm5lclNlcXVlbmNlOiBTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuICBjbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIHRoZW4obmV4dDogU2VxdWVuY2VOb2RlKTogU2VxdWVuY2VOb2RlIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gbmV4dFxuICAgICAgdGhpcy5zdGFydGluZ0lubmVyU2VxdWVuY2UgPSBuZXh0XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgICB0aGlzLm5leHQgPSBuZXh0XG4gICAgICAgIHJldHVybiBuZXh0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS50aGVuKG5leHQpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBvblN0YXJ0KCkge1xuICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLnN0YXJ0aW5nSW5uZXJTZXF1ZW5jZVxuICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlKSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm9uU3RhcnQoKVxuICB9XG5cbiAgdXBkYXRlKGR0OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkge1xuICAgICAgaWYgKCF0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLmhhc0ZpbmlzaCgpKSB7XG4gICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UudXBkYXRlKGR0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5vbkZpbmlzaCgpXG4gICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm5leHRcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2Uub25TdGFydCgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25GaW5pc2goKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2Uub25GaW5pc2goKVxuICB9XG5cbiAgaGFzRmluaXNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID09IG51bGxcbiAgfVxuXG4gIGdldFNlcXVlbmNlKCk6IFNlcXVlbmNlTm9kZSB7XG4gICAgaWYgKHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UpIHtcbiAgICAgIGxldCBpbm5lclNlcSA9IHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UuZ2V0U2VxdWVuY2UoKVxuICAgICAgaWYgKGlubmVyU2VxIGluc3RhbmNlb2YgU3ViU2VxdWVuY2VOb2RlKSB7XG4gICAgICAgIGlmICghaW5uZXJTZXEuY2xvc2VkKSB7XG4gICAgICAgICAgcmV0dXJuIGlubmVyU2VxXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG5jbGFzcyBJZlNlcXVlbmNlTm9kZSBleHRlbmRzIFN1YlNlcXVlbmNlTm9kZSB7XG4gIGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhblxuICByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbikge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbmRpdGlvbiA9IGNvbmRpdGlvblxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLnJlc3VsdCA9IHRoaXMuY29uZGl0aW9uKClcbiAgICBpZiAodGhpcy5yZXN1bHQpIHN1cGVyLm9uU3RhcnQoKVxuICAgIGVsc2UgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IG51bGxcbiAgfVxufVxuXG5jbGFzcyBFbHNlU2VxdWVuY2VOb2RlIGV4dGVuZHMgU3ViU2VxdWVuY2VOb2RlIHtcbiAgaWZTZXF1ZW5jZTogSWZTZXF1ZW5jZU5vZGUgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGlmU2VxdWVuY2U6IElmU2VxdWVuY2VOb2RlKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuaWZTZXF1ZW5jZSA9IGlmU2VxdWVuY2VcbiAgfVxuXG4gIG9uU3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuaWZTZXF1ZW5jZSAmJiAhdGhpcy5pZlNlcXVlbmNlLnJlc3VsdCkgc3VwZXIub25TdGFydCgpXG4gICAgZWxzZSB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlID0gbnVsbFxuICB9XG59XG5cbmNsYXNzIFdoaWxlU2VxdWVuY2VOb2RlIGV4dGVuZHMgU3ViU2VxdWVuY2VOb2RlIHtcbiAgY29uZGl0aW9uOiAoKSA9PiBib29sZWFuXG4gIGJyZWFrV2hpbGU6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbikge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbmRpdGlvbiA9IGNvbmRpdGlvblxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLmJyZWFrV2hpbGUgPSBmYWxzZVxuICAgIGlmICh0aGlzLmNvbmRpdGlvbigpKSBzdXBlci5vblN0YXJ0KClcbiAgICBlbHNlIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSBudWxsXG4gIH1cblxuICB1cGRhdGUoZHQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlKSB7XG4gICAgICBpZiAoIXRoaXMuY3VycmVudElubmVyU2VxdWVuY2UuaGFzRmluaXNoKCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS51cGRhdGUoZHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbm5lclNlcXVlbmNlLm9uRmluaXNoKClcbiAgICAgICAgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9IHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UubmV4dFxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSA9PSBudWxsKVxuICAgICAgICAgIHRoaXMuY3VycmVudElubmVyU2VxdWVuY2UgPSB0aGlzLnN0YXJ0aW5nSW5uZXJTZXF1ZW5jZVxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZSkgdGhpcy5jdXJyZW50SW5uZXJTZXF1ZW5jZS5vblN0YXJ0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXNGaW5pc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYnJlYWtXaGlsZSB8fCAhdGhpcy5jb25kaXRpb24oKVxuICB9XG59XG5cbmNsYXNzIEJyZWFrV2hpbGVTZXF1ZW5jZU5vZGUgZXh0ZW5kcyBTZXF1ZW5jZU5vZGUge1xuICB3aGlsZU5vZGU6IFdoaWxlU2VxdWVuY2VOb2RlXG5cbiAgY29uc3RydWN0b3Iod2hpbGVOb2RlOiBXaGlsZVNlcXVlbmNlTm9kZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLndoaWxlTm9kZSA9IHdoaWxlTm9kZVxuICB9XG5cbiAgb25TdGFydCgpIHtcbiAgICB0aGlzLndoaWxlTm9kZS5icmVha1doaWxlID0gdHJ1ZVxuICB9XG59XG4iLCJpbXBvcnQgeyBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi90cmFuc2Zvcm0vY29tcG9uZW50L21vdmUnXG5pbXBvcnQgeyBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQvcm90YXRlJ1xuaW1wb3J0IHsgU2NhbGVUcmFuc2Zvcm1Db21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQvc2NhbGUnXG5pbXBvcnQgeyBGb2xsb3dQYXRoQ29tcG9uZW50IH0gZnJvbSAnLi90cmFuc2Zvcm0vY29tcG9uZW50L2ZvbGxvd3BhdGgnXG5pbXBvcnQgeyBLZWVwUm90YXRpbmdDb21wb25lbnQgfSBmcm9tICcuL3RyYW5zZm9ybS9jb21wb25lbnQva2VlcHJvdGF0aW5nJ1xuaW1wb3J0IHsgVHJhbnNmb3JtU3lzdGVtIH0gZnJvbSAnLi90cmFuc2Zvcm0vc3lzdGVtL3RyYW5zZnJvbVN5c3RlbSdcbmltcG9ydCB7IEludGVycG9sYXRlLCBJbnRlcnBvbGF0aW9uVHlwZSB9IGZyb20gJy4vdHJhbnNmb3JtL21hdGgvaW50ZXJwb2xhdGlvbidcblxuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50LCBUb2dnbGVTdGF0ZSB9IGZyb20gJy4vdG9nZ2xlL3RvZ2dsZUNvbXBvbmVudCdcblxuaW1wb3J0IHsgRGVsYXkgfSBmcm9tICcuL3RpbWVyL2NvbXBvbmVudC9kZWxheSdcbmltcG9ydCB7IEV4cGlyZUluIH0gZnJvbSAnLi90aW1lci9jb21wb25lbnQvZXhwaXJlJ1xuaW1wb3J0IHsgSW50ZXJ2YWwgfSBmcm9tICcuL3RpbWVyL2NvbXBvbmVudC9pbnRlcnZhbCdcblxuaW1wb3J0IHtcbiAgVHJpZ2dlclN5c3RlbSxcbiAgVHJpZ2dlckJveFNoYXBlLFxuICBUcmlnZ2VyU3BoZXJlU2hhcGUsXG4gIFRyaWdnZXJDb21wb25lbnRcbn0gZnJvbSAnLi90cmlnZ2Vycy90cmlnZ2VyU3lzdGVtJ1xuXG5pbXBvcnQgeyBBY3Rpb25zU2VxdWVuY2VTeXN0ZW0gfSBmcm9tICcuL2FjdGlvbnNTZXF1ZW5jZVN5c3RlbS9hY3Rpb25zU2VxdWVuY2VTeXN0ZW0nXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgVHJhbnNmb3JtU3lzdGVtLFxuICBNb3ZlVHJhbnNmb3JtQ29tcG9uZW50LFxuICBSb3RhdGVUcmFuc2Zvcm1Db21wb25lbnQsXG4gIFNjYWxlVHJhbnNmb3JtQ29tcG9uZW50LFxuICBGb2xsb3dQYXRoQ29tcG9uZW50LFxuICBLZWVwUm90YXRpbmdDb21wb25lbnQsXG4gIEludGVycG9sYXRlLFxuICBJbnRlcnBvbGF0aW9uVHlwZSxcbiAgVG9nZ2xlQ29tcG9uZW50LFxuICBUb2dnbGVTdGF0ZSxcbiAgRGVsYXksXG4gIEV4cGlyZUluLFxuICBJbnRlcnZhbCxcbiAgVHJpZ2dlckNvbXBvbmVudCxcbiAgVHJpZ2dlclN5c3RlbSxcbiAgVHJpZ2dlclNwaGVyZVNoYXBlLFxuICBUcmlnZ2VyQm94U2hhcGUsXG4gIEFjdGlvbnNTZXF1ZW5jZVN5c3RlbVxufVxuIiwidmFyIGV0aGNvbm5lY3Q9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gcihuKXtpZihlW25dKXJldHVybiBlW25dLmV4cG9ydHM7dmFyIG89ZVtuXT17aTpuLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIHRbbl0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsciksby5sPSEwLG8uZXhwb3J0c31yZXR1cm4gci5tPXQsci5jPWUsci5kPWZ1bmN0aW9uKHQsZSxuKXtyLm8odCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxnZXQ6bn0pfSxyLnI9ZnVuY3Rpb24odCl7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sci50PWZ1bmN0aW9uKHQsZSl7aWYoMSZlJiYodD1yKHQpKSw4JmUpcmV0dXJuIHQ7aWYoNCZlJiZcIm9iamVjdFwiPT10eXBlb2YgdCYmdCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoci5yKG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KSwyJmUmJlwic3RyaW5nXCIhPXR5cGVvZiB0KWZvcih2YXIgbyBpbiB0KXIuZChuLG8sZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19LmJpbmQobnVsbCxvKSk7cmV0dXJuIG59LHIubj1mdW5jdGlvbih0KXt2YXIgZT10JiZ0Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gdC5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiB0fTtyZXR1cm4gci5kKGUsXCJhXCIsZSksZX0sci5vPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSxyLnA9XCJcIixyKHIucz0yOCl9KFtmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPW58fGZ1bmN0aW9uKHQsZSl7dmFyIHI9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihlKXt2YXIgcjtyZXR1cm4gdC5wcm90b3R5cGU9ZSxyPW5ldyB0LHQucHJvdG90eXBlPW51bGwscn19KCksbj17fSxvPW4ubGliPXt9LGk9by5CYXNlPXtleHRlbmQ6ZnVuY3Rpb24odCl7dmFyIGU9cih0aGlzKTtyZXR1cm4gdCYmZS5taXhJbih0KSxlLmhhc093blByb3BlcnR5KFwiaW5pdFwiKSYmdGhpcy5pbml0IT09ZS5pbml0fHwoZS5pbml0PWZ1bmN0aW9uKCl7ZS4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxlLmluaXQucHJvdG90eXBlPWUsZS4kc3VwZXI9dGhpcyxlfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmV4dGVuZCgpO3JldHVybiB0LmluaXQuYXBwbHkodCxhcmd1bWVudHMpLHR9LGluaXQ6ZnVuY3Rpb24oKXt9LG1peEluOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KXQuaGFzT3duUHJvcGVydHkoZSkmJih0aGlzW2VdPXRbZV0pO3QuaGFzT3duUHJvcGVydHkoXCJ0b1N0cmluZ1wiKSYmKHRoaXMudG9TdHJpbmc9dC50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX0scz1vLldvcmRBcnJheT1pLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSx0aGlzLnNpZ0J5dGVzPW51bGwhPWU/ZTo0KnQubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8Yykuc3RyaW5naWZ5KHRoaXMpfSxjb25jYXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53b3JkcyxyPXQud29yZHMsbj10aGlzLnNpZ0J5dGVzLG89dC5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksbiU0KWZvcih2YXIgaT0wO2k8bztpKyspe3ZhciBzPXJbaT4+PjJdPj4+MjQtaSU0KjgmMjU1O2VbbitpPj4+Ml18PXM8PDI0LShuK2kpJTQqOH1lbHNlIGZvcih2YXIgaT0wO2k8bztpKz00KWVbbitpPj4+Ml09cltpPj4+Ml07cmV0dXJuIHRoaXMuc2lnQnl0ZXMrPW8sdGhpc30sY2xhbXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLndvcmRzLHI9dGhpcy5zaWdCeXRlcztlW3I+Pj4yXSY9NDI5NDk2NzI5NTw8MzItciU0KjgsZS5sZW5ndGg9dC5jZWlsKHIvNCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0LndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksdH0scmFuZG9tOmZ1bmN0aW9uKGUpe2Zvcih2YXIgcixuPVtdLG89ZnVuY3Rpb24oZSl7dmFyIGU9ZSxyPTk4NzY1NDMyMSxuPTQyOTQ5NjcyOTU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89KChyPTM2OTY5Kig2NTUzNSZyKSsocj4+MTYpJm4pPDwxNikrKGU9MThlMyooNjU1MzUmZSkrKGU+PjE2KSZuKSZuO3JldHVybiBvLz00Mjk0OTY3Mjk2LChvKz0uNSkqKHQucmFuZG9tKCk+LjU/MTotMSl9fSxpPTA7aTxlO2krPTQpe3ZhciBhPW8oNDI5NDk2NzI5Nioocnx8dC5yYW5kb20oKSkpO3I9OTg3NjU0MDcxKmEoKSxuLnB1c2goNDI5NDk2NzI5NiphKCl8MCl9cmV0dXJuIG5ldyBzLmluaXQobixlKX19KSxhPW4uZW5jPXt9LGM9YS5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMsbj1bXSxvPTA7bzxyO28rKyl7dmFyIGk9ZVtvPj4+Ml0+Pj4yNC1vJTQqOCYyNTU7bi5wdXNoKChpPj4+NCkudG9TdHJpbmcoMTYpKSxuLnB1c2goKDE1JmkpLnRvU3RyaW5nKDE2KSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj0wO248ZTtuKz0yKXJbbj4+PjNdfD1wYXJzZUludCh0LnN1YnN0cihuLDIpLDE2KTw8MjQtbiU4KjQ7cmV0dXJuIG5ldyBzLmluaXQocixlLzIpfX0sdT1hLkxhdGluMT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPVtdLG89MDtvPHI7bysrKXt2YXIgaT1lW28+Pj4yXT4+PjI0LW8lNCo4JjI1NTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj0wO248ZTtuKyspcltuPj4+Ml18PSgyNTUmdC5jaGFyQ29kZUF0KG4pKTw8MjQtbiU0Kjg7cmV0dXJuIG5ldyBzLmluaXQocixlKX19LGw9YS5VdGY4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHUuc3RyaW5naWZ5KHQpKSl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiTWFsZm9ybWVkIFVURi04IGRhdGFcIil9fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gdS5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodCkpKX19LGg9by5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtPWkuZXh0ZW5kKHtyZXNldDpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHMuaW5pdCx0aGlzLl9uRGF0YUJ5dGVzPTB9LF9hcHBlbmQ6ZnVuY3Rpb24odCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PWwucGFyc2UodCkpLHRoaXMuX2RhdGEuY29uY2F0KHQpLHRoaXMuX25EYXRhQnl0ZXMrPXQuc2lnQnl0ZXN9LF9wcm9jZXNzOmZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX2RhdGEsbj1yLndvcmRzLG89ci5zaWdCeXRlcyxpPXRoaXMuYmxvY2tTaXplLGE9NCppLGM9by9hLHU9KGM9ZT90LmNlaWwoYyk6dC5tYXgoKDB8YyktdGhpcy5fbWluQnVmZmVyU2l6ZSwwKSkqaSxsPXQubWluKDQqdSxvKTtpZih1KXtmb3IodmFyIGg9MDtoPHU7aCs9aSl0aGlzLl9kb1Byb2Nlc3NCbG9jayhuLGgpO3ZhciBmPW4uc3BsaWNlKDAsdSk7ci5zaWdCeXRlcy09bH1yZXR1cm4gbmV3IHMuaW5pdChmLGwpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWkuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksdH0sX21pbkJ1ZmZlclNpemU6MH0pLGY9KG8uSGFzaGVyPWguZXh0ZW5kKHtjZmc6aS5leHRlbmQoKSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7aC5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgZT10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIGV9LGJsb2NrU2l6ZToxNixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVybiBuZXcgdC5pbml0KHIpLmZpbmFsaXplKGUpfX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIG5ldyBmLkhNQUMuaW5pdCh0LHIpLmZpbmFsaXplKGUpfX19KSxuLmFsZ289e30pO3JldHVybiBufShNYXRoKSxuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNSksdm9pZChuLmxpYi5DaXBoZXJ8fGZ1bmN0aW9uKHQpe3ZhciBlPW4scj1lLmxpYixvPXIuQmFzZSxpPXIuV29yZEFycmF5LHM9ci5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtLGE9ZS5lbmMsYz0oYS5VdGY4LGEuQmFzZTY0KSx1PWUuYWxnbyxsPXUuRXZwS0RGLGg9ci5DaXBoZXI9cy5leHRlbmQoe2NmZzpvLmV4dGVuZCgpLGNyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9FTkNfWEZPUk1fTU9ERSx0LGUpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsdCxlKX0saW5pdDpmdW5jdGlvbih0LGUscil7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHIpLHRoaXMuX3hmb3JtTW9kZT10LHRoaXMuX2tleT1lLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXtzLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSxwcm9jZXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLl9hcHBlbmQodCk7dmFyIGU9dGhpcy5fZG9GaW5hbGl6ZSgpO3JldHVybiBlfSxrZXlTaXplOjQsaXZTaXplOjQsX0VOQ19YRk9STV9NT0RFOjEsX0RFQ19YRk9STV9NT0RFOjIsX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/Rjp3fXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm57ZW5jcnlwdDpmdW5jdGlvbihyLG4sbyl7cmV0dXJuIHQobikuZW5jcnlwdChlLHIsbixvKX0sZGVjcnlwdDpmdW5jdGlvbihyLG4sbyl7cmV0dXJuIHQobikuZGVjcnlwdChlLHIsbixvKX19fX0oKX0pLGY9KHIuU3RyZWFtQ2lwaGVyPWguZXh0ZW5kKHtfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3Byb2Nlc3MoITApO3JldHVybiB0fSxibG9ja1NpemU6MX0pLGUubW9kZT17fSkscD1yLkJsb2NrQ2lwaGVyTW9kZT1vLmV4dGVuZCh7Y3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZSh0LGUpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5EZWNyeXB0b3IuY3JlYXRlKHQsZSl9LGluaXQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9jaXBoZXI9dCx0aGlzLl9pdj1lfX0pLGQ9Zi5DQkM9ZnVuY3Rpb24oKXt2YXIgZT1wLmV4dGVuZCgpO2Z1bmN0aW9uIHIoZSxyLG4pe3ZhciBvPXRoaXMuX2l2O2lmKG8pe3ZhciBpPW87dGhpcy5faXY9dH1lbHNlIHZhciBpPXRoaXMuX3ByZXZCbG9jaztmb3IodmFyIHM9MDtzPG47cysrKWVbcitzXV49aVtzXX1yZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplO3IuY2FsbCh0aGlzLHQsZSxvKSxuLmVuY3J5cHRCbG9jayh0LGUpLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKGUsZStvKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemUsaT10LnNsaWNlKGUsZStvKTtuLmRlY3J5cHRCbG9jayh0LGUpLHIuY2FsbCh0aGlzLHQsZSxvKSx0aGlzLl9wcmV2QmxvY2s9aX19KSxlfSgpLG09ZS5wYWQ9e30seT1tLlBrY3M3PXtwYWQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9NCplLG49ci10LnNpZ0J5dGVzJXIsbz1uPDwyNHxuPDwxNnxuPDw4fG4scz1bXSxhPTA7YTxuO2ErPTQpcy5wdXNoKG8pO3ZhciBjPWkuY3JlYXRlKHMsbik7dC5jb25jYXQoYyl9LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciBlPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPWV9fSxnPShyLkJsb2NrQ2lwaGVyPWguZXh0ZW5kKHtjZmc6aC5jZmcuZXh0ZW5kKHttb2RlOmQscGFkZGluZzp5fSkscmVzZXQ6ZnVuY3Rpb24oKXtoLnJlc2V0LmNhbGwodGhpcyk7dmFyIHQ9dGhpcy5jZmcsZT10Lml2LHI9dC5tb2RlO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpdmFyIG49ci5jcmVhdGVFbmNyeXB0b3I7ZWxzZXt2YXIgbj1yLmNyZWF0ZURlY3J5cHRvcjt0aGlzLl9taW5CdWZmZXJTaXplPTF9dGhpcy5fbW9kZSYmdGhpcy5fbW9kZS5fX2NyZWF0b3I9PW4/dGhpcy5fbW9kZS5pbml0KHRoaXMsZSYmZS53b3Jkcyk6KHRoaXMuX21vZGU9bi5jYWxsKHIsdGhpcyxlJiZlLndvcmRzKSx0aGlzLl9tb2RlLl9fY3JlYXRvcj1uKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2sodCxlKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNmZy5wYWRkaW5nO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpe3QucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpO3ZhciBlPXRoaXMuX3Byb2Nlc3MoITApfWVsc2V7dmFyIGU9dGhpcy5fcHJvY2VzcyghMCk7dC51bnBhZChlKX1yZXR1cm4gZX0sYmxvY2tTaXplOjR9KSxyLkNpcGhlclBhcmFtcz1vLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0KXt0aGlzLm1peEluKHQpfSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8dGhpcy5mb3JtYXR0ZXIpLnN0cmluZ2lmeSh0aGlzKX19KSksXz1lLmZvcm1hdD17fSx2PV8uT3BlblNTTD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY2lwaGVydGV4dCxyPXQuc2FsdDtpZihyKXZhciBuPWkuY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQocikuY29uY2F0KGUpO2Vsc2UgdmFyIG49ZTtyZXR1cm4gbi50b1N0cmluZyhjKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9Yy5wYXJzZSh0KSxyPWUud29yZHM7aWYoMTM5ODg5MzY4ND09clswXSYmMTcwMTA3NjgzMT09clsxXSl7dmFyIG49aS5jcmVhdGUoci5zbGljZSgyLDQpKTtyLnNwbGljZSgwLDQpLGUuc2lnQnl0ZXMtPTE2fXJldHVybiBnLmNyZWF0ZSh7Y2lwaGVydGV4dDplLHNhbHQ6bn0pfX0sdz1yLlNlcmlhbGl6YWJsZUNpcGhlcj1vLmV4dGVuZCh7Y2ZnOm8uZXh0ZW5kKHtmb3JtYXQ6dn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7bj10aGlzLmNmZy5leHRlbmQobik7dmFyIG89dC5jcmVhdGVFbmNyeXB0b3IocixuKSxpPW8uZmluYWxpemUoZSkscz1vLmNmZztyZXR1cm4gZy5jcmVhdGUoe2NpcGhlcnRleHQ6aSxrZXk6cixpdjpzLml2LGFsZ29yaXRobTp0LG1vZGU6cy5tb2RlLHBhZGRpbmc6cy5wYWRkaW5nLGJsb2NrU2l6ZTp0LmJsb2NrU2l6ZSxmb3JtYXR0ZXI6bi5mb3JtYXR9KX0sZGVjcnlwdDpmdW5jdGlvbih0LGUscixuKXtuPXRoaXMuY2ZnLmV4dGVuZChuKSxlPXRoaXMuX3BhcnNlKGUsbi5mb3JtYXQpO3ZhciBvPXQuY3JlYXRlRGVjcnlwdG9yKHIsbikuZmluYWxpemUoZS5jaXBoZXJ0ZXh0KTtyZXR1cm4gb30sX3BhcnNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ZS5wYXJzZSh0LHRoaXMpOnR9fSksYj1lLmtkZj17fSxCPWIuT3BlblNTTD17ZXhlY3V0ZTpmdW5jdGlvbih0LGUscixuKXtufHwobj1pLnJhbmRvbSg4KSk7dmFyIG89bC5jcmVhdGUoe2tleVNpemU6ZStyfSkuY29tcHV0ZSh0LG4pLHM9aS5jcmVhdGUoby53b3Jkcy5zbGljZShlKSw0KnIpO3JldHVybiBvLnNpZ0J5dGVzPTQqZSxnLmNyZWF0ZSh7a2V5Om8saXY6cyxzYWx0Om59KX19LEY9ci5QYXNzd29yZEJhc2VkQ2lwaGVyPXcuZXh0ZW5kKHtjZmc6dy5jZmcuZXh0ZW5kKHtrZGY6Qn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89KG49dGhpcy5jZmcuZXh0ZW5kKG4pKS5rZGYuZXhlY3V0ZShyLHQua2V5U2l6ZSx0Lml2U2l6ZSk7bi5pdj1vLml2O3ZhciBpPXcuZW5jcnlwdC5jYWxsKHRoaXMsdCxlLG8ua2V5LG4pO3JldHVybiBpLm1peEluKG8pLGl9LGRlY3J5cHQ6ZnVuY3Rpb24odCxlLHIsbil7bj10aGlzLmNmZy5leHRlbmQobiksZT10aGlzLl9wYXJzZShlLG4uZm9ybWF0KTt2YXIgbz1uLmtkZi5leGVjdXRlKHIsdC5rZXlTaXplLHQuaXZTaXplLGUuc2FsdCk7bi5pdj1vLml2O3ZhciBpPXcuZGVjcnlwdC5jYWxsKHRoaXMsdCxlLG8ua2V5LG4pO3JldHVybiBpfX0pfSgpKSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTcpLG89cigzKSxpPXIoMTQpLHM9cigyNSk7ZnVuY3Rpb24gYSh0KXtuLkJpZ051bWJlci5jb25maWcoaS5FVEhfQklHTlVNQkVSX1JPVU5ESU5HX01PREUpO2xldCBlPW8ucGFkTGVmdChvLnRvVHdvc0NvbXBsZW1lbnQodCkudG9TdHJpbmcoMTYpLDY0KTtyZXR1cm4gbmV3IHMuU29saWRpdHlQYXJhbShlKX1mdW5jdGlvbiBjKHQpe3JldHVyblwiMVwiPT09bmV3IG4uQmlnTnVtYmVyKHQuc3Vic3RyKDAsMSksMTYpLnRvU3RyaW5nKDIpLnN1YnN0cigwLDEpfWZ1bmN0aW9uIHUodCl7bGV0IGU9dC5zdGF0aWNQYXJ0KCl8fFwiMFwiO3JldHVybiBjKGUpP25ldyBuLkJpZ051bWJlcihlLDE2KS5taW51cyhuZXcgbi5CaWdOdW1iZXIoXCJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmXCIsMTYpKS5taW51cygxKTpuZXcgbi5CaWdOdW1iZXIoZSwxNil9ZnVuY3Rpb24gbCh0KXtsZXQgZT10LnN0YXRpY1BhcnQoKXx8XCIwXCI7cmV0dXJuIG5ldyBuLkJpZ051bWJlcihlLDE2KX1lLmZvcm1hdElucHV0SW50PWEsZS5mb3JtYXRJbnB1dEJ5dGVzPWZ1bmN0aW9uKHQpe2xldCBlPW8udG9IZXgodCkuc3Vic3RyKDIpLHI9TWF0aC5mbG9vcigoZS5sZW5ndGgrNjMpLzY0KTtyZXR1cm4gZT1vLnBhZFJpZ2h0KGUsNjQqciksbmV3IHMuU29saWRpdHlQYXJhbShlKX0sZS5mb3JtYXRJbnB1dER5bmFtaWNCeXRlcz1mdW5jdGlvbih0KXtsZXQgZT1vLnRvSGV4KHQpLnN1YnN0cigyKSxyPWUubGVuZ3RoLzIsbj1NYXRoLmZsb29yKChlLmxlbmd0aCs2MykvNjQpO3JldHVybiBlPW8ucGFkUmlnaHQoZSw2NCpuKSxuZXcgcy5Tb2xpZGl0eVBhcmFtKGEocikudmFsdWUrZSl9LGUuZm9ybWF0SW5wdXRTdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9by5mcm9tVXRmOCh0KS5zdWJzdHIoMikscj1lLmxlbmd0aC8yLG49TWF0aC5mbG9vcigoZS5sZW5ndGgrNjMpLzY0KTtyZXR1cm4gZT1vLnBhZFJpZ2h0KGUsNjQqbiksbmV3IHMuU29saWRpdHlQYXJhbShhKHIpLnZhbHVlK2UpfSxlLmZvcm1hdElucHV0Qm9vbD1mdW5jdGlvbih0KXtsZXQgZT1cIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiKyh0P1wiMVwiOlwiMFwiKTtyZXR1cm4gbmV3IHMuU29saWRpdHlQYXJhbShlKX0sZS5mb3JtYXRJbnB1dFJlYWw9ZnVuY3Rpb24odCl7cmV0dXJuIGEobmV3IG4uQmlnTnVtYmVyKHQpLnRpbWVzKG5ldyBuLkJpZ051bWJlcigyKS5wb3coMTI4KSkpfSxlLnNpZ25lZElzTmVnYXRpdmU9YyxlLmZvcm1hdE91dHB1dEludD11LGUuZm9ybWF0T3V0cHV0VUludD1sLGUuZm9ybWF0T3V0cHV0UmVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdSh0KS5kaXZpZGVkQnkobmV3IG4uQmlnTnVtYmVyKDIpLnBvdygxMjgpKX0sZS5mb3JtYXRPdXRwdXRVUmVhbD1mdW5jdGlvbih0KXtyZXR1cm4gbCh0KS5kaXZpZGVkQnkobmV3IG4uQmlnTnVtYmVyKDIpLnBvdygxMjgpKX0sZS5mb3JtYXRPdXRwdXRCb29sPWZ1bmN0aW9uKHQpe3JldHVyblwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMVwiPT09dC5zdGF0aWNQYXJ0KCl9LGUuZm9ybWF0T3V0cHV0Qnl0ZXM9ZnVuY3Rpb24odCxlKXtsZXQgcj1lLm1hdGNoKC9eYnl0ZXMoWzAtOV0qKS8pLG49cGFyc2VJbnQoclsxXSwxMCk7cmV0dXJuXCIweFwiK3Quc3RhdGljUGFydCgpLnNsaWNlKDAsMipuKX0sZS5mb3JtYXRPdXRwdXREeW5hbWljQnl0ZXM9ZnVuY3Rpb24odCl7bGV0IGU9MipuZXcgbi5CaWdOdW1iZXIodC5keW5hbWljUGFydCgpLnNsaWNlKDAsNjQpLDE2KS50b051bWJlcigpO3JldHVyblwiMHhcIit0LmR5bmFtaWNQYXJ0KCkuc3Vic3RyKDY0LGUpfSxlLmZvcm1hdE91dHB1dFN0cmluZz1mdW5jdGlvbih0KXtsZXQgZT0yKm5ldyBuLkJpZ051bWJlcih0LmR5bmFtaWNQYXJ0KCkuc2xpY2UoMCw2NCksMTYpLnRvTnVtYmVyKCk7cmV0dXJuIG8udG9VdGY4KHQuZHluYW1pY1BhcnQoKS5zdWJzdHIoNjQsZSkpfSxlLmZvcm1hdE91dHB1dEFkZHJlc3M9ZnVuY3Rpb24odCl7bGV0IGU9dC5zdGF0aWNQYXJ0KCk7cmV0dXJuXCIweFwiK2Uuc2xpY2UoZS5sZW5ndGgtNDAsZS5sZW5ndGgpfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxNyksbz1yKDMxKSxpPXIoMzIpLHM9cigyMCk7ZnVuY3Rpb24gYSh0LGUpe2xldCByPXQ7cmV0dXJuIGUmJlwiaGV4XCI9PT1lLmVuY29kaW5nJiYoci5sZW5ndGg+MiYmXCIweFwiPT09ci5zdWJzdHIoMCwyKSYmKHI9ci5zdWJzdHIoMikpLHI9aS5lbmMuSGV4LnBhcnNlKHIpKSxzKHIse291dHB1dExlbmd0aDoyNTZ9KS50b1N0cmluZygpfWUuc2hhMz1hO2xldCBjPXtub2V0aGVyOlwiMFwiLHdlaTpcIjFcIixrd2VpOlwiMTAwMFwiLEt3ZWk6XCIxMDAwXCIsYmFiYmFnZTpcIjEwMDBcIixmZW10b2V0aGVyOlwiMTAwMFwiLG13ZWk6XCIxMDAwMDAwXCIsTXdlaTpcIjEwMDAwMDBcIixsb3ZlbGFjZTpcIjEwMDAwMDBcIixwaWNvZXRoZXI6XCIxMDAwMDAwXCIsZ3dlaTpcIjEwMDAwMDAwMDBcIixHd2VpOlwiMTAwMDAwMDAwMFwiLHNoYW5ub246XCIxMDAwMDAwMDAwXCIsbmFub2V0aGVyOlwiMTAwMDAwMDAwMFwiLG5hbm86XCIxMDAwMDAwMDAwXCIsc3phYm86XCIxMDAwMDAwMDAwMDAwXCIsbWljcm9ldGhlcjpcIjEwMDAwMDAwMDAwMDBcIixtaWNybzpcIjEwMDAwMDAwMDAwMDBcIixmaW5uZXk6XCIxMDAwMDAwMDAwMDAwMDAwXCIsbWlsbGlldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDBcIixtaWxsaTpcIjEwMDAwMDAwMDAwMDAwMDBcIixldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDAwMDBcIixrZXRoZXI6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsZ3JhbmQ6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsbWV0aGVyOlwiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLGdldGhlcjpcIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIix0ZXRoZXI6XCIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJ9O2Z1bmN0aW9uIHUodCxlLHIpe3JldHVybiBuZXcgQXJyYXkoZS10Lmxlbmd0aCsxKS5qb2luKHJ8fFwiMFwiKSt0fWZ1bmN0aW9uIGwodCxlPSExKXtsZXQgcj1vLmVuY29kZSh0KSxuPVwiXCI7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2xldCBvPXIuY2hhckNvZGVBdCh0KTtpZigwPT09byl7aWYoIWUpYnJlYWs7bis9XCIwMFwifWVsc2V7bGV0IHQ9by50b1N0cmluZygxNik7bis9dC5sZW5ndGg8Mj9cIjBcIit0OnR9fXJldHVyblwiMHhcIitufWZ1bmN0aW9uIGgodCl7bGV0IGU9ZCh0KSxyPWUudG9TdHJpbmcoMTYpO3JldHVybiBlLmlzTGVzc1RoYW4oMCk/XCItMHhcIityLnN1YnN0cigxKTpcIjB4XCIrcn1mdW5jdGlvbiBmKHQpe2lmKHYodCkpcmV0dXJuIGgoK3QpO2lmKGcodCkpcmV0dXJuIGgodCk7aWYoXCJvYmplY3RcIj09dHlwZW9mIHQpcmV0dXJuIGwoSlNPTi5zdHJpbmdpZnkodCkpO2lmKF8odCkpe2NvbnN0IGU9dDtpZigwPT09ZS5pbmRleE9mKFwiLTB4XCIpKXJldHVybiBoKGUpO2lmKDA9PT1lLmluZGV4T2YoXCIweFwiKSlyZXR1cm4gZTtpZighaXNGaW5pdGUoZSkpcmV0dXJuIGwoZSwhMCl9cmV0dXJuIGgodCl9ZnVuY3Rpb24gcCh0KXtsZXQgZT10P3QudG9Mb3dlckNhc2UoKTpcImV0aGVyXCIscj1jW2VdO2lmKHZvaWQgMD09PXIpdGhyb3cgbmV3IEVycm9yKFwiVGhpcyB1bml0IGRvZXNuJ3QgZXhpc3RzLCBwbGVhc2UgdXNlIHRoZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB1bml0c1wiK0pTT04uc3RyaW5naWZ5KGMsbnVsbCwyKSk7cmV0dXJuIG5ldyBuLkJpZ051bWJlcihyLDEwKX1mdW5jdGlvbiBkKHQpe2xldCBlPXR8fDA7cmV0dXJuIGcoZSk/ZTpcInN0cmluZ1wiIT10eXBlb2YgZXx8MCE9PWUuaW5kZXhPZihcIjB4XCIpJiYwIT09ZS5pbmRleE9mKFwiLTB4XCIpP25ldyBuLkJpZ051bWJlcihlLnRvU3RyaW5nKDEwKSwxMCk6bmV3IG4uQmlnTnVtYmVyKGUucmVwbGFjZShcIjB4XCIsXCJcIiksMTYpfWZ1bmN0aW9uIG0odCl7cmV0dXJuL14weFswLTlhLWZdezQwfSQvaS50ZXN0KHQpfWZ1bmN0aW9uIHkodCl7Y29uc3QgZT10LnJlcGxhY2UoXCIweFwiLFwiXCIpO2xldCByPWEoZS50b0xvd2VyQ2FzZSgpKTtmb3IobGV0IHQ9MDt0PDQwO3QrKylpZihwYXJzZUludChyW3RdLDE2KT43JiZlW3RdLnRvVXBwZXJDYXNlKCkhPT1lW3RdfHxwYXJzZUludChyW3RdLDE2KTw9NyYmZVt0XS50b0xvd2VyQ2FzZSgpIT09ZVt0XSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBnKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbi5CaWdOdW1iZXJ9ZnVuY3Rpb24gXyh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdHx8dCYmdC5jb25zdHJ1Y3RvciYmXCJTdHJpbmdcIj09PXQuY29uc3RydWN0b3IubmFtZX1mdW5jdGlvbiB2KHQpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgdH1lLnBhZExlZnQ9dSxlLnBhZFJpZ2h0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCtuZXcgQXJyYXkoZS10Lmxlbmd0aCsxKS5qb2luKHJ8fFwiMFwiKX0sZS50b1V0Zjg9ZnVuY3Rpb24odCl7bGV0IGU9XCJcIixyPTAsbj10Lmxlbmd0aDtmb3IoXCIweFwiPT09dC5zdWJzdHJpbmcoMCwyKSYmKHI9Mik7cjxuO3IrPTIpe2xldCBuPXBhcnNlSW50KHQuc3Vic3RyKHIsMiksMTYpO2lmKDA9PT1uKWJyZWFrO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cmV0dXJuIG8uZGVjb2RlKGUpfSxlLnRvQXNjaWk9ZnVuY3Rpb24odCl7bGV0IGU9XCJcIixyPTAsbj10Lmxlbmd0aDtmb3IoXCIweFwiPT09dC5zdWJzdHJpbmcoMCwyKSYmKHI9Mik7cjxuO3IrPTIpe2xldCBuPXBhcnNlSW50KHQuc3Vic3RyKHIsMiksMTYpO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cmV0dXJuIGV9LGUuZnJvbVV0Zjg9bCxlLmZyb21Bc2NpaT1mdW5jdGlvbih0LGU9MCl7bGV0IHI9XCJcIjtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dC5jaGFyQ29kZUF0KGUpLnRvU3RyaW5nKDE2KTtyKz1uLmxlbmd0aDwyP1wiMFwiK246bn1yZXR1cm5cIjB4XCIrci5wYWRFbmQoZSxcIjBcIil9LGUudHJhbnNmb3JtVG9GdWxsTmFtZT1mdW5jdGlvbih0KXtpZigtMSE9PXQubmFtZS5pbmRleE9mKFwiKFwiKSlyZXR1cm4gdC5uYW1lO2xldCBlPXQuaW5wdXRzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlfSkuam9pbigpO3JldHVybiB0Lm5hbWUrXCIoXCIrZStcIilcIn0sZS5leHRyYWN0RGlzcGxheU5hbWU9ZnVuY3Rpb24odCl7bGV0IGU9dC5pbmRleE9mKFwiKFwiKSxyPXQuaW5kZXhPZihcIilcIik7cmV0dXJuLTEhPT1lJiYtMSE9PXI/dC5zdWJzdHIoMCxlKTp0fSxlLmV4dHJhY3RUeXBlTmFtZT1mdW5jdGlvbih0KXtsZXQgZT10LmluZGV4T2YoXCIoXCIpLHI9dC5pbmRleE9mKFwiKVwiKTtyZXR1cm4tMSE9PWUmJi0xIT09cj90LnN1YnN0cihlKzEsci1lLTEpLnJlcGxhY2UoXCIgXCIsXCJcIik6XCJcIn0sZS5pc0hleD1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdCYmL14weFswLTlhLWZBLUZdKyQvLnRlc3QodCl9LGUudG9OdWxsRGVjaW1hbD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90OmQodCkudG9OdW1iZXIoKX0sZS50b0RlY2ltYWw9ZnVuY3Rpb24odCl7cmV0dXJuIGQodCkudG9OdW1iZXIoKX0sZS50b1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4gZyh0KT90LnRvU3RyaW5nKDEwKTpcIlwiK3R9LGUudG9EYXRhPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0JiYhdC5zdGFydHNXaXRoKFwiMHhcIikmJi9eW0EtWmEtejAtOV0rJC8udGVzdCh0KT9cIjB4XCIrdDpmKHQpfSxlLnRvQm9vbGVhbj1mdW5jdGlvbih0KXtyZXR1cm5cImJvb2xlYW5cIj09dHlwZW9mIHQ/dDowIT09ZCh0KS50b051bWJlcigpfSxlLmZyb21EZWNpbWFsPWgsZS50b0hleD1mLGUuZ2V0VmFsdWVPZlVuaXQ9cCxlLmZyb21XZWk9ZnVuY3Rpb24odCxlKXtsZXQgcj1kKHQpLmRpdmlkZWRCeShwKGUpKTtyZXR1cm4gZyh0KT9yOnIudG9TdHJpbmcoMTApfSxlLnRvV2VpPWZ1bmN0aW9uKHQsZSl7bGV0IHI9ZCh0KS50aW1lcyhwKGUpKTtyZXR1cm4gZyh0KT9yOnIudG9TdHJpbmcoMTApfSxlLnRvQmlnTnVtYmVyPWQsZS50b1R3b3NDb21wbGVtZW50PWZ1bmN0aW9uKHQpe2xldCBlPWQodCkuaW50ZWdlclZhbHVlKCk7cmV0dXJuIGUuaXNMZXNzVGhhbigwKT9uZXcgbi5CaWdOdW1iZXIoXCJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmXCIsMTYpLnBsdXMoZSkucGx1cygxKTplfSxlLmlzU3RyaWN0QWRkcmVzcz1tLGUuaXNBZGRyZXNzPWZ1bmN0aW9uKHQpe3JldHVybiEhL14oMHgpP1swLTlhLWZdezQwfSQvaS50ZXN0KHQpJiYoISghL14oMHgpP1swLTlhLWZdezQwfSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NDB9JC8udGVzdCh0KSl8fHkodCkpfSxlLmlzQ2hlY2tzdW1BZGRyZXNzPXksZS50b0NoZWNrc3VtQWRkcmVzcz1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXJldHVyblwiXCI7Y29uc3QgZT10LnRvTG93ZXJDYXNlKCkucmVwbGFjZShcIjB4XCIsXCJcIikscj1hKGUpO2xldCBuPVwiMHhcIjtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylwYXJzZUludChyW3RdLDE2KT43P24rPWVbdF0udG9VcHBlckNhc2UoKTpuKz1lW3RdO3JldHVybiBufSxlLnRvQXJyYXk9ZnVuY3Rpb24odCl7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSB3YXMgbm90IGFuIGFycmF5OiAke0pTT04uc3RyaW5naWZ5KHQpfWApO3JldHVybiB0fSxlLnRvQWRkcmVzcz1mdW5jdGlvbih0KXtyZXR1cm4gbSh0KT90Oi9eWzAtOWEtZl17NDB9JC8udGVzdCh0KT9cIjB4XCIrdDpcIjB4XCIrdShmKHQpLnN1YnN0cigyKSw0MCl9LGUuaXNCaWdOdW1iZXI9ZyxlLmlzU3RyaW5nPV8sZS5pc0Z1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHR9LGUuaXNPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10JiYhQXJyYXkuaXNBcnJheSh0KSYmXCJvYmplY3RcIj09dHlwZW9mIHR9LGUuaXNCb29sZWFuPXYsZS5pc0FycmF5PWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfSxlLmlzSnNvbj1mdW5jdGlvbih0KXt0cnl7cmV0dXJuISFKU09OLnBhcnNlKHQpfWNhdGNoKHQpe3JldHVybiExfX0sZS5pc0Jsb29tPWZ1bmN0aW9uKHQpe3JldHVybiEoIS9eKDB4KT9bMC05YS1mXXs1MTJ9JC9pLnRlc3QodCl8fCEvXigweCk/WzAtOWEtZl17NTEyfSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NTEyfSQvLnRlc3QodCkpfSxlLmlzVG9waWM9ZnVuY3Rpb24odCl7cmV0dXJuISghL14oMHgpP1swLTlhLWZdezY0fSQvaS50ZXN0KHQpfHwhL14oMHgpP1swLTlhLWZdezY0fSQvLnRlc3QodCkmJiEvXigweCk/WzAtOUEtRl17NjR9JC8udGVzdCh0KSl9fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cigyNSk7ZS5Tb2xpZGl0eVR5cGU9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5faW5wdXRGb3JtYXR0ZXI9dC5pbnB1dEZvcm1hdHRlcix0aGlzLl9vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXJ9aXNUeXBlKHQpe3Rocm93IG5ldyBFcnJvcihcInRoaXMgbWV0aG9kIHNob3VsZCBiZSBvdmVycndyaXR0ZW4gZm9yIHR5cGUgXCIrdCl9c3RhdGljUGFydExlbmd0aCh0KXtyZXR1cm4odGhpcy5uZXN0ZWRUeXBlcyh0KXx8W1wiWzFdXCJdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlSW50KHQuc2xpY2UoMSwtMSksMTApfHwxfSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQqZX0sMzIpfWlzRHluYW1pY0FycmF5KHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7cmV0dXJuISFlJiYhZVtlLmxlbmd0aC0xXS5tYXRjaCgvWzAtOV17MSx9L2cpfWlzU3RhdGljQXJyYXkodCl7bGV0IGU9dGhpcy5uZXN0ZWRUeXBlcyh0KTtyZXR1cm4hIWUmJiEhZVtlLmxlbmd0aC0xXS5tYXRjaCgvWzAtOV17MSx9L2cpfXN0YXRpY0FycmF5TGVuZ3RoKHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7aWYoZSl7Y29uc3QgdD1lW2UubGVuZ3RoLTFdLm1hdGNoKC9bMC05XXsxLH0vZyk7cmV0dXJuIHBhcnNlSW50KHRbdC5sZW5ndGgtMV18fFwiMVwiLDEwKX1yZXR1cm4gMX1uZXN0ZWROYW1lKHQpe2xldCBlPXRoaXMubmVzdGVkVHlwZXModCk7cmV0dXJuIGU/dC5zdWJzdHIoMCx0Lmxlbmd0aC1lW2UubGVuZ3RoLTFdLmxlbmd0aCk6dH1pc0R5bmFtaWNUeXBlKHQpe3JldHVybiExfW5lc3RlZFR5cGVzKHQpe3JldHVybiB0Lm1hdGNoKC8oXFxbWzAtOV0qXFxdKS9nKX1lbmNvZGUodCxlKXtpZih0aGlzLmlzRHluYW1pY0FycmF5KGUpKXtsZXQgcj10Lmxlbmd0aCxvPXRoaXMubmVzdGVkTmFtZShlKSxpPVtdO3JldHVybiBpLnB1c2gobi5mb3JtYXRJbnB1dEludChyKS5lbmNvZGUoKSksdC5mb3JFYWNoKHQ9PntpLnB1c2godGhpcy5lbmNvZGUodCxvKSl9KSxpfWlmKHRoaXMuaXNTdGF0aWNBcnJheShlKSl7bGV0IHI9dGhpcy5zdGF0aWNBcnJheUxlbmd0aChlKSxuPXRoaXMubmVzdGVkTmFtZShlKSxvPVtdO2ZvcihsZXQgZT0wO2U8cjtlKyspby5wdXNoKHRoaXMuZW5jb2RlKHRbZV0sbikpO3JldHVybiBvfXJldHVybiB0aGlzLl9pbnB1dEZvcm1hdHRlcih0LGUpLmVuY29kZSgpfWRlY29kZSh0LGUscil7aWYodGhpcy5pc0R5bmFtaWNBcnJheShyKSl7bGV0IG49cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqZSw2NCksMTYpLG89cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqbiw2NCksMTYpLGk9biszMixzPXRoaXMubmVzdGVkTmFtZShyKSxhPXRoaXMuc3RhdGljUGFydExlbmd0aChzKSxjPTMyKk1hdGguZmxvb3IoKGErMzEpLzMyKSx1PVtdO2ZvcihsZXQgZT0wO2U8bypjO2UrPWMpdS5wdXNoKHRoaXMuZGVjb2RlKHQsaStlLHMpKTtyZXR1cm4gdX1pZih0aGlzLmlzU3RhdGljQXJyYXkocikpe2xldCBuPXRoaXMuc3RhdGljQXJyYXlMZW5ndGgociksbz1lLGk9dGhpcy5uZXN0ZWROYW1lKHIpLHM9dGhpcy5zdGF0aWNQYXJ0TGVuZ3RoKGkpLGE9MzIqTWF0aC5mbG9vcigocyszMSkvMzIpLGM9W107Zm9yKGxldCBlPTA7ZTxuKmE7ZSs9YSljLnB1c2godGhpcy5kZWNvZGUodCxvK2UsaSkpO3JldHVybiBjfWlmKHRoaXMuaXNEeW5hbWljVHlwZShyKSl7bGV0IG49cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqZSw2NCksMTYpLGk9cGFyc2VJbnQoXCIweFwiK3Quc3Vic3RyKDIqbiw2NCksMTYpLHM9TWF0aC5mbG9vcigoaSszMSkvMzIpLGE9bmV3IG8uU29saWRpdHlQYXJhbSh0LnN1YnN0cigyKm4sNjQqKDErcykpLDApO3JldHVybiB0aGlzLl9vdXRwdXRGb3JtYXR0ZXIoYSxyKX1sZXQgbj10aGlzLnN0YXRpY1BhcnRMZW5ndGgociksaT1uZXcgby5Tb2xpZGl0eVBhcmFtKHQuc3Vic3RyKDIqZSwyKm4pKTtyZXR1cm4gdGhpcy5fb3V0cHV0Rm9ybWF0dGVyKGkscil9fX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGw7dC5leHBvcnRzPShuPXIoMCkscigxMSkscigxMiksaT0obz1uKS5saWIscz1pLkJhc2UsYT1pLldvcmRBcnJheSxjPW8uYWxnbyx1PWMuTUQ1LGw9Yy5FdnBLREY9cy5leHRlbmQoe2NmZzpzLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjp1LGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuY2ZnLG49ci5oYXNoZXIuY3JlYXRlKCksbz1hLmNyZWF0ZSgpLGk9by53b3JkcyxzPXIua2V5U2l6ZSxjPXIuaXRlcmF0aW9ucztpLmxlbmd0aDxzOyl7dSYmbi51cGRhdGUodSk7dmFyIHU9bi51cGRhdGUodCkuZmluYWxpemUoZSk7bi5yZXNldCgpO2Zvcih2YXIgbD0xO2w8YztsKyspdT1uLmZpbmFsaXplKHUpLG4ucmVzZXQoKTtvLmNvbmNhdCh1KX1yZXR1cm4gby5zaWdCeXRlcz00KnMsb319KSxvLkV2cEtERj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGwuY3JlYXRlKHIpLmNvbXB1dGUodCxlKX0sbi5FdnBLREYpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpO3QuZXhwb3J0cz0obj1yKDApLGk9KG89bikubGliLldvcmRBcnJheSxvLmVuYy5CYXNlNjQ9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPXRoaXMuX21hcDt0LmNsYW1wKCk7Zm9yKHZhciBvPVtdLGk9MDtpPHI7aSs9Mylmb3IodmFyIHM9KGVbaT4+PjJdPj4+MjQtaSU0KjgmMjU1KTw8MTZ8KGVbaSsxPj4+Ml0+Pj4yNC0oaSsxKSU0KjgmMjU1KTw8OHxlW2krMj4+PjJdPj4+MjQtKGkrMiklNCo4JjI1NSxhPTA7YTw0JiZpKy43NSphPHI7YSsrKW8ucHVzaChuLmNoYXJBdChzPj4+NiooMy1hKSY2MykpO3ZhciBjPW4uY2hhckF0KDY0KTtpZihjKWZvcig7by5sZW5ndGglNDspby5wdXNoKGMpO3JldHVybiBvLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLHI9dGhpcy5fbWFwLG49dGhpcy5fcmV2ZXJzZU1hcDtpZighbil7bj10aGlzLl9yZXZlcnNlTWFwPVtdO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKW5bci5jaGFyQ29kZUF0KG8pXT1vfXZhciBzPXIuY2hhckF0KDY0KTtpZihzKXt2YXIgYT10LmluZGV4T2Yocyk7LTEhPT1hJiYoZT1hKX1yZXR1cm4gZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1bXSxvPTAscz0wO3M8ZTtzKyspaWYocyU0KXt2YXIgYT1yW3QuY2hhckNvZGVBdChzLTEpXTw8cyU0KjIsYz1yW3QuY2hhckNvZGVBdChzKV0+Pj42LXMlNCoyO25bbz4+PjJdfD0oYXxjKTw8MjQtbyU0KjgsbysrfXJldHVybiBpLmNyZWF0ZShuLG8pfSh0LGUsbil9LF9tYXA6XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwifSxuLmVuYy5CYXNlNjQpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCksZnVuY3Rpb24odCl7dmFyIGU9bixyPWUubGliLG89ci5Xb3JkQXJyYXksaT1yLkhhc2hlcixzPWUuYWxnbyxhPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8NjQ7ZSsrKWFbZV09NDI5NDk2NzI5Nip0LmFicyh0LnNpbihlKzEpKXwwfSgpO3ZhciBjPXMuTUQ1PWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG8uaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4XSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MTY7cisrKXt2YXIgbj1lK3Isbz10W25dO3Rbbl09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9dmFyIGk9dGhpcy5faGFzaC53b3JkcyxzPXRbZSswXSxjPXRbZSsxXSxwPXRbZSsyXSxkPXRbZSszXSxtPXRbZSs0XSx5PXRbZSs1XSxnPXRbZSs2XSxfPXRbZSs3XSx2PXRbZSs4XSx3PXRbZSs5XSxiPXRbZSsxMF0sQj10W2UrMTFdLEY9dFtlKzEyXSxOPXRbZSsxM10saz10W2UrMTRdLHg9dFtlKzE1XSxTPWlbMF0sQT1pWzFdLE89aVsyXSxUPWlbM107Uz11KFMsQSxPLFQscyw3LGFbMF0pLFQ9dShULFMsQSxPLGMsMTIsYVsxXSksTz11KE8sVCxTLEEscCwxNyxhWzJdKSxBPXUoQSxPLFQsUyxkLDIyLGFbM10pLFM9dShTLEEsTyxULG0sNyxhWzRdKSxUPXUoVCxTLEEsTyx5LDEyLGFbNV0pLE89dShPLFQsUyxBLGcsMTcsYVs2XSksQT11KEEsTyxULFMsXywyMixhWzddKSxTPXUoUyxBLE8sVCx2LDcsYVs4XSksVD11KFQsUyxBLE8sdywxMixhWzldKSxPPXUoTyxULFMsQSxiLDE3LGFbMTBdKSxBPXUoQSxPLFQsUyxCLDIyLGFbMTFdKSxTPXUoUyxBLE8sVCxGLDcsYVsxMl0pLFQ9dShULFMsQSxPLE4sMTIsYVsxM10pLE89dShPLFQsUyxBLGssMTcsYVsxNF0pLFM9bChTLEE9dShBLE8sVCxTLHgsMjIsYVsxNV0pLE8sVCxjLDUsYVsxNl0pLFQ9bChULFMsQSxPLGcsOSxhWzE3XSksTz1sKE8sVCxTLEEsQiwxNCxhWzE4XSksQT1sKEEsTyxULFMscywyMCxhWzE5XSksUz1sKFMsQSxPLFQseSw1LGFbMjBdKSxUPWwoVCxTLEEsTyxiLDksYVsyMV0pLE89bChPLFQsUyxBLHgsMTQsYVsyMl0pLEE9bChBLE8sVCxTLG0sMjAsYVsyM10pLFM9bChTLEEsTyxULHcsNSxhWzI0XSksVD1sKFQsUyxBLE8sayw5LGFbMjVdKSxPPWwoTyxULFMsQSxkLDE0LGFbMjZdKSxBPWwoQSxPLFQsUyx2LDIwLGFbMjddKSxTPWwoUyxBLE8sVCxOLDUsYVsyOF0pLFQ9bChULFMsQSxPLHAsOSxhWzI5XSksTz1sKE8sVCxTLEEsXywxNCxhWzMwXSksUz1oKFMsQT1sKEEsTyxULFMsRiwyMCxhWzMxXSksTyxULHksNCxhWzMyXSksVD1oKFQsUyxBLE8sdiwxMSxhWzMzXSksTz1oKE8sVCxTLEEsQiwxNixhWzM0XSksQT1oKEEsTyxULFMsaywyMyxhWzM1XSksUz1oKFMsQSxPLFQsYyw0LGFbMzZdKSxUPWgoVCxTLEEsTyxtLDExLGFbMzddKSxPPWgoTyxULFMsQSxfLDE2LGFbMzhdKSxBPWgoQSxPLFQsUyxiLDIzLGFbMzldKSxTPWgoUyxBLE8sVCxOLDQsYVs0MF0pLFQ9aChULFMsQSxPLHMsMTEsYVs0MV0pLE89aChPLFQsUyxBLGQsMTYsYVs0Ml0pLEE9aChBLE8sVCxTLGcsMjMsYVs0M10pLFM9aChTLEEsTyxULHcsNCxhWzQ0XSksVD1oKFQsUyxBLE8sRiwxMSxhWzQ1XSksTz1oKE8sVCxTLEEseCwxNixhWzQ2XSksUz1mKFMsQT1oKEEsTyxULFMscCwyMyxhWzQ3XSksTyxULHMsNixhWzQ4XSksVD1mKFQsUyxBLE8sXywxMCxhWzQ5XSksTz1mKE8sVCxTLEEsaywxNSxhWzUwXSksQT1mKEEsTyxULFMseSwyMSxhWzUxXSksUz1mKFMsQSxPLFQsRiw2LGFbNTJdKSxUPWYoVCxTLEEsTyxkLDEwLGFbNTNdKSxPPWYoTyxULFMsQSxiLDE1LGFbNTRdKSxBPWYoQSxPLFQsUyxjLDIxLGFbNTVdKSxTPWYoUyxBLE8sVCx2LDYsYVs1Nl0pLFQ9ZihULFMsQSxPLHgsMTAsYVs1N10pLE89ZihPLFQsUyxBLGcsMTUsYVs1OF0pLEE9ZihBLE8sVCxTLE4sMjEsYVs1OV0pLFM9ZihTLEEsTyxULG0sNixhWzYwXSksVD1mKFQsUyxBLE8sQiwxMCxhWzYxXSksTz1mKE8sVCxTLEEscCwxNSxhWzYyXSksQT1mKEEsTyxULFMsdywyMSxhWzYzXSksaVswXT1pWzBdK1N8MCxpWzFdPWlbMV0rQXwwLGlbMl09aVsyXStPfDAsaVszXT1pWzNdK1R8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9kYXRhLHI9ZS53b3JkcyxuPTgqdGhpcy5fbkRhdGFCeXRlcyxvPTgqZS5zaWdCeXRlcztyW28+Pj41XXw9MTI4PDwyNC1vJTMyO3ZhciBpPXQuZmxvb3Iobi80Mjk0OTY3Mjk2KSxzPW47clsxNSsobys2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoaTw8OHxpPj4+MjQpfDQyNzgyNTUzNjAmKGk8PDI0fGk+Pj44KSxyWzE0KyhvKzY0Pj4+OTw8NCldPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLGUuc2lnQnl0ZXM9NCooci5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgYT10aGlzLl9oYXNoLGM9YS53b3Jkcyx1PTA7dTw0O3UrKyl7dmFyIGw9Y1t1XTtjW3VdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXJldHVybiBhfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWkuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtmdW5jdGlvbiB1KHQsZSxyLG4sbyxpLHMpe3ZhciBhPXQrKGUmcnx+ZSZuKStvK3M7cmV0dXJuKGE8PGl8YT4+PjMyLWkpK2V9ZnVuY3Rpb24gbCh0LGUscixuLG8saSxzKXt2YXIgYT10KyhlJm58ciZ+bikrbytzO3JldHVybihhPDxpfGE+Pj4zMi1pKStlfWZ1bmN0aW9uIGgodCxlLHIsbixvLGkscyl7dmFyIGE9dCsoZV5yXm4pK28rcztyZXR1cm4oYTw8aXxhPj4+MzItaSkrZX1mdW5jdGlvbiBmKHQsZSxyLG4sbyxpLHMpe3ZhciBhPXQrKHJeKGV8fm4pKStvK3M7cmV0dXJuKGE8PGl8YT4+PjMyLWkpK2V9ZS5NRDU9aS5fY3JlYXRlSGVscGVyKGMpLGUuSG1hY01ENT1pLl9jcmVhdGVIbWFjSGVscGVyKGMpfShNYXRoKSxuLk1ENSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMyksbz1yKDE0KTtmdW5jdGlvbiBpKHQpe3JldHVyblwibGF0ZXN0XCI9PT10fHxcInBlbmRpbmdcIj09PXR8fFwiZWFybGllc3RcIj09PXR9ZnVuY3Rpb24gcyh0KXtpZih2b2lkIDAhPT10JiZudWxsIT10KXJldHVybiBpKHQpP3Q6bi50b0hleCh0KX1mdW5jdGlvbiBhKHQpe3JldHVybiB0PyhudWxsIT09dC5ibG9ja051bWJlciYmKHQuYmxvY2tOdW1iZXI9bi50b0RlY2ltYWwodC5ibG9ja051bWJlcikpLG51bGwhPT10LnRyYW5zYWN0aW9uSW5kZXgmJih0LnRyYW5zYWN0aW9uSW5kZXg9bi50b0RlY2ltYWwodC50cmFuc2FjdGlvbkluZGV4KSksdC5ub25jZT1uLnRvRGVjaW1hbCh0Lm5vbmNlKSx0Lmdhcz1uLnRvRGVjaW1hbCh0LmdhcyksdC5nYXNQcmljZT1uLnRvQmlnTnVtYmVyKHQuZ2FzUHJpY2UpLHQudmFsdWU9bi50b0JpZ051bWJlcih0LnZhbHVlKSx0KTpudWxsfWZ1bmN0aW9uIGModCl7cmV0dXJuIHQ/KHQuYmxvY2tOdW1iZXImJih0LmJsb2NrTnVtYmVyPW4udG9EZWNpbWFsKHQuYmxvY2tOdW1iZXIpKSx0LnRyYW5zYWN0aW9uSW5kZXgmJih0LnRyYW5zYWN0aW9uSW5kZXg9bi50b0RlY2ltYWwodC50cmFuc2FjdGlvbkluZGV4KSksdC5sb2dJbmRleCYmKHQubG9nSW5kZXg9bi50b0RlY2ltYWwodC5sb2dJbmRleCkpLHQpOm51bGx9ZnVuY3Rpb24gdSh0KXtpZihuLmlzU3RyaWN0QWRkcmVzcyh0KSlyZXR1cm4gdDtpZihuLmlzQWRkcmVzcyh0KSlyZXR1cm5cIjB4XCIrdDt0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYWRkcmVzczogJHtKU09OLnN0cmluZ2lmeSh0KX1gKX1lLm91dHB1dEJpZ051bWJlckZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbi50b0JpZ051bWJlcih0KX0sZS5pc1ByZWRlZmluZWRCbG9ja051bWJlcj1pLGUuaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/by5kZWZhdWx0QmxvY2s6cyh0KX0sZS5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyPXMsZS5pbnB1dENhbGxGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZnJvbT10LmZyb20sdC5mcm9tJiYodC5mcm9tPXUodC5mcm9tKSksdC50byYmKHQudG89dSh0LnRvKSksW1wiZ2FzUHJpY2VcIixcImdhc1wiLFwidmFsdWVcIixcIm5vbmNlXCJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09dFtlXX0pLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXT1uLmZyb21EZWNpbWFsKHRbZV0pfSksdC5kYXRhJiYhdC5kYXRhLnN0YXJ0c1dpdGgoXCIweFwiKSYmL15bQS1aYS16MC05XSskLy50ZXN0KHQuZGF0YSkmJih0LmRhdGE9XCIweFwiK3QuZGF0YSksdH0sZS5pbnB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihcIkRpZCBub3QgcHJvdmlkZSB0cmFuc2FjdGlvbiBvcHRpb25zXCIpO2lmKCF0LmZyb20pdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFwiZnJvbVwiIGluIHRyYW5zYWN0aW9uIG9wdGlvbnMnKTtyZXR1cm4gdC5mcm9tPXUodC5mcm9tKSx0LnRvJiYodC50bz11KHQudG8pKSxbXCJnYXNQcmljZVwiLFwiZ2FzXCIsXCJ2YWx1ZVwiLFwibm9uY2VcIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSkuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPW4uZnJvbURlY2ltYWwodFtlXSl9KSx0LmRhdGEmJiF0LmRhdGEuc3RhcnRzV2l0aChcIjB4XCIpJiYvXltBLVphLXowLTldKyQvLnRlc3QodC5kYXRhKSYmKHQuZGF0YT1cIjB4XCIrdC5kYXRhKSx0fSxlLm91dHB1dFRyYW5zYWN0aW9uRm9ybWF0dGVyPWEsZS5vdXRwdXRUcmFuc2FjdGlvblJlY2VpcHRGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KG51bGwhPT10LmJsb2NrTnVtYmVyJiYodC5ibG9ja051bWJlcj1uLnRvRGVjaW1hbCh0LmJsb2NrTnVtYmVyKSksbnVsbCE9PXQudHJhbnNhY3Rpb25JbmRleCYmKHQudHJhbnNhY3Rpb25JbmRleD1uLnRvRGVjaW1hbCh0LnRyYW5zYWN0aW9uSW5kZXgpKSx0LmN1bXVsYXRpdmVHYXNVc2VkPW4udG9EZWNpbWFsKHQuY3VtdWxhdGl2ZUdhc1VzZWQpLHQuZ2FzVXNlZD1uLnRvRGVjaW1hbCh0Lmdhc1VzZWQpLG4uaXNBcnJheSh0LmxvZ3MpJiYodC5sb2dzPXQubG9ncy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGModCl9KSksdC5zdGF0dXM9bi50b0RlY2ltYWwodC5zdGF0dXMpLHQpOm51bGx9LGUub3V0cHV0QmxvY2tGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KHQuZ2FzTGltaXQ9bi50b0RlY2ltYWwodC5nYXNMaW1pdCksdC5nYXNVc2VkPW4udG9EZWNpbWFsKHQuZ2FzVXNlZCksdC5zaXplPW4udG9EZWNpbWFsKHQuc2l6ZSksdC50aW1lc3RhbXA9bi50b0RlY2ltYWwodC50aW1lc3RhbXApLG51bGwhPT10Lm51bWJlciYmKHQubnVtYmVyPW4udG9EZWNpbWFsKHQubnVtYmVyKSksdC5kaWZmaWN1bHR5PW4udG9CaWdOdW1iZXIodC5kaWZmaWN1bHR5KSx0LnRvdGFsRGlmZmljdWx0eT1uLnRvQmlnTnVtYmVyKHQudG90YWxEaWZmaWN1bHR5KSxuLmlzQXJyYXkodC50cmFuc2FjdGlvbnMpJiZ0LnRyYW5zYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCFuLmlzU3RyaW5nKHQpKXJldHVybiBhKHQpfSksdCk6bnVsbH0sZS5vdXRwdXRMb2dGb3JtYXR0ZXI9YyxlLmlucHV0UG9zdEZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD8odC50dGw9bi5mcm9tRGVjaW1hbCh0LnR0bCksdC53b3JrVG9Qcm92ZT1uLmZyb21EZWNpbWFsKHQud29ya1RvUHJvdmUpLHQucHJpb3JpdHk9bi5mcm9tRGVjaW1hbCh0LnByaW9yaXR5KSxuLmlzQXJyYXkodC50b3BpY3MpfHwodC50b3BpY3M9dC50b3BpY3M/W3QudG9waWNzXTpbXSksdC50b3BpY3M9dC50b3BpY3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5pbmRleE9mKFwiMHhcIik/dDpuLmZyb21VdGY4KHQpfSksdCk6bnVsbH0sZS5vdXRwdXRQb3N0Rm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0LmV4cGlyeT1uLnRvRGVjaW1hbCh0LmV4cGlyeSksdC5zZW50PW4udG9EZWNpbWFsKHQuc2VudCksdC50dGw9bi50b0RlY2ltYWwodC50dGwpLHQud29ya1Byb3ZlZD1uLnRvRGVjaW1hbCh0LndvcmtQcm92ZWQpLHQudG9waWNzfHwodC50b3BpY3M9W10pLHQudG9waWNzPXQudG9waWNzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gbi50b0FzY2lpKHQpfSksdCk6bnVsbH0sZS5pbnB1dEFkZHJlc3NGb3JtYXR0ZXI9dSxlLm91dHB1dFN5bmNpbmdGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KHQuc3RhcnRpbmdCbG9jaz1uLnRvRGVjaW1hbCh0LnN0YXJ0aW5nQmxvY2spLHQuY3VycmVudEJsb2NrPW4udG9EZWNpbWFsKHQuY3VycmVudEJsb2NrKSx0LmhpZ2hlc3RCbG9jaz1uLnRvRGVjaW1hbCh0LmhpZ2hlc3RCbG9jayksdC5rbm93blN0YXRlcyYmKHQua25vd25TdGF0ZXM9bi50b0RlY2ltYWwodC5rbm93blN0YXRlcyksdC5wdWxsZWRTdGF0ZXM9bi50b0RlY2ltYWwodC5wdWxsZWRTdGF0ZXMpKSx0KTp0fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oKXtsZXQgdCxlO2NvbnN0IHI9bmV3IFByb21pc2UoKG4sbyk9Pnt0PSh0PT57bih0KSxyLmlzUGVuZGluZz0hMX0pLGU9KHQ9PntvKHQpLHIuaXNQZW5kaW5nPSExfSl9KS5jYXRjaCh0PT5Qcm9taXNlLnJlamVjdCh0KSk7cmV0dXJuIHIucmVzb2x2ZT10LHIucmVqZWN0PWUsXCJmaW5hbGx5XCJpbiByfHwoci5maW5hbGx5PSh0PT57ci50aGVuKHQpLHIuY2F0Y2godCl9KSksci5pc1BlbmRpbmc9ITAscn1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLmZ1dHVyZT1uLGUuZGVmYXVsdD1ufSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjO3QuZXhwb3J0cz0obj1yKDApLGk9KG89bikubGliLHM9aS5CYXNlLGE9aS5Xb3JkQXJyYXksKGM9by54NjQ9e30pLldvcmQ9cy5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0aGlzLmhpZ2g9dCx0aGlzLmxvdz1lfX0pLGMuV29yZEFycmF5PXMuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLHRoaXMuc2lnQnl0ZXM9bnVsbCE9ZT9lOjgqdC5sZW5ndGh9LHRvWDMyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMud29yZHMsZT10Lmxlbmd0aCxyPVtdLG49MDtuPGU7bisrKXt2YXIgbz10W25dO3IucHVzaChvLmhpZ2gpLHIucHVzaChvLmxvdyl9cmV0dXJuIGEuY3JlYXRlKHIsdGhpcy5zaWdCeXRlcyl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXMuY2xvbmUuY2FsbCh0aGlzKSxlPXQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxyPWUubGVuZ3RoLG49MDtuPHI7bisrKWVbbl09ZVtuXS5jbG9uZSgpO3JldHVybiB0fX0pLG4pfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHUsbDt0LmV4cG9ydHM9KG49cigwKSxpPShvPW4pLmxpYixzPWkuV29yZEFycmF5LGE9aS5IYXNoZXIsYz1vLmFsZ28sdT1bXSxsPWMuU0hBMT1hLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBzLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sYz0wO2M8ODA7YysrKXtpZihjPDE2KXVbY109MHx0W2UrY107ZWxzZXt2YXIgbD11W2MtM11edVtjLThdXnVbYy0xNF1edVtjLTE2XTt1W2NdPWw8PDF8bD4+PjMxfXZhciBoPShuPDw1fG4+Pj4yNykrYSt1W2NdO2grPWM8MjA/MTUxODUwMDI0OSsobyZpfH5vJnMpOmM8NDA/MTg1OTc3NTM5Mysob15pXnMpOmM8NjA/KG8maXxvJnN8aSZzKS0xODk0MDA3NTg4OihvXmlecyktODk5NDk3NTE0LGE9cyxzPWksaT1vPDwzMHxvPj4+MixvPW4sbj1ofXJbMF09clswXStufDAsclsxXT1yWzFdK298MCxyWzJdPXJbMl0raXwwLHJbM109clszXStzfDAscls0XT1yWzRdK2F8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxyPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztyZXR1cm4gZVtuPj4+NV18PTEyODw8MjQtbiUzMixlWzE0KyhuKzY0Pj4+OTw8NCldPU1hdGguZmxvb3Ioci80Mjk0OTY3Mjk2KSxlWzE1KyhuKzY0Pj4+OTw8NCldPXIsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWEuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KSxvLlNIQTE9YS5fY3JlYXRlSGVscGVyKGwpLG8uSG1hY1NIQTE9YS5fY3JlYXRlSG1hY0hlbHBlcihsKSxuLlNIQTEpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjLHU7dC5leHBvcnRzPShuPXIoMCksaT0obz1uKS5saWIscz1pLkJhc2UsYT1vLmVuYyxjPWEuVXRmOCx1PW8uYWxnbyx2b2lkKHUuSE1BQz1zLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy5faGFzaGVyPW5ldyB0LmluaXQsXCJzdHJpbmdcIj09dHlwZW9mIGUmJihlPWMucGFyc2UoZSkpO3ZhciByPXQuYmxvY2tTaXplLG49NCpyO2Uuc2lnQnl0ZXM+biYmKGU9dC5maW5hbGl6ZShlKSksZS5jbGFtcCgpO2Zvcih2YXIgbz10aGlzLl9vS2V5PWUuY2xvbmUoKSxpPXRoaXMuX2lLZXk9ZS5jbG9uZSgpLHM9by53b3JkcyxhPWkud29yZHMsdT0wO3U8cjt1Kyspc1t1XV49MTU0OTU1NjgyOCxhW3VdXj05MDk1MjI0ODY7by5zaWdCeXRlcz1pLnNpZ0J5dGVzPW4sdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2hhc2hlcjt0LnJlc2V0KCksdC51cGRhdGUodGhpcy5faUtleSl9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZSh0KSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9oYXNoZXIscj1lLmZpbmFsaXplKHQpO2UucmVzZXQoKTt2YXIgbj1lLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQocikpO3JldHVybiBufX0pKSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLkludmFsaWROdW1iZXJPZlNvbGlkaXR5QXJncz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRXJyb3IoYEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBTb2xpZGl0eSBmdW5jdGlvbi4gZ2l2ZW46ICR7dH0sIGV4cGVjdGVkOiAke2V9YCl9LGUuSW52YWxpZE51bWJlck9mUlBDUGFyYW1zPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbmV3IEVycm9yKGBJbnZhbGlkIG51bWJlciBvZiBpbnB1dCBwYXJhbWV0ZXJzIHRvIFJQQyBtZXRob2QgXCIke3R9XCIgZ2l2ZW46ICR7ZX0sIGV4cGVjdGVkOiAke3J9YCl9LGUuSW52YWxpZENvbm5lY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBFcnJvcihcIkNPTk5FQ1RJT04gRVJST1I6IENvdWxkbid0IGNvbm5lY3QgdG8gbm9kZSBcIit0K1wiLlwiKX0sZS5JbnZhbGlkUHJvdmlkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEVycm9yKFwiUHJvdmlkZXIgbm90IHNldCBvciBpbnZhbGlkXCIpfSxlLkludmFsaWRSZXNwb25zZT1mdW5jdGlvbih0KXtsZXQgZT10JiZ0LmVycm9yJiZ0LmVycm9yLm1lc3NhZ2U/dC5lcnJvci5tZXNzYWdlOlwiSW52YWxpZCBKU09OIFJQQyByZXNwb25zZTogXCIrSlNPTi5zdHJpbmdpZnkodCk7cmV0dXJuIG5ldyBFcnJvcihlKX0sZS5Db25uZWN0aW9uVGltZW91dD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEVycm9yKFwiQ09OTkVDVElPTiBUSU1FT1VUOiB0aW1lb3V0IG9mIFwiK3QrXCIgbXMgYWNoaXZlZFwiKX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoNTcpO2UuRVRIX1VOSVRTPVtcIndlaVwiLFwia3dlaVwiLFwiTXdlaVwiLFwiR3dlaVwiLFwic3phYm9cIixcImZpbm5leVwiLFwiZmVtdG9ldGhlclwiLFwicGljb2V0aGVyXCIsXCJuYW5vZXRoZXJcIixcIm1pY3JvZXRoZXJcIixcIm1pbGxpZXRoZXJcIixcIm5hbm9cIixcIm1pY3JvXCIsXCJtaWxsaVwiLFwiZXRoZXJcIixcImdyYW5kXCIsXCJNZXRoZXJcIixcIkdldGhlclwiLFwiVGV0aGVyXCIsXCJQZXRoZXJcIixcIkVldGhlclwiLFwiWmV0aGVyXCIsXCJZZXRoZXJcIixcIk5ldGhlclwiLFwiRGV0aGVyXCIsXCJWZXRoZXJcIixcIlVldGhlclwiXSxlLkVUSF9QQURESU5HPTMyLGUuRVRIX1NJR05BVFVSRV9MRU5HVEg9NCxlLkVUSF9CSUdOVU1CRVJfUk9VTkRJTkdfTU9ERT17Uk9VTkRJTkdfTU9ERTpuLkJpZ051bWJlclJvdW5kaW5nTW9kZS5ST1VORF9ET1dOfSxlLkVUSF9QT0xMSU5HX1RJTUVPVVQ9NTAwLGUuZGVmYXVsdEJsb2NrPVwibGF0ZXN0XCJ9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDYxKSxpPXIoNjIpLHM9cig2MyksYT1yKDY0KSxjPXIoNjUpLHU9cig2NiksbD1yKDY3KSxoPXIoNjgpLGY9cig2OSk7ZnVuY3Rpb24gcCh0LGUpe3JldHVybiB0LmlzRHluYW1pY1R5cGUoZSl8fHQuaXNEeW5hbWljQXJyYXkoZSl9Y2xhc3MgZHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl90eXBlcz10fV9yZXF1aXJlVHlwZSh0KXtsZXQgZT10aGlzLl90eXBlcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNUeXBlKHQpfSlbMF07aWYoIWUpdGhyb3cgRXJyb3IoXCJpbnZhbGlkIHNvbGlkaXR5IHR5cGUhOiBcIit0KTtyZXR1cm4gZX1lbmNvZGVQYXJhbSh0LGUpe3JldHVybiB0aGlzLmVuY29kZVBhcmFtcyhbdF0sW2VdKX1lbmNvZGVQYXJhbXModCxlKXtsZXQgcj10aGlzLmdldFNvbGlkaXR5VHlwZXModCksbj1yLm1hcChmdW5jdGlvbihyLG4pe3JldHVybiByLmVuY29kZShlW25dLHRbbl0pfSksbz1yLnJlZHVjZShmdW5jdGlvbihlLG4sbyl7bGV0IGk9bi5zdGF0aWNQYXJ0TGVuZ3RoKHRbb10pLHM9MzIqTWF0aC5mbG9vcigoaSszMSkvMzIpO3JldHVybiBlKyhwKHJbb10sdFtvXSk/MzI6cyl9LDApO3JldHVybiB0aGlzLmVuY29kZU11bHRpV2l0aE9mZnNldCh0LHIsbixvKX1lbmNvZGVNdWx0aVdpdGhPZmZzZXQodCxlLHIsbyl7bGV0IGk9byxzPVwiXCI7cmV0dXJuIHQuZm9yRWFjaCgobyxhKT0+e2lmKHAoZVthXSx0W2FdKSl7cys9bi5mb3JtYXRJbnB1dEludChpKS5lbmNvZGUoKTtsZXQgbz10aGlzLmVuY29kZVdpdGhPZmZzZXQodFthXSxlW2FdLHJbYV0saSk7aSs9by5sZW5ndGgvMn1lbHNlIHMrPXRoaXMuZW5jb2RlV2l0aE9mZnNldCh0W2FdLGVbYV0sclthXSxpKX0pLHQuZm9yRWFjaCgobixvKT0+e2lmKHAoZVtvXSx0W29dKSl7bGV0IG49dGhpcy5lbmNvZGVXaXRoT2Zmc2V0KHRbb10sZVtvXSxyW29dLGkpO2krPW4ubGVuZ3RoLzIscys9bn19KSxzfWVuY29kZVdpdGhPZmZzZXQodCxlLHIsbyl7bGV0IGk9MSxzPTIsYT0zLGM9ZS5pc0R5bmFtaWNBcnJheSh0KT9pOmUuaXNTdGF0aWNBcnJheSh0KT9zOmE7aWYoYyE9PWEpe2xldCBhPWUubmVzdGVkTmFtZSh0KSx1PWUuc3RhdGljUGFydExlbmd0aChhKSxsPWM9PT1pP3JbMF06XCJcIjtpZihlLmlzRHluYW1pY0FycmF5KGEpKXtsZXQgdD1jPT09aT8yOjA7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspYz09PWk/dCs9K3JbZS0xXVswXXx8MDpjPT09cyYmKHQrPSsocltlLTFdfHxbXSlbMF18fDApLGwrPW4uZm9ybWF0SW5wdXRJbnQobytlKnUrMzIqdCkuZW5jb2RlKCl9bGV0IGg9Yz09PWk/ci5sZW5ndGgtMTpyLmxlbmd0aDtmb3IobGV0IHQ9MDt0PGg7dCsrKXtsZXQgbj1sLzI7Yz09PWk/bCs9dGhpcy5lbmNvZGVXaXRoT2Zmc2V0KGEsZSxyW3QrMV0sbytuKTpjPT09cyYmKGwrPXRoaXMuZW5jb2RlV2l0aE9mZnNldChhLGUsclt0XSxvK24pKX1yZXR1cm4gbH1yZXR1cm4gcn1kZWNvZGVQYXJhbSh0LGUpe3JldHVybiB0aGlzLmRlY29kZVBhcmFtcyhbdF0sZSlbMF19ZGVjb2RlUGFyYW1zKHQsZSl7bGV0IHI9dGhpcy5nZXRTb2xpZGl0eVR5cGVzKHQpLG49dGhpcy5nZXRPZmZzZXRzKHQscik7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHIsbyl7cmV0dXJuIHIuZGVjb2RlKGUsbltvXSx0W29dKX0pfWdldE9mZnNldHModCxlKXtsZXQgcj1lLm1hcChmdW5jdGlvbihlLHIpe3JldHVybiBlLnN0YXRpY1BhcnRMZW5ndGgodFtyXSl9KTtmb3IobGV0IHQ9MTt0PHIubGVuZ3RoO3QrKylyW3RdKz1yW3QtMV07cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHIsbil7cmV0dXJuIHItZVtuXS5zdGF0aWNQYXJ0TGVuZ3RoKHRbbl0pfSl9Z2V0U29saWRpdHlUeXBlcyh0KXtyZXR1cm4gdC5tYXAodD0+dGhpcy5fcmVxdWlyZVR5cGUodCkpfX1lLlNvbGlkaXR5Q29kZXI9ZCxlLmNvZGVyPW5ldyBkKFtuZXcgby5Tb2xpZGl0eVR5cGVBZGRyZXNzLG5ldyBpLlNvbGlkaXR5VHlwZUJvb2wsbmV3IHMuU29saWRpdHlUeXBlSW50LG5ldyBhLlNvbGlkaXR5VHlwZVVJbnQsbmV3IGMuU29saWRpdHlUeXBlRHluYW1pY0J5dGVzLG5ldyBmLlNvbGlkaXR5VHlwZUJ5dGVzLG5ldyB1LlNvbGlkaXR5VHlwZVN0cmluZyxuZXcgbC5Tb2xpZGl0eVR5cGVSZWFsLG5ldyBoLlNvbGlkaXR5VHlwZVVSZWFsXSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLnRvUlBDPWZ1bmN0aW9uKHQpe2lmKHQuanNvbnJwYz1cIjIuMFwiLCF0LmlkfHxcIm51bWJlclwiIT10eXBlb2YgdC5pZHx8TWF0aC5mbG9vcih0LmlkKSE9PXQuaWQpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJQQyBtZXNzYWdlKGludmFsaWQgaWQpIG1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7aWYoIXQubWV0aG9kfHxcInN0cmluZ1wiIT10eXBlb2YgdC5tZXRob2R8fDA9PT10Lm1ldGhvZC50cmltKCkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSUEMgbWVzc2FnZShpbnZhbGlkIG1ldGhvZCkgbWVzc2FnZTogJHtKU09OLnN0cmluZ2lmeSh0KX1gKTtpZighdC5wYXJhbXN8fFwib2JqZWN0XCIhPXR5cGVvZiB0LnBhcmFtcyl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUlBDIG1lc3NhZ2UoaW52YWxpZCBwYXJhbXMpIG1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkodCl9YCk7cmV0dXJuIHR9fSxmdW5jdGlvbih0LGUscil7dmFyIG47IWZ1bmN0aW9uKG8pe1widXNlIHN0cmljdFwiO3ZhciBpLHM9L14tPyg/OlxcZCsoPzpcXC5cXGQqKT98XFwuXFxkKykoPzplWystXT9cXGQrKT8kL2ksYT1NYXRoLmNlaWwsYz1NYXRoLmZsb29yLHU9XCJbQmlnTnVtYmVyIEVycm9yXSBcIixsPXUrXCJOdW1iZXIgcHJpbWl0aXZlIGhhcyBtb3JlIHRoYW4gMTUgc2lnbmlmaWNhbnQgZGlnaXRzOiBcIixoPTFlMTQsZj0xNCxwPTkwMDcxOTkyNTQ3NDA5OTEsZD1bMSwxMCwxMDAsMWUzLDFlNCwxZTUsMWU2LDFlNywxZTgsMWU5LDFlMTAsMWUxMSwxZTEyLDFlMTNdLG09MWU3LHk9MWU5O2Z1bmN0aW9uIGcodCl7dmFyIGU9MHx0O3JldHVybiB0PjB8fHQ9PT1lP2U6ZS0xfWZ1bmN0aW9uIF8odCl7Zm9yKHZhciBlLHIsbj0xLG89dC5sZW5ndGgsaT10WzBdK1wiXCI7bjxvOyl7Zm9yKGU9dFtuKytdK1wiXCIscj1mLWUubGVuZ3RoO3ItLTtlPVwiMFwiK2UpO2krPWV9Zm9yKG89aS5sZW5ndGg7NDg9PT1pLmNoYXJDb2RlQXQoLS1vKTspO3JldHVybiBpLnNsaWNlKDAsbysxfHwxKX1mdW5jdGlvbiB2KHQsZSl7dmFyIHIsbixvPXQuYyxpPWUuYyxzPXQucyxhPWUucyxjPXQuZSx1PWUuZTtpZighc3x8IWEpcmV0dXJuIG51bGw7aWYocj1vJiYhb1swXSxuPWkmJiFpWzBdLHJ8fG4pcmV0dXJuIHI/bj8wOi1hOnM7aWYocyE9YSlyZXR1cm4gcztpZihyPXM8MCxuPWM9PXUsIW98fCFpKXJldHVybiBuPzA6IW9ecj8xOi0xO2lmKCFuKXJldHVybiBjPnVecj8xOi0xO2ZvcihhPShjPW8ubGVuZ3RoKTwodT1pLmxlbmd0aCk/Yzp1LHM9MDtzPGE7cysrKWlmKG9bc10hPWlbc10pcmV0dXJuIG9bc10+aVtzXV5yPzE6LTE7cmV0dXJuIGM9PXU/MDpjPnVecj8xOi0xfWZ1bmN0aW9uIHcodCxlLHIsbil7aWYodDxlfHx0PnJ8fHQhPT0odDwwP2EodCk6Yyh0KSkpdGhyb3cgRXJyb3IodSsobnx8XCJBcmd1bWVudFwiKSsoXCJudW1iZXJcIj09dHlwZW9mIHQ/dDxlfHx0PnI/XCIgb3V0IG9mIHJhbmdlOiBcIjpcIiBub3QgYW4gaW50ZWdlcjogXCI6XCIgbm90IGEgcHJpbWl0aXZlIG51bWJlcjogXCIpK3QpfWZ1bmN0aW9uIGIodCl7cmV0dXJuXCJbb2JqZWN0IEFycmF5XVwiPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gQih0KXt2YXIgZT10LmMubGVuZ3RoLTE7cmV0dXJuIGcodC5lL2YpPT1lJiZ0LmNbZV0lMiE9MH1mdW5jdGlvbiBGKHQsZSl7cmV0dXJuKHQubGVuZ3RoPjE/dC5jaGFyQXQoMCkrXCIuXCIrdC5zbGljZSgxKTp0KSsoZTwwP1wiZVwiOlwiZStcIikrZX1mdW5jdGlvbiBOKHQsZSxyKXt2YXIgbixvO2lmKGU8MCl7Zm9yKG89citcIi5cIjsrK2U7bys9cik7dD1vK3R9ZWxzZSBpZigrK2U+KG49dC5sZW5ndGgpKXtmb3Iobz1yLGUtPW47LS1lO28rPXIpO3QrPW99ZWxzZSBlPG4mJih0PXQuc2xpY2UoMCxlKStcIi5cIit0LnNsaWNlKGUpKTtyZXR1cm4gdH0oaT1mdW5jdGlvbiB0KGUpe3ZhciByLG4sbyxpLGsseCxTLEEsTyxUPVcucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpXLHRvU3RyaW5nOm51bGwsdmFsdWVPZjpudWxsfSxQPW5ldyBXKDEpLE09MjAsQz00LEU9LTcsRD0yMSxSPS0xZTcsST0xZTcsSD0hMSxqPTEsVT0wLEw9e2RlY2ltYWxTZXBhcmF0b3I6XCIuXCIsZ3JvdXBTZXBhcmF0b3I6XCIsXCIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFyYXRvcjpcIsKgXCIsZnJhY3Rpb25Hcm91cFNpemU6MH0sej1cIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elwiO2Z1bmN0aW9uIFcodCxlKXt2YXIgcixpLGEsdSxoLGQsbSx5PXRoaXM7aWYoISh5IGluc3RhbmNlb2YgVykpcmV0dXJuIG5ldyBXKHQsZSk7aWYobnVsbD09ZSl7aWYodCBpbnN0YW5jZW9mIFcpcmV0dXJuIHkucz10LnMseS5lPXQuZSx2b2lkKHkuYz0odD10LmMpP3Quc2xpY2UoKTp0KTtpZigoaD1cIm51bWJlclwiPT10eXBlb2YgdCkmJjAqdD09MCl7aWYoeS5zPTEvdDwwPyh0PS10LC0xKToxLHQ9PT1+fnQpe2ZvcihhPTAsdT10O3U+PTEwO3UvPTEwLGErKyk7cmV0dXJuIHkuZT1hLHZvaWQoeS5jPVt0XSl9bT10K1wiXCJ9ZWxzZXtpZighcy50ZXN0KG09dCtcIlwiKSlyZXR1cm4gbyh5LG0saCk7eS5zPTQ1PT1tLmNoYXJDb2RlQXQoMCk/KG09bS5zbGljZSgxKSwtMSk6MX19ZWxzZXtpZih3KGUsMix6Lmxlbmd0aCxcIkJhc2VcIiksbT10K1wiXCIsMTA9PWUpcmV0dXJuIFYoeT1uZXcgVyh0IGluc3RhbmNlb2YgVz90Om0pLE0reS5lKzEsQyk7aWYoaD1cIm51bWJlclwiPT10eXBlb2YgdCl7aWYoMCp0IT0wKXJldHVybiBvKHksbSxoLGUpO2lmKHkucz0xL3Q8MD8obT1tLnNsaWNlKDEpLC0xKToxLFcuREVCVUcmJm0ucmVwbGFjZSgvXjBcXC4wKnxcXC4vLFwiXCIpLmxlbmd0aD4xNSl0aHJvdyBFcnJvcihsK3QpO2g9ITF9ZWxzZSB5LnM9NDU9PT1tLmNoYXJDb2RlQXQoMCk/KG09bS5zbGljZSgxKSwtMSk6MSxlPjEwJiZlPDM3JiYobT1tLnRvTG93ZXJDYXNlKCkpO2ZvcihyPXouc2xpY2UoMCxlKSxhPXU9MCxkPW0ubGVuZ3RoO3U8ZDt1KyspaWYoci5pbmRleE9mKGk9bS5jaGFyQXQodSkpPDApe2lmKFwiLlwiPT1pJiZ1PmEpe2E9ZDtjb250aW51ZX1yZXR1cm4gbyh5LHQrXCJcIixoLGUpfW09bihtLGUsMTAseS5zKX1mb3IoKGE9bS5pbmRleE9mKFwiLlwiKSk+LTEmJihtPW0ucmVwbGFjZShcIi5cIixcIlwiKSksKHU9bS5zZWFyY2goL2UvaSkpPjA/KGE8MCYmKGE9dSksYSs9K20uc2xpY2UodSsxKSxtPW0uc3Vic3RyaW5nKDAsdSkpOmE8MCYmKGE9bS5sZW5ndGgpLHU9MDs0OD09PW0uY2hhckNvZGVBdCh1KTt1KyspO2ZvcihkPW0ubGVuZ3RoOzQ4PT09bS5jaGFyQ29kZUF0KC0tZCk7KTtpZihtPW0uc2xpY2UodSwrK2QpKXtpZihkLT11LGgmJlcuREVCVUcmJmQ+MTUmJih0PnB8fHQhPT1jKHQpKSl0aHJvdyBFcnJvcihsK3kucyp0KTtpZigoYT1hLXUtMSk+SSl5LmM9eS5lPW51bGw7ZWxzZSBpZihhPFIpeS5jPVt5LmU9MF07ZWxzZXtpZih5LmU9YSx5LmM9W10sdT0oYSsxKSVmLGE8MCYmKHUrPWYpLHU8ZCl7Zm9yKHUmJnkuYy5wdXNoKCttLnNsaWNlKDAsdSkpLGQtPWY7dTxkOyl5LmMucHVzaCgrbS5zbGljZSh1LHUrPWYpKTttPW0uc2xpY2UodSksdT1mLW0ubGVuZ3RofWVsc2UgdS09ZDtmb3IoO3UtLTttKz1cIjBcIik7eS5jLnB1c2goK20pfX1lbHNlIHkuYz1beS5lPTBdfWZ1bmN0aW9uIHEodCxlLHIsbil7dmFyIG8saSxzLGEsYztpZihudWxsPT1yP3I9Qzp3KHIsMCw4KSwhdC5jKXJldHVybiB0LnRvU3RyaW5nKCk7aWYobz10LmNbMF0scz10LmUsbnVsbD09ZSljPV8odC5jKSxjPTE9PW58fDI9PW4mJnM8PUU/RihjLHMpOk4oYyxzLFwiMFwiKTtlbHNlIGlmKGk9KHQ9VihuZXcgVyh0KSxlLHIpKS5lLGE9KGM9Xyh0LmMpKS5sZW5ndGgsMT09bnx8Mj09biYmKGU8PWl8fGk8PUUpKXtmb3IoO2E8ZTtjKz1cIjBcIixhKyspO2M9RihjLGkpfWVsc2UgaWYoZS09cyxjPU4oYyxpLFwiMFwiKSxpKzE+YSl7aWYoLS1lPjApZm9yKGMrPVwiLlwiO2UtLTtjKz1cIjBcIik7fWVsc2UgaWYoKGUrPWktYSk+MClmb3IoaSsxPT1hJiYoYys9XCIuXCIpO2UtLTtjKz1cIjBcIik7cmV0dXJuIHQuczwwJiZvP1wiLVwiK2M6Y31mdW5jdGlvbiAkKHQsZSl7dmFyIHIsbixvPTA7Zm9yKGIodFswXSkmJih0PXRbMF0pLHI9bmV3IFcodFswXSk7KytvPHQubGVuZ3RoOyl7aWYoIShuPW5ldyBXKHRbb10pKS5zKXtyPW47YnJlYWt9ZS5jYWxsKHIsbikmJihyPW4pfXJldHVybiByfWZ1bmN0aW9uIEcodCxlLHIpe2Zvcih2YXIgbj0xLG89ZS5sZW5ndGg7IWVbLS1vXTtlLnBvcCgpKTtmb3Iobz1lWzBdO28+PTEwO28vPTEwLG4rKyk7cmV0dXJuKHI9bityKmYtMSk+ST90LmM9dC5lPW51bGw6cjxSP3QuYz1bdC5lPTBdOih0LmU9cix0LmM9ZSksdH1mdW5jdGlvbiBWKHQsZSxyLG4pe3ZhciBvLGkscyx1LGwscCxtLHk9dC5jLGc9ZDtpZih5KXt0Ontmb3Iobz0xLHU9eVswXTt1Pj0xMDt1Lz0xMCxvKyspO2lmKChpPWUtbyk8MClpKz1mLHM9ZSxtPShsPXlbcD0wXSkvZ1tvLXMtMV0lMTB8MDtlbHNlIGlmKChwPWEoKGkrMSkvZikpPj15Lmxlbmd0aCl7aWYoIW4pYnJlYWsgdDtmb3IoO3kubGVuZ3RoPD1wO3kucHVzaCgwKSk7bD1tPTAsbz0xLHM9KGklPWYpLWYrMX1lbHNle2ZvcihsPXU9eVtwXSxvPTE7dT49MTA7dS89MTAsbysrKTttPShzPShpJT1mKS1mK28pPDA/MDpsL2dbby1zLTFdJTEwfDB9aWYobj1ufHxlPDB8fG51bGwhPXlbcCsxXXx8KHM8MD9sOmwlZ1tvLXMtMV0pLG49cjw0PyhtfHxuKSYmKDA9PXJ8fHI9PSh0LnM8MD8zOjIpKTptPjV8fDU9PW0mJig0PT1yfHxufHw2PT1yJiYoaT4wP3M+MD9sL2dbby1zXTowOnlbcC0xXSklMTAmMXx8cj09KHQuczwwPzg6NykpLGU8MXx8IXlbMF0pcmV0dXJuIHkubGVuZ3RoPTAsbj8oZS09dC5lKzEseVswXT1nWyhmLWUlZiklZl0sdC5lPS1lfHwwKTp5WzBdPXQuZT0wLHQ7aWYoMD09aT8oeS5sZW5ndGg9cCx1PTEscC0tKTooeS5sZW5ndGg9cCsxLHU9Z1tmLWldLHlbcF09cz4wP2MobC9nW28tc10lZ1tzXSkqdTowKSxuKWZvcig7Oyl7aWYoMD09cCl7Zm9yKGk9MSxzPXlbMF07cz49MTA7cy89MTAsaSsrKTtmb3Iocz15WzBdKz11LHU9MTtzPj0xMDtzLz0xMCx1KyspO2khPXUmJih0LmUrKyx5WzBdPT1oJiYoeVswXT0xKSk7YnJlYWt9aWYoeVtwXSs9dSx5W3BdIT1oKWJyZWFrO3lbcC0tXT0wLHU9MX1mb3IoaT15Lmxlbmd0aDswPT09eVstLWldO3kucG9wKCkpO310LmU+ST90LmM9dC5lPW51bGw6dC5lPFImJih0LmM9W3QuZT0wXSl9cmV0dXJuIHR9cmV0dXJuIFcuY2xvbmU9dCxXLlJPVU5EX1VQPTAsVy5ST1VORF9ET1dOPTEsVy5ST1VORF9DRUlMPTIsVy5ST1VORF9GTE9PUj0zLFcuUk9VTkRfSEFMRl9VUD00LFcuUk9VTkRfSEFMRl9ET1dOPTUsVy5ST1VORF9IQUxGX0VWRU49NixXLlJPVU5EX0hBTEZfQ0VJTD03LFcuUk9VTkRfSEFMRl9GTE9PUj04LFcuRVVDTElEPTksVy5jb25maWc9Vy5zZXQ9ZnVuY3Rpb24odCl7dmFyIGUscjtpZihudWxsIT10KXtpZihcIm9iamVjdFwiIT10eXBlb2YgdCl0aHJvdyBFcnJvcih1K1wiT2JqZWN0IGV4cGVjdGVkOiBcIit0KTtpZih0Lmhhc093blByb3BlcnR5KGU9XCJERUNJTUFMX1BMQUNFU1wiKSYmKHcocj10W2VdLDAseSxlKSxNPXIpLHQuaGFzT3duUHJvcGVydHkoZT1cIlJPVU5ESU5HX01PREVcIikmJih3KHI9dFtlXSwwLDgsZSksQz1yKSx0Lmhhc093blByb3BlcnR5KGU9XCJFWFBPTkVOVElBTF9BVFwiKSYmKGIocj10W2VdKT8odyhyWzBdLC15LDAsZSksdyhyWzFdLDAseSxlKSxFPXJbMF0sRD1yWzFdKToodyhyLC15LHksZSksRT0tKEQ9cjwwPy1yOnIpKSksdC5oYXNPd25Qcm9wZXJ0eShlPVwiUkFOR0VcIikpaWYoYihyPXRbZV0pKXcoclswXSwteSwtMSxlKSx3KHJbMV0sMSx5LGUpLFI9clswXSxJPXJbMV07ZWxzZXtpZih3KHIsLXkseSxlKSwhcil0aHJvdyBFcnJvcih1K2UrXCIgY2Fubm90IGJlIHplcm86IFwiK3IpO1I9LShJPXI8MD8tcjpyKX1pZih0Lmhhc093blByb3BlcnR5KGU9XCJDUllQVE9cIikpe2lmKChyPXRbZV0pIT09ISFyKXRocm93IEVycm9yKHUrZStcIiBub3QgdHJ1ZSBvciBmYWxzZTogXCIrcik7aWYocil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgSD0hcixFcnJvcih1K1wiY3J5cHRvIHVuYXZhaWxhYmxlXCIpO0g9cn1lbHNlIEg9cn1pZih0Lmhhc093blByb3BlcnR5KGU9XCJNT0RVTE9fTU9ERVwiKSYmKHcocj10W2VdLDAsOSxlKSxqPXIpLHQuaGFzT3duUHJvcGVydHkoZT1cIlBPV19QUkVDSVNJT05cIikmJih3KHI9dFtlXSwwLHksZSksVT1yKSx0Lmhhc093blByb3BlcnR5KGU9XCJGT1JNQVRcIikpe2lmKFwib2JqZWN0XCIhPXR5cGVvZihyPXRbZV0pKXRocm93IEVycm9yKHUrZStcIiBub3QgYW4gb2JqZWN0OiBcIityKTtMPXJ9aWYodC5oYXNPd25Qcm9wZXJ0eShlPVwiQUxQSEFCRVRcIikpe2lmKFwic3RyaW5nXCIhPXR5cGVvZihyPXRbZV0pfHwvXi4kfFxcLnwoLikuKlxcMS8udGVzdChyKSl0aHJvdyBFcnJvcih1K2UrXCIgaW52YWxpZDogXCIrcik7ej1yfX1yZXR1cm57REVDSU1BTF9QTEFDRVM6TSxST1VORElOR19NT0RFOkMsRVhQT05FTlRJQUxfQVQ6W0UsRF0sUkFOR0U6W1IsSV0sQ1JZUFRPOkgsTU9EVUxPX01PREU6aixQT1dfUFJFQ0lTSU9OOlUsRk9STUFUOkwsQUxQSEFCRVQ6en19LFcuaXNCaWdOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBXfHx0JiYhMD09PXQuX2lzQmlnTnVtYmVyfHwhMX0sVy5tYXhpbXVtPVcubWF4PWZ1bmN0aW9uKCl7cmV0dXJuICQoYXJndW1lbnRzLFQubHQpfSxXLm1pbmltdW09Vy5taW49ZnVuY3Rpb24oKXtyZXR1cm4gJChhcmd1bWVudHMsVC5ndCl9LFcucmFuZG9tPShpPTkwMDcxOTkyNTQ3NDA5OTIqTWF0aC5yYW5kb20oKSYyMDk3MTUxP2Z1bmN0aW9uKCl7cmV0dXJuIGMoOTAwNzE5OTI1NDc0MDk5MipNYXRoLnJhbmRvbSgpKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLHMsbD0wLGg9W10scD1uZXcgVyhQKTtpZihudWxsPT10P3Q9TTp3KHQsMCx5KSxvPWEodC9mKSxIKWlmKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2ZvcihlPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KG8qPTIpKTtsPG87KShzPTEzMTA3MiplW2xdKyhlW2wrMV0+Pj4xMSkpPj05ZTE1PyhyPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDIpKSxlW2xdPXJbMF0sZVtsKzFdPXJbMV0pOihoLnB1c2gocyUxZTE0KSxsKz0yKTtsPW8vMn1lbHNle2lmKCFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgSD0hMSxFcnJvcih1K1wiY3J5cHRvIHVuYXZhaWxhYmxlXCIpO2ZvcihlPWNyeXB0by5yYW5kb21CeXRlcyhvKj03KTtsPG87KShzPTI4MTQ3NDk3NjcxMDY1NiooMzEmZVtsXSkrMTA5OTUxMTYyNzc3NiplW2wrMV0rNDI5NDk2NzI5NiplW2wrMl0rMTY3NzcyMTYqZVtsKzNdKyhlW2wrNF08PDE2KSsoZVtsKzVdPDw4KStlW2wrNl0pPj05ZTE1P2NyeXB0by5yYW5kb21CeXRlcyg3KS5jb3B5KGUsbCk6KGgucHVzaChzJTFlMTQpLGwrPTcpO2w9by83fWlmKCFIKWZvcig7bDxvOykocz1pKCkpPDllMTUmJihoW2wrK109cyUxZTE0KTtmb3Iobz1oWy0tbF0sdCU9ZixvJiZ0JiYocz1kW2YtdF0saFtsXT1jKG8vcykqcyk7MD09PWhbbF07aC5wb3AoKSxsLS0pO2lmKGw8MCloPVtuPTBdO2Vsc2V7Zm9yKG49LTE7MD09PWhbMF07aC5zcGxpY2UoMCwxKSxuLT1mKTtmb3IobD0xLHM9aFswXTtzPj0xMDtzLz0xMCxsKyspO2w8ZiYmKG4tPWYtbCl9cmV0dXJuIHAuZT1uLHAuYz1oLHB9KSxuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscixuKXtmb3IodmFyIG8saSxzPVswXSxhPTAsYz10Lmxlbmd0aDthPGM7KXtmb3IoaT1zLmxlbmd0aDtpLS07c1tpXSo9ZSk7Zm9yKHNbMF0rPW4uaW5kZXhPZih0LmNoYXJBdChhKyspKSxvPTA7bzxzLmxlbmd0aDtvKyspc1tvXT5yLTEmJihudWxsPT1zW28rMV0mJihzW28rMV09MCksc1tvKzFdKz1zW29dL3J8MCxzW29dJT1yKX1yZXR1cm4gcy5yZXZlcnNlKCl9cmV0dXJuIGZ1bmN0aW9uKGUsbixvLGkscyl7dmFyIGEsYyx1LGwsaCxmLHAsZCxtPWUuaW5kZXhPZihcIi5cIikseT1NLGc9Qztmb3IobT49MCYmKGw9VSxVPTAsZT1lLnJlcGxhY2UoXCIuXCIsXCJcIiksZj0oZD1uZXcgVyhuKSkucG93KGUubGVuZ3RoLW0pLFU9bCxkLmM9dChOKF8oZi5jKSxmLmUsXCIwXCIpLDEwLG8sXCIwMTIzNDU2Nzg5XCIpLGQuZT1kLmMubGVuZ3RoKSx1PWw9KHA9dChlLG4sbyxzPyhhPXosXCIwMTIzNDU2Nzg5XCIpOihhPVwiMDEyMzQ1Njc4OVwiLHopKSkubGVuZ3RoOzA9PXBbLS1sXTtwLnBvcCgpKTtpZighcFswXSlyZXR1cm4gYS5jaGFyQXQoMCk7aWYobTwwPy0tdTooZi5jPXAsZi5lPXUsZi5zPWkscD0oZj1yKGYsZCx5LGcsbykpLmMsaD1mLnIsdT1mLmUpLG09cFtjPXUreSsxXSxsPW8vMixoPWh8fGM8MHx8bnVsbCE9cFtjKzFdLGg9Zzw0PyhudWxsIT1tfHxoKSYmKDA9PWd8fGc9PShmLnM8MD8zOjIpKTptPmx8fG09PWwmJig0PT1nfHxofHw2PT1nJiYxJnBbYy0xXXx8Zz09KGYuczwwPzg6NykpLGM8MXx8IXBbMF0pZT1oP04oYS5jaGFyQXQoMSksLXksYS5jaGFyQXQoMCkpOmEuY2hhckF0KDApO2Vsc2V7aWYocC5sZW5ndGg9YyxoKWZvcigtLW87KytwWy0tY10+bzspcFtjXT0wLGN8fCgrK3UscD1bMV0uY29uY2F0KHApKTtmb3IobD1wLmxlbmd0aDshcFstLWxdOyk7Zm9yKG09MCxlPVwiXCI7bTw9bDtlKz1hLmNoYXJBdChwW20rK10pKTtlPU4oZSx1LGEuY2hhckF0KDApKX1yZXR1cm4gZX19KCkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLHIpe3ZhciBuLG8saSxzLGE9MCxjPXQubGVuZ3RoLHU9ZSVtLGw9ZS9tfDA7Zm9yKHQ9dC5zbGljZSgpO2MtLTspYT0oKG89dSooaT10W2NdJW0pKyhuPWwqaSsocz10W2NdL218MCkqdSklbSptK2EpL3J8MCkrKG4vbXwwKStsKnMsdFtjXT1vJXI7cmV0dXJuIGEmJih0PVthXS5jb25jYXQodCkpLHR9ZnVuY3Rpb24gZSh0LGUscixuKXt2YXIgbyxpO2lmKHIhPW4paT1yPm4/MTotMTtlbHNlIGZvcihvPWk9MDtvPHI7bysrKWlmKHRbb10hPWVbb10pe2k9dFtvXT5lW29dPzE6LTE7YnJlYWt9cmV0dXJuIGl9ZnVuY3Rpb24gcih0LGUscixuKXtmb3IodmFyIG89MDtyLS07KXRbcl0tPW8sbz10W3JdPGVbcl0/MTowLHRbcl09bypuK3Rbcl0tZVtyXTtmb3IoOyF0WzBdJiZ0Lmxlbmd0aD4xO3Quc3BsaWNlKDAsMSkpO31yZXR1cm4gZnVuY3Rpb24obixvLGkscyxhKXt2YXIgdSxsLHAsZCxtLHksXyx2LHcsYixCLEYsTixrLHgsUyxBLE89bi5zPT1vLnM/MTotMSxUPW4uYyxQPW8uYztpZighKFQmJlRbMF0mJlAmJlBbMF0pKXJldHVybiBuZXcgVyhuLnMmJm8ucyYmKFQ/IVB8fFRbMF0hPVBbMF06UCk/VCYmMD09VFswXXx8IVA/MCpPOk8vMDpOYU4pO2Zvcih3PSh2PW5ldyBXKE8pKS5jPVtdLE89aSsobD1uLmUtby5lKSsxLGF8fChhPWgsbD1nKG4uZS9mKS1nKG8uZS9mKSxPPU8vZnwwKSxwPTA7UFtwXT09KFRbcF18fDApO3ArKyk7aWYoUFtwXT4oVFtwXXx8MCkmJmwtLSxPPDApdy5wdXNoKDEpLGQ9ITA7ZWxzZXtmb3Ioaz1ULmxlbmd0aCxTPVAubGVuZ3RoLHA9MCxPKz0yLChtPWMoYS8oUFswXSsxKSkpPjEmJihQPXQoUCxtLGEpLFQ9dChULG0sYSksUz1QLmxlbmd0aCxrPVQubGVuZ3RoKSxOPVMsQj0oYj1ULnNsaWNlKDAsUykpLmxlbmd0aDtCPFM7YltCKytdPTApO0E9UC5zbGljZSgpLEE9WzBdLmNvbmNhdChBKSx4PVBbMF0sUFsxXT49YS8yJiZ4Kys7ZG97aWYobT0wLCh1PWUoUCxiLFMsQikpPDApe2lmKEY9YlswXSxTIT1CJiYoRj1GKmErKGJbMV18fDApKSwobT1jKEYveCkpPjEpZm9yKG0+PWEmJihtPWEtMSksXz0oeT10KFAsbSxhKSkubGVuZ3RoLEI9Yi5sZW5ndGg7MT09ZSh5LGIsXyxCKTspbS0tLHIoeSxTPF8/QTpQLF8sYSksXz15Lmxlbmd0aCx1PTE7ZWxzZSAwPT1tJiYodT1tPTEpLF89KHk9UC5zbGljZSgpKS5sZW5ndGg7aWYoXzxCJiYoeT1bMF0uY29uY2F0KHkpKSxyKGIseSxCLGEpLEI9Yi5sZW5ndGgsLTE9PXUpZm9yKDtlKFAsYixTLEIpPDE7KW0rKyxyKGIsUzxCP0E6UCxCLGEpLEI9Yi5sZW5ndGh9ZWxzZSAwPT09dSYmKG0rKyxiPVswXSk7d1twKytdPW0sYlswXT9iW0IrK109VFtOXXx8MDooYj1bVFtOXV0sQj0xKX13aGlsZSgoTisrPGt8fG51bGwhPWJbMF0pJiZPLS0pO2Q9bnVsbCE9YlswXSx3WzBdfHx3LnNwbGljZSgwLDEpfWlmKGE9PWgpe2ZvcihwPTEsTz13WzBdO08+PTEwO08vPTEwLHArKyk7Vih2LGkrKHYuZT1wK2wqZi0xKSsxLHMsZCl9ZWxzZSB2LmU9bCx2LnI9K2Q7cmV0dXJuIHZ9fSgpLGs9L14oLT8pMChbeGJvXSkoPz1cXHdbXFx3Ll0qJCkvaSx4PS9eKFteLl0rKVxcLiQvLFM9L15cXC4oW14uXSspJC8sQT0vXi0/KEluZmluaXR5fE5hTikkLyxPPS9eXFxzKlxcKyg/PVtcXHcuXSl8Xlxccyt8XFxzKyQvZyxvPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvLGk9cj9lOmUucmVwbGFjZShPLFwiXCIpO2lmKEEudGVzdChpKSl0LnM9aXNOYU4oaSk/bnVsbDppPDA/LTE6MSx0LmM9dC5lPW51bGw7ZWxzZXtpZighciYmKGk9aS5yZXBsYWNlKGssZnVuY3Rpb24odCxlLHIpe3JldHVybiBvPVwieFwiPT0ocj1yLnRvTG93ZXJDYXNlKCkpPzE2OlwiYlwiPT1yPzI6OCxuJiZuIT1vP3Q6ZX0pLG4mJihvPW4saT1pLnJlcGxhY2UoeCxcIiQxXCIpLnJlcGxhY2UoUyxcIjAuJDFcIikpLGUhPWkpKXJldHVybiBuZXcgVyhpLG8pO2lmKFcuREVCVUcpdGhyb3cgRXJyb3IodStcIk5vdCBhXCIrKG4/XCIgYmFzZSBcIituOlwiXCIpK1wiIG51bWJlcjogXCIrZSk7dC5jPXQuZT10LnM9bnVsbH19LFQuYWJzb2x1dGVWYWx1ZT1ULmFicz1mdW5jdGlvbigpe3ZhciB0PW5ldyBXKHRoaXMpO3JldHVybiB0LnM8MCYmKHQucz0xKSx0fSxULmNvbXBhcmVkVG89ZnVuY3Rpb24odCxlKXtyZXR1cm4gdih0aGlzLG5ldyBXKHQsZSkpfSxULmRlY2ltYWxQbGFjZXM9VC5kcD1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpPXRoaXM7aWYobnVsbCE9dClyZXR1cm4gdyh0LDAseSksbnVsbD09ZT9lPUM6dyhlLDAsOCksVihuZXcgVyhpKSx0K2kuZSsxLGUpO2lmKCEocj1pLmMpKXJldHVybiBudWxsO2lmKG49KChvPXIubGVuZ3RoLTEpLWcodGhpcy5lL2YpKSpmLG89cltvXSlmb3IoO28lMTA9PTA7by89MTAsbi0tKTtyZXR1cm4gbjwwJiYobj0wKSxufSxULmRpdmlkZWRCeT1ULmRpdj1mdW5jdGlvbih0LGUpe3JldHVybiByKHRoaXMsbmV3IFcodCxlKSxNLEMpfSxULmRpdmlkZWRUb0ludGVnZXJCeT1ULmlkaXY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcih0aGlzLG5ldyBXKHQsZSksMCwxKX0sVC5leHBvbmVudGlhdGVkQnk9VC5wb3c9ZnVuY3Rpb24odCxlKXt2YXIgcixuLG8saSxzLGwsaCxwPXRoaXM7aWYoKHQ9bmV3IFcodCkpLmMmJiF0LmlzSW50ZWdlcigpKXRocm93IEVycm9yKHUrXCJFeHBvbmVudCBub3QgYW4gaW50ZWdlcjogXCIrdCk7aWYobnVsbCE9ZSYmKGU9bmV3IFcoZSkpLGk9dC5lPjE0LCFwLmN8fCFwLmNbMF18fDE9PXAuY1swXSYmIXAuZSYmMT09cC5jLmxlbmd0aHx8IXQuY3x8IXQuY1swXSlyZXR1cm4gaD1uZXcgVyhNYXRoLnBvdygrcC52YWx1ZU9mKCksaT8yLUIodCk6K3QpKSxlP2gubW9kKGUpOmg7aWYocz10LnM8MCxlKXtpZihlLmM/IWUuY1swXTohZS5zKXJldHVybiBuZXcgVyhOYU4pOyhuPSFzJiZwLmlzSW50ZWdlcigpJiZlLmlzSW50ZWdlcigpKSYmKHA9cC5tb2QoZSkpfWVsc2V7aWYodC5lPjkmJihwLmU+MHx8cC5lPC0xfHwoMD09cC5lP3AuY1swXT4xfHxpJiZwLmNbMV0+PTI0ZTc6cC5jWzBdPDhlMTN8fGkmJnAuY1swXTw9OTk5OTk3NWU3KSkpcmV0dXJuIG89cC5zPDAmJkIodCk/LTA6MCxwLmU+LTEmJihvPTEvbyksbmV3IFcocz8xL286byk7VSYmKG89YShVL2YrMikpfWZvcihpPyhyPW5ldyBXKC41KSxsPUIodCkpOmw9dCUyLHMmJih0LnM9MSksaD1uZXcgVyhQKTs7KXtpZihsKXtpZighKGg9aC50aW1lcyhwKSkuYylicmVhaztvP2guYy5sZW5ndGg+byYmKGguYy5sZW5ndGg9byk6biYmKGg9aC5tb2QoZSkpfWlmKGkpe2lmKFYodD10LnRpbWVzKHIpLHQuZSsxLDEpLCF0LmNbMF0pYnJlYWs7aT10LmU+MTQsbD1CKHQpfWVsc2V7aWYoISh0PWModC8yKSkpYnJlYWs7bD10JTJ9cD1wLnRpbWVzKHApLG8/cC5jJiZwLmMubGVuZ3RoPm8mJihwLmMubGVuZ3RoPW8pOm4mJihwPXAubW9kKGUpKX1yZXR1cm4gbj9oOihzJiYoaD1QLmRpdihoKSksZT9oLm1vZChlKTpvP1YoaCxVLEMsdm9pZCAwKTpoKX0sVC5pbnRlZ2VyVmFsdWU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFcodGhpcyk7cmV0dXJuIG51bGw9PXQ/dD1DOncodCwwLDgpLFYoZSxlLmUrMSx0KX0sVC5pc0VxdWFsVG89VC5lcT1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09dih0aGlzLG5ldyBXKHQsZSkpfSxULmlzRmluaXRlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmN9LFQuaXNHcmVhdGVyVGhhbj1ULmd0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYodGhpcyxuZXcgVyh0LGUpKT4wfSxULmlzR3JlYXRlclRoYW5PckVxdWFsVG89VC5ndGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gMT09PShlPXYodGhpcyxuZXcgVyh0LGUpKSl8fDA9PT1lfSxULmlzSW50ZWdlcj1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5jJiZnKHRoaXMuZS9mKT50aGlzLmMubGVuZ3RoLTJ9LFQuaXNMZXNzVGhhbj1ULmx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYodGhpcyxuZXcgVyh0LGUpKTwwfSxULmlzTGVzc1RoYW5PckVxdWFsVG89VC5sdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4tMT09PShlPXYodGhpcyxuZXcgVyh0LGUpKSl8fDA9PT1lfSxULmlzTmFOPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuc30sVC5pc05lZ2F0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuczwwfSxULmlzUG9zaXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPjB9LFQuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJjA9PXRoaXMuY1swXX0sVC5taW51cz1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpLHM9dGhpcyxhPXMucztpZihlPSh0PW5ldyBXKHQsZSkpLnMsIWF8fCFlKXJldHVybiBuZXcgVyhOYU4pO2lmKGEhPWUpcmV0dXJuIHQucz0tZSxzLnBsdXModCk7dmFyIGM9cy5lL2YsdT10LmUvZixsPXMuYyxwPXQuYztpZighY3x8IXUpe2lmKCFsfHwhcClyZXR1cm4gbD8odC5zPS1lLHQpOm5ldyBXKHA/czpOYU4pO2lmKCFsWzBdfHwhcFswXSlyZXR1cm4gcFswXT8odC5zPS1lLHQpOm5ldyBXKGxbMF0/czozPT1DPy0wOjApfWlmKGM9ZyhjKSx1PWcodSksbD1sLnNsaWNlKCksYT1jLXUpe2ZvcigoaT1hPDApPyhhPS1hLG89bCk6KHU9YyxvPXApLG8ucmV2ZXJzZSgpLGU9YTtlLS07by5wdXNoKDApKTtvLnJldmVyc2UoKX1lbHNlIGZvcihuPShpPShhPWwubGVuZ3RoKTwoZT1wLmxlbmd0aCkpP2E6ZSxhPWU9MDtlPG47ZSsrKWlmKGxbZV0hPXBbZV0pe2k9bFtlXTxwW2VdO2JyZWFrfWlmKGkmJihvPWwsbD1wLHA9byx0LnM9LXQucyksKGU9KG49cC5sZW5ndGgpLShyPWwubGVuZ3RoKSk+MClmb3IoO2UtLTtsW3IrK109MCk7Zm9yKGU9aC0xO24+YTspe2lmKGxbLS1uXTxwW25dKXtmb3Iocj1uO3ImJiFsWy0tcl07bFtyXT1lKTstLWxbcl0sbFtuXSs9aH1sW25dLT1wW25dfWZvcig7MD09bFswXTtsLnNwbGljZSgwLDEpLC0tdSk7cmV0dXJuIGxbMF0/Ryh0LGwsdSk6KHQucz0zPT1DPy0xOjEsdC5jPVt0LmU9MF0sdCl9LFQubW9kdWxvPVQubW9kPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxpPXRoaXM7cmV0dXJuIHQ9bmV3IFcodCxlKSwhaS5jfHwhdC5zfHx0LmMmJiF0LmNbMF0/bmV3IFcoTmFOKTohdC5jfHxpLmMmJiFpLmNbMF0/bmV3IFcoaSk6KDk9PWo/KG89dC5zLHQucz0xLG49cihpLHQsMCwzKSx0LnM9byxuLnMqPW8pOm49cihpLHQsMCxqKSwodD1pLm1pbnVzKG4udGltZXModCkpKS5jWzBdfHwxIT1qfHwodC5zPWkucyksdCl9LFQubXVsdGlwbGllZEJ5PVQudGltZXM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLG8saSxzLGEsYyx1LGwscCxkLHksXyx2LHcsYj10aGlzLEI9Yi5jLEY9KHQ9bmV3IFcodCxlKSkuYztpZighKEImJkYmJkJbMF0mJkZbMF0pKXJldHVybiFiLnN8fCF0LnN8fEImJiFCWzBdJiYhRnx8RiYmIUZbMF0mJiFCP3QuYz10LmU9dC5zPW51bGw6KHQucyo9Yi5zLEImJkY/KHQuYz1bMF0sdC5lPTApOnQuYz10LmU9bnVsbCksdDtmb3Iobj1nKGIuZS9mKStnKHQuZS9mKSx0LnMqPWIucywoYz1CLmxlbmd0aCk8KHA9Ri5sZW5ndGgpJiYoXz1CLEI9RixGPV8sbz1jLGM9cCxwPW8pLG89YytwLF89W107by0tO18ucHVzaCgwKSk7Zm9yKHY9aCx3PW0sbz1wOy0tbz49MDspe2ZvcihyPTAsZD1GW29dJXcseT1GW29dL3d8MCxpPW8rKHM9Yyk7aT5vOylyPSgodT1kKih1PUJbLS1zXSV3KSsoYT15KnUrKGw9QltzXS93fDApKmQpJXcqdytfW2ldK3IpL3Z8MCkrKGEvd3wwKSt5KmwsX1tpLS1dPXUldjtfW2ldPXJ9cmV0dXJuIHI/KytuOl8uc3BsaWNlKDAsMSksRyh0LF8sbil9LFQubmVnYXRlZD1mdW5jdGlvbigpe3ZhciB0PW5ldyBXKHRoaXMpO3JldHVybiB0LnM9LXQuc3x8bnVsbCx0fSxULnBsdXM9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRoaXMsbz1uLnM7aWYoZT0odD1uZXcgVyh0LGUpKS5zLCFvfHwhZSlyZXR1cm4gbmV3IFcoTmFOKTtpZihvIT1lKXJldHVybiB0LnM9LWUsbi5taW51cyh0KTt2YXIgaT1uLmUvZixzPXQuZS9mLGE9bi5jLGM9dC5jO2lmKCFpfHwhcyl7aWYoIWF8fCFjKXJldHVybiBuZXcgVyhvLzApO2lmKCFhWzBdfHwhY1swXSlyZXR1cm4gY1swXT90Om5ldyBXKGFbMF0/bjowKm8pfWlmKGk9ZyhpKSxzPWcocyksYT1hLnNsaWNlKCksbz1pLXMpe2ZvcihvPjA/KHM9aSxyPWMpOihvPS1vLHI9YSksci5yZXZlcnNlKCk7by0tO3IucHVzaCgwKSk7ci5yZXZlcnNlKCl9Zm9yKChvPWEubGVuZ3RoKS0oZT1jLmxlbmd0aCk8MCYmKHI9YyxjPWEsYT1yLGU9byksbz0wO2U7KW89KGFbLS1lXT1hW2VdK2NbZV0rbykvaHwwLGFbZV09aD09PWFbZV0/MDphW2VdJWg7cmV0dXJuIG8mJihhPVtvXS5jb25jYXQoYSksKytzKSxHKHQsYSxzKX0sVC5wcmVjaXNpb249VC5zZD1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpPXRoaXM7aWYobnVsbCE9dCYmdCE9PSEhdClyZXR1cm4gdyh0LDEseSksbnVsbD09ZT9lPUM6dyhlLDAsOCksVihuZXcgVyhpKSx0LGUpO2lmKCEocj1pLmMpKXJldHVybiBudWxsO2lmKG49KG89ci5sZW5ndGgtMSkqZisxLG89cltvXSl7Zm9yKDtvJTEwPT0wO28vPTEwLG4tLSk7Zm9yKG89clswXTtvPj0xMDtvLz0xMCxuKyspO31yZXR1cm4gdCYmaS5lKzE+biYmKG49aS5lKzEpLG59LFQuc2hpZnRlZEJ5PWZ1bmN0aW9uKHQpe3JldHVybiB3KHQsLXAscCksdGhpcy50aW1lcyhcIjFlXCIrdCl9LFQuc3F1YXJlUm9vdD1ULnNxcnQ9ZnVuY3Rpb24oKXt2YXIgdCxlLG4sbyxpLHM9dGhpcyxhPXMuYyxjPXMucyx1PXMuZSxsPU0rNCxoPW5ldyBXKFwiMC41XCIpO2lmKDEhPT1jfHwhYXx8IWFbMF0pcmV0dXJuIG5ldyBXKCFjfHxjPDAmJighYXx8YVswXSk/TmFOOmE/czoxLzApO2lmKDA9PShjPU1hdGguc3FydCgrcykpfHxjPT0xLzA/KCgoZT1fKGEpKS5sZW5ndGgrdSklMj09MCYmKGUrPVwiMFwiKSxjPU1hdGguc3FydChlKSx1PWcoKHUrMSkvMiktKHU8MHx8dSUyKSxuPW5ldyBXKGU9Yz09MS8wP1wiMWVcIit1OihlPWMudG9FeHBvbmVudGlhbCgpKS5zbGljZSgwLGUuaW5kZXhPZihcImVcIikrMSkrdSkpOm49bmV3IFcoYytcIlwiKSxuLmNbMF0pZm9yKChjPSh1PW4uZSkrbCk8MyYmKGM9MCk7OylpZihpPW4sbj1oLnRpbWVzKGkucGx1cyhyKHMsaSxsLDEpKSksXyhpLmMpLnNsaWNlKDAsYyk9PT0oZT1fKG4uYykpLnNsaWNlKDAsYykpe2lmKG4uZTx1JiYtLWMsXCI5OTk5XCIhPShlPWUuc2xpY2UoYy0zLGMrMSkpJiYob3x8XCI0OTk5XCIhPWUpKXsrZSYmKCtlLnNsaWNlKDEpfHxcIjVcIiE9ZS5jaGFyQXQoMCkpfHwoVihuLG4uZStNKzIsMSksdD0hbi50aW1lcyhuKS5lcShzKSk7YnJlYWt9aWYoIW8mJihWKGksaS5lK00rMiwwKSxpLnRpbWVzKGkpLmVxKHMpKSl7bj1pO2JyZWFrfWwrPTQsYys9NCxvPTF9cmV0dXJuIFYobixuLmUrTSsxLEMsdCl9LFQudG9FeHBvbmVudGlhbD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiYodyh0LDAseSksdCsrKSxxKHRoaXMsdCxlLDEpfSxULnRvRml4ZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9dCYmKHcodCwwLHkpLHQ9dCt0aGlzLmUrMSkscSh0aGlzLHQsZSl9LFQudG9Gb3JtYXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnRvRml4ZWQodCxlKTtpZih0aGlzLmMpe3ZhciBuLG89ci5zcGxpdChcIi5cIiksaT0rTC5ncm91cFNpemUscz0rTC5zZWNvbmRhcnlHcm91cFNpemUsYT1MLmdyb3VwU2VwYXJhdG9yLGM9b1swXSx1PW9bMV0sbD10aGlzLnM8MCxoPWw/Yy5zbGljZSgxKTpjLGY9aC5sZW5ndGg7aWYocyYmKG49aSxpPXMscz1uLGYtPW4pLGk+MCYmZj4wKXtmb3Iobj1mJWl8fGksYz1oLnN1YnN0cigwLG4pO248ZjtuKz1pKWMrPWEraC5zdWJzdHIobixpKTtzPjAmJihjKz1hK2guc2xpY2UobikpLGwmJihjPVwiLVwiK2MpfXI9dT9jK0wuZGVjaW1hbFNlcGFyYXRvcisoKHM9K0wuZnJhY3Rpb25Hcm91cFNpemUpP3UucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXGR7XCIrcytcIn1cXFxcQlwiLFwiZ1wiKSxcIiQmXCIrTC5mcmFjdGlvbkdyb3VwU2VwYXJhdG9yKTp1KTpjfXJldHVybiByfSxULnRvRnJhY3Rpb249ZnVuY3Rpb24odCl7dmFyIGUsbixvLGkscyxhLGMsbCxoLHAsbSx5LGc9dGhpcyx2PWcuYztpZihudWxsIT10JiYoIShsPW5ldyBXKHQpKS5pc0ludGVnZXIoKSYmKGwuY3x8MSE9PWwucyl8fGwubHQoUCkpKXRocm93IEVycm9yKHUrXCJBcmd1bWVudCBcIisobC5pc0ludGVnZXIoKT9cIm91dCBvZiByYW5nZTogXCI6XCJub3QgYW4gaW50ZWdlcjogXCIpK3QpO2lmKCF2KXJldHVybiBnLnRvU3RyaW5nKCk7Zm9yKG49bmV3IFcoUCkscD1vPW5ldyBXKFApLGk9aD1uZXcgVyhQKSx5PV8odiksYT1uLmU9eS5sZW5ndGgtZy5lLTEsbi5jWzBdPWRbKGM9YSVmKTwwP2YrYzpjXSx0PSF0fHxsLmNvbXBhcmVkVG8obik+MD9hPjA/bjpwOmwsYz1JLEk9MS8wLGw9bmV3IFcoeSksaC5jWzBdPTA7bT1yKGwsbiwwLDEpLDEhPShzPW8ucGx1cyhtLnRpbWVzKGkpKSkuY29tcGFyZWRUbyh0KTspbz1pLGk9cyxwPWgucGx1cyhtLnRpbWVzKHM9cCkpLGg9cyxuPWwubWludXMobS50aW1lcyhzPW4pKSxsPXM7cmV0dXJuIHM9cih0Lm1pbnVzKG8pLGksMCwxKSxoPWgucGx1cyhzLnRpbWVzKHApKSxvPW8ucGx1cyhzLnRpbWVzKGkpKSxoLnM9cC5zPWcucyxlPXIocCxpLGEqPTIsQykubWludXMoZykuYWJzKCkuY29tcGFyZWRUbyhyKGgsbyxhLEMpLm1pbnVzKGcpLmFicygpKTwxP1twLnRvU3RyaW5nKCksaS50b1N0cmluZygpXTpbaC50b1N0cmluZygpLG8udG9TdHJpbmcoKV0sST1jLGV9LFQudG9OdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4rdGhpc30sVC50b1ByZWNpc2lvbj1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiZ3KHQsMSx5KSxxKHRoaXMsdCxlLDIpfSxULnRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcyxvPXIucyxpPXIuZTtyZXR1cm4gbnVsbD09PWk/bz8oZT1cIkluZmluaXR5XCIsbzwwJiYoZT1cIi1cIitlKSk6ZT1cIk5hTlwiOihlPV8oci5jKSxudWxsPT10P2U9aTw9RXx8aT49RD9GKGUsaSk6TihlLGksXCIwXCIpOih3KHQsMix6Lmxlbmd0aCxcIkJhc2VcIiksZT1uKE4oZSxpLFwiMFwiKSwxMCx0LG8sITApKSxvPDAmJnIuY1swXSYmKGU9XCItXCIrZSkpLGV9LFQudmFsdWVPZj1ULnRvSlNPTj1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcyxyPWUuZTtyZXR1cm4gbnVsbD09PXI/ZS50b1N0cmluZygpOih0PV8oZS5jKSx0PXI8PUV8fHI+PUQ/Rih0LHIpOk4odCxyLFwiMFwiKSxlLnM8MD9cIi1cIit0OnQpfSxULl9pc0JpZ051bWJlcj0hMCxudWxsIT1lJiZXLnNldChlKSxXfSgpKS5kZWZhdWx0PWkuQmlnTnVtYmVyPWksdm9pZCAwPT09KG49ZnVuY3Rpb24oKXtyZXR1cm4gaX0uY2FsbChlLHIsZSx0KSl8fCh0LmV4cG9ydHM9bil9KCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxmdW5jdGlvbih0KXt2YXIgZT1uLHI9ZS5saWIsbz1yLldvcmRBcnJheSxpPXIuSGFzaGVyLHM9ZS5hbGdvLGE9W10sYz1bXTshZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgcj10LnNxcnQoZSksbj0yO248PXI7bisrKWlmKCEoZSVuKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiByKHQpe3JldHVybiA0Mjk0OTY3Mjk2Kih0LSgwfHQpKXwwfWZvcih2YXIgbj0yLG89MDtvPDY0OyllKG4pJiYobzw4JiYoYVtvXT1yKHQucG93KG4sLjUpKSksY1tvXT1yKHQucG93KG4sMS8zKSksbysrKSxuKyt9KCk7dmFyIHU9W10sbD1zLlNIQTI1Nj1pLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBvLmluaXQoYS5zbGljZSgwKSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sbD1yWzVdLGg9cls2XSxmPXJbN10scD0wO3A8NjQ7cCsrKXtpZihwPDE2KXVbcF09MHx0W2UrcF07ZWxzZXt2YXIgZD11W3AtMTVdLG09KGQ8PDI1fGQ+Pj43KV4oZDw8MTR8ZD4+PjE4KV5kPj4+Myx5PXVbcC0yXSxnPSh5PDwxNXx5Pj4+MTcpXih5PDwxM3x5Pj4+MTkpXnk+Pj4xMDt1W3BdPW0rdVtwLTddK2crdVtwLTE2XX12YXIgXz1uJm9ebiZpXm8maSx2PShuPDwzMHxuPj4+MileKG48PDE5fG4+Pj4xMyleKG48PDEwfG4+Pj4yMiksdz1mKygoYTw8MjZ8YT4+PjYpXihhPDwyMXxhPj4+MTEpXihhPDw3fGE+Pj4yNSkpKyhhJmxefmEmaCkrY1twXSt1W3BdO2Y9aCxoPWwsbD1hLGE9cyt3fDAscz1pLGk9byxvPW4sbj13Kyh2K18pfDB9clswXT1yWzBdK258MCxyWzFdPXJbMV0rb3wwLHJbMl09clsyXStpfDAsclszXT1yWzNdK3N8MCxyWzRdPXJbNF0rYXwwLHJbNV09cls1XStsfDAscls2XT1yWzZdK2h8MCxyWzddPXJbN10rZnwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2RhdGEscj1lLndvcmRzLG49OCp0aGlzLl9uRGF0YUJ5dGVzLG89OCplLnNpZ0J5dGVzO3JldHVybiByW28+Pj41XXw9MTI4PDwyNC1vJTMyLHJbMTQrKG8rNjQ+Pj45PDw0KV09dC5mbG9vcihuLzQyOTQ5NjcyOTYpLHJbMTUrKG8rNjQ+Pj45PDw0KV09bixlLnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO2UuU0hBMjU2PWkuX2NyZWF0ZUhlbHBlcihsKSxlLkhtYWNTSEEyNTY9aS5fY3JlYXRlSG1hY0hlbHBlcihsKX0oTWF0aCksbi5TSEEyNTYpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuSGFzaGVyLHI9dC54NjQsbz1yLldvcmQsaT1yLldvcmRBcnJheSxzPXQuYWxnbztmdW5jdGlvbiBhKCl7cmV0dXJuIG8uY3JlYXRlLmFwcGx5KG8sYXJndW1lbnRzKX12YXIgYz1bYSgxMTE2MzUyNDA4LDM2MDk3Njc0NTgpLGEoMTg5OTQ0NzQ0MSw2MDI4OTE3MjUpLGEoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxhKDM5MjEwMDk1NzMsMjE3MzI5NTU0OCksYSg5NjE5ODcxNjMsNDA4MTYyODQ3MiksYSgxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLGEoMjQ1MzYzNTc0OCwyOTM3NjcxNTc5KSxhKDI4NzA3NjMyMjEsMzY2NDYwOTU2MCksYSgzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLGEoMzEwNTk4NDAxLDExNjQ5OTY1NDIpLGEoNjA3MjI1Mjc4LDEzMjM2MTA3NjQpLGEoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxhKDE5MjUwNzgzODgsNDA2ODE4MjM4MyksYSgyMTYyMDc4MjA2LDk5MTMzNjExMyksYSgyNjE0ODg4MTAzLDYzMzgwMzMxNyksYSgzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgpLGEoMzgzNTM5MDQwMSwyNjY2NjEzNDU4KSxhKDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxhKDI2NDM0NzA3OCwyMzQxMjYyNzczKSxhKDYwNDgwNzYyOCwyMDA3ODAwOTMzKSxhKDc3MDI1NTk4MywxNDk1OTkwOTAxKSxhKDEyNDkxNTAxMjIsMTg1NjQzMTIzNSksYSgxNTU1MDgxNjkyLDMxNzUyMTgxMzIpLGEoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxhKDI1NTQyMjA4ODIsMzk5OTcxOTMzOSksYSgyODIxODM0MzQ5LDc2Njc4NDAxNiksYSgyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLGEoMzIxMDMxMzY3MSwzMjAzMzM3OTU2KSxhKDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiksYSgzNTg0NTI4NzExLDI0NjY5NDg5MDEpLGEoMTEzOTI2OTkzLDM3NTgzMjYzODMpLGEoMzM4MjQxODk1LDE2ODcxNzkzNiksYSg2NjYzMDcyMDUsMTE4ODE3OTk2NCksYSg3NzM1Mjk5MTIsMTU0NjA0NTczNCksYSgxMjk0NzU3MzcyLDE1MjI4MDU0ODUpLGEoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxhKDE2OTUxODM3MDAsMjM0MzUyNzM5MCksYSgxOTg2NjYxMDUxLDEwMTQ0Nzc0ODApLGEoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxhKDI0NTY5NTYwMzcsMzQ0MDc3NjI3KSxhKDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCksYSgyODIwMzAyNDExLDMxNTg0NTQyNzMpLGEoMzI1OTczMDgwMCwzNTA1OTUyNjU3KSxhKDMzNDU3NjQ3NzEsMTA2MjE3MDA4KSxhKDM1MTYwNjU4MTcsMzYwNjAwODM0NCksYSgzNjAwMzUyODA0LDE0MzI3MjU3NzYpLGEoNDA5NDU3MTkwOSwxNDY3MDMxNTk0KSxhKDI3NTQyMzM0NCw4NTExNjk3MjApLGEoNDMwMjI3NzM0LDMxMDA4MjM3NTIpLGEoNTA2OTQ4NjE2LDEzNjMyNTgxOTUpLGEoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLGEoODgzOTk3ODc3LDM3ODUwNTAyODApLGEoOTU4MTM5NTcxLDMzMTgzMDc0MjcpLGEoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxhKDE1MzcwMDIwNjMsMjAwMzAzNDk5NSksYSgxNzQ3ODczNzc5LDM2MDIwMzY4OTkpLGEoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxhKDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCksYSgyMjI3NzMwNDUyLDI3MTY5MDQzMDYpLGEoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLGEoMjQyODQzNjQ3NCw1OTM2OTgzNDQpLGEoMjc1NjczNDE4NywzNzMzMTEwMjQ5KSxhKDMyMDQwMzE0NzksMjk5OTM1MTU3MyksYSgzMzI5MzI1Mjk4LDM4MTU5MjA0MjcpLGEoMzM5MTU2OTYxNCwzOTI4MzgzOTAwKSxhKDM1MTUyNjcyNzEsNTY2MjgwNzExKSxhKDM5NDAxODc2MDYsMzQ1NDA2OTUzNCksYSg0MTE4NjMwMjcxLDQwMDAyMzk5OTIpLGEoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLGEoMTc0MjkyNDIxLDI3MzEwNTUyNzApLGEoMjg5MzgwMzU2LDMyMDM5OTMwMDYpLGEoNDYwMzkzMjY5LDMyMDYyMDMxNSksYSg2ODU0NzE3MzMsNTg3NDk2ODM2KSxhKDg1MjE0Mjk3MSwxMDg2NzkyODUxKSxhKDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxhKDExMjYwMDA1ODAsMjYxODI5NzY3NiksYSgxMjg4MDMzNDcwLDM0MDk4NTUxNTgpLGEoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxhKDE2MDcxNjc5MTUsOTg3MTY3NDY4KSxhKDE4MTY0MDIzMTYsMTI0NjE4OTU5MSldLHU9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDw4MDt0KyspdVt0XT1hKCl9KCk7dmFyIGw9cy5TSEE1MTI9ZS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFtuZXcgby5pbml0KDE3NzkwMzM3MDMsNDA4OTIzNTcyMCksbmV3IG8uaW5pdCgzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUpLG5ldyBvLmluaXQoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKSxuZXcgby5pbml0KDI3NzM0ODA3NjIsMTU5NTc1MDEyOSksbmV3IG8uaW5pdCgxMzU5ODkzMTE5LDI5MTc1NjUxMzcpLG5ldyBvLmluaXQoMjYwMDgyMjkyNCw3MjU1MTExOTkpLG5ldyBvLmluaXQoNTI4NzM0NjM1LDQyMTUzODk1NDcpLG5ldyBvLmluaXQoMTU0MTQ1OTIyNSwzMjcwMzMyMDkpXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9oYXNoLndvcmRzLG49clswXSxvPXJbMV0saT1yWzJdLHM9clszXSxhPXJbNF0sbD1yWzVdLGg9cls2XSxmPXJbN10scD1uLmhpZ2gsZD1uLmxvdyxtPW8uaGlnaCx5PW8ubG93LGc9aS5oaWdoLF89aS5sb3csdj1zLmhpZ2gsdz1zLmxvdyxiPWEuaGlnaCxCPWEubG93LEY9bC5oaWdoLE49bC5sb3csaz1oLmhpZ2gseD1oLmxvdyxTPWYuaGlnaCxBPWYubG93LE89cCxUPWQsUD1tLE09eSxDPWcsRT1fLEQ9dixSPXcsST1iLEg9QixqPUYsVT1OLEw9ayx6PXgsVz1TLHE9QSwkPTA7JDw4MDskKyspe3ZhciBHPXVbJF07aWYoJDwxNil2YXIgVj1HLmhpZ2g9MHx0W2UrMiokXSxKPUcubG93PTB8dFtlKzIqJCsxXTtlbHNle3ZhciBLPXVbJC0xNV0sWD1LLmhpZ2gsWj1LLmxvdyxZPShYPj4+MXxaPDwzMSleKFg+Pj44fFo8PDI0KV5YPj4+NyxRPShaPj4+MXxYPDwzMSleKFo+Pj44fFg8PDI0KV4oWj4+Pjd8WDw8MjUpLHR0PXVbJC0yXSxldD10dC5oaWdoLHJ0PXR0LmxvdyxudD0oZXQ+Pj4xOXxydDw8MTMpXihldDw8M3xydD4+PjI5KV5ldD4+PjYsb3Q9KHJ0Pj4+MTl8ZXQ8PDEzKV4ocnQ8PDN8ZXQ+Pj4yOSleKHJ0Pj4+NnxldDw8MjYpLGl0PXVbJC03XSxzdD1pdC5oaWdoLGF0PWl0LmxvdyxjdD11WyQtMTZdLHV0PWN0LmhpZ2gsbHQ9Y3QubG93O1Y9KFY9KFY9WStzdCsoKEo9USthdCk+Pj4wPFE+Pj4wPzE6MCkpK250KygoSis9b3QpPj4+MDxvdD4+PjA/MTowKSkrdXQrKChKKz1sdCk+Pj4wPGx0Pj4+MD8xOjApLEcuaGlnaD1WLEcubG93PUp9dmFyIGh0LGZ0PUkmal5+SSZMLHB0PUgmVV5+SCZ6LGR0PU8mUF5PJkNeUCZDLG10PVQmTV5UJkVeTSZFLHl0PShPPj4+Mjh8VDw8NCleKE88PDMwfFQ+Pj4yKV4oTzw8MjV8VD4+PjcpLGd0PShUPj4+Mjh8Tzw8NCleKFQ8PDMwfE8+Pj4yKV4oVDw8MjV8Tz4+PjcpLF90PShJPj4+MTR8SDw8MTgpXihJPj4+MTh8SDw8MTQpXihJPDwyM3xIPj4+OSksdnQ9KEg+Pj4xNHxJPDwxOCleKEg+Pj4xOHxJPDwxNCleKEg8PDIzfEk+Pj45KSx3dD1jWyRdLGJ0PXd0LmhpZ2gsQnQ9d3QubG93LEZ0PVcrX3QrKChodD1xK3Z0KT4+PjA8cT4+PjA/MTowKSxOdD1ndCttdDtXPUwscT16LEw9aix6PVUsaj1JLFU9SCxJPUQrKEZ0PShGdD0oRnQ9RnQrZnQrKChodCs9cHQpPj4+MDxwdD4+PjA/MTowKSkrYnQrKChodCs9QnQpPj4+MDxCdD4+PjA/MTowKSkrVisoKGh0Kz1KKT4+PjA8Sj4+PjA/MTowKSkrKChIPVIraHR8MCk+Pj4wPFI+Pj4wPzE6MCl8MCxEPUMsUj1FLEM9UCxFPU0sUD1PLE09VCxPPUZ0Kyh5dCtkdCsoTnQ+Pj4wPGd0Pj4+MD8xOjApKSsoKFQ9aHQrTnR8MCk+Pj4wPGh0Pj4+MD8xOjApfDB9ZD1uLmxvdz1kK1Qsbi5oaWdoPXArTysoZD4+PjA8VD4+PjA/MTowKSx5PW8ubG93PXkrTSxvLmhpZ2g9bStQKyh5Pj4+MDxNPj4+MD8xOjApLF89aS5sb3c9XytFLGkuaGlnaD1nK0MrKF8+Pj4wPEU+Pj4wPzE6MCksdz1zLmxvdz13K1Iscy5oaWdoPXYrRCsodz4+PjA8Uj4+PjA/MTowKSxCPWEubG93PUIrSCxhLmhpZ2g9YitJKyhCPj4+MDxIPj4+MD8xOjApLE49bC5sb3c9TitVLGwuaGlnaD1GK2orKE4+Pj4wPFU+Pj4wPzE6MCkseD1oLmxvdz14K3osaC5oaWdoPWsrTCsoeD4+PjA8ej4+PjA/MTowKSxBPWYubG93PUErcSxmLmhpZ2g9UytXKyhBPj4+MDxxPj4+MD8xOjApfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO3JldHVybiBlW24+Pj41XXw9MTI4PDwyNC1uJTMyLGVbMzArKG4rMTI4Pj4+MTA8PDUpXT1NYXRoLmZsb29yKHIvNDI5NDk2NzI5NiksZVszMSsobisxMjg+Pj4xMDw8NSldPXIsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNoLnRvWDMyKCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9ZS5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fSxibG9ja1NpemU6MzJ9KTt0LlNIQTUxMj1lLl9jcmVhdGVIZWxwZXIobCksdC5IbWFjU0hBNTEyPWUuX2NyZWF0ZUhtYWNIZWxwZXIobCl9KCksbi5TSEE1MTIpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCksZnVuY3Rpb24odCl7dmFyIGU9bixyPWUubGliLG89ci5Xb3JkQXJyYXksaT1yLkhhc2hlcixzPWUueDY0LldvcmQsYT1lLmFsZ28sYz1bXSx1PVtdLGw9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTEsZT0wLHI9MDtyPDI0O3IrKyl7Y1t0KzUqZV09KHIrMSkqKHIrMikvMiU2NDt2YXIgbj0oMip0KzMqZSklNTt0PWUlNSxlPW59Zm9yKHQ9MDt0PDU7dCsrKWZvcihlPTA7ZTw1O2UrKyl1W3QrNSplXT1lKygyKnQrMyplKSU1KjU7Zm9yKHZhciBvPTEsaT0wO2k8MjQ7aSsrKXtmb3IodmFyIGE9MCxoPTAsZj0wO2Y8NztmKyspe2lmKDEmbyl7dmFyIHA9KDE8PGYpLTE7cDwzMj9oXj0xPDxwOmFePTE8PHAtMzJ9MTI4Jm8/bz1vPDwxXjExMzpvPDw9MX1sW2ldPXMuY3JlYXRlKGEsaCl9fSgpO3ZhciBoPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8MjU7dCsrKWhbdF09cy5jcmVhdGUoKX0oKTt2YXIgZj1hLlNIQTM9aS5leHRlbmQoe2NmZzppLmNmZy5leHRlbmQoe291dHB1dExlbmd0aDo1MTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9zdGF0ZT1bXSxlPTA7ZTwyNTtlKyspdFtlXT1uZXcgcy5pbml0O3RoaXMuYmxvY2tTaXplPSgxNjAwLTIqdGhpcy5jZmcub3V0cHV0TGVuZ3RoKS8zMn0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX3N0YXRlLG49dGhpcy5ibG9ja1NpemUvMixvPTA7bzxuO28rKyl7dmFyIGk9dFtlKzIqb10scz10W2UrMipvKzFdO2k9MTY3MTE5MzUmKGk8PDh8aT4+PjI0KXw0Mjc4MjU1MzYwJihpPDwyNHxpPj4+OCkscz0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSwoQT1yW29dKS5oaWdoXj1zLEEubG93Xj1pfWZvcih2YXIgYT0wO2E8MjQ7YSsrKXtmb3IodmFyIGY9MDtmPDU7ZisrKXtmb3IodmFyIHA9MCxkPTAsbT0wO208NTttKyspcF49KEE9cltmKzUqbV0pLmhpZ2gsZF49QS5sb3c7dmFyIHk9aFtmXTt5LmhpZ2g9cCx5Lmxvdz1kfWZvcihmPTA7Zjw1O2YrKyl7dmFyIGc9aFsoZis0KSU1XSxfPWhbKGYrMSklNV0sdj1fLmhpZ2gsdz1fLmxvdztmb3IocD1nLmhpZ2heKHY8PDF8dz4+PjMxKSxkPWcubG93Xih3PDwxfHY+Pj4zMSksbT0wO208NTttKyspKEE9cltmKzUqbV0pLmhpZ2hePXAsQS5sb3dePWR9Zm9yKHZhciBiPTE7YjwyNTtiKyspe3ZhciBCPShBPXJbYl0pLmhpZ2gsRj1BLmxvdyxOPWNbYl07TjwzMj8ocD1CPDxOfEY+Pj4zMi1OLGQ9Rjw8TnxCPj4+MzItTik6KHA9Rjw8Ti0zMnxCPj4+NjQtTixkPUI8PE4tMzJ8Rj4+PjY0LU4pO3ZhciBrPWhbdVtiXV07ay5oaWdoPXAsay5sb3c9ZH12YXIgeD1oWzBdLFM9clswXTtmb3IoeC5oaWdoPVMuaGlnaCx4Lmxvdz1TLmxvdyxmPTA7Zjw1O2YrKylmb3IobT0wO208NTttKyspe3ZhciBBPXJbYj1mKzUqbV0sTz1oW2JdLFQ9aFsoZisxKSU1KzUqbV0sUD1oWyhmKzIpJTUrNSptXTtBLmhpZ2g9Ty5oaWdoXn5ULmhpZ2gmUC5oaWdoLEEubG93PU8ubG93Xn5ULmxvdyZQLmxvd31BPXJbMF07dmFyIE09bFthXTtBLmhpZ2hePU0uaGlnaCxBLmxvd149TS5sb3d9fSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2RhdGEscj1lLndvcmRzLG49KHRoaXMuX25EYXRhQnl0ZXMsOCplLnNpZ0J5dGVzKSxpPTMyKnRoaXMuYmxvY2tTaXplO3Jbbj4+PjVdfD0xPDwyNC1uJTMyLHJbKHQuY2VpbCgobisxKS9pKSppPj4+NSktMV18PTEyOCxlLnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgcz10aGlzLl9zdGF0ZSxhPXRoaXMuY2ZnLm91dHB1dExlbmd0aC84LGM9YS84LHU9W10sbD0wO2w8YztsKyspe3ZhciBoPXNbbF0sZj1oLmhpZ2gscD1oLmxvdztmPTE2NzExOTM1JihmPDw4fGY+Pj4yNCl8NDI3ODI1NTM2MCYoZjw8MjR8Zj4+PjgpLHA9MTY3MTE5MzUmKHA8PDh8cD4+PjI0KXw0Mjc4MjU1MzYwJihwPDwyNHxwPj4+OCksdS5wdXNoKHApLHUucHVzaChmKX1yZXR1cm4gbmV3IG8uaW5pdCh1LGEpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1pLmNsb25lLmNhbGwodGhpcyksZT10Ll9zdGF0ZT10aGlzLl9zdGF0ZS5zbGljZSgwKSxyPTA7cjwyNTtyKyspZVtyXT1lW3JdLmNsb25lKCk7cmV0dXJuIHR9fSk7ZS5TSEEzPWkuX2NyZWF0ZUhlbHBlcihmKSxlLkhtYWNTSEEzPWkuX2NyZWF0ZUhtYWNIZWxwZXIoZil9KE1hdGgpLG4uU0hBMyl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoOCksbz1yKDMpLGk9cigyMikscz1yKDIzKTshZnVuY3Rpb24odCl7dC5ldGhfZ2V0QmFsYW5jZT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEJhbGFuY2VcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmlnTnVtYmVyRm9ybWF0dGVyfSksdC5ldGhfZ2V0U3RvcmFnZUF0PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0U3RvcmFnZUF0XCIscGFyYW1zOjMsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG8udG9IZXgsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfZ2V0Q29kZT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldENvZGVcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEFkZHJlc3NGb3JtYXR0ZXIsbi5pbnB1dERlZmF1bHRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5ldGhfZ2V0QmxvY2tCeUhhc2g9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRCbG9ja0J5SGFzaFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsZnVuY3Rpb24odCl7cmV0dXJuISF0fV0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRCbG9ja0J5TnVtYmVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0QmxvY2tCeU51bWJlclwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsZnVuY3Rpb24odCl7cmV0dXJuISF0fV0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXg9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXhcIixwYXJhbXM6MixpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyLG8udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dEJsb2NrRm9ybWF0dGVyfSksdC5ldGhfZ2V0VW5jbGVCeUJsb2NrTnVtYmVyQW5kSW5kZXg9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUJ5QmxvY2tOdW1iZXJBbmRJbmRleFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmxvY2tGb3JtYXR0ZXJ9KSx0LmV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeUhhc2g9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeUhhc2hcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9nZXRCbG9ja1RyYW5zYWN0aW9uQ291bnRCeU51bWJlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5TnVtYmVyXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tOdW1iZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRVbmNsZUNvdW50QnlCbG9ja051bWJlclwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2hcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRUcmFuc2FjdGlvbkZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleFwiLHBhcmFtczoyLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIsby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0VHJhbnNhY3Rpb25Gb3JtYXR0ZXJ9KSx0LmV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tOdW1iZXJBbmRJbmRleD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja051bWJlckFuZEluZGV4XCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcixvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6bi5vdXRwdXRUcmFuc2FjdGlvbkZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdFwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dFRyYW5zYWN0aW9uUmVjZWlwdEZvcm1hdHRlcn0pLHQuZXRoX2dldFRyYW5zYWN0aW9uQ291bnQ9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRUcmFuc2FjdGlvbkNvdW50XCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG4uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX3NlbmRSYXdUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3NlbmRSYXdUcmFuc2FjdGlvblwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LndlYjNfc2hhMz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwid2ViM19zaGEzXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W251bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX3NlbmRUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3NlbmRUcmFuc2FjdGlvblwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0VHJhbnNhY3Rpb25Gb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX3NpZ249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9zaWduXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG51bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX2NhbGw9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9jYWxsXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRDYWxsRm9ybWF0dGVyLG4uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGF0YX0pLHQuZXRoX2VzdGltYXRlR2FzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZXN0aW1hdGVHYXNcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbi5pbnB1dENhbGxGb3JtYXR0ZXJdLG91dHB1dEZvcm1hdHRlcjpvLnRvRGVjaW1hbH0pLHQuZXRoX3N1Ym1pdFdvcms9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9zdWJtaXRXb3JrXCIscGFyYW1zOjMsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5ldGhfZ2V0V29yaz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldFdvcmtcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5ldGhfY29pbmJhc2U9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9jb2luYmFzZVwiLG91dHB1dEZvcm1hdHRlcjpvLnRvQWRkcmVzc30pLHQuZXRoX21pbmluZz1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX21pbmluZ1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuZXRoX2hhc2hyYXRlPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfaGFzaHJhdGVcIixvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9zeW5jaW5nPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfc3luY2luZ1wiLG91dHB1dEZvcm1hdHRlcjpuLm91dHB1dFN5bmNpbmdGb3JtYXR0ZXJ9KSx0LmV0aF9nYXNQcmljZT1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX2dhc1ByaWNlXCIsb3V0cHV0Rm9ybWF0dGVyOm4ub3V0cHV0QmlnTnVtYmVyRm9ybWF0dGVyfSksdC5ldGhfYWNjb3VudHM9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcImV0aF9hY2NvdW50c1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LmV0aF9ibG9ja051bWJlcj1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwiZXRoX2Jsb2NrTnVtYmVyXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5ldGhfcHJvdG9jb2xWZXJzaW9uPW5ldyBzLlByb3BlcnR5KHtnZXR0ZXI6XCJldGhfcHJvdG9jb2xWZXJzaW9uXCIsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC53ZWIzX2NsaWVudFZlcnNpb249bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIndlYjNfY2xpZW50VmVyc2lvblwiLG91dHB1dEZvcm1hdHRlcjpvLnRvU3RyaW5nfSksdC5uZXRfdmVyc2lvbj1uZXcgcy5Qcm9wZXJ0eSh7Z2V0dGVyOlwibmV0X3ZlcnNpb25cIixvdXRwdXRGb3JtYXR0ZXI6by50b1N0cmluZ30pLHQuc2hoX3ZlcnNpb249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF92ZXJzaW9uXCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9EZWNpbWFsfSksdC5zaGhfcG9zdD1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX3Bvc3RcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbbnVsbF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5wZXJzb25hbF9uZXdBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9uZXdBY2NvdW50XCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W251bGxdLG91dHB1dEZvcm1hdHRlcjpvLnRvQWRkcmVzc30pLHQucGVyc29uYWxfaW1wb3J0UmF3S2V5PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9pbXBvcnRSYXdLZXlcIixwYXJhbXM6MixvdXRwdXRGb3JtYXR0ZXI6by50b0FkZHJlc3N9KSx0LnBlcnNvbmFsX3NpZ249bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInBlcnNvbmFsX3NpZ25cIixwYXJhbXM6MyxpbnB1dEZvcm1hdHRlcjpbbnVsbCxuLmlucHV0QWRkcmVzc0Zvcm1hdHRlcixudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnBlcnNvbmFsX2VjUmVjb3Zlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwicGVyc29uYWxfZWNSZWNvdmVyXCIscGFyYW1zOjIsb3V0cHV0Rm9ybWF0dGVyOm8udG9BZGRyZXNzfSksdC5wZXJzb25hbF91bmxvY2tBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF91bmxvY2tBY2NvdW50XCIscGFyYW1zOjMsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRBZGRyZXNzRm9ybWF0dGVyLG51bGwsby50b051bGxEZWNpbWFsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnBlcnNvbmFsX3NlbmRUcmFuc2FjdGlvbj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwicGVyc29uYWxfc2VuZFRyYW5zYWN0aW9uXCIscGFyYW1zOjIsaW5wdXRGb3JtYXR0ZXI6W24uaW5wdXRUcmFuc2FjdGlvbkZvcm1hdHRlcixudWxsXSxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnBlcnNvbmFsX2xvY2tBY2NvdW50PW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJwZXJzb25hbF9sb2NrQWNjb3VudFwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltuLmlucHV0QWRkcmVzc0Zvcm1hdHRlcl0sb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5wZXJzb25hbF9saXN0QWNjb3VudHM9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcInBlcnNvbmFsX2xpc3RBY2NvdW50c1wiLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0Lm5ldF9saXN0ZW5pbmc9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIm5ldF9saXN0ZW5pbmdcIixvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0Lm5ldF9wZWVyQ291bnQ9bmV3IHMuUHJvcGVydHkoe2dldHRlcjpcIm5ldF9wZWVyQ291bnRcIixvdXRwdXRGb3JtYXR0ZXI6by50b0RlY2ltYWx9KSx0LmV0aF9uZXdGaWx0ZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9uZXdGaWx0ZXJcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0hleH0pLHQuZXRoX2dldExvZ3M9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9nZXRMb2dzXCIscGFyYW1zOjEsaW5wdXRGb3JtYXR0ZXI6W28udG9IZXhdLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LmV0aF9uZXdCbG9ja0ZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX25ld0Jsb2NrRmlsdGVyXCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9IZXh9KSx0LmV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXI9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcImV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXJcIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0hleH0pLHQuZXRoX3VuaW5zdGFsbEZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX3VuaW5zdGFsbEZpbHRlclwiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LmV0aF9nZXRGaWx0ZXJMb2dzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfZ2V0RmlsdGVyTG9nc1wiLHBhcmFtczoxLGlucHV0Rm9ybWF0dGVyOltvLnRvSGV4XSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5ldGhfZ2V0RmlsdGVyQ2hhbmdlcz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwiZXRoX2dldEZpbHRlckNoYW5nZXNcIixwYXJhbXM6MSxpbnB1dEZvcm1hdHRlcjpbby50b0hleF0sb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pLHQuZXRoX3N1Ym1pdEhhc2hyYXRlPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJldGhfc3VibWl0SGFzaHJhdGVcIixwYXJhbXM6MixvdXRwdXRGb3JtYXR0ZXI6by50b0Jvb2xlYW59KSx0LnNoaF9uZXdJZGVudGl0eT1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX25ld0lkZW50aXR5XCIscGFyYW1zOjAsb3V0cHV0Rm9ybWF0dGVyOm8udG9EYXRhfSksdC5zaGhfaGFzSWRlbnRpdHk9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9oYXNJZGVudGl0eVwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuc2hoX25ld0dyb3VwPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfbmV3R3JvdXBcIixwYXJhbXM6MCxvdXRwdXRGb3JtYXR0ZXI6by50b0RhdGF9KSx0LnNoaF9hZGRUb0dyb3VwPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfYWRkVG9Hcm91cFwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQm9vbGVhbn0pLHQuc2hoX25ld0ZpbHRlcj1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX25ld0ZpbHRlclwiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvSGV4fSksdC5zaGhfdW5pbnN0YWxsRmlsdGVyPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfdW5pbnN0YWxsRmlsdGVyXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9Cb29sZWFufSksdC5zaGhfZ2V0TG9ncz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX2dldExvZ3NcIixwYXJhbXM6MSxvdXRwdXRGb3JtYXR0ZXI6by50b0FycmF5fSksdC5zaGhfZ2V0RmlsdGVyTWVzc2FnZXM9bmV3IGkuTWV0aG9kKHtjYWxsTmFtZTpcInNoaF9nZXRGaWx0ZXJNZXNzYWdlc1wiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LnNoaF9nZXRGaWx0ZXJDaGFuZ2VzPW5ldyBpLk1ldGhvZCh7Y2FsbE5hbWU6XCJzaGhfZ2V0RmlsdGVyQ2hhbmdlc1wiLHBhcmFtczoxLG91dHB1dEZvcm1hdHRlcjpvLnRvQXJyYXl9KSx0LnNoaF9nZXRNZXNzYWdlcz1uZXcgaS5NZXRob2Qoe2NhbGxOYW1lOlwic2hoX2dldE1lc3NhZ2VzXCIscGFyYW1zOjEsb3V0cHV0Rm9ybWF0dGVyOm8udG9BcnJheX0pfShlLmV0aHx8KGUuZXRoPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTMpO2UuTWV0aG9kPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FsbE5hbWU9dC5jYWxsTmFtZSx0aGlzLnBhcmFtcz10LnBhcmFtc3x8MCx0aGlzLmlucHV0Rm9ybWF0dGVyPXQuaW5wdXRGb3JtYXR0ZXJ8fG51bGwsdGhpcy5vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXIsdGhpcy5yZXF1ZXN0TWFuYWdlcj1udWxsfXZhbGlkYXRlQXJncyh0KXtpZih0Lmxlbmd0aCE9PXRoaXMucGFyYW1zKXRocm93IG4uSW52YWxpZE51bWJlck9mUlBDUGFyYW1zKHRoaXMuY2FsbE5hbWUsdC5sZW5ndGgsdGhpcy5wYXJhbXMpfWZvcm1hdElucHV0KHQpe3JldHVybiB0aGlzLmlucHV0Rm9ybWF0dGVyP3RoaXMuaW5wdXRGb3JtYXR0ZXIubWFwKGZ1bmN0aW9uKGUscil7cmV0dXJuIGU/ZSh0W3JdKTp0W3JdfSk6dH1mb3JtYXRPdXRwdXQodCl7cmV0dXJuIG51bGwhPT10P3RoaXMub3V0cHV0Rm9ybWF0dGVyKHQpOm51bGx9dG9QYXlsb2FkKHQpe2xldCBlPXRoaXMuZm9ybWF0SW5wdXQodCk7cmV0dXJuIHRoaXMudmFsaWRhdGVBcmdzKGUpLHttZXRob2Q6dGhpcy5jYWxsTmFtZSxwYXJhbXM6ZX19YXN5bmMgZXhlY3V0ZSh0LC4uLmUpe2xldCByPXRoaXMudG9QYXlsb2FkKGUpO2lmKCF0KXRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgUmVxdWVzdE1hbmFnZXIgaW4gbWV0aG9kI2V4ZWNcIik7Y29uc3Qgbj1hd2FpdCB0LnNlbmRBc3luYyhyKTtyZXR1cm4gdGhpcy5mb3JtYXRPdXRwdXQobil9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2UuUHJvcGVydHk9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5nZXR0ZXI9dC5nZXR0ZXIsdGhpcy5vdXRwdXRGb3JtYXR0ZXI9dC5vdXRwdXRGb3JtYXR0ZXJ9Zm9ybWF0T3V0cHV0KHQpe3JldHVybiB0aGlzLm91dHB1dEZvcm1hdHRlcih0KX1hc3luYyBleGVjdXRlKHQpe2NvbnN0IGU9YXdhaXQgdC5zZW5kQXN5bmMoe21ldGhvZDp0aGlzLmdldHRlcixwYXJhbXM6W119KTtyZXR1cm4gdGhpcy5mb3JtYXRPdXRwdXQoZSl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cig2MCksbz1yKDI2KSxpPXIoNzApO2UuQ29udHJhY3Q9Y2xhc3N7Y29uc3RydWN0b3IodCxlLHIpe3ZhciBzO3RoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLmFiaT1lLHRoaXMuYWRkcmVzcz1yLHRoaXMuZXZlbnRzPXt9LHRoaXMudHJhbnNhY3Rpb25IYXNoPW51bGwsdGhpcy50cmFuc2FjdGlvbkhhc2g9bnVsbCx0aGlzLmFkZHJlc3M9cix0aGlzLmFiaT1lLChzPXRoaXMpLmFiaS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJmdW5jdGlvblwiPT09dC50eXBlfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbi5Tb2xpZGl0eUZ1bmN0aW9uKHMucmVxdWVzdE1hbmFnZXIsdCxzLmFkZHJlc3MpfSkuZm9yRWFjaChmdW5jdGlvbih0KXt0LmF0dGFjaFRvQ29udHJhY3Qocyl9KSxmdW5jdGlvbih0KXtsZXQgZT10LmFiaS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJldmVudFwiPT09dC50eXBlfSk7bmV3IGkuQWxsU29saWRpdHlFdmVudHModC5yZXF1ZXN0TWFuYWdlcixlLHQuYWRkcmVzcykuYXR0YWNoVG9Db250cmFjdCh0KSxlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG8uU29saWRpdHlFdmVudCh0LnJlcXVlc3RNYW5hZ2VyLGUsdC5hZGRyZXNzKX0pLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5hdHRhY2hUb0NvbnRyYWN0KHQpfSl9KHRoaXMpfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMyk7ZS5Tb2xpZGl0eVBhcmFtPWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5vZmZzZXQ9dm9pZCAwLHRoaXMudmFsdWU9dHx8XCJcIix0aGlzLm9mZnNldD1lfWlzRHluYW1pYygpe3JldHVybiB2b2lkIDAhPT10aGlzLm9mZnNldH1vZmZzZXRBc0J5dGVzKCl7cmV0dXJuIHRoaXMuaXNEeW5hbWljKCk/bi5wYWRMZWZ0KG4udG9Ud29zQ29tcGxlbWVudCh0aGlzLm9mZnNldCkudG9TdHJpbmcoMTYpLDY0KTpcIlwifXN0YXRpY1BhcnQoKXtyZXR1cm4gdGhpcy5pc0R5bmFtaWMoKT90aGlzLm9mZnNldEFzQnl0ZXMoKTp0aGlzLnZhbHVlfWR5bmFtaWNQYXJ0KCl7cmV0dXJuIHRoaXMuaXNEeW5hbWljKCk/dGhpcy52YWx1ZTpcIlwifWVuY29kZSgpe3JldHVybiB0aGlzLnN0YXRpY1BhcnQoKSt0aGlzLmR5bmFtaWNQYXJ0KCl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoOCksaT1yKDE1KSxzPXIoMjcpO2UuU29saWRpdHlFdmVudD1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuYWRkcmVzcz1yLHRoaXMuX2Fub255bW91cz0hMSx0aGlzLl9wYXJhbXM9ZS5pbnB1dHMsdGhpcy5fbmFtZT1uLnRyYW5zZm9ybVRvRnVsbE5hbWUoZSksdGhpcy5fYW5vbnltb3VzPWUuYW5vbnltb3VzfXR5cGVzKHQpe3JldHVybiB0aGlzLl9wYXJhbXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmluZGV4ZWQ9PT10fSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KX1kaXNwbGF5TmFtZSgpe3JldHVybiBuLmV4dHJhY3REaXNwbGF5TmFtZSh0aGlzLl9uYW1lKX10eXBlTmFtZSgpe3JldHVybiBuLmV4dHJhY3RUeXBlTmFtZSh0aGlzLl9uYW1lKXx8XCJ2b2lkXCJ9c2lnbmF0dXJlKCl7cmV0dXJuIG4uc2hhMyh0aGlzLl9uYW1lKX1lbmNvZGUodD17fSxlPXt9KXtsZXQgcj17dG9waWNzOltdLGFkZHJlc3M6dGhpcy5hZGRyZXNzfTtbXCJmcm9tQmxvY2tcIixcInRvQmxvY2tcIl0uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT1lW3RdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtyW3RdPW8uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcihlW3RdKX0pLHRoaXMuX2Fub255bW91c3x8ci50b3BpY3MucHVzaChcIjB4XCIrdGhpcy5zaWduYXR1cmUoKSk7bGV0IHM9dGhpcy5fcGFyYW1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hMD09PXQuaW5kZXhlZH0pLm1hcChmdW5jdGlvbihlKXtsZXQgcj10W2UubmFtZV07cmV0dXJuIG51bGw9PXI/bnVsbDpuLmlzQXJyYXkocik/ci5tYXAoZnVuY3Rpb24odCl7cmV0dXJuXCIweFwiK2kuY29kZXIuZW5jb2RlUGFyYW0oZS50eXBlLHQpfSk6XCIweFwiK2kuY29kZXIuZW5jb2RlUGFyYW0oZS50eXBlLHIpfSk7cmV0dXJuIHIudG9waWNzPXIudG9waWNzLmNvbmNhdChzKSxyfWRlY29kZSh0KXt0LmRhdGE9dC5kYXRhfHxcIlwiLHQudG9waWNzPXQudG9waWNzfHxbXTtsZXQgZT0odGhpcy5fYW5vbnltb3VzP3QudG9waWNzOnQudG9waWNzLnNsaWNlKDEpKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoMil9KS5qb2luKFwiXCIpLHI9aS5jb2Rlci5kZWNvZGVQYXJhbXModGhpcy50eXBlcyghMCksZSksbj10LmRhdGEuc2xpY2UoMikscz1pLmNvZGVyLmRlY29kZVBhcmFtcyh0aGlzLnR5cGVzKCExKSxuKSxhPW8ub3V0cHV0TG9nRm9ybWF0dGVyKHQpO3JldHVybiBhLmV2ZW50PXRoaXMuZGlzcGxheU5hbWUoKSxhLmFkZHJlc3M9dC5hZGRyZXNzLGEuYXJncz10aGlzLl9wYXJhbXMucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS5uYW1lXT1lLmluZGV4ZWQ/ci5zaGlmdCgpOnMuc2hpZnQoKSx0fSx7fSksZGVsZXRlIGEuZGF0YSxkZWxldGUgYS50b3BpY3MsYX1hc3luYyBleGVjdXRlKHQsZSl7bGV0IHI9dGhpcy5lbmNvZGUodCxlKSxuPXRoaXMuZGVjb2RlLmJpbmQodGhpcyk7cmV0dXJuIG5ldyBzLkV0aEZpbHRlcih0aGlzLnJlcXVlc3RNYW5hZ2VyLHIsbil9YXR0YWNoVG9Db250cmFjdCh0KXtsZXQgZT10aGlzLmV4ZWN1dGUuYmluZCh0aGlzKSxyPXRoaXMuZGlzcGxheU5hbWUoKTt0LmV2ZW50c1tyXXx8KHQuZXZlbnRzW3JdPWUpLHQuZXZlbnRzW3JdW3RoaXMudHlwZU5hbWUoKV09dGhpcy5leGVjdXRlLmJpbmQodGhpcyx0KX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cig4KSxpPXIoMTQpLHM9cig5KTtmdW5jdGlvbiBhKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7Y29uc3QgZT1TdHJpbmcodCkudG9TdHJpbmcoKTtyZXR1cm4gMD09PWUuaW5kZXhPZihcIjB4XCIpP2U6bi5mcm9tVXRmOChlKX1jbGFzcyBje2NvbnN0cnVjdG9yKHQpe3RoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLmlzU3RhcnRlZD0hMSx0aGlzLmlzRGlzcG9zZWQ9ITEsdGhpcy5maWx0ZXJJZD1zLmZ1dHVyZSgpLHRoaXMuY2FsbGJhY2tzPVtdLHRoaXMuc3RvcFNlbWFwaG9yZT1zLmZ1dHVyZSgpfWFzeW5jIHdhdGNoKHQpe2lmKHRoaXMuaXNEaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZmlsdGVyIHdhcyBkaXNwb3NlZFwiKTt0JiYodGhpcy5jYWxsYmFja3MucHVzaCh0KSx0aGlzLmlzU3RhcnRlZHx8YXdhaXQgdGhpcy5zdGFydCgpKX1hc3luYyBzdGFydCgpe2lmKHRoaXMuaXNEaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZmlsdGVyIHdhcyBkaXNwb3NlZFwiKTtpZighdGhpcy5pc1N0YXJ0ZWQpe3RoaXMuaXNTdGFydGVkPSEwO3RyeXtjb25zdCB0PWF3YWl0IHRoaXMuZ2V0TmV3RmlsdGVyKCk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGNyZWF0ZSBhIGZpbHRlciwgcmVzcG9uc2U6IFwiK0pTT04uc3RyaW5naWZ5KHQpKTt0aGlzLmZpbHRlcklkLnJlc29sdmUodCl9Y2F0Y2godCl7dGhyb3cgdH10aGlzLnN0b3BTZW1hcGhvcmU9cy5mdXR1cmUoKSxhd2FpdCB0aGlzLnBvbGwoKX19YXN5bmMgc3RvcCgpe2lmKCF0aGlzLmlzU3RhcnRlZClyZXR1cm47aWYodGhpcy5pc0Rpc3Bvc2VkKXJldHVybjt0aGlzLmlzRGlzcG9zZWQ9ITA7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO2lmKHRoaXMuaXNTdGFydGVkPSExLHRoaXMuc3RvcFNlbWFwaG9yZSYmYXdhaXQgdGhpcy5zdG9wU2VtYXBob3JlLCEwIT09YXdhaXQgdGhpcy51bmluc3RhbGwoKSl0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IHN0b3AgdGhlIGV0aCBmaWx0ZXI6ICR7dH1gKX1hc3luYyBwb2xsKCl7aWYodGhpcy5pc1N0YXJ0ZWQpe2lmKHRoaXMuY2FsbGJhY2tzLmxlbmd0aCl7Y29uc3QgdD1hd2FpdCB0aGlzLmdldENoYW5nZXMoKTt0aGlzLmNhbGxiYWNrcy5mb3JFYWNoKGU9Pnt0aGlzLmZvcm1hdHRlcj90LmZvckVhY2godD0+e2UodGhpcy5mb3JtYXR0ZXIodCkpfSk6dC5mb3JFYWNoKHQ9PmUodCkpfSl9dGhpcy5zdG9wU2VtYXBob3JlLnJlc29sdmUoMSksdGhpcy5pc1N0YXJ0ZWQmJih0aGlzLnN0b3BTZW1hcGhvcmU9cy5mdXR1cmUoKSxzZXRUaW1lb3V0KCh0PSgoKT0+dGhpcy5wb2xsKCkpLGZ1bmN0aW9uKCl7dCgpLmNhdGNoKHQ9PmNvbnNvbGUuZXJyb3IodCkpfSksaS5FVEhfUE9MTElOR19USU1FT1VUKSl9ZWxzZSB0aGlzLnN0b3BTZW1hcGhvcmUucmVzb2x2ZSgxKTt2YXIgdH19ZS5BYnN0cmFjdEZpbHRlcj1jO2UuU0hIRmlsdGVyPWNsYXNzIGV4dGVuZHMgY3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMucmVxdWVzdE1hbmFnZXI9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLm9wdGlvbnM9dGhpcy5vcHRpb25zfHx7dG9waWNzOltdfSx0aGlzLm9wdGlvbnMudG9waWNzPXRoaXMub3B0aW9ucy50b3BpY3N8fFtdLHRoaXMub3B0aW9ucy50b3BpY3M9dGhpcy5vcHRpb25zLnRvcGljcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KSx0aGlzLm9wdGlvbnM9e3RvcGljczp0aGlzLm9wdGlvbnMudG9waWNzLHRvOnRoaXMub3B0aW9ucy50b319YXN5bmMgZ2V0TWVzc2FnZXMoKXtjb25zdCB0PWF3YWl0IHRoaXMuZmlsdGVySWQ7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuc2hoX2dldE1lc3NhZ2VzKHQpfWFzeW5jIGdldE5ld0ZpbHRlcigpe3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnNoaF9uZXdGaWx0ZXIodGhpcy5vcHRpb25zKX1hc3luYyBnZXRDaGFuZ2VzKCl7Y29uc3QgdD1hd2FpdCB0aGlzLmZpbHRlcklkO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnNoaF9nZXRGaWx0ZXJDaGFuZ2VzKHQpfWFzeW5jIHVuaW5zdGFsbCgpe2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5zaGhfdW5pbnN0YWxsRmlsdGVyKHQpfX07Y2xhc3MgdSBleHRlbmRzIGN7Y29uc3RydWN0b3IodCxlLHI9KHQ9PnQpKXtzdXBlcih0KSx0aGlzLnJlcXVlc3RNYW5hZ2VyPXQsdGhpcy5vcHRpb25zPWUsdGhpcy5mb3JtYXR0ZXI9cix0aGlzLm9wdGlvbnM9dGhpcy5vcHRpb25zfHx7fSx0aGlzLm9wdGlvbnMudG9waWNzPXRoaXMub3B0aW9ucy50b3BpY3N8fFtdLHRoaXMub3B0aW9ucy50b3BpY3M9dGhpcy5vcHRpb25zLnRvcGljcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KSx0aGlzLm9wdGlvbnM9e3RvcGljczp0aGlzLm9wdGlvbnMudG9waWNzLGFkZHJlc3M6dGhpcy5vcHRpb25zLmFkZHJlc3M/dGhpcy5vcHRpb25zLmFkZHJlc3M6dm9pZCAwLGZyb21CbG9jazpcIm51bWJlclwiPT10eXBlb2YgdGhpcy5vcHRpb25zLmZyb21CbG9ja3x8XCJzdHJpbmdcIj09dHlwZW9mIHRoaXMub3B0aW9ucy5mcm9tQmxvY2s/by5pbnB1dEJsb2NrTnVtYmVyRm9ybWF0dGVyKHRoaXMub3B0aW9ucy5mcm9tQmxvY2spOlwibGF0ZXN0XCIsdG9CbG9jazpcIm51bWJlclwiPT10eXBlb2YgdGhpcy5vcHRpb25zLnRvQmxvY2t8fFwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudG9CbG9jaz9vLmlucHV0QmxvY2tOdW1iZXJGb3JtYXR0ZXIodGhpcy5vcHRpb25zLnRvQmxvY2spOlwibGF0ZXN0XCJ9fWFzeW5jIGdldExvZ3MoKXt0aGlzLmlzU3RhcnRlZHx8YXdhaXQgdGhpcy5zdGFydCgpO2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZ2V0RmlsdGVyTG9ncyh0KX1hc3luYyBnZXROZXdGaWx0ZXIoKXtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfbmV3RmlsdGVyKHRoaXMub3B0aW9ucyl9YXN5bmMgZ2V0Q2hhbmdlcygpe2NvbnN0IHQ9YXdhaXQgdGhpcy5maWx0ZXJJZDtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZ2V0RmlsdGVyQ2hhbmdlcyh0KX1hc3luYyB1bmluc3RhbGwoKXtjb25zdCB0PWF3YWl0IHRoaXMuZmlsdGVySWQ7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuZXRoX3VuaW5zdGFsbEZpbHRlcih0KX19ZS5FdGhGaWx0ZXI9dTtlLkV0aFBlbmRpbmdUcmFuc2FjdGlvbkZpbHRlcj1jbGFzcyBleHRlbmRzIHV7Y29uc3RydWN0b3IodCl7c3VwZXIodCxudWxsLHQ9PnQpfWFzeW5jIGdldE5ld0ZpbHRlcigpe3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLmV0aF9uZXdQZW5kaW5nVHJhbnNhY3Rpb25GaWx0ZXIoKX19O2UuRXRoQmxvY2tGaWx0ZXI9Y2xhc3MgZXh0ZW5kcyB1e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQsbnVsbCx0PT50KX1hc3luYyBnZXROZXdGaWx0ZXIoKXtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfbmV3QmxvY2tGaWx0ZXIoKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDI5KTtlLkhUVFBQcm92aWRlcj1uLkhUVFBQcm92aWRlcjtjb25zdCBvPXIoMzApO2UuV2ViU29ja2V0UHJvdmlkZXI9by5XZWJTb2NrZXRQcm92aWRlcixmdW5jdGlvbih0KXtmb3IodmFyIHIgaW4gdCllLmhhc093blByb3BlcnR5KHIpfHwoZVtyXT10W3JdKX0ocigzKSk7dmFyIGk9cig1NSk7ZS5SZXF1ZXN0TWFuYWdlcj1pLlJlcXVlc3RNYW5hZ2VyO3ZhciBzPXIoMjQpO2UuQ29udHJhY3Q9cy5Db250cmFjdDt2YXIgYT1yKDcxKTtlLkNvbnRyYWN0RmFjdG9yeT1hLkNvbnRyYWN0RmFjdG9yeTt2YXIgYz1yKDIyKTtlLk1ldGhvZD1jLk1ldGhvZDt2YXIgdT1yKDIzKTtlLlByb3BlcnR5PXUuUHJvcGVydHk7dmFyIGw9cigyMSk7ZS5ldGg9bC5ldGh9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMTYpO2UuSFRUUFByb3ZpZGVyPWNsYXNze2NvbnN0cnVjdG9yKHQsZT17fSl7dGhpcy5ob3N0PXQsdGhpcy5vcHRpb25zPWUsdGhpcy5kZWJ1Zz0hMSx0aGlzLmhvc3Q9dHx8XCJodHRwOi8vbG9jYWxob3N0Ojg1NDVcIn1zZW5kKCl7dGhyb3cgbmV3IEVycm9yKFwiU3luYyByZXF1ZXN0cyBhcmUgZGVwcmVjYXRlZFwiKX1zZW5kQXN5bmModCxlKXt0cnl7bGV0IHI9bnVsbDtpZihyPXQgaW5zdGFuY2VvZiBBcnJheT90Lm1hcCh0PT5uLnRvUlBDKHQpKTpuLnRvUlBDKHQpLFwidW5kZWZpbmVkXCI9PXR5cGVvZiBmZXRjaCl0aHJvdyBuZXcgRXJyb3IoXCJUaGVyZSBpcyBubyBnbG9iYWwgZmV0Y2ggb2JqZWN0LiBQbGVhc2UgaW5zdGFsbCBhbmQgaW1wb3J0IGlzb21vcnBoaWMtZmV0Y2hcIik7Y29uc3Qgbz17Ym9keTpKU09OLnN0cmluZ2lmeShyKSxtZXRob2Q6XCJQT1NUXCIsaGVhZGVyczpPYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucy5oZWFkZXJzLHtcIkNvbnRlbnQtVHlwZVwiOlwiYXBwbGljYXRpb24vanNvblwifSl9O3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiU0VORCA+PiBcIitvLmJvZHkpLGZldGNoKHRoaXMuaG9zdCxvKS50aGVuKGFzeW5jIHQ9PntpZih0Lm9rKXtjb25zdCByPWF3YWl0IHQuanNvbigpO3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiUkVDViA8PCBcIitKU09OLnN0cmluZ2lmeShyKSksci5lcnJvcj9lKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKHIuZXJyb3IuanNvbnx8ci5lcnJvciksci5lcnJvcikpOmUobnVsbCxyKX1lbHNlIHRoaXMuZGVidWcmJmNvbnNvbGUubG9nKFwiRVJSIDw8IFwiK0pTT04uc3RyaW5naWZ5KHQpKSxlKG5ldyBFcnJvcihcIkV4dGVybmFsIGVycm9yLiByZXNwb25zZSBjb2RlOiBcIit0LnN0YXR1cykpfSx0PT57dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJFUlIgPDwgXCIrSlNPTi5zdHJpbmdpZnkodCkpLGUodCl9KX1jYXRjaCh0KXt0aGlzLmRlYnVnJiZjb25zb2xlLmxvZyhcIkVSUiA8PCBcIitKU09OLnN0cmluZ2lmeSh0KSksZSh0KX19fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigxNiksbz1yKDkpO2NsYXNzIGl7Y29uc3RydWN0b3IodCxlPXt9KXt0aGlzLnVybD10LHRoaXMub3B0aW9ucz1lLHRoaXMuaXNEaXNwb3NlZD0hMSx0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzPW5ldyBNYXAsdGhpcy5ub3RpZmljYXRpb25DYWxsYmFja3M9bmV3IFNldCx0aGlzLmRlYnVnPSExLHRoaXMubGFzdENodW5rPVwiXCIsdGhpcy5jb25uZWN0KCl9ZGlzcG9zZSgpe3RoaXMuaXNEaXNwb3NlZD0hMDtjb25zdCB0PXRoaXMuY29ubmVjdGlvbjt0aGlzLnRpbWVvdXQobmV3IEVycm9yKFwiUHJvdmlkZXIgZGlzcG9zZWQuXCIpKSx0LnRoZW4odD0+dC5jbG9zZSgpKX1zZW5kKCl7dGhyb3cgbmV3IEVycm9yKFwiU3luYyByZXF1ZXN0cyBhcmUgZGVwcmVjYXRlZFwiKX1zZW5kQXN5bmModCxlKXtjb25zdCByPVtdO2xldCBpO2lmKHQgaW5zdGFuY2VvZiBBcnJheSlpPVByb21pc2UuYWxsKHQubWFwKHQ9Pntjb25zdCBlPW8uZnV0dXJlKCk7dHJ5e2NvbnN0IG89bi50b1JQQyh0KTtyLnB1c2gobyksdGhpcy5yZXNwb25zZUNhbGxiYWNrcy5zZXQoby5pZCxlKX1jYXRjaCh0KXtlLnJlamVjdCh0KX1yZXR1cm4gZX0pKTtlbHNle2NvbnN0IGU9by5mdXR1cmUoKTt0cnl7Y29uc3Qgbz1uLnRvUlBDKHQpO3IucHVzaChvKSx0aGlzLnJlc3BvbnNlQ2FsbGJhY2tzLnNldChvLmlkLGUpfWNhdGNoKHQpe2UucmVqZWN0KHQpfWk9ZX1pLnRoZW4odD0+ZShudWxsLHQpLHQ9PmUodCkpLHRoaXMuY29ubmVjdGlvbi50aGVuKHQ9PntyLmZvckVhY2goZT0+e2NvbnN0IHI9SlNPTi5zdHJpbmdpZnkoZSk7dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2coXCJTRU5EID4+IFwiK3IpLHQuc2VuZChyKX0pfSx0PT57ZSh0KX0pfXBhcnNlUmVzcG9uc2UodCl7bGV0IGU9W107cmV0dXJuIHQucmVwbGFjZSgvXFx9W1xcblxccl0/XFx7L2csXCJ9fC0tfHtcIikucmVwbGFjZSgvXFx9XFxdW1xcblxccl0/XFxbXFx7L2csXCJ9XXwtLXxbe1wiKS5yZXBsYWNlKC9cXH1bXFxuXFxyXT9cXFtcXHsvZyxcIn18LS18W3tcIikucmVwbGFjZSgvXFx9XFxdW1xcblxccl0/XFx7L2csXCJ9XXwtLXx7XCIpLnNwbGl0KFwifC0tfFwiKS5mb3JFYWNoKHQ9PntsZXQgcj10O3RoaXMubGFzdENodW5rJiYocj10aGlzLmxhc3RDaHVuaytyKTtsZXQgbj1udWxsO3RyeXtuPUpTT04ucGFyc2Uocil9Y2F0Y2godCl7cmV0dXJuIHRoaXMubGFzdENodW5rPXIsY2xlYXJUaW1lb3V0KHRoaXMubGFzdENodW5rVGltZW91dCksdm9pZCh0aGlzLmxhc3RDaHVua1RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudGltZW91dCgpfSwxNWUzKSl9Y2xlYXJUaW1lb3V0KHRoaXMubGFzdENodW5rVGltZW91dCksdGhpcy5sYXN0Q2h1bms9bnVsbCxuJiZlLnB1c2gobil9KSxlfXByb2Nlc3NNZXNzYWdlKHQpe2lmKFwiaWRcImluIHQpe2NvbnN0IGU9dC5pZCxyPXRoaXMucmVzcG9uc2VDYWxsYmFja3MuZ2V0KGUpO2lmKCFyKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjogUmVjZWl2ZWQgYSByZXNwb25zZSBmb3IgYW4gdW5rbm93biByZXF1ZXN0XCIsdCk7dGhpcy5yZXNwb25zZUNhbGxiYWNrcy5kZWxldGUoZSksXCJlcnJvclwiaW4gdD9yLnJlamVjdChPYmplY3QuYXNzaWduKG5ldyBFcnJvcih0LmVycm9yLm1lc3NhZ2V8fHQuZXJyb3IpLHQuZXJyb3IpKTpcInJlc3VsdFwiaW4gdCYmci5yZXNvbHZlKHQpfWVsc2UgdGhpcy5ub3RpZmljYXRpb25DYWxsYmFja3MuZm9yRWFjaChlPT5lKG51bGwsdCkpfXRpbWVvdXQodCl7dGhpcy5jb25uZWN0aW9uJiZ0aGlzLmNvbm5lY3Rpb24uaXNQZW5kaW5nfHwodGhpcy5jb25uZWN0aW9uPW8uZnV0dXJlKCkpO2NvbnN0IGU9dHx8bmV3IEVycm9yKFwiQ29ubmVjdGlvbiB0aW1lb3V0XCIpO3RoaXMucmVzcG9uc2VDYWxsYmFja3MuZm9yRWFjaCh0PT50LnJlamVjdChlKSksdGhpcy5yZXNwb25zZUNhbGxiYWNrcy5jbGVhcigpLHRoaXMuaXNEaXNwb3NlZHx8dGhpcy5jb25uZWN0KCl9Y29ubmVjdCgpe3RoaXMuY29ubmVjdGlvbiYmIXRoaXMuY29ubmVjdGlvbi5pc1BlbmRpbmcmJnRoaXMuY29ubmVjdGlvbi50aGVuKHQ9PnQuY2xvc2UoKSksdGhpcy5jb25uZWN0aW9uJiZ0aGlzLmNvbm5lY3Rpb24uaXNQZW5kaW5nfHwodGhpcy5jb25uZWN0aW9uPW8uZnV0dXJlKCkpLHRoaXMubGFzdENodW5rPVwiXCI7bGV0IHQ9dGhpcy5vcHRpb25zLldlYlNvY2tldENvbnN0cnVjdG9yfHwoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFdlYlNvY2tldD9XZWJTb2NrZXQ6dm9pZCAwKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJQbGVhc2UgcHJvdmlkZSBhIFdlYlNvY2tldENvbnN0cnVjdG9yXCIpO2NvbnN0IGU9bmV3IHQodGhpcy51cmwsdGhpcy5vcHRpb25zLnByb3RvY29sKTtlLm9ub3Blbj0oKCk9Pnt0aGlzLmNvbm5lY3Rpb24ucmVzb2x2ZShlKX0pLGUub25lcnJvcj0odD0+e3RoaXMudGltZW91dCh0KX0pLGUub25jbG9zZT0odD0+e3RoaXMudGltZW91dChuZXcgRXJyb3IoYENvbm5lY3Rpb24gY2xvc2VkICgke3QmJnQucmVhc29ufHxcIlVua25vd24gcmVhc29uXCJ9KWApKX0pLGUub25tZXNzYWdlPSh0PT57bGV0IGU9XCJzdHJpbmdcIj09dHlwZW9mIHQuZGF0YT90LmRhdGE6XCJcIjt0aGlzLmRlYnVnJiZjb25zb2xlLmxvZyhcIlJFQ1YgPDwgXCIrdC5kYXRhKSx0aGlzLnBhcnNlUmVzcG9uc2UoZSkuZm9yRWFjaCh0PT57dCBpbnN0YW5jZW9mIEFycmF5P3QuZm9yRWFjaCh0PT50aGlzLnByb2Nlc3NNZXNzYWdlKHQpKTp0aGlzLnByb2Nlc3NNZXNzYWdlKHQpfSl9KX19ZS5XZWJTb2NrZXRQcm92aWRlcj1pLGUuZGVmYXVsdD1pfSxmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvPVN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGUscixuPVtdLG89MCxpPXQubGVuZ3RoO288aTspKGU9dC5jaGFyQ29kZUF0KG8rKykpPj01NTI5NiYmZTw9NTYzMTkmJm88aT81NjMyMD09KDY0NTEyJihyPXQuY2hhckNvZGVBdChvKyspKSk/bi5wdXNoKCgoMTAyMyZlKTw8MTApKygxMDIzJnIpKzY1NTM2KToobi5wdXNoKGUpLG8tLSk6bi5wdXNoKGUpO3JldHVybiBufWZ1bmN0aW9uIHModCl7aWYodD49NTUyOTYmJnQ8PTU3MzQzKXRocm93IEVycm9yKFwiTG9uZSBzdXJyb2dhdGUgVStcIit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpK1wiIGlzIG5vdCBhIHNjYWxhciB2YWx1ZVwiKX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIG8odD4+ZSY2M3wxMjgpfWZ1bmN0aW9uIGModCl7aWYoMD09KDQyOTQ5NjcxNjgmdCkpcmV0dXJuIG8odCk7dmFyIGU9XCJcIjtyZXR1cm4gMD09KDQyOTQ5NjUyNDgmdCk/ZT1vKHQ+PjYmMzF8MTkyKTowPT0oNDI5NDkwMTc2MCZ0KT8ocyh0KSxlPW8odD4+MTImMTV8MjI0KSxlKz1hKHQsNikpOjA9PSg0MjkyODcwMTQ0JnQpJiYoZT1vKHQ+PjE4Jjd8MjQwKSxlKz1hKHQsMTIpLGUrPWEodCw2KSksZSs9byg2MyZ0fDEyOCl9ZnVuY3Rpb24gdSgpe2lmKG4+PXIpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGJ5dGUgaW5kZXhcIik7dmFyIHQ9MjU1JmVbbl07aWYobisrLDEyOD09KDE5MiZ0KSlyZXR1cm4gNjMmdDt0aHJvdyBFcnJvcihcIkludmFsaWQgY29udGludWF0aW9uIGJ5dGVcIil9ZnVuY3Rpb24gbCgpe3ZhciB0LG87aWYobj5yKXRocm93IEVycm9yKFwiSW52YWxpZCBieXRlIGluZGV4XCIpO2lmKG49PXIpcmV0dXJuITE7aWYodD0yNTUmZVtuXSxuKyssMD09KDEyOCZ0KSlyZXR1cm4gdDtpZigxOTI9PSgyMjQmdCkpe2lmKChvPSgzMSZ0KTw8Nnx1KCkpPj0xMjgpcmV0dXJuIG87dGhyb3cgRXJyb3IoXCJJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlXCIpfWlmKDIyND09KDI0MCZ0KSl7aWYoKG89KDE1JnQpPDwxMnx1KCk8PDZ8dSgpKT49MjA0OClyZXR1cm4gcyhvKSxvO3Rocm93IEVycm9yKFwiSW52YWxpZCBjb250aW51YXRpb24gYnl0ZVwiKX1pZigyNDA9PSgyNDgmdCkmJihvPSg3JnQpPDwxOHx1KCk8PDEyfHUoKTw8Nnx1KCkpPj02NTUzNiYmbzw9MTExNDExMSlyZXR1cm4gbzt0aHJvdyBFcnJvcihcIkludmFsaWQgVVRGLTggZGV0ZWN0ZWRcIil9dC52ZXJzaW9uPVwiMy4wLjBcIix0LmVuY29kZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9aSh0KSxyPWUubGVuZ3RoLG49LTEsbz1cIlwiOysrbjxyOylvKz1jKGVbbl0pO3JldHVybiBvfSx0LmRlY29kZT1mdW5jdGlvbih0KXtlPWkodCkscj1lLmxlbmd0aCxuPTA7Zm9yKHZhciBzLGE9W107ITEhPT0ocz1sKCkpOylhLnB1c2gocyk7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLG49LTEsaT1cIlwiOysrbjxyOykoZT10W25dKT42NTUzNSYmKGkrPW8oKGUtPTY1NTM2KT4+PjEwJjEwMjN8NTUyOTYpLGU9NTYzMjB8MTAyMyZlKSxpKz1vKGUpO3JldHVybiBpfShhKX19KGUpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxMCkscigzMykscigzNCkscig2KSxyKDcpLHIoMTEpLHIoMTgpLHIoMzUpLHIoMTkpLHIoMzYpLHIoMjApLHIoMzcpLHIoMTIpLHIoMzgpLHIoNSkscigxKSxyKDM5KSxyKDQwKSxyKDQxKSxyKDQyKSxyKDQzKSxyKDQ0KSxyKDQ1KSxyKDQ2KSxyKDQ3KSxyKDQ4KSxyKDQ5KSxyKDUwKSxyKDUxKSxyKDUyKSxyKDUzKSxyKDU0KSxuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLGZ1bmN0aW9uKCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PW4ubGliLldvcmRBcnJheSxlPXQuaW5pdDsodC5pbml0PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKHQ9bmV3IFVpbnQ4QXJyYXkodCkpLCh0IGluc3RhbmNlb2YgSW50OEFycmF5fHxcInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkmJnQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIEludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJih0PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpKSx0IGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciByPXQuYnl0ZUxlbmd0aCxuPVtdLG89MDtvPHI7bysrKW5bbz4+PjJdfD10W29dPDwyNC1vJTQqODtlLmNhbGwodGhpcyxuLHIpfWVsc2UgZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5wcm90b3R5cGU9dH19KCksbi5saWIuV29yZEFycmF5KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLGZ1bmN0aW9uKCl7dmFyIHQ9bixlPXQubGliLldvcmRBcnJheSxyPXQuZW5jO2Z1bmN0aW9uIG8odCl7cmV0dXJuIHQ8PDgmNDI3ODI1NTM2MHx0Pj4+OCYxNjcxMTkzNX1yLlV0ZjE2PXIuVXRmMTZCRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLHI9dC5zaWdCeXRlcyxuPVtdLG89MDtvPHI7bys9Mil7dmFyIGk9ZVtvPj4+Ml0+Pj4xNi1vJTQqOCY2NTUzNTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLG49W10sbz0wO288cjtvKyspbltvPj4+MV18PXQuY2hhckNvZGVBdChvKTw8MTYtbyUyKjE2O3JldHVybiBlLmNyZWF0ZShuLDIqcil9fSxyLlV0ZjE2TEU9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMsbj1bXSxpPTA7aTxyO2krPTIpe3ZhciBzPW8oZVtpPj4+Ml0+Pj4xNi1pJTQqOCY2NTUzNSk7bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUocykpfXJldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPVtdLGk9MDtpPHI7aSsrKW5baT4+PjFdfD1vKHQuY2hhckNvZGVBdChpKTw8MTYtaSUyKjE2KTtyZXR1cm4gZS5jcmVhdGUobiwyKnIpfX19KCksbi5lbmMuVXRmMTYpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHMsYSxjO3QuZXhwb3J0cz0obj1yKDApLHIoMTgpLGk9KG89bikubGliLldvcmRBcnJheSxzPW8uYWxnbyxhPXMuU0hBMjU2LGM9cy5TSEEyMjQ9YS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFszMjM4MzcxMDMyLDkxNDE1MDY2Myw4MTI3MDI5OTksNDE0NDkxMjY5Nyw0MjkwNzc1ODU3LDE3NTA2MDMwMjUsMTY5NDA3NjgzOSwzMjA0MDc1NDI4XSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9YS5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT00LHR9fSksby5TSEEyMjQ9YS5fY3JlYXRlSGVscGVyKGMpLG8uSG1hY1NIQTIyND1hLl9jcmVhdGVIbWFjSGVscGVyKGMpLG4uU0hBMjI0KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGw7dC5leHBvcnRzPShuPXIoMCkscigxMCkscigxOSksaT0obz1uKS54NjQscz1pLldvcmQsYT1pLldvcmRBcnJheSxjPW8uYWxnbyx1PWMuU0hBNTEyLGw9Yy5TSEEzODQ9dS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgYS5pbml0KFtuZXcgcy5pbml0KDM0MTgwNzAzNjUsMzIzODM3MTAzMiksbmV3IHMuaW5pdCgxNjU0MjcwMjUwLDkxNDE1MDY2MyksbmV3IHMuaW5pdCgyNDM4NTI5MzcwLDgxMjcwMjk5OSksbmV3IHMuaW5pdCgzNTU0NjIzNjAsNDE0NDkxMjY5NyksbmV3IHMuaW5pdCgxNzMxNDA1NDE1LDQyOTA3NzU4NTcpLG5ldyBzLmluaXQoMjM5NDE4MDIzMSwxNzUwNjAzMDI1KSxuZXcgcy5pbml0KDM2NzUwMDg1MjUsMTY5NDA3NjgzOSksbmV3IHMuaW5pdCgxMjAzMDYyODEzLDMyMDQwNzU0MjgpXSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dS5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT0xNix0fX0pLG8uU0hBMzg0PXUuX2NyZWF0ZUhlbHBlcihsKSxvLkhtYWNTSEEzODQ9dS5fY3JlYXRlSG1hY0hlbHBlcihsKSxuLlNIQTM4NCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxcbi8qKiBAcHJlc2VydmVcblx0KGMpIDIwMTIgYnkgQ8OpZHJpYyBNZXNuaWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cblx0UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuXG5cdCAgICAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cblx0ICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuXG5cdFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cblx0Ki9cbmZ1bmN0aW9uKHQpe3ZhciBlPW4scj1lLmxpYixvPXIuV29yZEFycmF5LGk9ci5IYXNoZXIscz1lLmFsZ28sYT1vLmNyZWF0ZShbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSksYz1vLmNyZWF0ZShbNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSksdT1vLmNyZWF0ZShbMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0pLGw9by5jcmVhdGUoWzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdKSxoPW8uY3JlYXRlKFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSxmPW8uY3JlYXRlKFsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdKSxwPXMuUklQRU1EMTYwPWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9by5jcmVhdGUoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MTY7cisrKXt2YXIgbj1lK3Isbz10W25dO3Rbbl09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9dmFyIGkscyxwLHcsYixCLEYsTixrLHgsUyxBPXRoaXMuX2hhc2gud29yZHMsTz1oLndvcmRzLFQ9Zi53b3JkcyxQPWEud29yZHMsTT1jLndvcmRzLEM9dS53b3JkcyxFPWwud29yZHM7Zm9yKEI9aT1BWzBdLEY9cz1BWzFdLE49cD1BWzJdLGs9dz1BWzNdLHg9Yj1BWzRdLHI9MDtyPDgwO3IrPTEpUz1pK3RbZStQW3JdXXwwLFMrPXI8MTY/ZChzLHAsdykrT1swXTpyPDMyP20ocyxwLHcpK09bMV06cjw0OD95KHMscCx3KStPWzJdOnI8NjQ/ZyhzLHAsdykrT1szXTpfKHMscCx3KStPWzRdLFM9KFM9dihTfD0wLENbcl0pKStifDAsaT1iLGI9dyx3PXYocCwxMCkscD1zLHM9UyxTPUIrdFtlK01bcl1dfDAsUys9cjwxNj9fKEYsTixrKStUWzBdOnI8MzI/ZyhGLE4saykrVFsxXTpyPDQ4P3koRixOLGspK1RbMl06cjw2ND9tKEYsTixrKStUWzNdOmQoRixOLGspK1RbNF0sUz0oUz12KFN8PTAsRVtyXSkpK3h8MCxCPXgseD1rLGs9dihOLDEwKSxOPUYsRj1TO1M9QVsxXStwK2t8MCxBWzFdPUFbMl0rdyt4fDAsQVsyXT1BWzNdK2IrQnwwLEFbM109QVs0XStpK0Z8MCxBWzRdPUFbMF0rcytOfDAsQVswXT1TfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLHI9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO2Vbbj4+PjVdfD0xMjg8PDI0LW4lMzIsZVsxNCsobis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYocjw8OHxyPj4+MjQpfDQyNzgyNTUzNjAmKHI8PDI0fHI+Pj44KSx0LnNpZ0J5dGVzPTQqKGUubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIG89dGhpcy5faGFzaCxpPW8ud29yZHMscz0wO3M8NTtzKyspe3ZhciBhPWlbc107aVtzXT0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KX1yZXR1cm4gb30sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1pLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ZnVuY3Rpb24gZCh0LGUscil7cmV0dXJuIHReZV5yfWZ1bmN0aW9uIG0odCxlLHIpe3JldHVybiB0JmV8fnQmcn1mdW5jdGlvbiB5KHQsZSxyKXtyZXR1cm4odHx+ZSlecn1mdW5jdGlvbiBnKHQsZSxyKXtyZXR1cm4gdCZyfGUmfnJ9ZnVuY3Rpb24gXyh0LGUscil7cmV0dXJuIHReKGV8fnIpfWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4gdDw8ZXx0Pj4+MzItZX1lLlJJUEVNRDE2MD1pLl9jcmVhdGVIZWxwZXIocCksZS5IbWFjUklQRU1EMTYwPWkuX2NyZWF0ZUhtYWNIZWxwZXIocCl9KE1hdGgpLG4uUklQRU1EMTYwKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxzLGEsYyx1LGwsaDt0LmV4cG9ydHM9KG49cigwKSxyKDExKSxyKDEyKSxpPShvPW4pLmxpYixzPWkuQmFzZSxhPWkuV29yZEFycmF5LGM9by5hbGdvLHU9Yy5TSEExLGw9Yy5ITUFDLGg9Yy5QQktERjI9cy5leHRlbmQoe2NmZzpzLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjp1LGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuY2ZnLG49bC5jcmVhdGUoci5oYXNoZXIsdCksbz1hLmNyZWF0ZSgpLGk9YS5jcmVhdGUoWzFdKSxzPW8ud29yZHMsYz1pLndvcmRzLHU9ci5rZXlTaXplLGg9ci5pdGVyYXRpb25zO3MubGVuZ3RoPHU7KXt2YXIgZj1uLnVwZGF0ZShlKS5maW5hbGl6ZShpKTtuLnJlc2V0KCk7Zm9yKHZhciBwPWYud29yZHMsZD1wLmxlbmd0aCxtPWYseT0xO3k8aDt5Kyspe209bi5maW5hbGl6ZShtKSxuLnJlc2V0KCk7Zm9yKHZhciBnPW0ud29yZHMsXz0wO188ZDtfKyspcFtfXV49Z1tfXX1vLmNvbmNhdChmKSxjWzBdKyt9cmV0dXJuIG8uc2lnQnl0ZXM9NCp1LG99fSksby5QQktERjI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBoLmNyZWF0ZShyKS5jb21wdXRlKHQsZSl9LG4uUEJLREYyKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkNGQj1mdW5jdGlvbigpe3ZhciB0PW4ubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtmdW5jdGlvbiBlKHQsZSxyLG4pe3ZhciBvPXRoaXMuX2l2O2lmKG8pe3ZhciBpPW8uc2xpY2UoMCk7dGhpcy5faXY9dm9pZCAwfWVsc2UgaT10aGlzLl9wcmV2QmxvY2s7bi5lbmNyeXB0QmxvY2soaSwwKTtmb3IodmFyIHM9MDtzPHI7cysrKXRbZStzXV49aVtzXX1yZXR1cm4gdC5FbmNyeXB0b3I9dC5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplO2UuY2FsbCh0aGlzLHQscixvLG4pLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKHIscitvKX19KSx0LkRlY3J5cHRvcj10LmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIG49dGhpcy5fY2lwaGVyLG89bi5ibG9ja1NpemUsaT10LnNsaWNlKHIscitvKTtlLmNhbGwodGhpcyx0LHIsbyxuKSx0aGlzLl9wcmV2QmxvY2s9aX19KSx0fSgpLG4ubW9kZS5DRkIpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkNUUj0obz1uLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksaT1vLkVuY3J5cHRvcj1vLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2lwaGVyLG49ci5ibG9ja1NpemUsbz10aGlzLl9pdixpPXRoaXMuX2NvdW50ZXI7byYmKGk9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9aS5zbGljZSgwKTtyLmVuY3J5cHRCbG9jayhzLDApLGlbbi0xXT1pW24tMV0rMXwwO2Zvcih2YXIgYT0wO2E8bjthKyspdFtlK2FdXj1zW2FdfX0pLG8uRGVjcnlwdG9yPWksbyksbi5tb2RlLkNUUil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDEpLFxuLyoqIEBwcmVzZXJ2ZVxuXHQgKiBDb3VudGVyIGJsb2NrIG1vZGUgY29tcGF0aWJsZSB3aXRoICBEciBCcmlhbiBHbGFkbWFuIGZpbGVlbmMuY1xuXHQgKiBkZXJpdmVkIGZyb20gQ3J5cHRvSlMubW9kZS5DVFJcblx0ICogSmFuIEhydWJ5IGpocnVieS53ZWJAZ21haWwuY29tXG5cdCAqL1xubi5tb2RlLkNUUkdsYWRtYW49ZnVuY3Rpb24oKXt2YXIgdD1uLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7ZnVuY3Rpb24gZSh0KXtpZigyNTU9PSh0Pj4yNCYyNTUpKXt2YXIgZT10Pj4xNiYyNTUscj10Pj44JjI1NSxuPTI1NSZ0OzI1NT09PWU/KGU9MCwyNTU9PT1yPyhyPTAsMjU1PT09bj9uPTA6KytuKTorK3IpOisrZSx0PTAsdCs9ZTw8MTYsdCs9cjw8OCx0Kz1ufWVsc2UgdCs9MTw8MjQ7cmV0dXJuIHR9dmFyIHI9dC5FbmNyeXB0b3I9dC5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMuX2NpcGhlcixvPW4uYmxvY2tTaXplLGk9dGhpcy5faXYscz10aGlzLl9jb3VudGVyO2kmJihzPXRoaXMuX2NvdW50ZXI9aS5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGZ1bmN0aW9uKHQpezA9PT0odFswXT1lKHRbMF0pKSYmKHRbMV09ZSh0WzFdKSl9KHMpO3ZhciBhPXMuc2xpY2UoMCk7bi5lbmNyeXB0QmxvY2soYSwwKTtmb3IodmFyIGM9MDtjPG87YysrKXRbcitjXV49YVtjXX19KTtyZXR1cm4gdC5EZWNyeXB0b3I9cix0fSgpLG4ubW9kZS5DVFJHbGFkbWFuKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saTt0LmV4cG9ydHM9KG49cigwKSxyKDEpLG4ubW9kZS5PRkI9KG89bi5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLGk9by5FbmNyeXB0b3I9by5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2NpcGhlcixuPXIuYmxvY2tTaXplLG89dGhpcy5faXYsaT10aGlzLl9rZXlzdHJlYW07byYmKGk9dGhpcy5fa2V5c3RyZWFtPW8uc2xpY2UoMCksdGhpcy5faXY9dm9pZCAwKSxyLmVuY3J5cHRCbG9jayhpLDApO2Zvcih2YXIgcz0wO3M8bjtzKyspdFtlK3NdXj1pW3NdfX0pLG8uRGVjcnlwdG9yPWksbyksbi5tb2RlLk9GQil9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5tb2RlLkVDQj0oKG89bi5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpKS5FbmNyeXB0b3I9by5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodCxlKX19KSxvLkRlY3J5cHRvcj1vLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY2lwaGVyLmRlY3J5cHRCbG9jayh0LGUpfX0pLG8pLG4ubW9kZS5FQ0IpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5BbnNpWDkyMz17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zaWdCeXRlcyxuPTQqZSxvPW4tciVuLGk9citvLTE7dC5jbGFtcCgpLHQud29yZHNbaT4+PjJdfD1vPDwyNC1pJTQqOCx0LnNpZ0J5dGVzKz1vfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgZT0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1lfX0sbi5wYWQuQW5zaXg5MjMpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5Jc28xMDEyNj17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9NCplLG89ci10LnNpZ0J5dGVzJXI7dC5jb25jYXQobi5saWIuV29yZEFycmF5LnJhbmRvbShvLTEpKS5jb25jYXQobi5saWIuV29yZEFycmF5LmNyZWF0ZShbbzw8MjRdLDEpKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIGU9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09ZX19LG4ucGFkLklzbzEwMTI2KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoMSksbi5wYWQuSXNvOTc5NzE9e3BhZDpmdW5jdGlvbih0LGUpe3QuY29uY2F0KG4ubGliLldvcmRBcnJheS5jcmVhdGUoWzIxNDc0ODM2NDhdLDEpKSxuLnBhZC5aZXJvUGFkZGluZy5wYWQodCxlKX0sdW5wYWQ6ZnVuY3Rpb24odCl7bi5wYWQuWmVyb1BhZGRpbmcudW5wYWQodCksdC5zaWdCeXRlcy0tfX0sbi5wYWQuSXNvOTc5NzEpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5aZXJvUGFkZGluZz17cGFkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9NCplO3QuY2xhbXAoKSx0LnNpZ0J5dGVzKz1yLSh0LnNpZ0J5dGVzJXJ8fHIpfSx1bnBhZDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMtMTshKGVbcj4+PjJdPj4+MjQtciU0KjgmMjU1KTspci0tO3Quc2lnQnl0ZXM9cisxfX0sbi5wYWQuWmVyb1BhZGRpbmcpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscigxKSxuLnBhZC5Ob1BhZGRpbmc9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxuLnBhZC5Ob1BhZGRpbmcpfSxmdW5jdGlvbih0LGUscil7dmFyIG4sbyxpLHM7dC5leHBvcnRzPShuPXIoMCkscigxKSxpPShvPW4pLmxpYi5DaXBoZXJQYXJhbXMscz1vLmVuYy5IZXgsby5mb3JtYXQuSGV4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2lwaGVydGV4dC50b1N0cmluZyhzKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9cy5wYXJzZSh0KTtyZXR1cm4gaS5jcmVhdGUoe2NpcGhlcnRleHQ6ZX0pfX0sbi5mb3JtYXQuSGV4KX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNikscig3KSxyKDUpLHIoMSksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuQmxvY2tDaXBoZXIscj10LmFsZ28sbz1bXSxpPVtdLHM9W10sYT1bXSxjPVtdLHU9W10sbD1bXSxoPVtdLGY9W10scD1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8MjU2O2UrKyl0W2VdPWU8MTI4P2U8PDE6ZTw8MV4yODM7dmFyIHI9MCxuPTA7Zm9yKGU9MDtlPDI1NjtlKyspe3ZhciBkPW5ebjw8MV5uPDwyXm48PDNebjw8NDtkPWQ+Pj44XjI1NSZkXjk5LG9bcl09ZCxpW2RdPXI7dmFyIG09dFtyXSx5PXRbbV0sZz10W3ldLF89MjU3KnRbZF1eMTY4NDMwMDgqZDtzW3JdPV88PDI0fF8+Pj44LGFbcl09Xzw8MTZ8Xz4+PjE2LGNbcl09Xzw8OHxfPj4+MjQsdVtyXT1fLF89MTY4NDMwMDkqZ142NTUzNyp5XjI1NyptXjE2ODQzMDA4KnIsbFtkXT1fPDwyNHxfPj4+OCxoW2RdPV88PDE2fF8+Pj4xNixmW2RdPV88PDh8Xz4+PjI0LHBbZF09XyxyPyhyPW1edFt0W3RbZ15tXV1dLG5ePXRbdFtuXV0pOnI9bj0xfX0oKTt2YXIgZD1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sbT1yLkFFUz1lLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fblJvdW5kc3x8dGhpcy5fa2V5UHJpb3JSZXNldCE9PXRoaXMuX2tleSl7Zm9yKHZhciB0PXRoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5LGU9dC53b3JkcyxyPXQuc2lnQnl0ZXMvNCxuPTQqKCh0aGlzLl9uUm91bmRzPXIrNikrMSksaT10aGlzLl9rZXlTY2hlZHVsZT1bXSxzPTA7czxuO3MrKylpZihzPHIpaVtzXT1lW3NdO2Vsc2V7dmFyIGE9aVtzLTFdO3Mlcj9yPjYmJnMlcj09NCYmKGE9b1thPj4+MjRdPDwyNHxvW2E+Pj4xNiYyNTVdPDwxNnxvW2E+Pj44JjI1NV08PDh8b1syNTUmYV0pOihhPW9bKGE9YTw8OHxhPj4+MjQpPj4+MjRdPDwyNHxvW2E+Pj4xNiYyNTVdPDwxNnxvW2E+Pj44JjI1NV08PDh8b1syNTUmYV0sYV49ZFtzL3J8MF08PDI0KSxpW3NdPWlbcy1yXV5hfWZvcih2YXIgYz10aGlzLl9pbnZLZXlTY2hlZHVsZT1bXSx1PTA7dTxuO3UrKylzPW4tdSxhPXUlND9pW3NdOmlbcy00XSxjW3VdPXU8NHx8czw9ND9hOmxbb1thPj4+MjRdXV5oW29bYT4+PjE2JjI1NV1dXmZbb1thPj4+OCYyNTVdXV5wW29bMjU1JmFdXX19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LGUsdGhpcy5fa2V5U2NoZWR1bGUscyxhLGMsdSxvKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dFtlKzFdO3RbZSsxXT10W2UrM10sdFtlKzNdPXIsdGhpcy5fZG9DcnlwdEJsb2NrKHQsZSx0aGlzLl9pbnZLZXlTY2hlZHVsZSxsLGgsZixwLGkpLHI9dFtlKzFdLHRbZSsxXT10W2UrM10sdFtlKzNdPXJ9LF9kb0NyeXB0QmxvY2s6ZnVuY3Rpb24odCxlLHIsbixvLGkscyxhKXtmb3IodmFyIGM9dGhpcy5fblJvdW5kcyx1PXRbZV1eclswXSxsPXRbZSsxXV5yWzFdLGg9dFtlKzJdXnJbMl0sZj10W2UrM11eclszXSxwPTQsZD0xO2Q8YztkKyspe3ZhciBtPW5bdT4+PjI0XV5vW2w+Pj4xNiYyNTVdXmlbaD4+PjgmMjU1XV5zWzI1NSZmXV5yW3ArK10seT1uW2w+Pj4yNF1eb1toPj4+MTYmMjU1XV5pW2Y+Pj44JjI1NV1ec1syNTUmdV1ecltwKytdLGc9bltoPj4+MjRdXm9bZj4+PjE2JjI1NV1eaVt1Pj4+OCYyNTVdXnNbMjU1JmxdXnJbcCsrXSxfPW5bZj4+PjI0XV5vW3U+Pj4xNiYyNTVdXmlbbD4+PjgmMjU1XV5zWzI1NSZoXV5yW3ArK107dT1tLGw9eSxoPWcsZj1ffW09KGFbdT4+PjI0XTw8MjR8YVtsPj4+MTYmMjU1XTw8MTZ8YVtoPj4+OCYyNTVdPDw4fGFbMjU1JmZdKV5yW3ArK10seT0oYVtsPj4+MjRdPDwyNHxhW2g+Pj4xNiYyNTVdPDwxNnxhW2Y+Pj44JjI1NV08PDh8YVsyNTUmdV0pXnJbcCsrXSxnPShhW2g+Pj4yNF08PDI0fGFbZj4+PjE2JjI1NV08PDE2fGFbdT4+PjgmMjU1XTw8OHxhWzI1NSZsXSlecltwKytdLF89KGFbZj4+PjI0XTw8MjR8YVt1Pj4+MTYmMjU1XTw8MTZ8YVtsPj4+OCYyNTVdPDw4fGFbMjU1JmhdKV5yW3ArK10sdFtlXT1tLHRbZSsxXT15LHRbZSsyXT1nLHRbZSszXT1ffSxrZXlTaXplOjh9KTt0LkFFUz1lLl9jcmVhdGVIZWxwZXIobSl9KCksbi5BRVMpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig2KSxyKDcpLHIoNSkscigxKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYixyPWUuV29yZEFycmF5LG89ZS5CbG9ja0NpcGhlcixpPXQuYWxnbyxzPVs1Nyw0OSw0MSwzMywyNSwxNyw5LDEsNTgsNTAsNDIsMzQsMjYsMTgsMTAsMiw1OSw1MSw0MywzNSwyNywxOSwxMSwzLDYwLDUyLDQ0LDM2LDYzLDU1LDQ3LDM5LDMxLDIzLDE1LDcsNjIsNTQsNDYsMzgsMzAsMjIsMTQsNiw2MSw1Myw0NSwzNywyOSwyMSwxMyw1LDI4LDIwLDEyLDRdLGE9WzE0LDE3LDExLDI0LDEsNSwzLDI4LDE1LDYsMjEsMTAsMjMsMTksMTIsNCwyNiw4LDE2LDcsMjcsMjAsMTMsMiw0MSw1MiwzMSwzNyw0Nyw1NSwzMCw0MCw1MSw0NSwzMyw0OCw0NCw0OSwzOSw1NiwzNCw1Myw0Niw0Miw1MCwzNiwyOSwzMl0sYz1bMSwyLDQsNiw4LDEwLDEyLDE0LDE1LDE3LDE5LDIxLDIzLDI1LDI3LDI4XSx1PVt7MDo4NDIxODg4LDI2ODQzNTQ1NjozMjc2OCw1MzY4NzA5MTI6ODQyMTM3OCw4MDUzMDYzNjg6MiwxMDczNzQxODI0OjUxMiwxMzQyMTc3MjgwOjg0MjE4OTAsMTYxMDYxMjczNjo4Mzg5MTIyLDE4NzkwNDgxOTI6ODM4ODYwOCwyMTQ3NDgzNjQ4OjUxNCwyNDE1OTE5MTA0OjgzODkxMjAsMjY4NDM1NDU2MDozMzI4MCwyOTUyNzkwMDE2Ojg0MjEzNzYsMzIyMTIyNTQ3MjozMjc3MCwzNDg5NjYwOTI4OjgzODg2MTAsMzc1ODA5NjM4NDowLDQwMjY1MzE4NDA6MzMyODIsMTM0MjE3NzI4OjAsNDAyNjUzMTg0Ojg0MjE4OTAsNjcxMDg4NjQwOjMzMjgyLDkzOTUyNDA5NjozMjc2OCwxMjA3OTU5NTUyOjg0MjE4ODgsMTQ3NjM5NTAwODo1MTIsMTc0NDgzMDQ2NDo4NDIxMzc4LDIwMTMyNjU5MjA6MiwyMjgxNzAxMzc2OjgzODkxMjAsMjU1MDEzNjgzMjozMzI4MCwyODE4NTcyMjg4Ojg0MjEzNzYsMzA4NzAwNzc0NDo4Mzg5MTIyLDMzNTU0NDMyMDA6ODM4ODYxMCwzNjIzODc4NjU2OjMyNzcwLDM4OTIzMTQxMTI6NTE0LDQxNjA3NDk1Njg6ODM4ODYwOCwxOjMyNzY4LDI2ODQzNTQ1NzoyLDUzNjg3MDkxMzo4NDIxODg4LDgwNTMwNjM2OTo4Mzg4NjA4LDEwNzM3NDE4MjU6ODQyMTM3OCwxMzQyMTc3MjgxOjMzMjgwLDE2MTA2MTI3Mzc6NTEyLDE4NzkwNDgxOTM6ODM4OTEyMiwyMTQ3NDgzNjQ5Ojg0MjE4OTAsMjQxNTkxOTEwNTo4NDIxMzc2LDI2ODQzNTQ1NjE6ODM4ODYxMCwyOTUyNzkwMDE3OjMzMjgyLDMyMjEyMjU0NzM6NTE0LDM0ODk2NjA5Mjk6ODM4OTEyMCwzNzU4MDk2Mzg1OjMyNzcwLDQwMjY1MzE4NDE6MCwxMzQyMTc3Mjk6ODQyMTg5MCw0MDI2NTMxODU6ODQyMTM3Niw2NzEwODg2NDE6ODM4ODYwOCw5Mzk1MjQwOTc6NTEyLDEyMDc5NTk1NTM6MzI3NjgsMTQ3NjM5NTAwOTo4Mzg4NjEwLDE3NDQ4MzA0NjU6MiwyMDEzMjY1OTIxOjMzMjgyLDIyODE3MDEzNzc6MzI3NzAsMjU1MDEzNjgzMzo4Mzg5MTIyLDI4MTg1NzIyODk6NTE0LDMwODcwMDc3NDU6ODQyMTg4OCwzMzU1NDQzMjAxOjgzODkxMjAsMzYyMzg3ODY1NzowLDM4OTIzMTQxMTM6MzMyODAsNDE2MDc0OTU2OTo4NDIxMzc4fSx7MDoxMDc0MjgyNTEyLDE2Nzc3MjE2OjE2Mzg0LDMzNTU0NDMyOjUyNDI4OCw1MDMzMTY0ODoxMDc0MjY2MTI4LDY3MTA4ODY0OjEwNzM3NDE4NDAsODM4ODYwODA6MTA3NDI4MjQ5NiwxMDA2NjMyOTY6MTA3Mzc1ODIwOCwxMTc0NDA1MTI6MTYsMTM0MjE3NzI4OjU0MDY3MiwxNTA5OTQ5NDQ6MTA3Mzc1ODIyNCwxNjc3NzIxNjA6MTA3Mzc0MTgyNCwxODQ1NDkzNzY6NTQwNjg4LDIwMTMyNjU5Mjo1MjQzMDQsMjE4MTAzODA4OjAsMjM0ODgxMDI0OjE2NDAwLDI1MTY1ODI0MDoxMDc0MjY2MTEyLDgzODg2MDg6MTA3Mzc1ODIwOCwyNTE2NTgyNDo1NDA2ODgsNDE5NDMwNDA6MTYsNTg3MjAyNTY6MTA3Mzc1ODIyNCw3NTQ5NzQ3MjoxMDc0MjgyNTEyLDkyMjc0Njg4OjEwNzM3NDE4MjQsMTA5MDUxOTA0OjUyNDI4OCwxMjU4MjkxMjA6MTA3NDI2NjEyOCwxNDI2MDYzMzY6NTI0MzA0LDE1OTM4MzU1MjowLDE3NjE2MDc2ODoxNjM4NCwxOTI5Mzc5ODQ6MTA3NDI2NjExMiwyMDk3MTUyMDA6MTA3Mzc0MTg0MCwyMjY0OTI0MTY6NTQwNjcyLDI0MzI2OTYzMjoxMDc0MjgyNDk2LDI2MDA0Njg0ODoxNjQwMCwyNjg0MzU0NTY6MCwyODUyMTI2NzI6MTA3NDI2NjEyOCwzMDE5ODk4ODg6MTA3Mzc1ODIyNCwzMTg3NjcxMDQ6MTA3NDI4MjQ5NiwzMzU1NDQzMjA6MTA3NDI2NjExMiwzNTIzMjE1MzY6MTYsMzY5MDk4NzUyOjU0MDY4OCwzODU4NzU5Njg6MTYzODQsNDAyNjUzMTg0OjE2NDAwLDQxOTQzMDQwMDo1MjQyODgsNDM2MjA3NjE2OjUyNDMwNCw0NTI5ODQ4MzI6MTA3Mzc0MTg0MCw0Njk3NjIwNDg6NTQwNjcyLDQ4NjUzOTI2NDoxMDczNzU4MjA4LDUwMzMxNjQ4MDoxMDczNzQxODI0LDUyMDA5MzY5NjoxMDc0MjgyNTEyLDI3NjgyNDA2NDo1NDA2ODgsMjkzNjAxMjgwOjUyNDI4OCwzMTAzNzg0OTY6MTA3NDI2NjExMiwzMjcxNTU3MTI6MTYzODQsMzQzOTMyOTI4OjEwNzM3NTgyMDgsMzYwNzEwMTQ0OjEwNzQyODI1MTIsMzc3NDg3MzYwOjE2LDM5NDI2NDU3NjoxMDczNzQxODI0LDQxMTA0MTc5MjoxMDc0MjgyNDk2LDQyNzgxOTAwODoxMDczNzQxODQwLDQ0NDU5NjIyNDoxMDczNzU4MjI0LDQ2MTM3MzQ0MDo1MjQzMDQsNDc4MTUwNjU2OjAsNDk0OTI3ODcyOjE2NDAwLDUxMTcwNTA4ODoxMDc0MjY2MTI4LDUyODQ4MjMwNDo1NDA2NzJ9LHswOjI2MCwxMDQ4NTc2OjAsMjA5NzE1Mjo2NzEwOTEyMCwzMTQ1NzI4OjY1Nzk2LDQxOTQzMDQ6NjU1NDAsNTI0Mjg4MDo2NzEwODg2OCw2MjkxNDU2OjY3MTc0NjYwLDczNDAwMzI6NjcxNzQ0MDAsODM4ODYwODo2NzEwODg2NCw5NDM3MTg0OjY3MTc0NjU2LDEwNDg1NzYwOjY1NzkyLDExNTM0MzM2OjY3MTc0NDA0LDEyNTgyOTEyOjY3MTA5MTI0LDEzNjMxNDg4OjY1NTM2LDE0NjgwMDY0OjQsMTU3Mjg2NDA6MjU2LDUyNDI4ODo2NzE3NDY1NiwxNTcyODY0OjY3MTc0NDA0LDI2MjE0NDA6MCwzNjcwMDE2OjY3MTA5MTIwLDQ3MTg1OTI6NjcxMDg4NjgsNTc2NzE2ODo2NTUzNiw2ODE1NzQ0OjY1NTQwLDc4NjQzMjA6MjYwLDg5MTI4OTY6NCw5OTYxNDcyOjI1NiwxMTAxMDA0ODo2NzE3NDQwMCwxMjA1ODYyNDo2NTc5NiwxMzEwNzIwMDo2NTc5MiwxNDE1NTc3Njo2NzEwOTEyNCwxNTIwNDM1Mjo2NzE3NDY2MCwxNjI1MjkyODo2NzEwODg2NCwxNjc3NzIxNjo2NzE3NDY1NiwxNzgyNTc5Mjo2NTU0MCwxODg3NDM2ODo2NTUzNiwxOTkyMjk0NDo2NzEwOTEyMCwyMDk3MTUyMDoyNTYsMjIwMjAwOTY6NjcxNzQ2NjAsMjMwNjg2NzI6NjcxMDg4NjgsMjQxMTcyNDg6MCwyNTE2NTgyNDo2NzEwOTEyNCwyNjIxNDQwMDo2NzEwODg2NCwyNzI2Mjk3Njo0LDI4MzExNTUyOjY1NzkyLDI5MzYwMTI4OjY3MTc0NDAwLDMwNDA4NzA0OjI2MCwzMTQ1NzI4MDo2NTc5NiwzMjUwNTg1Njo2NzE3NDQwNCwxNzMwMTUwNDo2NzEwODg2NCwxODM1MDA4MDoyNjAsMTkzOTg2NTY6NjcxNzQ2NTYsMjA0NDcyMzI6MCwyMTQ5NTgwODo2NTU0MCwyMjU0NDM4NDo2NzEwOTEyMCwyMzU5Mjk2MDoyNTYsMjQ2NDE1MzY6NjcxNzQ0MDQsMjU2OTAxMTI6NjU1MzYsMjY3Mzg2ODg6NjcxNzQ2NjAsMjc3ODcyNjQ6NjU3OTYsMjg4MzU4NDA6NjcxMDg4NjgsMjk4ODQ0MTY6NjcxMDkxMjQsMzA5MzI5OTI6NjcxNzQ0MDAsMzE5ODE1Njg6NCwzMzAzMDE0NDo2NTc5Mn0sezA6MjE1MTY4MjA0OCw2NTUzNjoyMTQ3NDg3ODA4LDEzMTA3Mjo0MTk4NDY0LDE5NjYwODoyMTUxNjc3OTUyLDI2MjE0NDowLDMyNzY4MDo0MTk4NDAwLDM5MzIxNjoyMTQ3NDgzNzEyLDQ1ODc1Mjo0MTk0MzY4LDUyNDI4ODoyMTQ3NDgzNjQ4LDU4OTgyNDo0MTk0MzA0LDY1NTM2MDo2NCw3MjA4OTY6MjE0NzQ4Nzc0NCw3ODY0MzI6MjE1MTY3ODAxNiw4NTE5Njg6NDE2MCw5MTc1MDQ6NDA5Niw5ODMwNDA6MjE1MTY4MjExMiwzMjc2ODoyMTQ3NDg3ODA4LDk4MzA0OjY0LDE2Mzg0MDoyMTUxNjc4MDE2LDIyOTM3NjoyMTQ3NDg3NzQ0LDI5NDkxMjo0MTk4NDAwLDM2MDQ0ODoyMTUxNjgyMTEyLDQyNTk4NDowLDQ5MTUyMDoyMTUxNjc3OTUyLDU1NzA1Njo0MDk2LDYyMjU5MjoyMTUxNjgyMDQ4LDY4ODEyODo0MTk0MzA0LDc1MzY2NDo0MTYwLDgxOTIwMDoyMTQ3NDgzNjQ4LDg4NDczNjo0MTk0MzY4LDk1MDI3Mjo0MTk4NDY0LDEwMTU4MDg6MjE0NzQ4MzcxMiwxMDQ4NTc2OjQxOTQzNjgsMTExNDExMjo0MTk4NDAwLDExNzk2NDg6MjE0NzQ4MzcxMiwxMjQ1MTg0OjAsMTMxMDcyMDo0MTYwLDEzNzYyNTY6MjE1MTY3ODAxNiwxNDQxNzkyOjIxNTE2ODIwNDgsMTUwNzMyODoyMTQ3NDg3ODA4LDE1NzI4NjQ6MjE1MTY4MjExMiwxNjM4NDAwOjIxNDc0ODM2NDgsMTcwMzkzNjoyMTUxNjc3OTUyLDE3Njk0NzI6NDE5ODQ2NCwxODM1MDA4OjIxNDc0ODc3NDQsMTkwMDU0NDo0MTk0MzA0LDE5NjYwODA6NjQsMjAzMTYxNjo0MDk2LDEwODEzNDQ6MjE1MTY3Nzk1MiwxMTQ2ODgwOjIxNTE2ODIxMTIsMTIxMjQxNjowLDEyNzc5NTI6NDE5ODQwMCwxMzQzNDg4OjQxOTQzNjgsMTQwOTAyNDoyMTQ3NDgzNjQ4LDE0NzQ1NjA6MjE0NzQ4NzgwOCwxNTQwMDk2OjY0LDE2MDU2MzI6MjE0NzQ4MzcxMiwxNjcxMTY4OjQwOTYsMTczNjcwNDoyMTQ3NDg3NzQ0LDE4MDIyNDA6MjE1MTY3ODAxNiwxODY3Nzc2OjQxNjAsMTkzMzMxMjoyMTUxNjgyMDQ4LDE5OTg4NDg6NDE5NDMwNCwyMDY0Mzg0OjQxOTg0NjR9LHswOjEyOCw0MDk2OjE3MDM5MzYwLDgxOTI6MjYyMTQ0LDEyMjg4OjUzNjg3MDkxMiwxNjM4NDo1MzcxMzMxODQsMjA0ODA6MTY3NzczNDQsMjQ1NzY6NTUzNjQ4MjU2LDI4NjcyOjI2MjI3MiwzMjc2ODoxNjc3NzIxNiwzNjg2NDo1MzcxMzMwNTYsNDA5NjA6NTM2ODcxMDQwLDQ1MDU2OjU1MzkxMDQwMCw0OTE1Mjo1NTM5MTAyNzIsNTMyNDg6MCw1NzM0NDoxNzAzOTQ4OCw2MTQ0MDo1NTM2NDgxMjgsMjA0ODoxNzAzOTQ4OCw2MTQ0OjU1MzY0ODI1NiwxMDI0MDoxMjgsMTQzMzY6MTcwMzkzNjAsMTg0MzI6MjYyMTQ0LDIyNTI4OjUzNzEzMzE4NCwyNjYyNDo1NTM5MTAyNzIsMzA3MjA6NTM2ODcwOTEyLDM0ODE2OjUzNzEzMzA1NiwzODkxMjowLDQzMDA4OjU1MzkxMDQwMCw0NzEwNDoxNjc3NzM0NCw1MTIwMDo1MzY4NzEwNDAsNTUyOTY6NTUzNjQ4MTI4LDU5MzkyOjE2Nzc3MjE2LDYzNDg4OjI2MjI3Miw2NTUzNjoyNjIxNDQsNjk2MzI6MTI4LDczNzI4OjUzNjg3MDkxMiw3NzgyNDo1NTM2NDgyNTYsODE5MjA6MTY3NzczNDQsODYwMTY6NTUzOTEwMjcyLDkwMTEyOjUzNzEzMzE4NCw5NDIwODoxNjc3NzIxNiw5ODMwNDo1NTM5MTA0MDAsMTAyNDAwOjU1MzY0ODEyOCwxMDY0OTY6MTcwMzkzNjAsMTEwNTkyOjUzNzEzMzA1NiwxMTQ2ODg6MjYyMjcyLDExODc4NDo1MzY4NzEwNDAsMTIyODgwOjAsMTI2OTc2OjE3MDM5NDg4LDY3NTg0OjU1MzY0ODI1Niw3MTY4MDoxNjc3NzIxNiw3NTc3NjoxNzAzOTM2MCw3OTg3Mjo1MzcxMzMxODQsODM5Njg6NTM2ODcwOTEyLDg4MDY0OjE3MDM5NDg4LDkyMTYwOjEyOCw5NjI1Njo1NTM5MTAyNzIsMTAwMzUyOjI2MjI3MiwxMDQ0NDg6NTUzOTEwNDAwLDEwODU0NDowLDExMjY0MDo1NTM2NDgxMjgsMTE2NzM2OjE2Nzc3MzQ0LDEyMDgzMjoyNjIxNDQsMTI0OTI4OjUzNzEzMzA1NiwxMjkwMjQ6NTM2ODcxMDQwfSx7MDoyNjg0MzU0NjQsMjU2OjgxOTIsNTEyOjI3MDUzMjYwOCw3Njg6MjcwNTQwODA4LDEwMjQ6MjY4NDQzNjQ4LDEyODA6MjA5NzE1MiwxNTM2OjIwOTcxNjAsMTc5MjoyNjg0MzU0NTYsMjA0ODowLDIzMDQ6MjY4NDQzNjU2LDI1NjA6MjEwNTM0NCwyODE2OjgsMzA3MjoyNzA1MzI2MTYsMzMyODoyMTA1MzUyLDM1ODQ6ODIwMCwzODQwOjI3MDU0MDgwMCwxMjg6MjcwNTMyNjA4LDM4NDoyNzA1NDA4MDgsNjQwOjgsODk2OjIwOTcxNTIsMTE1MjoyMTA1MzUyLDE0MDg6MjY4NDM1NDY0LDE2NjQ6MjY4NDQzNjQ4LDE5MjA6ODIwMCwyMTc2OjIwOTcxNjAsMjQzMjo4MTkyLDI2ODg6MjY4NDQzNjU2LDI5NDQ6MjcwNTMyNjE2LDMyMDA6MCwzNDU2OjI3MDU0MDgwMCwzNzEyOjIxMDUzNDQsMzk2ODoyNjg0MzU0NTYsNDA5NjoyNjg0NDM2NDgsNDM1MjoyNzA1MzI2MTYsNDYwODoyNzA1NDA4MDgsNDg2NDo4MjAwLDUxMjA6MjA5NzE1Miw1Mzc2OjI2ODQzNTQ1Niw1NjMyOjI2ODQzNTQ2NCw1ODg4OjIxMDUzNDQsNjE0NDoyMTA1MzUyLDY0MDA6MCw2NjU2OjgsNjkxMjoyNzA1MzI2MDgsNzE2ODo4MTkyLDc0MjQ6MjY4NDQzNjU2LDc2ODA6MjcwNTQwODAwLDc5MzY6MjA5NzE2MCw0MjI0OjgsNDQ4MDoyMTA1MzQ0LDQ3MzY6MjA5NzE1Miw0OTkyOjI2ODQzNTQ2NCw1MjQ4OjI2ODQ0MzY0OCw1NTA0OjgyMDAsNTc2MDoyNzA1NDA4MDgsNjAxNjoyNzA1MzI2MDgsNjI3MjoyNzA1NDA4MDAsNjUyODoyNzA1MzI2MTYsNjc4NDo4MTkyLDcwNDA6MjEwNTM1Miw3Mjk2OjIwOTcxNjAsNzU1MjowLDc4MDg6MjY4NDM1NDU2LDgwNjQ6MjY4NDQzNjU2fSx7MDoxMDQ4NTc2LDE2OjMzNTU1NDU3LDMyOjEwMjQsNDg6MTA0OTYwMSw2NDozNDYwNDAzMyw4MDowLDk2OjEsMTEyOjM0NjAzMDA5LDEyODozMzU1NTQ1NiwxNDQ6MTA0ODU3NywxNjA6MzM1NTQ0MzMsMTc2OjM0NjA0MDMyLDE5MjozNDYwMzAwOCwyMDg6MTAyNSwyMjQ6MTA0OTYwMCwyNDA6MzM1NTQ0MzIsODozNDYwMzAwOSwyNDowLDQwOjMzNTU1NDU3LDU2OjM0NjA0MDMyLDcyOjEwNDg1NzYsODg6MzM1NTQ0MzMsMTA0OjMzNTU0NDMyLDEyMDoxMDI1LDEzNjoxMDQ5NjAxLDE1MjozMzU1NTQ1NiwxNjg6MzQ2MDMwMDgsMTg0OjEwNDg1NzcsMjAwOjEwMjQsMjE2OjM0NjA0MDMzLDIzMjoxLDI0ODoxMDQ5NjAwLDI1NjozMzU1NDQzMiwyNzI6MTA0ODU3NiwyODg6MzM1NTU0NTcsMzA0OjM0NjAzMDA5LDMyMDoxMDQ4NTc3LDMzNjozMzU1NTQ1NiwzNTI6MzQ2MDQwMzIsMzY4OjEwNDk2MDEsMzg0OjEwMjUsNDAwOjM0NjA0MDMzLDQxNjoxMDQ5NjAwLDQzMjoxLDQ0ODowLDQ2NDozNDYwMzAwOCw0ODA6MzM1NTQ0MzMsNDk2OjEwMjQsMjY0OjEwNDk2MDAsMjgwOjMzNTU1NDU3LDI5NjozNDYwMzAwOSwzMTI6MSwzMjg6MzM1NTQ0MzIsMzQ0OjEwNDg1NzYsMzYwOjEwMjUsMzc2OjM0NjA0MDMyLDM5MjozMzU1NDQzMyw0MDg6MzQ2MDMwMDgsNDI0OjAsNDQwOjM0NjA0MDMzLDQ1NjoxMDQ5NjAxLDQ3MjoxMDI0LDQ4ODozMzU1NTQ1Niw1MDQ6MTA0ODU3N30sezA6MTM0MjE5ODA4LDE6MTMxMDcyLDI6MTM0MjE3NzI4LDM6MzIsNDoxMzExMDQsNToxMzQzNTA4ODAsNjoxMzQzNTA4NDgsNzoyMDQ4LDg6MTM0MzQ4ODAwLDk6MTM0MjE5Nzc2LDEwOjEzMzEyMCwxMToxMzQzNDg4MzIsMTI6MjA4MCwxMzowLDE0OjEzNDIxNzc2MCwxNToxMzMxNTIsMjE0NzQ4MzY0ODoyMDQ4LDIxNDc0ODM2NDk6MTM0MzUwODgwLDIxNDc0ODM2NTA6MTM0MjE5ODA4LDIxNDc0ODM2NTE6MTM0MjE3NzI4LDIxNDc0ODM2NTI6MTM0MzQ4ODAwLDIxNDc0ODM2NTM6MTMzMTIwLDIxNDc0ODM2NTQ6MTMzMTUyLDIxNDc0ODM2NTU6MzIsMjE0NzQ4MzY1NjoxMzQyMTc3NjAsMjE0NzQ4MzY1NzoyMDgwLDIxNDc0ODM2NTg6MTMxMTA0LDIxNDc0ODM2NTk6MTM0MzUwODQ4LDIxNDc0ODM2NjA6MCwyMTQ3NDgzNjYxOjEzNDM0ODgzMiwyMTQ3NDgzNjYyOjEzNDIxOTc3NiwyMTQ3NDgzNjYzOjEzMTA3MiwxNjoxMzMxNTIsMTc6MTM0MzUwODQ4LDE4OjMyLDE5OjIwNDgsMjA6MTM0MjE5Nzc2LDIxOjEzNDIxNzc2MCwyMjoxMzQzNDg4MzIsMjM6MTMxMDcyLDI0OjAsMjU6MTMxMTA0LDI2OjEzNDM0ODgwMCwyNzoxMzQyMTk4MDgsMjg6MTM0MzUwODgwLDI5OjEzMzEyMCwzMDoyMDgwLDMxOjEzNDIxNzcyOCwyMTQ3NDgzNjY0OjEzMTA3MiwyMTQ3NDgzNjY1OjIwNDgsMjE0NzQ4MzY2NjoxMzQzNDg4MzIsMjE0NzQ4MzY2NzoxMzMxNTIsMjE0NzQ4MzY2ODozMiwyMTQ3NDgzNjY5OjEzNDM0ODgwMCwyMTQ3NDgzNjcwOjEzNDIxNzcyOCwyMTQ3NDgzNjcxOjEzNDIxOTgwOCwyMTQ3NDgzNjcyOjEzNDM1MDg4MCwyMTQ3NDgzNjczOjEzNDIxNzc2MCwyMTQ3NDgzNjc0OjEzNDIxOTc3NiwyMTQ3NDgzNjc1OjAsMjE0NzQ4MzY3NjoxMzMxMjAsMjE0NzQ4MzY3NzoyMDgwLDIxNDc0ODM2Nzg6MTMxMTA0LDIxNDc0ODM2Nzk6MTM0MzUwODQ4fV0sbD1bNDE2MDc0OTU2OSw1Mjg0ODIzMDQsMzMwMzAxNDQsMjA2NDM4NCwxMjkwMjQsODA2NCw1MDQsMjE0NzQ4MzY3OV0saD1pLkRFUz1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9W10scj0wO3I8NTY7cisrKXt2YXIgbj1zW3JdLTE7ZVtyXT10W24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxpPTA7aTwxNjtpKyspe3ZhciB1PW9baV09W10sbD1jW2ldO2ZvcihyPTA7cjwyNDtyKyspdVtyLzZ8MF18PWVbKGFbcl0tMStsKSUyOF08PDMxLXIlNix1WzQrKHIvNnwwKV18PWVbMjgrKGFbcisyNF0tMStsKSUyOF08PDMxLXIlNjtmb3IodVswXT11WzBdPDwxfHVbMF0+Pj4zMSxyPTE7cjw3O3IrKyl1W3JdPXVbcl0+Pj40KihyLTEpKzM7dVs3XT11WzddPDw1fHVbN10+Pj4yN312YXIgaD10aGlzLl9pbnZTdWJLZXlzPVtdO2ZvcihyPTA7cjwxNjtyKyspaFtyXT1vWzE1LXJdfSxlbmNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX3N1YktleXMpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxlLHRoaXMuX2ludlN1YktleXMpfSxfZG9DcnlwdEJsb2NrOmZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9sQmxvY2s9dFtlXSx0aGlzLl9yQmxvY2s9dFtlKzFdLGYuY2FsbCh0aGlzLDQsMjUyNjQ1MTM1KSxmLmNhbGwodGhpcywxNiw2NTUzNSkscC5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHAuY2FsbCh0aGlzLDgsMTY3MTE5MzUpLGYuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSk7Zm9yKHZhciBuPTA7bjwxNjtuKyspe2Zvcih2YXIgbz1yW25dLGk9dGhpcy5fbEJsb2NrLHM9dGhpcy5fckJsb2NrLGE9MCxjPTA7Yzw4O2MrKylhfD11W2NdWygoc15vW2NdKSZsW2NdKT4+PjBdO3RoaXMuX2xCbG9jaz1zLHRoaXMuX3JCbG9jaz1pXmF9dmFyIGg9dGhpcy5fbEJsb2NrO3RoaXMuX2xCbG9jaz10aGlzLl9yQmxvY2ssdGhpcy5fckJsb2NrPWgsZi5jYWxsKHRoaXMsMSwxNDMxNjU1NzY1KSxwLmNhbGwodGhpcyw4LDE2NzExOTM1KSxwLmNhbGwodGhpcywyLDg1ODk5MzQ1OSksZi5jYWxsKHRoaXMsMTYsNjU1MzUpLGYuY2FsbCh0aGlzLDQsMjUyNjQ1MTM1KSx0W2VdPXRoaXMuX2xCbG9jayx0W2UrMV09dGhpcy5fckJsb2NrfSxrZXlTaXplOjIsaXZTaXplOjIsYmxvY2tTaXplOjJ9KTtmdW5jdGlvbiBmKHQsZSl7dmFyIHI9KHRoaXMuX2xCbG9jaz4+PnRedGhpcy5fckJsb2NrKSZlO3RoaXMuX3JCbG9ja149cix0aGlzLl9sQmxvY2tePXI8PHR9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPSh0aGlzLl9yQmxvY2s+Pj50XnRoaXMuX2xCbG9jaykmZTt0aGlzLl9sQmxvY2tePXIsdGhpcy5fckJsb2NrXj1yPDx0fXQuREVTPW8uX2NyZWF0ZUhlbHBlcihoKTt2YXIgZD1pLlRyaXBsZURFUz1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9rZXkud29yZHM7dGhpcy5fZGVzMT1oLmNyZWF0ZUVuY3J5cHRvcihyLmNyZWF0ZSh0LnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWguY3JlYXRlRW5jcnlwdG9yKHIuY3JlYXRlKHQuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9aC5jcmVhdGVFbmNyeXB0b3Ioci5jcmVhdGUodC5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LGUpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsZSksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxlKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LGUpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxlKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LGUpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsZSksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxlKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7dC5UcmlwbGVERVM9by5fY3JlYXRlSGVscGVyKGQpfSgpLG4uVHJpcGxlREVTKX0sZnVuY3Rpb24odCxlLHIpe3ZhciBuO3QuZXhwb3J0cz0obj1yKDApLHIoNikscig3KSxyKDUpLHIoMSksZnVuY3Rpb24oKXt2YXIgdD1uLGU9dC5saWIuU3RyZWFtQ2lwaGVyLHI9dC5hbGdvLG89ci5SQzQ9ZS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2tleSxlPXQud29yZHMscj10LnNpZ0J5dGVzLG49dGhpcy5fUz1bXSxvPTA7bzwyNTY7bysrKW5bb109bztvPTA7Zm9yKHZhciBpPTA7bzwyNTY7bysrKXt2YXIgcz1vJXIsYT1lW3M+Pj4yXT4+PjI0LXMlNCo4JjI1NTtpPShpK25bb10rYSklMjU2O3ZhciBjPW5bb107bltvXT1uW2ldLG5baV09Y310aGlzLl9pPXRoaXMuX2o9MH0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dFtlXV49aS5jYWxsKHRoaXMpfSxrZXlTaXplOjgsaXZTaXplOjB9KTtmdW5jdGlvbiBpKCl7Zm9yKHZhciB0PXRoaXMuX1MsZT10aGlzLl9pLHI9dGhpcy5faixuPTAsbz0wO288NDtvKyspe3I9KHIrdFtlPShlKzEpJTI1Nl0pJTI1Njt2YXIgaT10W2VdO3RbZV09dFtyXSx0W3JdPWksbnw9dFsodFtlXSt0W3JdKSUyNTZdPDwyNC04Km99cmV0dXJuIHRoaXMuX2k9ZSx0aGlzLl9qPXIsbn10LlJDND1lLl9jcmVhdGVIZWxwZXIobyk7dmFyIHM9ci5SQzREcm9wPW8uZXh0ZW5kKHtjZmc6by5jZmcuZXh0ZW5kKHtkcm9wOjE5Mn0pLF9kb1Jlc2V0OmZ1bmN0aW9uKCl7by5fZG9SZXNldC5jYWxsKHRoaXMpO2Zvcih2YXIgdD10aGlzLmNmZy5kcm9wO3Q+MDt0LS0paS5jYWxsKHRoaXMpfX0pO3QuUkM0RHJvcD1lLl9jcmVhdGVIZWxwZXIocyl9KCksbi5SQzQpfSxmdW5jdGlvbih0LGUscil7dmFyIG47dC5leHBvcnRzPShuPXIoMCkscig2KSxyKDcpLHIoNSkscigxKSxmdW5jdGlvbigpe3ZhciB0PW4sZT10LmxpYi5TdHJlYW1DaXBoZXIscj10LmFsZ28sbz1bXSxpPVtdLHM9W10sYT1yLlJhYmJpdD1lLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYscj0wO3I8NDtyKyspdFtyXT0xNjcxMTkzNSYodFtyXTw8OHx0W3JdPj4+MjQpfDQyNzgyNTUzNjAmKHRbcl08PDI0fHRbcl0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO2Zvcih0aGlzLl9iPTAscj0wO3I8NDtyKyspYy5jYWxsKHRoaXMpO2ZvcihyPTA7cjw4O3IrKylvW3JdXj1uW3IrNCY3XTtpZihlKXt2YXIgaT1lLndvcmRzLHM9aVswXSxhPWlbMV0sdT0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSxsPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGg9dT4+PjE2fDQyOTQ5MDE3NjAmbCxmPWw8PDE2fDY1NTM1JnU7Zm9yKG9bMF1ePXUsb1sxXV49aCxvWzJdXj1sLG9bM11ePWYsb1s0XV49dSxvWzVdXj1oLG9bNl1ePWwsb1s3XV49ZixyPTA7cjw0O3IrKyljLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9YO2MuY2FsbCh0aGlzKSxvWzBdPXJbMF1ecls1XT4+PjE2XnJbM108PDE2LG9bMV09clsyXV5yWzddPj4+MTZecls1XTw8MTYsb1syXT1yWzRdXnJbMV0+Pj4xNl5yWzddPDwxNixvWzNdPXJbNl1eclszXT4+PjE2XnJbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspb1tuXT0xNjcxMTkzNSYob1tuXTw8OHxvW25dPj4+MjQpfDQyNzgyNTUzNjAmKG9bbl08PDI0fG9bbl0+Pj44KSx0W2Urbl1ePW9bbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZnVuY3Rpb24gYygpe2Zvcih2YXIgdD10aGlzLl9YLGU9dGhpcy5fQyxyPTA7cjw4O3IrKylpW3JdPWVbcl07Zm9yKGVbMF09ZVswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxlWzFdPWVbMV0rMzU0NTA1MjM3MSsoZVswXT4+PjA8aVswXT4+PjA/MTowKXwwLGVbMl09ZVsyXSs4ODYyNjMwOTIrKGVbMV0+Pj4wPGlbMV0+Pj4wPzE6MCl8MCxlWzNdPWVbM10rMTI5NTMwNzU5NysoZVsyXT4+PjA8aVsyXT4+PjA/MTowKXwwLGVbNF09ZVs0XSszNTQ1MDUyMzcxKyhlWzNdPj4+MDxpWzNdPj4+MD8xOjApfDAsZVs1XT1lWzVdKzg4NjI2MzA5MisoZVs0XT4+PjA8aVs0XT4+PjA/MTowKXwwLGVbNl09ZVs2XSsxMjk1MzA3NTk3KyhlWzVdPj4+MDxpWzVdPj4+MD8xOjApfDAsZVs3XT1lWzddKzM1NDUwNTIzNzErKGVbNl0+Pj4wPGlbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPWVbN10+Pj4wPGlbN10+Pj4wPzE6MCxyPTA7cjw4O3IrKyl7dmFyIG49dFtyXStlW3JdLG89NjU1MzUmbixhPW4+Pj4xNixjPSgobypvPj4+MTcpK28qYT4+PjE1KSthKmEsdT0oKDQyOTQ5MDE3NjAmbikqbnwwKSsoKDY1NTM1Jm4pKm58MCk7c1tyXT1jXnV9dFswXT1zWzBdKyhzWzddPDwxNnxzWzddPj4+MTYpKyhzWzZdPDwxNnxzWzZdPj4+MTYpfDAsdFsxXT1zWzFdKyhzWzBdPDw4fHNbMF0+Pj4yNCkrc1s3XXwwLHRbMl09c1syXSsoc1sxXTw8MTZ8c1sxXT4+PjE2KSsoc1swXTw8MTZ8c1swXT4+PjE2KXwwLHRbM109c1szXSsoc1syXTw8OHxzWzJdPj4+MjQpK3NbMV18MCx0WzRdPXNbNF0rKHNbM108PDE2fHNbM10+Pj4xNikrKHNbMl08PDE2fHNbMl0+Pj4xNil8MCx0WzVdPXNbNV0rKHNbNF08PDh8c1s0XT4+PjI0KStzWzNdfDAsdFs2XT1zWzZdKyhzWzVdPDwxNnxzWzVdPj4+MTYpKyhzWzRdPDwxNnxzWzRdPj4+MTYpfDAsdFs3XT1zWzddKyhzWzZdPDw4fHNbNl0+Pj4yNCkrc1s1XXwwfXQuUmFiYml0PWUuX2NyZWF0ZUhlbHBlcihhKX0oKSxuLlJhYmJpdCl9LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjt0LmV4cG9ydHM9KG49cigwKSxyKDYpLHIoNykscig1KSxyKDEpLGZ1bmN0aW9uKCl7dmFyIHQ9bixlPXQubGliLlN0cmVhbUNpcGhlcixyPXQuYWxnbyxvPVtdLGk9W10scz1bXSxhPXIuUmFiYml0TGVnYWN5PWUuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleS53b3JkcyxlPXRoaXMuY2ZnLml2LHI9dGhpcy5fWD1bdFswXSx0WzNdPDwxNnx0WzJdPj4+MTYsdFsxXSx0WzBdPDwxNnx0WzNdPj4+MTYsdFsyXSx0WzFdPDwxNnx0WzBdPj4+MTYsdFszXSx0WzJdPDwxNnx0WzFdPj4+MTZdLG49dGhpcy5fQz1bdFsyXTw8MTZ8dFsyXT4+PjE2LDQyOTQ5MDE3NjAmdFswXXw2NTUzNSZ0WzFdLHRbM108PDE2fHRbM10+Pj4xNiw0Mjk0OTAxNzYwJnRbMV18NjU1MzUmdFsyXSx0WzBdPDwxNnx0WzBdPj4+MTYsNDI5NDkwMTc2MCZ0WzJdfDY1NTM1JnRbM10sdFsxXTw8MTZ8dFsxXT4+PjE2LDQyOTQ5MDE3NjAmdFszXXw2NTUzNSZ0WzBdXTt0aGlzLl9iPTA7Zm9yKHZhciBvPTA7bzw0O28rKyljLmNhbGwodGhpcyk7Zm9yKG89MDtvPDg7bysrKW5bb11ePXJbbys0JjddO2lmKGUpe3ZhciBpPWUud29yZHMscz1pWzBdLGE9aVsxXSx1PTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLGw9MTY3MTE5MzUmKGE8PDh8YT4+PjI0KXw0Mjc4MjU1MzYwJihhPDwyNHxhPj4+OCksaD11Pj4+MTZ8NDI5NDkwMTc2MCZsLGY9bDw8MTZ8NjU1MzUmdTtmb3IoblswXV49dSxuWzFdXj1oLG5bMl1ePWwsblszXV49ZixuWzRdXj11LG5bNV1ePWgsbls2XV49bCxuWzddXj1mLG89MDtvPDQ7bysrKWMuY2FsbCh0aGlzKX19LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX1g7Yy5jYWxsKHRoaXMpLG9bMF09clswXV5yWzVdPj4+MTZeclszXTw8MTYsb1sxXT1yWzJdXnJbN10+Pj4xNl5yWzVdPDwxNixvWzJdPXJbNF1eclsxXT4+PjE2XnJbN108PDE2LG9bM109cls2XV5yWzNdPj4+MTZeclsxXTw8MTY7Zm9yKHZhciBuPTA7bjw0O24rKylvW25dPTE2NzExOTM1JihvW25dPDw4fG9bbl0+Pj4yNCl8NDI3ODI1NTM2MCYob1tuXTw8MjR8b1tuXT4+PjgpLHRbZStuXV49b1tuXX0sYmxvY2tTaXplOjQsaXZTaXplOjJ9KTtmdW5jdGlvbiBjKCl7Zm9yKHZhciB0PXRoaXMuX1gsZT10aGlzLl9DLHI9MDtyPDg7cisrKWlbcl09ZVtyXTtmb3IoZVswXT1lWzBdKzEyOTUzMDc1OTcrdGhpcy5fYnwwLGVbMV09ZVsxXSszNTQ1MDUyMzcxKyhlWzBdPj4+MDxpWzBdPj4+MD8xOjApfDAsZVsyXT1lWzJdKzg4NjI2MzA5MisoZVsxXT4+PjA8aVsxXT4+PjA/MTowKXwwLGVbM109ZVszXSsxMjk1MzA3NTk3KyhlWzJdPj4+MDxpWzJdPj4+MD8xOjApfDAsZVs0XT1lWzRdKzM1NDUwNTIzNzErKGVbM10+Pj4wPGlbM10+Pj4wPzE6MCl8MCxlWzVdPWVbNV0rODg2MjYzMDkyKyhlWzRdPj4+MDxpWzRdPj4+MD8xOjApfDAsZVs2XT1lWzZdKzEyOTUzMDc1OTcrKGVbNV0+Pj4wPGlbNV0+Pj4wPzE6MCl8MCxlWzddPWVbN10rMzU0NTA1MjM3MSsoZVs2XT4+PjA8aVs2XT4+PjA/MTowKXwwLHRoaXMuX2I9ZVs3XT4+PjA8aVs3XT4+PjA/MTowLHI9MDtyPDg7cisrKXt2YXIgbj10W3JdK2Vbcl0sbz02NTUzNSZuLGE9bj4+PjE2LGM9KChvKm8+Pj4xNykrbyphPj4+MTUpK2EqYSx1PSgoNDI5NDkwMTc2MCZuKSpufDApKygoNjU1MzUmbikqbnwwKTtzW3JdPWNedX10WzBdPXNbMF0rKHNbN108PDE2fHNbN10+Pj4xNikrKHNbNl08PDE2fHNbNl0+Pj4xNil8MCx0WzFdPXNbMV0rKHNbMF08PDh8c1swXT4+PjI0KStzWzddfDAsdFsyXT1zWzJdKyhzWzFdPDwxNnxzWzFdPj4+MTYpKyhzWzBdPDwxNnxzWzBdPj4+MTYpfDAsdFszXT1zWzNdKyhzWzJdPDw4fHNbMl0+Pj4yNCkrc1sxXXwwLHRbNF09c1s0XSsoc1szXTw8MTZ8c1szXT4+PjE2KSsoc1syXTw8MTZ8c1syXT4+PjE2KXwwLHRbNV09c1s1XSsoc1s0XTw8OHxzWzRdPj4+MjQpK3NbM118MCx0WzZdPXNbNl0rKHNbNV08PDE2fHNbNV0+Pj4xNikrKHNbNF08PDE2fHNbNF0+Pj4xNil8MCx0WzddPXNbN10rKHNbNl08PDh8c1s2XT4+PjI0KStzWzVdfDB9dC5SYWJiaXRMZWdhY3k9ZS5fY3JlYXRlSGVscGVyKGEpfSgpLG4uUmFiYml0TGVnYWN5KX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO3ZhciBuPXRoaXMmJnRoaXMuX19kZWNvcmF0ZXx8ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8saT1hcmd1bWVudHMubGVuZ3RoLHM9aTwzP2U6bnVsbD09PW4/bj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscik6bjtpZihcIm9iamVjdFwiPT10eXBlb2YgUmVmbGVjdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSlzPVJlZmxlY3QuZGVjb3JhdGUodCxlLHIsbik7ZWxzZSBmb3IodmFyIGE9dC5sZW5ndGgtMTthPj0wO2EtLSkobz10W2FdKSYmKHM9KGk8Mz9vKHMpOmk+Mz9vKGUscixzKTpvKGUscikpfHxzKTtyZXR1cm4gaT4zJiZzJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHMpLHN9LG89dGhpcyYmdGhpcy5fX21ldGFkYXRhfHxmdW5jdGlvbih0LGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKHQsZSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IGk9cig1Nikscz1yKDEzKSxhPXIoOSksYz1yKDIxKSx1PXIoNTgpLGw9cig1OSk7ZnVuY3Rpb24gaCh0LGUpe2NvbnN0IHI9Yy5ldGhbZV07aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCB0aGUgbWV0aG9kL3Byb3BlcnR5IG5hbWVkICR7ZS50b1N0cmluZygpfWApO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHIuZXhlY3V0ZS5jYWxsKHIsdGhpcywuLi5hcmd1bWVudHMpfX0pfWUuVFJBTlNBQ1RJT05fRkVUQ0hfREVMQVk9MmUzLGUuaW5qZWN0PWg7Y2xhc3MgZntjb25zdHJ1Y3Rvcih0KXt0aGlzLnByb3ZpZGVyPXQsdGhpcy5yZXF1ZXN0cz1uZXcgTWFwfWFzeW5jIHNlbmRBc3luYyh0KXtpZighdGhpcy5wcm92aWRlcil0aHJvdyBzLkludmFsaWRQcm92aWRlcigpO2xldCBlPWkudG9QYXlsb2FkKHQubWV0aG9kLHQucGFyYW1zKTtjb25zdCByPWEuZnV0dXJlKCk7cmV0dXJuIHRoaXMucmVxdWVzdHMuc2V0KGUuaWQsciksdGhpcy5wcm92aWRlci5zZW5kQXN5bmMoZSwodCxuKT0+e3RoaXMucmVxdWVzdHMuZGVsZXRlKGUuaWQpLHQ/ci5yZWplY3QodCk6aS5pc1ZhbGlkUmVzcG9uc2Uobik/ci5yZXNvbHZlKG4ucmVzdWx0KTpyLnJlamVjdChzLkludmFsaWRSZXNwb25zZShuKSl9KSxyfXNldFByb3ZpZGVyKHQpe3RoaXMucHJvdmlkZXI9dH1hc3luYyBnZXRDb25maXJtZWRUcmFuc2FjdGlvbih0KXtjb25zdCBlPWF3YWl0IHRoaXMud2FpdEZvckNvbXBsZXRpb24odCk7aWYodGhpcy5pc0ZhaWx1cmUoZSkpdGhyb3cgbmV3IEVycm9yKGBUcmFuc2FjdGlvbiBcIiR7dH1cIiBmYWlsZWRgKTtyZXR1cm4gZX1hc3luYyB3YWl0Rm9yQ29tcGxldGlvbih0LHIpe2lmKGF3YWl0IHRoaXMuaXNUeERyb3BwZWQodCxyKSl7Y29uc3QgZT1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uQW5kUmVjZWlwdCh0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxlLHtzdGF0dXM6dS5UcmFuc2FjdGlvblN0YXR1cy5mYWlsZWR9KX1mb3IoOzspe2NvbnN0IHI9YXdhaXQgdGhpcy5nZXRUcmFuc2FjdGlvbkFuZFJlY2VpcHQodCk7aWYoIXRoaXMuaXNQZW5kaW5nKHIpJiZyLnJlY2VpcHQpcmV0dXJuIE9iamVjdC5hc3NpZ24oe30scix7c3RhdHVzOnRoaXMuaXNGYWlsdXJlKHIpP3UuVHJhbnNhY3Rpb25TdGF0dXMuZmFpbGVkOnUuVHJhbnNhY3Rpb25TdGF0dXMuY29uZmlybWVkfSk7YXdhaXQgbC5zbGVlcChlLlRSQU5TQUNUSU9OX0ZFVENIX0RFTEFZKX19YXN5bmMgZ2V0VHJhbnNhY3Rpb24odCl7bGV0IGUscixuO3RyeXtjb25zdCB0PShhd2FpdCB0aGlzLmV0aF9hY2NvdW50cygpKVswXTt0JiYoZT1hd2FpdCB0aGlzLmV0aF9nZXRUcmFuc2FjdGlvbkNvdW50KHQsXCJsYXRlc3RcIikpfWNhdGNoKHQpe2U9bnVsbH10cnl7aWYobnVsbD09KHI9YXdhaXQgdGhpcy5ldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2godCkpKXJldHVybiBudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfWlmKG51bGw9PXIuYmxvY2tOdW1iZXIpe2lmKG51bGwhPWUpe2lmKHIubm9uY2U8ZSl7cmV0dXJue2hhc2g6dCx0eXBlOnUuVHJhbnNhY3Rpb25UeXBlLnJlcGxhY2VkLG5vbmNlOnIubm9uY2V9fWlmKHIubm9uY2U+ZSl7cmV0dXJue2hhc2g6dCx0eXBlOnUuVHJhbnNhY3Rpb25UeXBlLnF1ZXVlZCxub25jZTpyLm5vbmNlfX19cmV0dXJuIE9iamVjdC5hc3NpZ24oe3R5cGU6dS5UcmFuc2FjdGlvblR5cGUucGVuZGluZ30scil9dHJ5e2lmKG51bGw9PShuPWF3YWl0IHRoaXMuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdCh0KSl8fDA9PT1uLnN0YXR1cyl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe3R5cGU6dS5UcmFuc2FjdGlvblR5cGUucmV2ZXJ0ZWR9LHIpfX1jYXRjaCh0KXtyZXR1cm4gbnVsbH1yZXR1cm4gT2JqZWN0LmFzc2lnbih7dHlwZTp1LlRyYW5zYWN0aW9uVHlwZS5jb25maXJtZWR9LHIse3JlY2VpcHQ6bn0pfWFzeW5jIGlzVHhEcm9wcGVkKHQscj0xNSl7bGV0IG49cjtmb3IoO24+MDspe2lmKG51bGwhPT1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uQW5kUmVjZWlwdCh0KSlyZXR1cm4hMTtuLT0xLGF3YWl0IGwuc2xlZXAoZS5UUkFOU0FDVElPTl9GRVRDSF9ERUxBWSl9cmV0dXJuITB9YXN5bmMgZ2V0VHJhbnNhY3Rpb25BbmRSZWNlaXB0KHQpe2NvbnN0W2Uscl09YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoKHQpLHRoaXMuZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdCh0KV0pO3JldHVybiBlP09iamVjdC5hc3NpZ24oe30sZSx7cmVjZWlwdDpyfSk6bnVsbH1pc1BlbmRpbmcodCl7cmV0dXJuIHQmJm51bGw9PT10LmJsb2NrTnVtYmVyfWlzRmFpbHVyZSh0KXtyZXR1cm4gdCYmKCF0LnJlY2VpcHR8fDA9PT10LnJlY2VpcHQuc3RhdHVzKX19bihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwid2ViM19jbGllbnRWZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJ3ZWIzX3NoYTNcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcIm5ldF92ZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJuZXRfcGVlckNvdW50XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJuZXRfbGlzdGVuaW5nXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfcHJvdG9jb2xWZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc3luY2luZ1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2NvaW5iYXNlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfbWluaW5nXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfaGFzaHJhdGVcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nYXNQcmljZVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2FjY291bnRzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfYmxvY2tOdW1iZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRCYWxhbmNlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0U3RvcmFnZUF0XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25Db3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5SGFzaFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrVHJhbnNhY3Rpb25Db3VudEJ5TnVtYmVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VW5jbGVDb3VudEJ5QmxvY2tOdW1iZXJcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRDb2RlXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfc2lnblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3NlbmRUcmFuc2FjdGlvblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3NlbmRSYXdUcmFuc2FjdGlvblwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2NhbGxcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9lc3RpbWF0ZUdhc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEJsb2NrQnlIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0QmxvY2tCeU51bWJlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldFRyYW5zYWN0aW9uQnlIYXNoXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXhcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRUcmFuc2FjdGlvblJlY2VpcHRcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRVbmNsZUJ5QmxvY2tIYXNoQW5kSW5kZXhcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRVbmNsZUJ5QmxvY2tOdW1iZXJBbmRJbmRleFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX25ld0ZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX25ld0Jsb2NrRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfbmV3UGVuZGluZ1RyYW5zYWN0aW9uRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfdW5pbnN0YWxsRmlsdGVyXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0RmlsdGVyQ2hhbmdlc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX2dldEZpbHRlckxvZ3NcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9nZXRMb2dzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJldGhfZ2V0V29ya1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwiZXRoX3N1Ym1pdFdvcmtcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcImV0aF9zdWJtaXRIYXNocmF0ZVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX3Bvc3RcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF92ZXJzaW9uXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfbmV3SWRlbnRpdHlcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF9oYXNJZGVudGl0eVwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX25ld0dyb3VwXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJzaGhfYWRkVG9Hcm91cFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX25ld0ZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX3VuaW5zdGFsbEZpbHRlclwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwic2hoX2dldEZpbHRlckNoYW5nZXNcIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInNoaF9nZXRNZXNzYWdlc1wiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfdW5sb2NrQWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfbmV3QWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfbGlzdEFjY291bnRzXCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9sb2NrQWNjb3VudFwiLHZvaWQgMCksbihbaCxvKFwiZGVzaWduOnR5cGVcIixGdW5jdGlvbildLGYucHJvdG90eXBlLFwicGVyc29uYWxfaW1wb3J0UmF3S2V5XCIsdm9pZCAwKSxuKFtoLG8oXCJkZXNpZ246dHlwZVwiLEZ1bmN0aW9uKV0sZi5wcm90b3R5cGUsXCJwZXJzb25hbF9zZW5kVHJhbnNhY3Rpb25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInBlcnNvbmFsX3NpZ25cIix2b2lkIDApLG4oW2gsbyhcImRlc2lnbjp0eXBlXCIsRnVuY3Rpb24pXSxmLnByb3RvdHlwZSxcInBlcnNvbmFsX2VjUmVjb3ZlclwiLHZvaWQgMCksZS5SZXF1ZXN0TWFuYWdlcj1mfSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbih0LHIpe2lmKCF0KXRocm93IG5ldyBFcnJvcihcImpzb25ycGMgbWV0aG9kIHNob3VsZCBiZSBzcGVjaWZpZWQhXCIpO2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihganNvbnJwYyBtdXN0IGJlIGEgc3RyaW5nLCBnb3QgJHt0eXBlb2YgdH0hYCk7cmV0dXJuIGUubWVzc2FnZUlkKysse2pzb25ycGM6XCIyLjBcIixpZDplLm1lc3NhZ2VJZCxtZXRob2Q6dCxwYXJhbXM6cnx8W119fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUubWVzc2FnZUlkPTAsZS50b1BheWxvYWQ9bixlLmlzVmFsaWRSZXNwb25zZT1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LmV2ZXJ5KGUpOmUodCk7ZnVuY3Rpb24gZSh0KXtyZXR1cm4hKCF0fHx0LmVycm9yfHxcIjIuMFwiIT09dC5qc29ucnBjfHxcIm51bWJlclwiIT10eXBlb2YgdC5pZHx8bnVsbD09dC5yZXN1bHQmJnZvaWQgMD09PXQucmVzdWx0KX19LGUudG9CYXRjaFBheWxvYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQubWV0aG9kLHQucGFyYW1zKX0pfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGZ1bmN0aW9uKHQpe3RbdC5ST1VORF9VUD0wXT1cIlJPVU5EX1VQXCIsdFt0LlJPVU5EX0RPV049MV09XCJST1VORF9ET1dOXCIsdFt0LlJPVU5EX0NFPTJdPVwiUk9VTkRfQ0VcIix0W3QuUk9VTkRfRkxPT1I9M109XCJST1VORF9GTE9PUlwiLHRbdC5ST1VORF9IQUxGX1VQPTRdPVwiUk9VTkRfSEFMRl9VUFwiLHRbdC5ST1VORF9IQUxGX0RPV049NV09XCJST1VORF9IQUxGX0RPV05cIix0W3QuUk9VTkRfSEFMRl9FVkVOPTZdPVwiUk9VTkRfSEFMRl9FVkVOXCIsdFt0LlJPVU5EX0hBTEZfQ0VJTD03XT1cIlJPVU5EX0hBTEZfQ0VJTFwiLHRbdC5ST1VORF9IQUxGX0ZMT09SPThdPVwiUk9VTkRfSEFMRl9GTE9PUlwifShlLkJpZ051bWJlclJvdW5kaW5nTW9kZXx8KGUuQmlnTnVtYmVyUm91bmRpbmdNb2RlPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXt0LnBlbmRpbmc9XCJwZW5kaW5nXCIsdC5jb25maXJtZWQ9XCJjb25maXJtZWRcIix0LmZhaWxlZD1cImZhaWxlZFwifShlLlRyYW5zYWN0aW9uU3RhdHVzfHwoZS5UcmFuc2FjdGlvblN0YXR1cz17fSkpLGZ1bmN0aW9uKHQpe3QucXVldWVkPVwicXVldWVkXCIsdC5kcm9wcGVkPVwiZHJvcHBlZFwiLHQucmVwbGFjZWQ9XCJyZXBsYWNlZFwiLHQucGVuZGluZz1cInBlbmRpbmdcIix0LnJldmVydGVkPVwicmV2ZXJ0ZWRcIix0LmNvbmZpcm1lZD1cImNvbmZpcm1lZFwifShlLlRyYW5zYWN0aW9uVHlwZXx8KGUuVHJhbnNhY3Rpb25UeXBlPXt9KSl9LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlLnNsZWVwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KGUsdCkpfX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoOCksaT1yKDEzKSxzPXIoMTUpO2UuU29saWRpdHlGdW5jdGlvbj1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuanNvbj1lLHRoaXMuX2lucHV0VHlwZXM9ZS5pbnB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KSx0aGlzLl9vdXRwdXRUeXBlcz1lLm91dHB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KSx0aGlzLl9jb25zdGFudD1lLmNvbnN0YW50LHRoaXMuX3BheWFibGU9ZS5wYXlhYmxlLHRoaXMubmVlZHNUb0JlVHJhbnNhY3Rpb249XCJwYXlhYmxlXCJpbiBlJiZlLnBheWFibGV8fFwiY29uc3RhbnRcImluIGUmJiFlLmNvbnN0YW50fHxcInN0YXRlTXV0YWJpbGl0eVwiaW4gZSYmXCJub25wYXlhYmxlXCI9PT1lLnN0YXRlTXV0YWJpbGl0eSx0aGlzLl9uYW1lPW4udHJhbnNmb3JtVG9GdWxsTmFtZShlKSx0aGlzLl9hZGRyZXNzPXJ9ZXh0cmFjdERlZmF1bHRCbG9jayh0KXtpZih0Lmxlbmd0aD50aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCYmIW4uaXNPYmplY3QodFt0Lmxlbmd0aC0xXSkpcmV0dXJuIG8uaW5wdXREZWZhdWx0QmxvY2tOdW1iZXJGb3JtYXR0ZXIodC5wb3AoKSl9dmFsaWRhdGVBcmdzKHQpe2lmKHQuc29tZSh0PT52b2lkIDA9PT10KSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNhbGwsIHNvbWUgYXJndW1lbnRzIGFyZSB1bmRlZmluZWRcIik7bGV0IGU9dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuISghMD09PW4uaXNPYmplY3QodCkmJiExPT09bi5pc0FycmF5KHQpJiYhMT09PW4uaXNCaWdOdW1iZXIodCkpfSk7aWYoZS5sZW5ndGghPT10aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCl0aHJvdyBpLkludmFsaWROdW1iZXJPZlNvbGlkaXR5QXJncyhlLmxlbmd0aCx0aGlzLl9pbnB1dFR5cGVzLmxlbmd0aCl9dG9QYXlsb2FkKHQpe2xldCBlPXt0bzp2b2lkIDAsZGF0YTp2b2lkIDAsdmFsdWU6dm9pZCAwLGZyb206dm9pZCAwfTtyZXR1cm4gdC5sZW5ndGg+dGhpcy5faW5wdXRUeXBlcy5sZW5ndGgmJm4uaXNPYmplY3QodFt0Lmxlbmd0aC0xXSkmJihlPXRbdC5sZW5ndGgtMV0pLHRoaXMudmFsaWRhdGVBcmdzKHQpLGUudG89dGhpcy5fYWRkcmVzcyxlLmRhdGE9XCIweFwiK3RoaXMuc2lnbmF0dXJlKCkrcy5jb2Rlci5lbmNvZGVQYXJhbXModGhpcy5faW5wdXRUeXBlcyx0KSxlfXNpZ25hdHVyZSgpe3JldHVybiBuLnNoYTModGhpcy5fbmFtZSkuc2xpY2UoMCw4KX11bnBhY2tPdXRwdXQodCl7aWYoIXQpcmV0dXJuO2NvbnN0IGU9dC5sZW5ndGg+PTI/dC5zbGljZSgyKTp0O2xldCByPXMuY29kZXIuZGVjb2RlUGFyYW1zKHRoaXMuX291dHB1dFR5cGVzLGUpO3JldHVybiAxPT09ci5sZW5ndGg/clswXTpyfWFzeW5jIGV4ZWN1dGUodCwuLi5lKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjYWxsIGZ1bmN0aW9uICR7dGhpcy5kaXNwbGF5TmFtZSgpfSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlcXVlc3RNYW5hZ2VyYCk7aWYodGhpcy5uZWVkc1RvQmVUcmFuc2FjdGlvbil7Y29uc3Qgcj10aGlzLnRvUGF5bG9hZChlKTtpZihyLnZhbHVlPjAmJiF0aGlzLl9wYXlhYmxlKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBzZW5kIHZhbHVlIHRvIG5vbi1wYXlhYmxlIGZ1bmN0aW9uXCIpO2lmKCFyLmZyb20pdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFwiZnJvbVwiIGluIHRyYW5zYWN0aW9uIG9wdGlvbnMnKTtyZXR1cm4gYXdhaXQgdC5ldGhfc2VuZFRyYW5zYWN0aW9uKHIpfXtjb25zdCByPXRoaXMuZXh0cmFjdERlZmF1bHRCbG9jayhlKSxuPXRoaXMudG9QYXlsb2FkKGUpLG89YXdhaXQgdC5ldGhfY2FsbChuLHIpO3JldHVybiB0aGlzLnVucGFja091dHB1dChvKX19ZXN0aW1hdGVHYXMoLi4udCl7bGV0IGU9dGhpcy50b1BheWxvYWQodCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIuZXRoX2VzdGltYXRlR2FzKGUpfWdldERhdGEoLi4udCl7cmV0dXJuIHRoaXMudG9QYXlsb2FkKHQpLmRhdGF9ZGlzcGxheU5hbWUoKXtyZXR1cm4gbi5leHRyYWN0RGlzcGxheU5hbWUodGhpcy5fbmFtZSl9dHlwZU5hbWUoKXtyZXR1cm4gbi5leHRyYWN0VHlwZU5hbWUodGhpcy5fbmFtZSl8fFwidm9pZFwifWF0dGFjaFRvQ29udHJhY3QodCl7bGV0IGU9dGhpcy5kaXNwbGF5TmFtZSgpO2NvbnN0IHI9dGhpcyxuPU9iamVjdC5hc3NpZ24oZnVuY3Rpb24oLi4udCl7Y29uc3QgZT10aGlzLnJlcXVlc3RNYW5hZ2VyfHxyLnJlcXVlc3RNYW5hZ2VyO3JldHVybiByLmV4ZWN1dGUoZSwuLi50KX0se2VzdGltYXRlR2FzOnRoaXMuZXN0aW1hdGVHYXMuYmluZCh0aGlzKX0pO3RbZV18fCh0W2VdPW4pLHRbZV1bdGhpcy50eXBlTmFtZSgpXT1ufX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlQWRkcmVzcz1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRJbnQsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0QWRkcmVzc30pfWlzVHlwZSh0KXtyZXR1cm4hIXQubWF0Y2goL2FkZHJlc3MoXFxbKFswLTldKilcXF0pPy8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlQm9vbD1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRCb29sLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dEJvb2x9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9eYm9vbChcXFsoWzAtOV0qKVxcXSkqJC8pfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlSW50PWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEludCxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRJbnR9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9eaW50KFswLTldKik/KFxcWyhbMC05XSopXFxdKSokLyl9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigyKSxvPXIoNCk7ZS5Tb2xpZGl0eVR5cGVVSW50PWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEludCxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRVSW50fSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXnVpbnQoWzAtOV0qKT8oXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZUR5bmFtaWNCeXRlcz1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXREeW5hbWljQnl0ZXMsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0RHluYW1pY0J5dGVzfSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXmJ5dGVzKFxcWyhbMC05XSopXFxdKSokLyl9aXNEeW5hbWljVHlwZSgpe3JldHVybiEwfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlU3RyaW5nPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dFN0cmluZyxvdXRwdXRGb3JtYXR0ZXI6bi5mb3JtYXRPdXRwdXRTdHJpbmd9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9ec3RyaW5nKFxcWyhbMC05XSopXFxdKSokLyl9aXNEeW5hbWljVHlwZSgpe3JldHVybiEwfX19LGZ1bmN0aW9uKHQsZSxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCBuPXIoMiksbz1yKDQpO2UuU29saWRpdHlUeXBlUmVhbD1jbGFzcyBleHRlbmRzIG8uU29saWRpdHlUeXBle2NvbnN0cnVjdG9yKCl7c3VwZXIoe2lucHV0Rm9ybWF0dGVyOm4uZm9ybWF0SW5wdXRSZWFsLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dFJlYWx9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9yZWFsKFswLTldKik/KFxcWyhbMC05XSopXFxdKT8vKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZVVSZWFsPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dFJlYWwsb3V0cHV0Rm9ybWF0dGVyOm4uZm9ybWF0T3V0cHV0VVJlYWx9KX1pc1R5cGUodCl7cmV0dXJuISF0Lm1hdGNoKC9edXJlYWwoWzAtOV0qKT8oXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDIpLG89cig0KTtlLlNvbGlkaXR5VHlwZUJ5dGVzPWNsYXNzIGV4dGVuZHMgby5Tb2xpZGl0eVR5cGV7Y29uc3RydWN0b3IoKXtzdXBlcih7aW5wdXRGb3JtYXR0ZXI6bi5mb3JtYXRJbnB1dEJ5dGVzLG91dHB1dEZvcm1hdHRlcjpuLmZvcm1hdE91dHB1dEJ5dGVzfSl9aXNUeXBlKHQpe3JldHVybiEhdC5tYXRjaCgvXmJ5dGVzKFswLTldezEsfSkoXFxbKFswLTldKilcXF0pKiQvKX19fSxmdW5jdGlvbih0LGUscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbj1yKDMpLG89cig4KSxpPXIoMjYpLHM9cigyNyk7ZS5BbGxTb2xpZGl0eUV2ZW50cz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5fcmVxdWVzdE1hbmFnZXI9dCx0aGlzLl9qc29uPWUsdGhpcy5fYWRkcmVzcz1yfWVuY29kZSh0PXt9KXtsZXQgZT17YWRkcmVzczp0aGlzLl9hZGRyZXNzfTtyZXR1cm5bXCJmcm9tQmxvY2tcIixcInRvQmxvY2tcIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSkuZm9yRWFjaChmdW5jdGlvbihyKXtlW3JdPW8uaW5wdXRCbG9ja051bWJlckZvcm1hdHRlcih0W3JdKX0pLGV9ZGVjb2RlKHQpe3QuZGF0YT10LmRhdGF8fFwiXCI7bGV0IGU9bi5pc0FycmF5KHQudG9waWNzKSYmbi5pc1N0cmluZyh0LnRvcGljc1swXSk/dC50b3BpY3NbMF0uc2xpY2UoMik6XCJcIixyPXRoaXMuX2pzb24uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBlPT09bi5zaGEzKG4udHJhbnNmb3JtVG9GdWxsTmFtZSh0KSl9KVswXTtyZXR1cm4gcj9uZXcgaS5Tb2xpZGl0eUV2ZW50KHRoaXMuX3JlcXVlc3RNYW5hZ2VyLHIsdGhpcy5fYWRkcmVzcykuZGVjb2RlKHQpOm8ub3V0cHV0TG9nRm9ybWF0dGVyKHQpfWFzeW5jIGV4ZWN1dGUodCl7bGV0IGU9dGhpcy5lbmNvZGUodCkscj10aGlzLmRlY29kZS5iaW5kKHRoaXMpO3JldHVybiBuZXcgcy5FdGhGaWx0ZXIodGhpcy5fcmVxdWVzdE1hbmFnZXIsZSxyKX1hdHRhY2hUb0NvbnRyYWN0KHQpe2xldCBlPXRoaXMuZXhlY3V0ZS5iaW5kKHRoaXMpO3QuYWxsRXZlbnRzPWV9fX0sZnVuY3Rpb24odCxlLHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2NvbnN0IG49cigzKSxvPXIoMTUpLGk9cigyNCkscz1yKDkpO2Z1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJjb25zdHJ1Y3RvclwiPT09dC50eXBlJiZ0LmlucHV0cy5sZW5ndGg9PT1lLmxlbmd0aH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbnB1dHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gby5jb2Rlci5lbmNvZGVQYXJhbXModCxlKX0pWzBdfHxcIlwifWUuQ29udHJhY3RGYWN0b3J5PWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5yZXF1ZXN0TWFuYWdlcj10LHRoaXMuYWJpPWV9YXN5bmMgZGVwbG95KC4uLnQpe2xldCBlLHI9dFt0Lmxlbmd0aC0xXTtpZihuLmlzT2JqZWN0KHIpJiYhbi5pc0FycmF5KHIpJiYoZT10LnBvcCgpKSwhZSl0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIG9wdGlvbnMgb2JqZWN0XCIpO2lmKCFlLmRhdGF8fFwic3RyaW5nXCIhPXR5cGVvZiBlLmRhdGEpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBvcHRpb25zLmRhdGFcIik7aWYoZS52YWx1ZT4wJiYhKHRoaXMuYWJpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm5cImNvbnN0cnVjdG9yXCI9PT1lLnR5cGUmJmUuaW5wdXRzLmxlbmd0aD09PXQubGVuZ3RofSlbMF18fHt9KS5wYXlhYmxlKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBzZW5kIHZhbHVlIHRvIG5vbi1wYXlhYmxlIGNvbnN0cnVjdG9yXCIpO2xldCBvPWEodGhpcy5hYmksdCk7ZS5kYXRhKz1vLGUuZ2FzfHwoZS5nYXM9YXdhaXQgdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfZXN0aW1hdGVHYXMoZSkpO2NvbnN0IGk9YXdhaXQgdGhpcy5yZXF1ZXN0TWFuYWdlci5ldGhfc2VuZFRyYW5zYWN0aW9uKGUpLGM9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlKXtjb25zdCByPXMuZnV0dXJlKCk7bGV0IG49MDtjb25zdCBvPSgpPT57KytuPjUwP3IucmVqZWN0KG5ldyBFcnJvcihcIkNvbnRyYWN0IHRyYW5zYWN0aW9uIGNvdWxkbid0IGJlIGZvdW5kIGFmdGVyIDUwIGJsb2Nrc1wiKSk6dC5ldGhfZ2V0VHJhbnNhY3Rpb25SZWNlaXB0KGUpLnRoZW4odD0+e3QmJnQuYmxvY2tIYXNoP3IucmVzb2x2ZSh0KTpzZXRUaW1lb3V0KG8sMWUzKX0sdD0+ci5yZWplY3QodCkpfTtvKCk7Y29uc3QgaT1hd2FpdCByLGE9YXdhaXQgdC5ldGhfZ2V0Q29kZShpLmNvbnRyYWN0QWRkcmVzcyxcImxhdGVzdFwiKTtpZihhLmxlbmd0aD4zKXJldHVybiBpLmNvbnRyYWN0QWRkcmVzczt0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihcIlRoZSBjb250cmFjdCBjb2RlIGNvdWxkbid0IGJlIHN0b3JlZCwgcGxlYXNlIGNoZWNrIHlvdXIgZ2FzIGFtb3VudC5cIikse3Jlc3BvbnNlOmEscmVjZWlwdDppfSl9KHRoaXMucmVxdWVzdE1hbmFnZXIsaSksdT1hd2FpdCB0aGlzLmF0KGMpO3JldHVybiB1LnRyYW5zYWN0aW9uSGFzaD1pLHV9YXN5bmMgYXQodCl7aWYoIW4uaXNBZGRyZXNzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYWRkcmVzcyAke0pTT04uc3RyaW5naWZ5KHQpfWApO3JldHVybiBuZXcgaS5Db250cmFjdCh0aGlzLnJlcXVlc3RNYW5hZ2VyLHRoaXMuYWJpLHQpfWFzeW5jIGdldERhdGEoLi4udCl7bGV0IGU9e2RhdGE6dm9pZCAwfTtjb25zdCByPXRbdC5sZW5ndGgtMV07aWYobi5pc09iamVjdChyKSYmIW4uaXNBcnJheShyKSYmKGU9dC5wb3AoKSksIWUpdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBvcHRpb25zIG9iamVjdFwiKTtpZighZS5kYXRhfHxcInN0cmluZ1wiIT10eXBlb2YgZS5kYXRhKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgb3B0aW9ucy5kYXRhXCIpO2NvbnN0IG89YSh0aGlzLmFiaSx0KTtyZXR1cm4gZS5kYXRhKz1vLGUuZGF0YX19fV0pO1xuZXhwb3J0IGRlZmF1bHQgZXRoY29ubmVjdDsiLCIvLyB0c2xpbnQ6ZGlzYWJsZVxuXG5pbXBvcnQgWCBmcm9tICcuL2V0aC1jb25uZWN0LmVzbSdcbnR5cGUgRVRIQyA9IHR5cGVvZiBpbXBvcnQoJy4vZXRoLWNvbm5lY3QnKVxuY29uc3QgRXRoQ29ubmVjdDogRVRIQyA9IFhcbmV4cG9ydCA9IEV0aENvbm5lY3RcbiIsImV4cG9ydCBkZWZhdWx0IFtcblx0e1xuXHRcdGlucHV0czogW1xuXHRcdFx0e1xuXHRcdFx0XHRpbnRlcm5hbFR5cGU6ICdhZGRyZXNzJyxcblx0XHRcdFx0bmFtZTogJ19wb2FwQ29udHJhY3RBZGRyZXNzJyxcblx0XHRcdFx0dHlwZTogJ2FkZHJlc3MnLFxuXHRcdFx0fSxcblx0XHRcdHsgaW50ZXJuYWxUeXBlOiAnYWRkcmVzcycsIG5hbWU6ICdfdmFsaWRTaWduZXInLCB0eXBlOiAnYWRkcmVzcycgfSxcblx0XHRdLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ25vbnBheWFibGUnLFxuXHRcdHR5cGU6ICdjb25zdHJ1Y3RvcicsXG5cdH0sXG5cdHtcblx0XHRhbm9ueW1vdXM6IGZhbHNlLFxuXHRcdGlucHV0czogW1xuXHRcdFx0e1xuXHRcdFx0XHRpbmRleGVkOiBmYWxzZSxcblx0XHRcdFx0aW50ZXJuYWxUeXBlOiAnYnl0ZXMnLFxuXHRcdFx0XHRuYW1lOiAnX3NpZ25lZE1lc3NhZ2UnLFxuXHRcdFx0XHR0eXBlOiAnYnl0ZXMnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdG5hbWU6ICdWZXJpZmllZFNpZ25hdHVyZScsXG5cdFx0dHlwZTogJ2V2ZW50Jyxcblx0fSxcblx0e1xuXHRcdGNvbnN0YW50OiBmYWxzZSxcblx0XHRpbnB1dHM6IFtcblx0XHRcdHsgaW50ZXJuYWxUeXBlOiAndWludDI1NicsIG5hbWU6ICdldmVudF9pZCcsIHR5cGU6ICd1aW50MjU2JyB9LFxuXHRcdFx0eyBpbnRlcm5hbFR5cGU6ICdhZGRyZXNzJywgbmFtZTogJ3JlY2VpdmVyJywgdHlwZTogJ2FkZHJlc3MnIH0sXG5cdFx0XHR7IGludGVybmFsVHlwZTogJ2J5dGVzJywgbmFtZTogJ3NpZ25lZE1lc3NhZ2UnLCB0eXBlOiAnYnl0ZXMnIH0sXG5cdFx0XSxcblx0XHRuYW1lOiAnbWludFRva2VuJyxcblx0XHRvdXRwdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdib29sJywgbmFtZTogJycsIHR5cGU6ICdib29sJyB9XSxcblx0XHRwYXlhYmxlOiBmYWxzZSxcblx0XHRzdGF0ZU11dGFiaWxpdHk6ICdub25wYXlhYmxlJyxcblx0XHR0eXBlOiAnZnVuY3Rpb24nLFxuXHR9LFxuXHR7XG5cdFx0Y29uc3RhbnQ6IHRydWUsXG5cdFx0aW5wdXRzOiBbXSxcblx0XHRuYW1lOiAnbmFtZScsXG5cdFx0b3V0cHV0czogW3sgaW50ZXJuYWxUeXBlOiAnc3RyaW5nJywgbmFtZTogJycsIHR5cGU6ICdzdHJpbmcnIH1dLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ3ZpZXcnLFxuXHRcdHR5cGU6ICdmdW5jdGlvbicsXG5cdH0sXG5cdHtcblx0XHRjb25zdGFudDogdHJ1ZSxcblx0XHRpbnB1dHM6IFtdLFxuXHRcdG5hbWU6ICdvd25lcicsXG5cdFx0b3V0cHV0czogW3sgaW50ZXJuYWxUeXBlOiAnYWRkcmVzcycsIG5hbWU6ICcnLCB0eXBlOiAnYWRkcmVzcycgfV0sXG5cdFx0cGF5YWJsZTogZmFsc2UsXG5cdFx0c3RhdGVNdXRhYmlsaXR5OiAndmlldycsXG5cdFx0dHlwZTogJ2Z1bmN0aW9uJyxcblx0fSxcblx0e1xuXHRcdGNvbnN0YW50OiB0cnVlLFxuXHRcdGlucHV0czogW3sgaW50ZXJuYWxUeXBlOiAnYnl0ZXMnLCBuYW1lOiAnJywgdHlwZTogJ2J5dGVzJyB9XSxcblx0XHRuYW1lOiAncHJvY2Vzc2VkJyxcblx0XHRvdXRwdXRzOiBbeyBpbnRlcm5hbFR5cGU6ICdib29sJywgbmFtZTogJycsIHR5cGU6ICdib29sJyB9XSxcblx0XHRwYXlhYmxlOiBmYWxzZSxcblx0XHRzdGF0ZU11dGFiaWxpdHk6ICd2aWV3Jyxcblx0XHR0eXBlOiAnZnVuY3Rpb24nLFxuXHR9LFxuXHR7XG5cdFx0Y29uc3RhbnQ6IHRydWUsXG5cdFx0aW5wdXRzOiBbXSxcblx0XHRuYW1lOiAndmFsaWRTaWduZXInLFxuXHRcdG91dHB1dHM6IFt7IGludGVybmFsVHlwZTogJ2FkZHJlc3MnLCBuYW1lOiAnJywgdHlwZTogJ2FkZHJlc3MnIH1dLFxuXHRcdHBheWFibGU6IGZhbHNlLFxuXHRcdHN0YXRlTXV0YWJpbGl0eTogJ3ZpZXcnLFxuXHRcdHR5cGU6ICdmdW5jdGlvbicsXG5cdH0sXG5dXG4iLCIvL2ltcG9ydCB7IGNhbGxBUEksIG1ha2VUcmFuc2FjdGlvbiB9IGZyb20gJy4vcG9hcEhhbmRsZXInXG5pbXBvcnQgeyBEaXNwZW5zZXIgfSBmcm9tICcuL2Rpc3BlbnNlcidcblxuZXhwb3J0IGxldCBzY2VuZU1lc3NhZ2VCdXMgPSBuZXcgTWVzc2FnZUJ1cygpXG5cbmxldCBQT0FQQm9vdGggPSBuZXcgRGlzcGVuc2VyKG5ldyBHTFRGU2hhcGUoJ21vZGVscy9QT0FQX2Rpc3BlbnNlci5nbGInKSwge1xuICBwb3NpdGlvbjogbmV3IFZlY3RvcjMoOCwgMCwgOCksXG59KVxuXG5zY2VuZU1lc3NhZ2VCdXMub24oJ2FjdGl2YXRlUG9hcCcsICgpID0+IHtcbiAgUE9BUEJvb3RoLmFjdGl2YXRlKClcbn0pXG5cbi8vIGxldCBQT0FQQm9vdGggPSBuZXcgRW50aXR5KClcbi8vIFBPQVBCb290aC5hZGRDb21wb25lbnQobmV3IFRyYW5zZm9ybSgpKS5wb3NpdGlvbiA9IG5ldyBWZWN0b3IzKDgsIDAsIDgpXG4vLyBQT0FQQm9vdGguYWRkQ29tcG9uZW50KG5ldyBHTFRGU2hhcGUoJ21vZGVscy9kaXNwZW5zZXIuZ2xiJykpXG4vLyBlbmdpbmUuYWRkRW50aXR5KFBPQVBCb290aClcblxuLy8gUE9BUEJvb3RoLmFkZENvbXBvbmVudChcbi8vICAgbmV3IE9uUG9pbnRlckRvd24oKGUpID0+IHtcbi8vICAgICBtYWtlVHJhbnNhY3Rpb24oKVxuLy8gICB9KVxuLy8gKVxuIiwiaW1wb3J0IHsgZ2V0VXNlckRhdGEsIFVzZXJEYXRhIH0gZnJvbSAnQGRlY2VudHJhbGFuZC9JZGVudGl0eSdcbmltcG9ydCAqIGFzIGV0aCBmcm9tICcuLi9ub2RlX21vZHVsZXMvZXRoLWNvbm5lY3QvZXNtJ1xuaW1wb3J0ICogYXMgRXRoZXJldW1Db250cm9sbGVyIGZyb20gJ0BkZWNlbnRyYWxhbmQvRXRoZXJldW1Db250cm9sbGVyJ1xuaW1wb3J0IHsgZ2V0UHJvdmlkZXIgfSBmcm9tICdAZGVjZW50cmFsYW5kL3dlYjMtcHJvdmlkZXInXG5pbXBvcnQgcG9hcENvbnRyYWN0IGZyb20gJy4vYWJpcy9Qb2FwRGVsZWdhdGVNaW50J1xuaW1wb3J0IHsgc2NlbmVNZXNzYWdlQnVzIH0gZnJvbSAnLi9nYW1lJ1xuXG5leHBvcnQgbGV0IGV0aENvbnRyb2xsZXIgPSBFdGhlcmV1bUNvbnRyb2xsZXJcblxuY29uc3QgcG9hcFNpZ25lckFkZHJlc3MgPSAnMHhhNGI0YjdiOWJiYWY3NzBhZjUxZjQ5MWYxMWY3MmNkZmUyNTNlYjAyJ1xuXG5sZXQgdXNlckRhdGE6IFVzZXJEYXRhXG5cbnR5cGUgc2VydmVyRGF0YSA9IHtcbiAgc2lnbmVkQ29kZTogc3RyaW5nXG4gIGV2ZW50OiBzdHJpbmdcbiAgc2lnbmVyOiBzdHJpbmdcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hVc2VyRGF0YSgpIHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFVzZXJEYXRhKClcbiAgbG9nKGRhdGEuZGlzcGxheU5hbWUpXG4gIHJldHVybiBkYXRhXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjYWxsQVBJKHVzZXI6IHN0cmluZykge1xuICBjb25zdCB1cmwgPVxuICAgICdodHRwOi8vbG9jYWxob3N0OjUwMDEvbm9uLWRjbC1leHBlcmltZW50cy91cy1jZW50cmFsMS9hcHAvZ2V0LXBvYXAtY29kZT9wbGF5ZXJpZD0nICtcbiAgICB1c2VyICtcbiAgICAnJmNvZGU9MidcbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgbGV0IGpzb246IHNlcnZlckRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICBsb2coanNvbilcbiAgICByZXR1cm4ganNvblxuICB9IGNhdGNoIHtcbiAgICBsb2coJ2Vycm9yIGZldGNoaW5nIGZyb20gUE9BUCBoYW5kbGluZyBzZXJ2ZXIgJywgdXJsKVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlVHJhbnNhY3Rpb24oKSB7XG4gIGxldCB1c2VySWQgPSAnMHhlMmI2MDI0ODczZDIxOEIyRTgzQjQ2MkQzNjU4RDhEN0MzZjU1YTE4J1xuICBpZiAoIXVzZXJEYXRhKSB7XG4gICAgdXNlckRhdGEgPSBhd2FpdCBmZXRjaFVzZXJEYXRhKClcbiAgICB1c2VySWQgPSB1c2VyRGF0YS51c2VySWRcbiAgfVxuICBpZiAoIXVzZXJEYXRhLmhhc0Nvbm5lY3RlZFdlYjMpIHtcbiAgICBsb2coJ25vIHdhbGxldCcpXG5cbiAgICAvL3JldHVyblxuICB9XG4gIGxldCBqc29uOiBzZXJ2ZXJEYXRhID0gYXdhaXQgY2FsbEFQSSh1c2VySWQpXG4gIGxldCBzaWduYXR1cmUgPSBqc29uLnNpZ25lZENvZGVcbiAgbGV0IGV2ZW50ID0ganNvbi5ldmVudFxuICBsZXQgc2lnbmVyID0ganNvbi5zaWduZXJcblxuICBjb25zdCBwcm92aWRlciA9IGF3YWl0IGdldFByb3ZpZGVyKClcbiAgY29uc3Qgcm0gPSBuZXcgZXRoLlJlcXVlc3RNYW5hZ2VyKHByb3ZpZGVyKVxuXG4gIGNvbnN0IHBvYXBUb2tlbkZhY3RvcnkgPSBhd2FpdCBuZXcgZXRoLkNvbnRyYWN0RmFjdG9yeShybSwgcG9hcENvbnRyYWN0KVxuICBjb25zdCBQb2FwRGVsZWdhdGVkTWludCA9IChhd2FpdCBwb2FwVG9rZW5GYWN0b3J5LmF0KFxuICAgIC8vcm9wc3RlblxuICAgIC8vJzB4MmYzYzIzYjUwMzk2RWNCNTVDNzM5NTZCMDY5Q0YwNGU0OTNiZEVmOSdcbiAgICAvL21haW5uZXRcbiAgICAnMHhBYWMyNDk3MTc0ZjJFYzQwNjlBOTgzNzVBNjdENzk4ZGI4YTA1MzM3J1xuICApKSBhcyBhbnlcblxuICBhd2FpdCBQb2FwRGVsZWdhdGVkTWludC5taW50VG9rZW4oZXZlbnQsIHVzZXJJZCwgc2lnbmF0dXJlLCB7XG4gICAgZnJvbTogdXNlckRhdGEudXNlcklkLFxuICB9KS50aGVuKHNjZW5lTWVzc2FnZUJ1cy5lbWl0KCdhY3RpdmF0ZVBvYXAnLCB7fSkpXG5cbiAgcmV0dXJuXG59XG4iLCIvLyBpbXBvcnQgeyBvcGVuVUkxIH0gZnJvbSAnLi91aSdcbmltcG9ydCB1dGlscyBmcm9tICcuLi9ub2RlX21vZHVsZXMvZGVjZW50cmFsYW5kLWVjcy11dGlscy9pbmRleCdcbmltcG9ydCB7IG1ha2VUcmFuc2FjdGlvbiB9IGZyb20gJy4vcG9hcEhhbmRsZXInXG5pbXBvcnQgeyBzY2VuZU1lc3NhZ2VCdXMgfSBmcm9tICcuL2dhbWUnXG5cbmV4cG9ydCBjbGFzcyBEaXNwZW5zZXIgZXh0ZW5kcyBFbnRpdHkge1xuICBpZGxlQW5pbSA9IG5ldyBBbmltYXRpb25TdGF0ZSgnSWRsZV9QT0FQJywgeyBsb29waW5nOiB0cnVlIH0pXG4gIGJ1eUFuaW0gPSBuZXcgQW5pbWF0aW9uU3RhdGUoJ0FjdGlvbl9QT0FQJywgeyBsb29waW5nOiBmYWxzZSB9KVxuICBidXR0b25BbmltID0gbmV3IEFuaW1hdGlvblN0YXRlKCdCdXR0b25fQWN0aW9uJywgeyBsb29waW5nOiBmYWxzZSB9KVxuICBpZDogc3RyaW5nXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1vZGVsOiBHTFRGU2hhcGUsXG4gICAgdHJhbnNmb3JtOiBUcmFuZm9ybUNvbnN0cnVjdG9yQXJncyxcbiAgICB3ZWFyYWJsZU5hbWU/OiBzdHJpbmcsXG4gICAgaWQ/OiBzdHJpbmdcblxuICAgIC8vLHNvdW5kOiBBdWRpb0NsaXBcbiAgKSB7XG4gICAgc3VwZXIoKVxuICAgIGVuZ2luZS5hZGRFbnRpdHkodGhpcylcblxuICAgIHRoaXMuYWRkQ29tcG9uZW50KG1vZGVsKVxuICAgIHRoaXMuYWRkQ29tcG9uZW50KG5ldyBUcmFuc2Zvcm0odHJhbnNmb3JtKSlcblxuICAgIHRoaXMuYWRkQ29tcG9uZW50KG5ldyBBbmltYXRvcigpKVxuICAgIHRoaXMuZ2V0Q29tcG9uZW50KEFuaW1hdG9yKS5hZGRDbGlwKHRoaXMuaWRsZUFuaW0pXG4gICAgdGhpcy5nZXRDb21wb25lbnQoQW5pbWF0b3IpLmFkZENsaXAodGhpcy5idXlBbmltKVxuICAgIHRoaXMuaWRsZUFuaW0ucGxheSgpXG5cbiAgICB0aGlzLmlkID0gaWRcblxuICAgIGxldCBidXR0b24gPSBuZXcgRW50aXR5KClcbiAgICBidXR0b24uYWRkQ29tcG9uZW50KG5ldyBHTFRGU2hhcGUoJ21vZGVscy9QT0FQX2J1dHRvbi5nbGInKSlcbiAgICBidXR0b24uYWRkQ29tcG9uZW50KG5ldyBBbmltYXRvcigpKVxuICAgIGJ1dHRvbi5nZXRDb21wb25lbnQoQW5pbWF0b3IpLmFkZENsaXAodGhpcy5idXR0b25BbmltKVxuICAgIGJ1dHRvbi5zZXRQYXJlbnQodGhpcylcbiAgICBidXR0b24uYWRkQ29tcG9uZW50KFxuICAgICAgbmV3IE9uUG9pbnRlckRvd24oXG4gICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgYnV0dG9uLmdldENvbXBvbmVudChBbmltYXRvcikuZ2V0Q2xpcCgnQWN0aW9uJykuc3RvcCgpXG4gICAgICAgICAgYnV0dG9uLmdldENvbXBvbmVudChBbmltYXRvcikuZ2V0Q2xpcCgnQWN0aW9uJykucGxheSgpXG4gICAgICAgICAgc2NlbmVNZXNzYWdlQnVzLmVtaXQoJ2FjdGl2YXRlUG9hcCcsIHt9KVxuICAgICAgICAgIG1ha2VUcmFuc2FjdGlvbigpXG4gICAgICAgICAgLy9vcGVuVUkxKHdlYXJhYmxlTmFtZSwgdGhpcylcbiAgICAgICAgfSxcbiAgICAgICAgeyBob3ZlclRleHQ6ICdHZXQgQXR0ZW5kYW5jZSBUb2tlbicgfVxuICAgICAgKVxuICAgIClcbiAgICBlbmdpbmUuYWRkRW50aXR5KGJ1dHRvbilcblxuICAgIC8vdGhpcy5hZGRDb21wb25lbnQobmV3IEF1ZGlvU291cmNlKHNvdW5kKSlcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBsZXQgYW5pbSA9IHRoaXMuZ2V0Q29tcG9uZW50KEFuaW1hdG9yKVxuXG4gICAgYW5pbS5nZXRDbGlwKCdJZGxlX1BPQVAnKS5zdG9wKClcbiAgICBhbmltLmdldENsaXAoJ0FjdGlvbl9QT0FQJykuc3RvcCgpXG5cbiAgICBhbmltLmdldENsaXAoJ0FjdGlvbl9QT0FQJykucGxheSgpXG5cbiAgICB0aGlzLmFkZENvbXBvbmVudE9yUmVwbGFjZShcbiAgICAgIG5ldyB1dGlscy5EZWxheSg0MDAwLCAoKSA9PiB7XG4gICAgICAgIGFuaW0uZ2V0Q2xpcCgnQWN0aW9uX1BPQVAnKS5zdG9wKClcblxuICAgICAgICBhbmltLmdldENsaXAoJ0lkbGVfUE9BUCcpLnBsYXkoKVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ=="); \ No newline at end of file diff --git a/POAP-booth/src/poapHandler.ts b/POAP-booth/src/poapHandler.ts index 3e6eb46..5226723 100644 --- a/POAP-booth/src/poapHandler.ts +++ b/POAP-booth/src/poapHandler.ts @@ -59,12 +59,14 @@ export async function makeTransaction() { const poapTokenFactory = await new eth.ContractFactory(rm, poapContract) const PoapDelegatedMint = (await poapTokenFactory.at( - //ropsten: '0x2f3c23b50396EcB55C73956B069CF04e493bdEf9' + //ropsten + //'0x2f3c23b50396EcB55C73956B069CF04e493bdEf9' + //mainnet '0xAac2497174f2Ec4069A98375A67D798db8a05337' )) as any await PoapDelegatedMint.mintToken(event, userId, signature, { - from: poapSignerAddress, + from: userData.userId, }).then(sceneMessageBus.emit('activatePoap', {})) return