diff --git a/build/formsy-react.js b/build/formsy-react.js index 4ede00d..758ad70 100755 --- a/build/formsy-react.js +++ b/build/formsy-react.js @@ -31,6 +31,8 @@ Formsy.Form = React.createClass({displayName: "Form", onSuccess: function () {}, onError: function () {}, onSubmit: function () {}, + onValidSubmit: function () {}, + onInvalidSubmit: function () {}, onSubmitted: function () {}, onValid: function () {}, onInvalid: function () {}, @@ -63,6 +65,10 @@ Formsy.Form = React.createClass({displayName: "Form", this.registerInputs(this.props.children); + if (this.props.validationErrors) { + this.setInputValidationErrors(this.props.validationErrors); + } + var newInputKeys = Object.keys(this.inputs); if (utils.arraysDiffer(inputKeys, newInputKeys)) { this.validateForm(); @@ -87,7 +93,9 @@ Formsy.Form = React.createClass({displayName: "Form", // if wanting to reset the entire form to original state, the second param is a callback for this. if (!this.props.url) { this.updateModel(); - this.props.onSubmit(this.mapModel(), this.resetModel, this.updateInputsWithError); + var model = this.mapModel(); + this.props.onSubmit(model, this.resetModel, this.updateInputsWithError); + this.state.isValid ? this.props.onValidSubmit(model, this.resetModel) : this.props.onInvalidSubmit(model, this.resetModel); return; } @@ -130,6 +138,17 @@ Formsy.Form = React.createClass({displayName: "Form", this.validateForm(); }, + setInputValidationErrors: function (errors) { + Object.keys(this.inputs).forEach(function (name, index) { + var component = this.inputs[name]; + var args = [{ + _isValid: !(name in errors), + _serverError: errors[name] + }]; + component.setState.apply(component, args); + }.bind(this)); + }, + // Go through errors from server and grab the components // stored in the inputs map. Change their state to invalid // and set the serverError message @@ -169,6 +188,7 @@ Formsy.Form = React.createClass({displayName: "Form", child.props._detachFromForm = this.detachFromForm; child.props._validate = this.validate; child.props._isFormDisabled = this.isFormDisabled; + child.props._isValidValue = this.runValidation; } if (child && child.props && child.props.children) { @@ -229,10 +249,14 @@ Formsy.Form = React.createClass({displayName: "Form", }, - runValidation: function (component) { + // Checks validation on current value or a passed value + runValidation: function (component, value) { + var isValid = true; - if (component._validations.length && (component.props.required || component.state._value !== '')) { - component._validations.split(',').forEach(function (validation) { + + value = arguments.length === 2 ? value : component.state._value; + if (component._validations.length && (component.props.required || value !== '')) { + component._validations.split(/\,(?![^{\[]*[}\]])/g).forEach(function (validation) { var args = validation.split(':'); var validateMethod = args.shift(); args = args.map(function (arg) { @@ -242,7 +266,7 @@ Formsy.Form = React.createClass({displayName: "Form", return arg; // It is a string if it can not parse it } }); - args = [component.state._value].concat(args); + args = [value].concat(args); if (!validationRules[validateMethod]) { throw new Error('Formsy does not have the validation rule: ' + validateMethod); } @@ -346,10 +370,12 @@ module.exports = Formsy; },{"./Mixin.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/Mixin.js","./utils.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/utils.js","./validationRules.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/validationRules.js","react":"react"}],"/Users/christianalfoni/Documents/dev/formsy-react/src/Mixin.js":[function(require,module,exports){ module.exports = { getInitialState: function () { + var value = 'value' in this.props ? this.props.value : ''; return { - _value: this.props.value ? this.props.value : '', + _value: value, _isValid: true, - _isPristine: true + _isPristine: true, + _pristineValue: value }; }, componentWillMount: function () { @@ -405,7 +431,8 @@ module.exports = { // the value, set the value again running a validation if (prevProps.validations !== this.props.validations || isValueChanged()) { - this.setValue(this.props.value || ''); + var value = 'value' in this.props ? this.props.value : ''; + this.setValue(value); } }, @@ -437,7 +464,7 @@ module.exports = { }, resetValue: function () { this.setState({ - _value: '', + _value: this.state._pristineValue, _isPristine: true }, function () { this.props._validate(this); @@ -469,6 +496,9 @@ module.exports = { }, showError: function () { return !this.showRequired() && !this.state._isValid; + }, + isValidValue: function (value) { + return this.props._isValidValue.call(null, this, value); } }; @@ -596,11 +626,11 @@ module.exports = { return value == eql; }, equalsField: function (value, field) { - return value === this[field]; + return value == this[field]; } }; },{}]},{},["./src/main.js"]) -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy9tYWluLmpzIiwiL1VzZXJzL2NocmlzdGlhbmFsZm9uaS9Eb2N1bWVudHMvZGV2L2Zvcm1zeS1yZWFjdC9zcmMvTWl4aW4uanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy91dGlscy5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3JjL3ZhbGlkYXRpb25SdWxlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUNBQSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDaEIsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDdEQsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7O0FBRWpCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDOztBQUVyQixNQUFNLENBQUMsUUFBUSxHQUFHLFVBQVUsYUFBYSxFQUFFO0VBQ3pDLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFDMUIsQ0FBQyxDQUFDOztBQUVGLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLElBQUksRUFBRSxJQUFJLEVBQUU7RUFDL0MsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvQixDQUFDLENBQUM7O0FBRUYsTUFBTSxDQUFD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RUFBRSxHQUFHLEVBQUU7SUFDNUIsT0FBTyxLQUFLLElBQUksR0FBRyxDQUFDO0dBQ3JCO0VBQ0QsV0FBVyxFQUFFLFVBQVUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUNuQyxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7R0FDOUI7QUFDSCxDQUFDLENBQUM7O0FBRUYiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwidmFyIFJlYWN0ID0gZ2xvYmFsLlJlYWN0IHx8IHJlcXVpcmUoJ3JlYWN0Jyk7XG52YXIgRm9ybXN5ID0ge307XG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi92YWxpZGF0aW9uUnVsZXMuanMnKTtcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMuanMnKTtcbnZhciBNaXhpbiA9IHJlcXVpcmUoJy4vTWl4aW4uanMnKTtcbnZhciBvcHRpb25zID0ge307XG5cbkZvcm1zeS5NaXhpbiA9IE1peGluO1xuXG5Gb3Jtc3kuZGVmYXVsdHMgPSBmdW5jdGlvbiAocGFzc2VkT3B0aW9ucykge1xuICBvcHRpb25zID0gcGFzc2VkT3B0aW9ucztcbn07XG5cbkZvcm1zeS5hZGRWYWxpZGF0aW9uUnVsZSA9IGZ1bmN0aW9uIChuYW1lLCBmdW5jKSB7XG4gIHZhbGlkYXRpb25SdWxlc1tuYW1lXSA9IGZ1bmM7XG59O1xuXG5Gb3Jtc3kuRm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJGb3JtXCIsXG4gIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpc1ZhbGlkOiB0cnVlLFxuICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZSxcbiAgICAgIGNhbkNoYW5nZTogZmFsc2VcbiAgICB9O1xuICB9LFxuICBnZXREZWZhdWx0UHJvcHM6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVyczoge30sXG4gICAgICBvblN1Y2Nlc3M6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25FcnJvcjogZnVuY3Rpb24gKCkge30sXG4gICAgICBvblN1Ym1pdDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvblN1Ym1pdHRlZDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvblZhbGlkOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uSW52YWxpZDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKCkge31cbiAgICB9O1xuICB9LFxuXG4gIC8vIEFkZCBhIG1hcCB0byBzdG9yZSB0aGUgaW5wdXRzIG9mIHRoZSBmb3JtLCBhIG1vZGVsIHRvIHN0b3JlXG4gIC8vIHRoZSB2YWx1ZXMgb2YgdGhlIGZvcm0gYW5kIHJlZ2lzdGVyIGNoaWxkIGlucHV0c1xuICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmlucHV0cyA9IHt9O1xuICAgIHRoaXMubW9kZWwgPSB7fTtcbiAgICB0aGlzLnJlZ2lzdGVySW5wdXRzKHRoaXMucHJvcHMuY2hpbGRyZW4pO1xuICB9LFxuXG4gIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcbiAgfSxcblxuICBjb21wb25lbnRXaWxsVXBkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGlucHV0S2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKTtcblxuICAgIC8vIFRoZSB1cGRhdGVkIGNoaWxkcmVuIGFycmF5IGlzIG5vdCBhdmFpbGFibGUgaGVyZSBmb3Igc29tZSByZWFzb24sXG4gICAgLy8gd2UgbmVlZCB0byB3YWl0IGZvciBuZXh0IGV2ZW50IGxvb3BcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblxuICAgICAgLy8gVGhlIGNvbXBvbmVudCBtaWdodCBoYXZlIGJlZW4gdW5tb3VudGVkIG9uIGFuXG4gICAgICAvLyB1cGRhdGVcbiAgICAgIGlmICh0aGlzLmlzTW91bnRlZCgpKSB7XG5cbiAgICAgICAgdGhpcy5yZWdpc3RlcklucHV0cyh0aGlzLnByb3BzLmNoaWxkcmVuKTtcblxuICAgICAgICB2YXIgbmV3SW5wdXRLZXlzID0gT2JqZWN0LmtleXModGhpcy5pbnB1dHMpO1xuICAgICAgICBpZiAodXRpbHMuYXJyYXlzRGlmZmVyKGlucHV0S2V5cywgbmV3SW5wdXRLZXlzKSkge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGVGb3JtKCk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfS5iaW5kKHRoaXMpLCAwKTtcbiAgfSxcblxuICAvLyBVcGRhdGUgbW9kZWwsIHN1Ym1pdCB0byB1cmwgcHJvcCBhbmQgc2VuZCB0aGUgbW9kZWxcbiAgc3VibWl0OiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gVHJpZ2dlciBmb3JtIGFzIG5vdCBwcmlzdGluZS5cbiAgICAvLyBJZiBhbnkgaW5wdXRzIGhhdmUgbm90IGJlZW4gdG91Y2hlZCB5ZXQgdGhpcyB3aWxsIG1ha2UgdGhlbSBkaXJ0eVxuICAgIC8vIHNvIHZhbGlkYXRpb24gYmVjb21lcyB2aXNpYmxlIChpZiBiYXNlZCBvbiBpc1ByaXN0aW5lKVxuICAgIHRoaXMuc2V0Rm9ybVByaXN0aW5lKGZhbHNlKTtcblxuICAgIC8vIFRvIHN1cHBvcnQgdXNlIGNhc2VzIHdoZXJlIG5vIGFzeW5jIG9yIHJlcXVlc3Qgb3BlcmF0aW9uIGlzIG5lZWRlZC5cbiAgICAvLyBUaGUgXCJvblN1Ym1pdFwiIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIHRoZSBtb2RlbCBlLmcuIHtmaWVsZE5hbWU6IFwibXlWYWx1ZVwifSxcbiAgICAvLyBpZiB3YW50aW5nIHRvIHJlc2V0IHRoZSBlbnRpcmUgZm9ybSB0byBvcmlnaW5hbCBzdGF0ZSwgdGhlIHNlY29uZCBwYXJhbSBpcyBhIGNhbGxiYWNrIGZvciB0aGlzLlxuICAgIGlmICghdGhpcy5wcm9wcy51cmwpIHtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwoKTtcbiAgICAgIHRoaXMucHJvcHMub25TdWJtaXQodGhpcy5tYXBNb2RlbCgpLCB0aGlzLnJlc2V0TW9kZWwsIHRoaXMudXBkYXRlSW5wdXRzV2l0aEVycm9yKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZU1vZGVsKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBpc1N1Ym1pdHRpbmc6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMub25TdWJtaXQodGhpcy5tYXBNb2RlbCgpLCB0aGlzLnJlc2V0TW9kZWwsIHRoaXMudXBkYXRlSW5wdXRzV2l0aEVycm9yKTtcblxuICAgIHZhciBoZWFkZXJzID0gKE9iamVjdC5rZXlzKHRoaXMucHJvcHMuaGVhZGVycykubGVuZ3RoICYmIHRoaXMucHJvcHMuaGVhZGVycykgfHwgb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuXG4gICAgdmFyIG1ldGhvZCA9IHRoaXMucHJvcHMubWV0aG9kICYmIHV0aWxzLmFqYXhbdGhpcy5wcm9wcy5tZXRob2QudG9Mb3dlckNhc2UoKV0gPyB0aGlzLnByb3BzLm1ldGhvZC50b0xvd2VyQ2FzZSgpIDogJ3Bvc3QnO1xuICAgIHV0aWxzLmFqYXhbbWV0aG9kXSh0aGlzLnByb3BzLnVybCwgdGhpcy5tYXBNb2RlbCgpLCB0aGlzLnByb3BzLmNvbnRlbnRUeXBlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgfHwgJ2pzb24nLCBoZWFkZXJzKVxuICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25TdWNjZXNzKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdHRlZCgpO1xuICAgICAgfS5iaW5kKHRoaXMpKVxuICAgICAgLmNhdGNoKHRoaXMuZmFpbFN1Ym1pdCk7XG4gIH0sXG5cbiAgbWFwTW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5tYXBwaW5nID8gdGhpcy5wcm9wcy5tYXBwaW5nKHRoaXMubW9kZWwpIDogdGhpcy5tb2RlbDtcbiAgfSxcblxuICAvLyBHb2VzIHRocm91Z2ggYWxsIHJlZ2lzdGVyZWQgY29tcG9uZW50cyBhbmRcbiAgLy8gdXBkYXRlcyB0aGUgbW9kZWwgdmFsdWVzXG4gIHVwZGF0ZU1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcbiAgICAgIHRoaXMubW9kZWxbbmFtZV0gPSBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG5cbiAgLy8gUmVzZXQgZWFjaCBrZXkgaW4gdGhlIG1vZGVsIHRvIHRoZSBvcmlnaW5hbCAvIGluaXRpYWwgdmFsdWVcbiAgcmVzZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB0aGlzLmlucHV0c1tuYW1lXS5yZXNldFZhbHVlKCk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICB9LFxuXG4gIC8vIEdvIHRocm91Z2ggZXJyb3JzIGZyb20gc2VydmVyIGFuZCBncmFiIHRoZSBjb21wb25lbnRzXG4gIC8vIHN0b3JlZCBpbiB0aGUgaW5wdXRzIG1hcC4gQ2hhbmdlIHRoZWlyIHN0YXRlIHRvIGludmFsaWRcbiAgLy8gYW5kIHNldCB0aGUgc2VydmVyRXJyb3IgbWVzc2FnZVxuICB1cGRhdGVJbnB1dHNXaXRoRXJyb3I6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICBPYmplY3Qua2V5cyhlcnJvcnMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG5cbiAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGFyZSB0cnlpbmcgdG8gdXBkYXRlIGFuIGlucHV0IHRoYXQgZG9lcyBub3QgZXhpc3RzLiBWZXJpZnkgZXJyb3JzIG9iamVjdCB3aXRoIGlucHV0IG5hbWVzLiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyb3JzKSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBhcmdzID0gW3tcbiAgICAgICAgX2lzVmFsaWQ6IGZhbHNlLFxuICAgICAgICBfc2VydmVyRXJyb3I6IGVycm9yc1tuYW1lXVxuICAgICAgfV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUuYXBwbHkoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIGZhaWxTdWJtaXQ6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcihlcnJvcnMpO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMucHJvcHMub25FcnJvcihlcnJvcnMpO1xuICAgIHRoaXMucHJvcHMub25TdWJtaXR0ZWQoKTtcbiAgfSxcblxuICAvLyBUcmF2ZXJzZSB0aGUgY2hpbGRyZW4gYW5kIGNoaWxkcmVuIG9mIGNoaWxkcmVuIHRvIGZpbmRcbiAgLy8gYWxsIGlucHV0cyBieSBjaGVja2luZyB0aGUgbmFtZSBwcm9wLiBNYXliZSBkbyBhIGJldHRlclxuICAvLyBjaGVjayBoZXJlXG4gIHJlZ2lzdGVySW5wdXRzOiBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcblxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm5hbWUpIHtcbiAgICAgICAgY2hpbGQucHJvcHMuX2F0dGFjaFRvRm9ybSA9IHRoaXMuYXR0YWNoVG9Gb3JtO1xuICAgICAgICBjaGlsZC5wcm9wcy5fZGV0YWNoRnJvbUZvcm0gPSB0aGlzLmRldGFjaEZyb21Gb3JtO1xuICAgICAgICBjaGlsZC5wcm9wcy5fdmFsaWRhdGUgPSB0aGlzLnZhbGlkYXRlO1xuICAgICAgICBjaGlsZC5wcm9wcy5faXNGb3JtRGlzYWJsZWQgPSB0aGlzLmlzRm9ybURpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hpbGQgJiYgY2hpbGQucHJvcHMgJiYgY2hpbGQucHJvcHMuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcklucHV0cyhjaGlsZC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICB9XG5cbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIGlzRm9ybURpc2FibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGlzYWJsZWQ7XG4gIH0sXG5cbiAgZ2V0Q3VycmVudFZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykucmVkdWNlKGZ1bmN0aW9uIChkYXRhLCBuYW1lKSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG4gICAgICBkYXRhW25hbWVdID0gY29tcG9uZW50LnN0YXRlLl92YWx1ZTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0uYmluZCh0aGlzKSwge30pO1xuICB9LFxuXG4gIHNldEZvcm1QcmlzdGluZTogZnVuY3Rpb24gKGlzUHJpc3RpbmUpIHtcbiAgICB2YXIgaW5wdXRzID0gdGhpcy5pbnB1dHM7XG4gICAgdmFyIGlucHV0S2V5cyA9IE9iamVjdC5rZXlzKGlucHV0cyk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBjb21wb25lbnQgYW5kIHNldCBpdCBhcyBwcmlzdGluZVxuICAgIC8vIG9yIFwiZGlydHlcIi5cbiAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSBpbnB1dHNbbmFtZV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUoe1xuICAgICAgICBfaXNQcmlzdGluZTogaXNQcmlzdGluZVxuICAgICAgfSk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICAvLyBVc2UgdGhlIGJpbmRlZCB2YWx1ZXMgYW5kIHRoZSBhY3R1YWwgaW5wdXQgdmFsdWUgdG9cbiAgLy8gdmFsaWRhdGUgdGhlIGlucHV0IGFuZCBzZXQgaXRzIHN0YXRlLiBUaGVuIGNoZWNrIHRoZVxuICAvLyBzdGF0ZSBvZiB0aGUgZm9ybSBpdHNlbGZcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcblxuICAgIC8vIFRyaWdnZXIgb25DaGFuZ2VcbiAgICBpZiAodGhpcy5zdGF0ZS5jYW5DaGFuZ2UpIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5nZXRDdXJyZW50VmFsdWVzKCkpO1xuICAgIH1cblxuICAgIGlmICghY29tcG9uZW50LnByb3BzLnJlcXVpcmVkICYmICFjb21wb25lbnQuX3ZhbGlkYXRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUnVuIHRocm91Z2ggdGhlIHZhbGlkYXRpb25zLCBzcGxpdCB0aGVtIHVwIGFuZCBjYWxsXG4gICAgLy8gdGhlIHZhbGlkYXRvciBJRiB0aGVyZSBpcyBhIHZhbHVlIG9yIGl0IGlzIHJlcXVpcmVkXG4gICAgdmFyIGlzVmFsaWQgPSB0aGlzLnJ1blZhbGlkYXRpb24oY29tcG9uZW50KTtcblxuICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICBfaXNWYWxpZDogaXNWYWxpZCxcbiAgICAgIF9zZXJ2ZXJFcnJvcjogbnVsbFxuICAgIH0sIHRoaXMudmFsaWRhdGVGb3JtKTtcblxuICB9LFxuXG4gIHJ1blZhbGlkYXRpb246IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcbiAgICB2YXIgaXNWYWxpZCA9IHRydWU7XG4gICAgaWYgKGNvbXBvbmVudC5fdmFsaWRhdGlvbnMubGVuZ3RoICYmIChjb21wb25lbnQucHJvcHMucmVxdWlyZWQgfHwgY29tcG9uZW50LnN0YXRlLl92YWx1ZSAhPT0gJycpKSB7XG4gICAgICBjb21wb25lbnQuX3ZhbGlkYXRpb25zLnNwbGl0KCcsJykuZm9yRWFjaChmdW5jdGlvbiAodmFsaWRhdGlvbikge1xuICAgICAgICB2YXIgYXJncyA9IHZhbGlkYXRpb24uc3BsaXQoJzonKTtcbiAgICAgICAgdmFyIHZhbGlkYXRlTWV0aG9kID0gYXJncy5zaGlmdCgpO1xuICAgICAgICBhcmdzID0gYXJncy5tYXAoZnVuY3Rpb24gKGFyZykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShhcmcpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmc7IC8vIEl0IGlzIGEgc3RyaW5nIGlmIGl0IGNhbiBub3QgcGFyc2UgaXRcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBhcmdzID0gW2NvbXBvbmVudC5zdGF0ZS5fdmFsdWVdLmNvbmNhdChhcmdzKTtcbiAgICAgICAgaWYgKCF2YWxpZGF0aW9uUnVsZXNbdmFsaWRhdGVNZXRob2RdKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb3Jtc3kgZG9lcyBub3QgaGF2ZSB0aGUgdmFsaWRhdGlvbiBydWxlOiAnICsgdmFsaWRhdGVNZXRob2QpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsaWRhdGlvblJ1bGVzW3ZhbGlkYXRlTWV0aG9kXS5hcHBseSh0aGlzLmdldEN1cnJlbnRWYWx1ZXMoKSwgYXJncykpIHtcbiAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgfVxuICAgIHJldHVybiBpc1ZhbGlkO1xuICB9LFxuXG4gIC8vIFZhbGlkYXRlIHRoZSBmb3JtIGJ5IGdvaW5nIHRocm91Z2ggYWxsIGNoaWxkIGlucHV0IGNvbXBvbmVudHNcbiAgLy8gYW5kIGNoZWNrIHRoZWlyIHN0YXRlXG4gIHZhbGlkYXRlRm9ybTogZnVuY3Rpb24gKCkge1xuICAgIHZhciBhbGxJc1ZhbGlkID0gdHJ1ZTtcbiAgICB2YXIgaW5wdXRzID0gdGhpcy5pbnB1dHM7XG4gICAgdmFyIGlucHV0S2V5cyA9IE9iamVjdC5rZXlzKGlucHV0cyk7XG5cbiAgICAvLyBXZSBuZWVkIGEgY2FsbGJhY2sgYXMgd2UgYXJlIHZhbGlkYXRpbmcgYWxsIGlucHV0cyBhZ2Fpbi4gVGhpcyB3aWxsXG4gICAgLy8gcnVuIHdoZW4gdGhlIGxhc3QgY29tcG9uZW50IGhhcyBzZXQgaXRzIHN0YXRlXG4gICAgdmFyIG9uVmFsaWRhdGlvbkNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgaW5wdXRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgaWYgKCFpbnB1dHNbbmFtZV0uc3RhdGUuX2lzVmFsaWQpIHtcbiAgICAgICAgICBhbGxJc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKSk7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBpc1ZhbGlkOiBhbGxJc1ZhbGlkXG4gICAgICB9KTtcblxuICAgICAgaWYgKGFsbElzVmFsaWQpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblZhbGlkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLm9uSW52YWxpZCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBUZWxsIHRoZSBmb3JtIHRoYXQgaXQgY2FuIHN0YXJ0IHRvIHRyaWdnZXIgY2hhbmdlIGV2ZW50c1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNhbkNoYW5nZTogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICB9LmJpbmQodGhpcyk7XG5cbiAgICAvLyBSdW4gdmFsaWRhdGlvbiBhZ2FpbiBpbiBjYXNlIGFmZmVjdGVkIGJ5IG90aGVyIGlucHV0cy4gVGhlXG4gICAgLy8gbGFzdCBjb21wb25lbnQgdmFsaWRhdGVkIHdpbGwgcnVuIHRoZSBvblZhbGlkYXRpb25Db21wbGV0ZSBjYWxsYmFja1xuICAgIGlucHV0S2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lLCBpbmRleCkge1xuICAgICAgdmFyIGNvbXBvbmVudCA9IGlucHV0c1tuYW1lXTtcbiAgICAgIHZhciBpc1ZhbGlkID0gdGhpcy5ydW5WYWxpZGF0aW9uKGNvbXBvbmVudCk7XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUoe1xuICAgICAgICBfaXNWYWxpZDogaXNWYWxpZCxcbiAgICAgICAgX3NlcnZlckVycm9yOiBudWxsXG4gICAgICB9LCBpbmRleCA9PT0gaW5wdXRLZXlzLmxlbmd0aCAtIDEgPyBvblZhbGlkYXRpb25Db21wbGV0ZSA6IG51bGwpO1xuICAgIH0uYmluZCh0aGlzKSk7XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgbm8gaW5wdXRzLCBzZXQgc3RhdGUgd2hlcmUgZm9ybSBpcyByZWFkeSB0byB0cmlnZ2VyXG4gICAgLy8gY2hhbmdlIGV2ZW50LiBOZXcgaW5wdXRzIG1pZ2h0IGJlIGFkZGVkIGxhdGVyXG4gICAgaWYgKCFpbnB1dEtleXMubGVuZ3RoICYmIHRoaXMuaXNNb3VudGVkKCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBjYW5DaGFuZ2U6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcblxuICAvLyBNZXRob2QgcHV0IG9uIGVhY2ggaW5wdXQgY29tcG9uZW50IHRvIHJlZ2lzdGVyXG4gIC8vIGl0c2VsZiB0byB0aGUgZm9ybVxuICBhdHRhY2hUb0Zvcm06IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcbiAgICB0aGlzLmlucHV0c1tjb21wb25lbnQucHJvcHMubmFtZV0gPSBjb21wb25lbnQ7XG4gICAgdGhpcy5tb2RlbFtjb21wb25lbnQucHJvcHMubmFtZV0gPSBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgIHRoaXMudmFsaWRhdGUoY29tcG9uZW50KTtcbiAgfSxcblxuICAvLyBNZXRob2QgcHV0IG9uIGVhY2ggaW5wdXQgY29tcG9uZW50IHRvIHVucmVnaXN0ZXJcbiAgLy8gaXRzZWxmIGZyb20gdGhlIGZvcm1cbiAgZGV0YWNoRnJvbUZvcm06IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcbiAgICBkZWxldGUgdGhpcy5pbnB1dHNbY29tcG9uZW50LnByb3BzLm5hbWVdO1xuICAgIGRlbGV0ZSB0aGlzLm1vZGVsW2NvbXBvbmVudC5wcm9wcy5uYW1lXTtcbiAgfSxcbiAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG5cbiAgICByZXR1cm4gUmVhY3QuRE9NLmZvcm0oe1xuICAgICAgICBvblN1Ym1pdDogdGhpcy5zdWJtaXQsXG4gICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWVcbiAgICAgIH0sXG4gICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgKTtcblxuICB9XG59KTtcblxuaWYgKCFnbG9iYWwuZXhwb3J0cyAmJiAhZ2xvYmFsLm1vZHVsZSAmJiAoIWdsb2JhbC5kZWZpbmUgfHwgIWdsb2JhbC5kZWZpbmUuYW1kKSkge1xuICBnbG9iYWwuRm9ybXN5ID0gRm9ybXN5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEZvcm1zeTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12YldGcGJpNXFjeUlzSW5OdmRYSmpaWE1pT2xzaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdmJXRnBiaTVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeEpRVUZKTEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNc1MwRkJTeXhKUVVGSkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTTNReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTTdRVUZEYUVJc1NVRkJTU3hsUVVGbExFZEJRVWNzVDBGQlR5eERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU03UVVGRGRFUXNTVUZCU1N4TFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzBGQlEyeERMRWxCUVVrc1MwRkJTeXhIUVVGSExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0QlFVTnNReXhKUVVGSkxFOUJRVThzUjBGQlJ5eEZRVUZGTEVOQlFVTTdPMEZCUldwQ0xFMUJRVTBzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPenRCUVVWeVFpeE5RVUZOTEVOQlFVTXNVVUZCVVN4SFFVRkhMRlZCUVZVc1lVRkJZU3hGUVVGRk8wVkJRM3BETEU5QlFVOHNSMEZCUnl4aFFVRmhMRU5CUVVNN1FVRkRNVUlzUTBGQlF5eERRVUZET3p0QlFVVkdMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4VlFVRlZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVU3UlVGREwwTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6dEJRVU12UWl4RFFVRkRMRU5CUVVNN08wRkJSVVlzYVVOQlFXbERMRzlDUVVGQk8wVkJReTlDTEdWQlFXVXNSVUZCUlN4WlFVRlpPMGxCUXpOQ0xFOUJRVTg3VFVGRFRDeFBRVUZQTEVWQlFVVXNTVUZCU1R0TlFVTmlMRmxCUVZrc1JVRkJSU3hMUVVGTE8wMUJRMjVDTEZOQlFWTXNSVUZCUlN4TFFVRkxPMHRCUTJwQ0xFTkJRVU03UjBGRFNEdEZRVU5FTEdWQlFXVXNSVUZCUlN4WlFVRlpPMGxCUXpOQ0xFOUJRVTg3VFVGRFRDeFBRVUZQTEVWQlFVVXNSVUZCUlR0TlFVTllMRk5CUVZNc1JVRkJSU3haUVVGWkxFVkJRVVU3VFVGRGVrSXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSVHROUVVOMlFpeFJRVUZSTEVWQlFVVXNXVUZCV1N4RlFVRkZPMDFCUTNoQ0xGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVTdUVUZETTBJc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJUdE5RVU4yUWl4VFFVRlRMRVZCUVVVc1dVRkJXU3hGUVVGRk8wMUJRM3BDTEZGQlFWRXNSVUZCUlN4WlFVRlpMRVZCUVVVN1MwRkRla0lzUTBGQlF6dEJRVU5PTEVkQlFVYzdRVUZEU0R0QlFVTkJPenRGUVVWRkxHdENRVUZyUWl4RlFVRkZMRmxCUVZrN1NVRkRPVUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRha0lzU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRhRUlzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlF6ZERMRWRCUVVjN08wVkJSVVFzYVVKQlFXbENMRVZCUVVVc1dVRkJXVHRKUVVNM1FpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1FVRkRlRUlzUjBGQlJ6czdSVUZGUkN4dFFrRkJiVUlzUlVGQlJTeFpRVUZaTzBGQlEyNURMRWxCUVVrc1NVRkJTU3hUUVVGVExFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRE4wTTdRVUZEUVRzN1FVRkZRU3hKUVVGSkxGVkJRVlVzUTBGQlF5eFpRVUZaTzBGQlF6TkNPMEZCUTBFN08wRkJSVUVzVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1JVRkJSVHM3UVVGRk5VSXNVVUZCVVN4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN08xRkJSWHBETEVsQlFVa3NXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpWRExFbEJRVWtzUzBGQlN5eERRVUZETEZsQlFWa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1dVRkJXU3hEUVVGRExFVkJRVVU3VlVGREwwTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wRkJRemxDTEZOQlFWTTdPMEZCUlZRc1QwRkJUenM3UzBGRlJpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU55UWl4SFFVRkhPMEZCUTBnN08wVkJSVVVzVFVGQlRTeEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMEZCUXpOQ0xFbEJRVWtzUzBGQlN5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMEZCUXpOQ08wRkJRMEU3UVVGRFFUczdRVUZGUVN4SlFVRkpMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEYUVNN1FVRkRRVHRCUVVOQk96dEpRVVZKTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUlVGQlJUdE5RVU51UWl4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VFVGRGJrSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU03VFVGRGJFWXNUMEZCVHp0QlFVTmlMRXRCUVVzN08wbEJSVVFzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMGxCUTI1Q0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdUVUZEV2l4WlFVRlpMRVZCUVVVc1NVRkJTVHRCUVVONFFpeExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZVQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPenRCUVVWMFJpeEpRVUZKTEVsQlFVa3NUMEZCVHl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1MwRkJTeXhQUVVGUExFTkJRVU1zVDBGQlR5eEpRVUZKTEVWQlFVVXNRMEZCUXpzN1NVRkZkRWNzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJRenRKUVVONlNDeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1NVRkJTU3hQUVVGUExFTkJRVU1zVjBGQlZ5eEpRVUZKTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNN1QwRkRiRWdzU1VGQlNTeERRVUZETEZWQlFWVXNVVUZCVVN4RlFVRkZPMUZCUTNoQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJReTlDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VDBGRE1VSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VDBGRFdpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRemxDTEVkQlFVYzdPMFZCUlVRc1VVRkJVU3hGUVVGRkxGbEJRVms3U1VGRGNFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVNMVJTeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3hYUVVGWExFVkJRVVVzV1VGQldUdEpRVU4yUWl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFVkJRVVU3VFVGREwwTXNTVUZCU1N4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTnNReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETzB0QlF6TkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVJc1IwRkJSenRCUVVOSU96dEZRVVZGTEZWQlFWVXNSVUZCUlN4WlFVRlpPMGxCUTNSQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlR0TlFVTXZReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8wdEJRMmhETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFpDeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1FVRkRlRUlzUjBGQlJ6dEJRVU5JTzBGQlEwRTdRVUZEUVRzN1JVRkZSU3h4UWtGQmNVSXNSVUZCUlN4VlFVRlZMRTFCUVUwc1JVRkJSVHRKUVVOMlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVN1FVRkRka1FzVFVGQlRTeEpRVUZKTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZET3p0TlFVVnNReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTzFGQlEyUXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXhwUjBGQmFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY0Vvc1QwRkJUenM3VFVGRlJDeEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRPMUZCUTFZc1VVRkJVU3hGUVVGRkxFdEJRVXM3VVVGRFppeFpRVUZaTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJRenRQUVVNelFpeERRVUZETEVOQlFVTTdUVUZEU0N4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRNME1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1FpeEhRVUZIT3p0RlFVVkVMRlZCUVZVc1JVRkJSU3hWUVVGVkxFMUJRVTBzUlVGQlJUdEpRVU0xUWl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRia01zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0TlFVTmFMRmxCUVZrc1JVRkJSU3hMUVVGTE8wdEJRM0JDTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUXpOQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1FVRkROMElzUjBGQlJ6dEJRVU5JTzBGQlEwRTdRVUZEUVRzN1JVRkZSU3hqUVVGakxFVkJRVVVzVlVGQlZTeFJRVUZSTEVWQlFVVTdRVUZEZEVNc1NVRkJTU3hMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3TzAxQlJXaEVMRWxCUVVrc1MwRkJTeXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFVkJRVVU3VVVGRE5VTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXp0UlFVTTVReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRE8xRkJRMnhFTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdVVUZEZEVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJRenRCUVVNeFJDeFBRVUZQT3p0TlFVVkVMRWxCUVVrc1MwRkJTeXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRVVU3VVVGRGFFUXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUTJ4RUxFOUJRVTg3TzB0QlJVWXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUWl4SFFVRkhPenRGUVVWRUxHTkJRV01zUlVGQlJTeFpRVUZaTzBsQlF6RkNMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTTdRVUZETDBJc1IwRkJSenM3UlVGRlJDeG5Ra0ZCWjBJc1JVRkJSU3haUVVGWk8wbEJRelZDTEU5QlFVOHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJUdE5RVU16UkN4SlFVRkpMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMDFCUTJ4RExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dE5RVU53UXl4UFFVRlBMRWxCUVVrc1EwRkJRenRMUVVOaUxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM1JDTEVkQlFVYzdPMFZCUlVRc1pVRkJaU3hGUVVGRkxGVkJRVlVzVlVGQlZTeEZRVUZGTzBsQlEzSkRMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZETjBJc1NVRkJTU3hKUVVGSkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRM2hETzBGQlEwRTdPMGxCUlVrc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVN1RVRkRka01zU1VGQlNTeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wMUJRemRDTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1VVRkRha0lzVjBGQlZ5eEZRVUZGTEZWQlFWVTdUMEZEZUVJc1EwRkJReXhEUVVGRE8wdEJRMG9zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1FpeEhRVUZITzBGQlEwZzdRVUZEUVR0QlFVTkJPenRCUVVWQkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNVMEZCVXl4RlFVRkZPMEZCUTJwRE96dEpRVVZKTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVU3VFVGRGVFSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU51UkN4TFFVRkxPenRKUVVWRUxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFpRVUZaTEVWQlFVVTdUVUZEZUVRc1QwRkJUenRCUVVOaUxFdEJRVXM3UVVGRFREdEJRVU5CT3p0QlFVVkJMRWxCUVVrc1NVRkJTU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenM3U1VGRk5VTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJRenROUVVOcVFpeFJRVUZSTEVWQlFVVXNUMEZCVHp0TlFVTnFRaXhaUVVGWkxFVkJRVVVzU1VGQlNUdEJRVU40UWl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZET3p0QlFVVXhRaXhIUVVGSE96dEZRVVZFTEdGQlFXRXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSVHRKUVVOc1F5eEpRVUZKTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRia0lzU1VGQlNTeFRRVUZUTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1MwRkJTeXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNTVUZCU1N4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlR0TlFVTm9SeXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeFZRVUZWTEVWQlFVVTdVVUZET1VRc1NVRkJTU3hKUVVGSkxFZEJRVWNzVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOcVF5eEpRVUZKTEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03VVVGRGJFTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeEhRVUZITEVWQlFVVTdWVUZETjBJc1NVRkJTVHRaUVVOR0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRYUVVONFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMWxCUTFZc1QwRkJUeXhIUVVGSExFTkJRVU03VjBGRFdqdFRRVU5HTEVOQlFVTXNRMEZCUXp0UlFVTklMRWxCUVVrc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6ZERMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zWTBGQll5eERRVUZETEVWQlFVVTdWVUZEY0VNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5dzBRMEZCTkVNc1IwRkJSeXhqUVVGakxFTkJRVU1zUTBGQlF6dFRRVU5vUmp0UlFVTkVMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRk8xVkJRM3BGTEU5QlFVOHNSMEZCUnl4TFFVRkxMRU5CUVVNN1UwRkRha0k3VDBGRFJpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJRMlk3U1VGRFJDeFBRVUZQTEU5QlFVOHNRMEZCUXp0QlFVTnVRaXhIUVVGSE8wRkJRMGc3UVVGRFFUczdSVUZGUlN4WlFVRlpMRVZCUVVVc1dVRkJXVHRKUVVONFFpeEpRVUZKTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRkRUlzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVNM1FpeEpRVUZKTEVsQlFVa3NVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEZUVNN1FVRkRRVHM3U1VGRlNTeEpRVUZKTEc5Q1FVRnZRaXhIUVVGSExGbEJRVms3VFVGRGNrTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJUdFJRVU5vUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUVVVN1ZVRkRhRU1zVlVGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXp0VFFVTndRanRCUVVOVUxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenM3VFVGRlpDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUTFvc1QwRkJUeXhGUVVGRkxGVkJRVlU3UVVGRE0wSXNUMEZCVHl4RFFVRkRMRU5CUVVNN08wMUJSVWdzU1VGQlNTeFZRVUZWTEVWQlFVVTdVVUZEWkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzA5QlEzUkNMRTFCUVUwN1VVRkRUQ3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMEZCUXk5Q0xFOUJRVTg3UVVGRFVEczdUVUZGVFN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRMW9zVTBGQlV5eEZRVUZGTEVsQlFVazdRVUZEZGtJc1QwRkJUeXhEUVVGRExFTkJRVU03TzBGQlJWUXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU5xUWp0QlFVTkJPenRKUVVWSkxGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRk8wMUJRM1pETEVsQlFVa3NVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dE5RVU0zUWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMDFCUXpWRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTTdVVUZEYWtJc1VVRkJVU3hGUVVGRkxFOUJRVTg3VVVGRGFrSXNXVUZCV1N4RlFVRkZMRWxCUVVrN1QwRkRia0lzUlVGQlJTeExRVUZMTEV0QlFVc3NVMEZCVXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFZEJRVWNzYjBKQlFXOUNMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGRrVXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeENPMEZCUTBFN08wbEJSVWtzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeEZRVUZGTzAxQlEzcERMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03VVVGRFdpeFRRVUZUTEVWQlFVVXNTVUZCU1R0UFFVTm9RaXhEUVVGRExFTkJRVU03UzBGRFNqdEJRVU5NTEVkQlFVYzdRVUZEU0R0QlFVTkJPenRGUVVWRkxGbEJRVmtzUlVGQlJTeFZRVUZWTEZOQlFWTXNSVUZCUlR0SlFVTnFReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETzBsQlF6bERMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTXhSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUXpkQ0xFZEJRVWM3UVVGRFNEdEJRVU5CT3p0RlFVVkZMR05CUVdNc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdEpRVU51UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVONlF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SFFVTjZRenRCUVVOSUxFVkJRVVVzVFVGQlRTeEZRVUZGTEZsQlFWazdPMGxCUld4Q0xFOUJRVThzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1VVRkRiRUlzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5PMUZCUTNKQ0xGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNN1QwRkRhRU03VFVGRFJDeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFN1FVRkRla0lzUzBGQlN5eERRVUZET3p0SFFVVklPMEZCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJVZ3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVU3UlVGREwwVXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03UVVGRGVrSXNRMEZCUXpzN1FVRkZSQ3hOUVVGTkxFTkJRVU1zVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkluWmhjaUJTWldGamRDQTlJR2RzYjJKaGJDNVNaV0ZqZENCOGZDQnlaWEYxYVhKbEtDZHlaV0ZqZENjcE8xeHVkbUZ5SUVadmNtMXplU0E5SUh0OU8xeHVkbUZ5SUhaaGJHbGtZWFJwYjI1U2RXeGxjeUE5SUhKbGNYVnBjbVVvSnk0dmRtRnNhV1JoZEdsdmJsSjFiR1Z6TG1wekp5azdYRzUyWVhJZ2RYUnBiSE1nUFNCeVpYRjFhWEpsS0NjdUwzVjBhV3h6TG1wekp5azdYRzUyWVhJZ1RXbDRhVzRnUFNCeVpYRjFhWEpsS0NjdUwwMXBlR2x1TG1wekp5azdYRzUyWVhJZ2IzQjBhVzl1Y3lBOUlIdDlPMXh1WEc1R2IzSnRjM2t1VFdsNGFXNGdQU0JOYVhocGJqdGNibHh1Um05eWJYTjVMbVJsWm1GMWJIUnpJRDBnWm5WdVkzUnBiMjRnS0hCaGMzTmxaRTl3ZEdsdmJuTXBJSHRjYmlBZ2IzQjBhVzl1Y3lBOUlIQmhjM05sWkU5d2RHbHZibk03WEc1OU8xeHVYRzVHYjNKdGMza3VZV1JrVm1Gc2FXUmhkR2x2YmxKMWJHVWdQU0JtZFc1amRHbHZiaUFvYm1GdFpTd2dablZ1WXlrZ2UxeHVJQ0IyWVd4cFpHRjBhVzl1VW5Wc1pYTmJibUZ0WlYwZ1BTQm1kVzVqTzF4dWZUdGNibHh1Um05eWJYTjVMa1p2Y20wZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUdkbGRFbHVhWFJwWVd4VGRHRjBaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JwYzFaaGJHbGtPaUIwY25WbExGeHVJQ0FnSUNBZ2FYTlRkV0p0YVhSMGFXNW5PaUJtWVd4elpTeGNiaUFnSUNBZ0lHTmhia05vWVc1blpUb2dabUZzYzJWY2JpQWdJQ0I5TzF4dUlDQjlMRnh1SUNCblpYUkVaV1poZFd4MFVISnZjSE02SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnYUdWaFpHVnljem9nZTMwc1hHNGdJQ0FnSUNCdmJsTjFZMk5sYzNNNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1RmNuSnZjam9nWm5WdVkzUnBiMjRnS0NrZ2UzMHNYRzRnSUNBZ0lDQnZibE4xWW0xcGREb2dablZ1WTNScGIyNGdLQ2tnZTMwc1hHNGdJQ0FnSUNCdmJsTjFZbTFwZEhSbFpEb2dablZ1WTNScGIyNGdLQ2tnZTMwc1hHNGdJQ0FnSUNCdmJsWmhiR2xrT2lCbWRXNWpkR2x2YmlBb0tTQjdmU3hjYmlBZ0lDQWdJRzl1U1c1MllXeHBaRG9nWm5WdVkzUnBiMjRnS0NrZ2UzMHNYRzRnSUNBZ0lDQnZia05vWVc1blpUb2dablZ1WTNScGIyNGdLQ2tnZTMxY2JpQWdJQ0I5TzF4dUlDQjlMRnh1WEc0Z0lDOHZJRUZrWkNCaElHMWhjQ0IwYnlCemRHOXlaU0IwYUdVZ2FXNXdkWFJ6SUc5bUlIUm9aU0JtYjNKdExDQmhJRzF2WkdWc0lIUnZJSE4wYjNKbFhHNGdJQzh2SUhSb1pTQjJZV3gxWlhNZ2IyWWdkR2hsSUdadmNtMGdZVzVrSUhKbFoybHpkR1Z5SUdOb2FXeGtJR2x1Y0hWMGMxeHVJQ0JqYjIxd2IyNWxiblJYYVd4c1RXOTFiblE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCMGFHbHpMbWx1Y0hWMGN5QTlJSHQ5TzF4dUlDQWdJSFJvYVhNdWJXOWtaV3dnUFNCN2ZUdGNiaUFnSUNCMGFHbHpMbkpsWjJsemRHVnlTVzV3ZFhSektIUm9hWE11Y0hKdmNITXVZMmhwYkdSeVpXNHBPMXh1SUNCOUxGeHVYRzRnSUdOdmJYQnZibVZ1ZEVScFpFMXZkVzUwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2RHaHBjeTUyWVd4cFpHRjBaVVp2Y20wb0tUdGNiaUFnZlN4Y2JseHVJQ0JqYjIxd2IyNWxiblJYYVd4c1ZYQmtZWFJsT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2RtRnlJR2x1Y0hWMFMyVjVjeUE5SUU5aWFtVmpkQzVyWlhsektIUm9hWE11YVc1d2RYUnpLVHRjYmx4dUlDQWdJQzh2SUZSb1pTQjFjR1JoZEdWa0lHTm9hV3hrY21WdUlHRnljbUY1SUdseklHNXZkQ0JoZG1GcGJHRmliR1VnYUdWeVpTQm1iM0lnYzI5dFpTQnlaV0Z6YjI0c1hHNGdJQ0FnTHk4Z2QyVWdibVZsWkNCMGJ5QjNZV2wwSUdadmNpQnVaWGgwSUdWMlpXNTBJR3h2YjNCY2JpQWdJQ0J6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNibHh1SUNBZ0lDQWdMeThnVkdobElHTnZiWEJ2Ym1WdWRDQnRhV2RvZENCb1lYWmxJR0psWlc0Z2RXNXRiM1Z1ZEdWa0lHOXVJR0Z1WEc0Z0lDQWdJQ0F2THlCMWNHUmhkR1ZjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbWx6VFc5MWJuUmxaQ2dwS1NCN1hHNWNiaUFnSUNBZ0lDQWdkR2hwY3k1eVpXZHBjM1JsY2tsdWNIVjBjeWgwYUdsekxuQnliM0J6TG1Ob2FXeGtjbVZ1S1R0Y2JseHVJQ0FnSUNBZ0lDQjJZWElnYm1WM1NXNXdkWFJMWlhseklEMGdUMkpxWldOMExtdGxlWE1vZEdocGN5NXBibkIxZEhNcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZFhScGJITXVZWEp5WVhselJHbG1abVZ5S0dsdWNIVjBTMlY1Y3l3Z2JtVjNTVzV3ZFhSTFpYbHpLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11ZG1Gc2FXUmhkR1ZHYjNKdEtDazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcExDQXdLVHRjYmlBZ2ZTeGNibHh1SUNBdkx5QlZjR1JoZEdVZ2JXOWtaV3dzSUhOMVltMXBkQ0IwYnlCMWNtd2djSEp2Y0NCaGJtUWdjMlZ1WkNCMGFHVWdiVzlrWld4Y2JpQWdjM1ZpYldsME9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNCbGRtVnVkQzV3Y21WMlpXNTBSR1ZtWVhWc2RDZ3BPMXh1WEc0Z0lDQWdMeThnVkhKcFoyZGxjaUJtYjNKdElHRnpJRzV2ZENCd2NtbHpkR2x1WlM1Y2JpQWdJQ0F2THlCSlppQmhibmtnYVc1d2RYUnpJR2hoZG1VZ2JtOTBJR0psWlc0Z2RHOTFZMmhsWkNCNVpYUWdkR2hwY3lCM2FXeHNJRzFoYTJVZ2RHaGxiU0JrYVhKMGVWeHVJQ0FnSUM4dklITnZJSFpoYkdsa1lYUnBiMjRnWW1WamIyMWxjeUIyYVhOcFlteGxJQ2hwWmlCaVlYTmxaQ0J2YmlCcGMxQnlhWE4wYVc1bEtWeHVJQ0FnSUhSb2FYTXVjMlYwUm05eWJWQnlhWE4wYVc1bEtHWmhiSE5sS1R0Y2JseHVJQ0FnSUM4dklGUnZJSE4xY0hCdmNuUWdkWE5sSUdOaGMyVnpJSGRvWlhKbElHNXZJR0Z6ZVc1aklHOXlJSEpsY1hWbGMzUWdiM0JsY21GMGFXOXVJR2x6SUc1bFpXUmxaQzVjYmlBZ0lDQXZMeUJVYUdVZ1hDSnZibE4xWW0xcGRGd2lJR05oYkd4aVlXTnJJR2x6SUdOaGJHeGxaQ0IzYVhSb0lIUm9aU0J0YjJSbGJDQmxMbWN1SUh0bWFXVnNaRTVoYldVNklGd2liWGxXWVd4MVpWd2lmU3hjYmlBZ0lDQXZMeUJwWmlCM1lXNTBhVzVuSUhSdklISmxjMlYwSUhSb1pTQmxiblJwY21VZ1ptOXliU0IwYnlCdmNtbG5hVzVoYkNCemRHRjBaU3dnZEdobElITmxZMjl1WkNCd1lYSmhiU0JwY3lCaElHTmhiR3hpWVdOcklHWnZjaUIwYUdsekxseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1d2NtOXdjeTUxY213cElIdGNiaUFnSUNBZ0lIUm9hWE11ZFhCa1lYUmxUVzlrWld3b0tUdGNiaUFnSUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdKdGFYUW9kR2hwY3k1dFlYQk5iMlJsYkNncExDQjBhR2x6TG5KbGMyVjBUVzlrWld3c0lIUm9hWE11ZFhCa1lYUmxTVzV3ZFhSelYybDBhRVZ5Y205eUtUdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxuVndaR0YwWlUxdlpHVnNLQ2s3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNCcGMxTjFZbTFwZEhScGJtYzZJSFJ5ZFdWY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNVRkV0p0YVhRb2RHaHBjeTV0WVhCTmIyUmxiQ2dwTENCMGFHbHpMbkpsYzJWMFRXOWtaV3dzSUhSb2FYTXVkWEJrWVhSbFNXNXdkWFJ6VjJsMGFFVnljbTl5S1R0Y2JseHVJQ0FnSUhaaGNpQm9aV0ZrWlhKeklEMGdLRTlpYW1WamRDNXJaWGx6S0hSb2FYTXVjSEp2Y0hNdWFHVmhaR1Z5Y3lrdWJHVnVaM1JvSUNZbUlIUm9hWE11Y0hKdmNITXVhR1ZoWkdWeWN5a2dmSHdnYjNCMGFXOXVjeTVvWldGa1pYSnpJSHg4SUh0OU8xeHVYRzRnSUNBZ2RtRnlJRzFsZEdodlpDQTlJSFJvYVhNdWNISnZjSE11YldWMGFHOWtJQ1ltSUhWMGFXeHpMbUZxWVhoYmRHaHBjeTV3Y205d2N5NXRaWFJvYjJRdWRHOU1iM2RsY2tOaGMyVW9LVjBnUHlCMGFHbHpMbkJ5YjNCekxtMWxkR2h2WkM1MGIweHZkMlZ5UTJGelpTZ3BJRG9nSjNCdmMzUW5PMXh1SUNBZ0lIVjBhV3h6TG1GcVlYaGJiV1YwYUc5a1hTaDBhR2x6TG5CeWIzQnpMblZ5YkN3Z2RHaHBjeTV0WVhCTmIyUmxiQ2dwTENCMGFHbHpMbkJ5YjNCekxtTnZiblJsYm5SVWVYQmxJSHg4SUc5d2RHbHZibk11WTI5dWRHVnVkRlI1Y0dVZ2ZId2dKMnB6YjI0bkxDQm9aV0ZrWlhKektWeHVJQ0FnSUNBZ0xuUm9aVzRvWm5WdVkzUnBiMjRnS0hKbGMzQnZibk5sS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdOalpYTnpLSEpsYzNCdmJuTmxLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1dmJsTjFZbTFwZEhSbFpDZ3BPMXh1SUNBZ0lDQWdmUzVpYVc1a0tIUm9hWE1wS1Z4dUlDQWdJQ0FnTG1OaGRHTm9LSFJvYVhNdVptRnBiRk4xWW0xcGRDazdYRzRnSUgwc1hHNWNiaUFnYldGd1RXOWtaV3c2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXdjbTl3Y3k1dFlYQndhVzVuSUQ4Z2RHaHBjeTV3Y205d2N5NXRZWEJ3YVc1bktIUm9hWE11Ylc5a1pXd3BJRG9nZEdocGN5NXRiMlJsYkR0Y2JpQWdmU3hjYmx4dUlDQXZMeUJIYjJWeklIUm9jbTkxWjJnZ1lXeHNJSEpsWjJsemRHVnlaV1FnWTI5dGNHOXVaVzUwY3lCaGJtUmNiaUFnTHk4Z2RYQmtZWFJsY3lCMGFHVWdiVzlrWld3Z2RtRnNkV1Z6WEc0Z0lIVndaR0YwWlUxdlpHVnNPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnVDJKcVpXTjBMbXRsZVhNb2RHaHBjeTVwYm5CMWRITXBMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNGdLRzVoYldVcElIdGNiaUFnSUNBZ0lIWmhjaUJqYjIxd2IyNWxiblFnUFNCMGFHbHpMbWx1Y0hWMGMxdHVZVzFsWFR0Y2JpQWdJQ0FnSUhSb2FYTXViVzlrWld4YmJtRnRaVjBnUFNCamIyMXdiMjVsYm5RdWMzUmhkR1V1WDNaaGJIVmxPMXh1SUNBZ0lIMHVZbWx1WkNoMGFHbHpLU2s3WEc0Z0lIMHNYRzVjYmlBZ0x5OGdVbVZ6WlhRZ1pXRmphQ0JyWlhrZ2FXNGdkR2hsSUcxdlpHVnNJSFJ2SUhSb1pTQnZjbWxuYVc1aGJDQXZJR2x1YVhScFlXd2dkbUZzZFdWY2JpQWdjbVZ6WlhSTmIyUmxiRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUU5aWFtVmpkQzVyWlhsektIUm9hWE11YVc1d2RYUnpLUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2h1WVcxbEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG1sdWNIVjBjMXR1WVcxbFhTNXlaWE5sZEZaaGJIVmxLQ2s3WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdJQ0IwYUdsekxuWmhiR2xrWVhSbFJtOXliU2dwTzF4dUlDQjlMRnh1WEc0Z0lDOHZJRWR2SUhSb2NtOTFaMmdnWlhKeWIzSnpJR1p5YjIwZ2MyVnlkbVZ5SUdGdVpDQm5jbUZpSUhSb1pTQmpiMjF3YjI1bGJuUnpYRzRnSUM4dklITjBiM0psWkNCcGJpQjBhR1VnYVc1d2RYUnpJRzFoY0M0Z1EyaGhibWRsSUhSb1pXbHlJSE4wWVhSbElIUnZJR2x1ZG1Gc2FXUmNiaUFnTHk4Z1lXNWtJSE5sZENCMGFHVWdjMlZ5ZG1WeVJYSnliM0lnYldWemMyRm5aVnh1SUNCMWNHUmhkR1ZKYm5CMWRITlhhWFJvUlhKeWIzSTZJR1oxYm1OMGFXOXVJQ2hsY25KdmNuTXBJSHRjYmlBZ0lDQlBZbXBsWTNRdWEyVjVjeWhsY25KdmNuTXBMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNGdLRzVoYldVc0lHbHVaR1Y0S1NCN1hHNGdJQ0FnSUNCMllYSWdZMjl0Y0c5dVpXNTBJRDBnZEdocGN5NXBibkIxZEhOYmJtRnRaVjA3WEc1Y2JpQWdJQ0FnSUdsbUlDZ2hZMjl0Y0c5dVpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduV1c5MUlHRnlaU0IwY25scGJtY2dkRzhnZFhCa1lYUmxJR0Z1SUdsdWNIVjBJSFJvWVhRZ1pHOWxjeUJ1YjNRZ1pYaHBjM1J6TGlCV1pYSnBabmtnWlhKeWIzSnpJRzlpYW1WamRDQjNhWFJvSUdsdWNIVjBJRzVoYldWekxpQW5JQ3NnU2xOUFRpNXpkSEpwYm1kcFpua29aWEp5YjNKektTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSFpoY2lCaGNtZHpJRDBnVzN0Y2JpQWdJQ0FnSUNBZ1gybHpWbUZzYVdRNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNCZmMyVnlkbVZ5UlhKeWIzSTZJR1Z5Y205eWMxdHVZVzFsWFZ4dUlDQWdJQ0FnZlYwN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdWMyVjBVM1JoZEdVdVlYQndiSGtvWTI5dGNHOXVaVzUwTENCaGNtZHpLVHRjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQjlMRnh1WEc0Z0lHWmhhV3hUZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2hsY25KdmNuTXBJSHRjYmlBZ0lDQjBhR2x6TG5Wd1pHRjBaVWx1Y0hWMGMxZHBkR2hGY25KdmNpaGxjbkp2Y25NcE8xeHVJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdhWE5UZFdKdGFYUjBhVzVuT2lCbVlXeHpaVnh1SUNBZ0lIMHBPMXh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVGY25KdmNpaGxjbkp2Y25NcE8xeHVJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNVRkV0p0YVhSMFpXUW9LVHRjYmlBZ2ZTeGNibHh1SUNBdkx5QlVjbUYyWlhKelpTQjBhR1VnWTJocGJHUnlaVzRnWVc1a0lHTm9hV3hrY21WdUlHOW1JR05vYVd4a2NtVnVJSFJ2SUdacGJtUmNiaUFnTHk4Z1lXeHNJR2x1Y0hWMGN5QmllU0JqYUdWamEybHVaeUIwYUdVZ2JtRnRaU0J3Y205d0xpQk5ZWGxpWlNCa2J5QmhJR0psZEhSbGNseHVJQ0F2THlCamFHVmpheUJvWlhKbFhHNGdJSEpsWjJsemRHVnlTVzV3ZFhSek9pQm1kVzVqZEdsdmJpQW9ZMmhwYkdSeVpXNHBJSHRjYmlBZ0lDQlNaV0ZqZEM1RGFHbHNaSEpsYmk1bWIzSkZZV05vS0dOb2FXeGtjbVZ1TENCbWRXNWpkR2x2YmlBb1kyaHBiR1FwSUh0Y2JseHVJQ0FnSUNBZ2FXWWdLR05vYVd4a0lDWW1JR05vYVd4a0xuQnliM0J6SUNZbUlHTm9hV3hrTG5CeWIzQnpMbTVoYldVcElIdGNiaUFnSUNBZ0lDQWdZMmhwYkdRdWNISnZjSE11WDJGMGRHRmphRlJ2Um05eWJTQTlJSFJvYVhNdVlYUjBZV05vVkc5R2IzSnRPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZlpHVjBZV05vUm5KdmJVWnZjbTBnUFNCMGFHbHpMbVJsZEdGamFFWnliMjFHYjNKdE8xeHVJQ0FnSUNBZ0lDQmphR2xzWkM1d2NtOXdjeTVmZG1Gc2FXUmhkR1VnUFNCMGFHbHpMblpoYkdsa1lYUmxPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZmFYTkdiM0p0UkdsellXSnNaV1FnUFNCMGFHbHpMbWx6Um05eWJVUnBjMkZpYkdWa08xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvWTJocGJHUWdKaVlnWTJocGJHUXVjSEp2Y0hNZ0ppWWdZMmhwYkdRdWNISnZjSE11WTJocGJHUnlaVzRwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV5WldkcGMzUmxja2x1Y0hWMGN5aGphR2xzWkM1d2NtOXdjeTVqYUdsc1pISmxiaWs3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVJQ0I5TEZ4dVhHNGdJR2x6Um05eWJVUnBjMkZpYkdWa09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y0hKdmNITXVaR2x6WVdKc1pXUTdYRzRnSUgwc1hHNWNiaUFnWjJWMFEzVnljbVZ1ZEZaaGJIVmxjem9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJQWW1wbFkzUXVhMlY1Y3loMGFHbHpMbWx1Y0hWMGN5a3VjbVZrZFdObEtHWjFibU4wYVc5dUlDaGtZWFJoTENCdVlXMWxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1kyOXRjRzl1Wlc1MElEMGdkR2hwY3k1cGJuQjFkSE5iYm1GdFpWMDdYRzRnSUNBZ0lDQmtZWFJoVzI1aGJXVmRJRDBnWTI5dGNHOXVaVzUwTG5OMFlYUmxMbDkyWVd4MVpUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCa1lYUmhPMXh1SUNBZ0lIMHVZbWx1WkNoMGFHbHpLU3dnZTMwcE8xeHVJQ0I5TEZ4dVhHNGdJSE5sZEVadmNtMVFjbWx6ZEdsdVpUb2dablZ1WTNScGIyNGdLR2x6VUhKcGMzUnBibVVwSUh0Y2JpQWdJQ0IyWVhJZ2FXNXdkWFJ6SUQwZ2RHaHBjeTVwYm5CMWRITTdYRzRnSUNBZ2RtRnlJR2x1Y0hWMFMyVjVjeUE5SUU5aWFtVmpkQzVyWlhsektHbHVjSFYwY3lrN1hHNWNiaUFnSUNBdkx5QkpkR1Z5WVhSbElIUm9jbTkxWjJnZ1pXRmphQ0JqYjIxd2IyNWxiblFnWVc1a0lITmxkQ0JwZENCaGN5QndjbWx6ZEdsdVpWeHVJQ0FnSUM4dklHOXlJRndpWkdseWRIbGNJaTVjYmlBZ0lDQnBibkIxZEV0bGVYTXVabTl5UldGamFDaG1kVzVqZEdsdmJpQW9ibUZ0WlN3Z2FXNWtaWGdwSUh0Y2JpQWdJQ0FnSUhaaGNpQmpiMjF3YjI1bGJuUWdQU0JwYm5CMWRITmJibUZ0WlYwN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ0lDQmZhWE5RY21semRHbHVaVG9nYVhOUWNtbHpkR2x1WlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnZlN4Y2JseHVJQ0F2THlCVmMyVWdkR2hsSUdKcGJtUmxaQ0IyWVd4MVpYTWdZVzVrSUhSb1pTQmhZM1IxWVd3Z2FXNXdkWFFnZG1Gc2RXVWdkRzljYmlBZ0x5OGdkbUZzYVdSaGRHVWdkR2hsSUdsdWNIVjBJR0Z1WkNCelpYUWdhWFJ6SUhOMFlYUmxMaUJVYUdWdUlHTm9aV05ySUhSb1pWeHVJQ0F2THlCemRHRjBaU0J2WmlCMGFHVWdabTl5YlNCcGRITmxiR1pjYmlBZ2RtRnNhV1JoZEdVNklHWjFibU4wYVc5dUlDaGpiMjF3YjI1bGJuUXBJSHRjYmx4dUlDQWdJQzh2SUZSeWFXZG5aWElnYjI1RGFHRnVaMlZjYmlBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1allXNURhR0Z1WjJVcElIdGNiaUFnSUNBZ0lIUm9hWE11Y0hKdmNITXViMjVEYUdGdVoyVW9kR2hwY3k1blpYUkRkWEp5Wlc1MFZtRnNkV1Z6S0NrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDZ2hZMjl0Y0c5dVpXNTBMbkJ5YjNCekxuSmxjWFZwY21Wa0lDWW1JQ0ZqYjIxd2IyNWxiblF1WDNaaGJHbGtZWFJwYjI1ektTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1VuVnVJSFJvY205MVoyZ2dkR2hsSUhaaGJHbGtZWFJwYjI1ekxDQnpjR3hwZENCMGFHVnRJSFZ3SUdGdVpDQmpZV3hzWEc0Z0lDQWdMeThnZEdobElIWmhiR2xrWVhSdmNpQkpSaUIwYUdWeVpTQnBjeUJoSUhaaGJIVmxJRzl5SUdsMElHbHpJSEpsY1hWcGNtVmtYRzRnSUNBZ2RtRnlJR2x6Vm1Gc2FXUWdQU0IwYUdsekxuSjFibFpoYkdsa1lYUnBiMjRvWTI5dGNHOXVaVzUwS1R0Y2JseHVJQ0FnSUdOdmJYQnZibVZ1ZEM1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNCZmFYTldZV3hwWkRvZ2FYTldZV3hwWkN4Y2JpQWdJQ0FnSUY5elpYSjJaWEpGY25KdmNqb2diblZzYkZ4dUlDQWdJSDBzSUhSb2FYTXVkbUZzYVdSaGRHVkdiM0p0S1R0Y2JseHVJQ0I5TEZ4dVhHNGdJSEoxYmxaaGJHbGtZWFJwYjI0NklHWjFibU4wYVc5dUlDaGpiMjF3YjI1bGJuUXBJSHRjYmlBZ0lDQjJZWElnYVhOV1lXeHBaQ0E5SUhSeWRXVTdYRzRnSUNBZ2FXWWdLR052YlhCdmJtVnVkQzVmZG1Gc2FXUmhkR2x2Ym5NdWJHVnVaM1JvSUNZbUlDaGpiMjF3YjI1bGJuUXVjSEp2Y0hNdWNtVnhkV2x5WldRZ2ZId2dZMjl0Y0c5dVpXNTBMbk4wWVhSbExsOTJZV3gxWlNBaFBUMGdKeWNwS1NCN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdVgzWmhiR2xrWVhScGIyNXpMbk53YkdsMEtDY3NKeWt1Wm05eVJXRmphQ2htZFc1amRHbHZiaUFvZG1Gc2FXUmhkR2x2YmlrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWVhKbmN5QTlJSFpoYkdsa1lYUnBiMjR1YzNCc2FYUW9Kem9uS1R0Y2JpQWdJQ0FnSUNBZ2RtRnlJSFpoYkdsa1lYUmxUV1YwYUc5a0lEMGdZWEpuY3k1emFHbG1kQ2dwTzF4dUlDQWdJQ0FnSUNCaGNtZHpJRDBnWVhKbmN5NXRZWEFvWm5WdVkzUnBiMjRnS0dGeVp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnU2xOUFRpNXdZWEp6WlNoaGNtY3BPMXh1SUNBZ0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJoY21jN0lDOHZJRWwwSUdseklHRWdjM1J5YVc1bklHbG1JR2wwSUdOaGJpQnViM1FnY0dGeWMyVWdhWFJjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0JoY21keklEMGdXMk52YlhCdmJtVnVkQzV6ZEdGMFpTNWZkbUZzZFdWZExtTnZibU5oZENoaGNtZHpLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjJZV3hwWkdGMGFXOXVVblZzWlhOYmRtRnNhV1JoZEdWTlpYUm9iMlJkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZEdiM0p0YzNrZ1pHOWxjeUJ1YjNRZ2FHRjJaU0IwYUdVZ2RtRnNhV1JoZEdsdmJpQnlkV3hsT2lBbklDc2dkbUZzYVdSaGRHVk5aWFJvYjJRcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNnaGRtRnNhV1JoZEdsdmJsSjFiR1Z6VzNaaGJHbGtZWFJsVFdWMGFHOWtYUzVoY0hCc2VTaDBhR2x6TG1kbGRFTjFjbkpsYm5SV1lXeDFaWE1vS1N3Z1lYSm5jeWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBjMVpoYkdsa0lEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHVZbWx1WkNoMGFHbHpLU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCcGMxWmhiR2xrTzF4dUlDQjlMRnh1WEc0Z0lDOHZJRlpoYkdsa1lYUmxJSFJvWlNCbWIzSnRJR0o1SUdkdmFXNW5JSFJvY205MVoyZ2dZV3hzSUdOb2FXeGtJR2x1Y0hWMElHTnZiWEJ2Ym1WdWRITmNiaUFnTHk4Z1lXNWtJR05vWldOcklIUm9aV2x5SUhOMFlYUmxYRzRnSUhaaGJHbGtZWFJsUm05eWJUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSFpoY2lCaGJHeEpjMVpoYkdsa0lEMGdkSEoxWlR0Y2JpQWdJQ0IyWVhJZ2FXNXdkWFJ6SUQwZ2RHaHBjeTVwYm5CMWRITTdYRzRnSUNBZ2RtRnlJR2x1Y0hWMFMyVjVjeUE5SUU5aWFtVmpkQzVyWlhsektHbHVjSFYwY3lrN1hHNWNiaUFnSUNBdkx5QlhaU0J1WldWa0lHRWdZMkZzYkdKaFkyc2dZWE1nZDJVZ1lYSmxJSFpoYkdsa1lYUnBibWNnWVd4c0lHbHVjSFYwY3lCaFoyRnBiaTRnVkdocGN5QjNhV3hzWEc0Z0lDQWdMeThnY25WdUlIZG9aVzRnZEdobElHeGhjM1FnWTI5dGNHOXVaVzUwSUdoaGN5QnpaWFFnYVhSeklITjBZWFJsWEc0Z0lDQWdkbUZ5SUc5dVZtRnNhV1JoZEdsdmJrTnZiWEJzWlhSbElEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnYVc1d2RYUkxaWGx6TG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0c1aGJXVXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRnBibkIxZEhOYmJtRnRaVjB1YzNSaGRHVXVYMmx6Vm1Gc2FXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCaGJHeEpjMVpoYkdsa0lEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHVZbWx1WkNoMGFHbHpLU2s3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0JwYzFaaGJHbGtPaUJoYkd4SmMxWmhiR2xrWEc0Z0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUNBZ2FXWWdLR0ZzYkVselZtRnNhV1FwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NXZibFpoYkdsa0tDazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CeWIzQnpMbTl1U1c1MllXeHBaQ2dwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBdkx5QlVaV3hzSUhSb1pTQm1iM0p0SUhSb1lYUWdhWFFnWTJGdUlITjBZWEowSUhSdklIUnlhV2RuWlhJZ1kyaGhibWRsSUdWMlpXNTBjMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lHTmhia05vWVc1blpUb2dkSEoxWlZ4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNCOUxtSnBibVFvZEdocGN5azdYRzVjYmlBZ0lDQXZMeUJTZFc0Z2RtRnNhV1JoZEdsdmJpQmhaMkZwYmlCcGJpQmpZWE5sSUdGbVptVmpkR1ZrSUdKNUlHOTBhR1Z5SUdsdWNIVjBjeTRnVkdobFhHNGdJQ0FnTHk4Z2JHRnpkQ0JqYjIxd2IyNWxiblFnZG1Gc2FXUmhkR1ZrSUhkcGJHd2djblZ1SUhSb1pTQnZibFpoYkdsa1lYUnBiMjVEYjIxd2JHVjBaU0JqWVd4c1ltRmphMXh1SUNBZ0lHbHVjSFYwUzJWNWN5NW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHVZVzFsTENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnZG1GeUlHTnZiWEJ2Ym1WdWRDQTlJR2x1Y0hWMGMxdHVZVzFsWFR0Y2JpQWdJQ0FnSUhaaGNpQnBjMVpoYkdsa0lEMGdkR2hwY3k1eWRXNVdZV3hwWkdGMGFXOXVLR052YlhCdmJtVnVkQ2s3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNCZmFYTldZV3hwWkRvZ2FYTldZV3hwWkN4Y2JpQWdJQ0FnSUNBZ1gzTmxjblpsY2tWeWNtOXlPaUJ1ZFd4c1hHNGdJQ0FnSUNCOUxDQnBibVJsZUNBOVBUMGdhVzV3ZFhSTFpYbHpMbXhsYm1kMGFDQXRJREVnUHlCdmJsWmhiR2xrWVhScGIyNURiMjF3YkdWMFpTQTZJRzUxYkd3cE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektTazdYRzVjYmlBZ0lDQXZMeUJKWmlCMGFHVnlaU0JoY21VZ2JtOGdhVzV3ZFhSekxDQnpaWFFnYzNSaGRHVWdkMmhsY21VZ1ptOXliU0JwY3lCeVpXRmtlU0IwYnlCMGNtbG5aMlZ5WEc0Z0lDQWdMeThnWTJoaGJtZGxJR1YyWlc1MExpQk9aWGNnYVc1d2RYUnpJRzFwWjJoMElHSmxJR0ZrWkdWa0lHeGhkR1Z5WEc0Z0lDQWdhV1lnS0NGcGJuQjFkRXRsZVhNdWJHVnVaM1JvSUNZbUlIUm9hWE11YVhOTmIzVnVkR1ZrS0NrcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNCallXNURhR0Z1WjJVNklIUnlkV1ZjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmlBZ2ZTeGNibHh1SUNBdkx5Qk5aWFJvYjJRZ2NIVjBJRzl1SUdWaFkyZ2dhVzV3ZFhRZ1kyOXRjRzl1Wlc1MElIUnZJSEpsWjJsemRHVnlYRzRnSUM4dklHbDBjMlZzWmlCMGJ5QjBhR1VnWm05eWJWeHVJQ0JoZEhSaFkyaFViMFp2Y20wNklHWjFibU4wYVc5dUlDaGpiMjF3YjI1bGJuUXBJSHRjYmlBZ0lDQjBhR2x6TG1sdWNIVjBjMXRqYjIxd2IyNWxiblF1Y0hKdmNITXVibUZ0WlYwZ1BTQmpiMjF3YjI1bGJuUTdYRzRnSUNBZ2RHaHBjeTV0YjJSbGJGdGpiMjF3YjI1bGJuUXVjSEp2Y0hNdWJtRnRaVjBnUFNCamIyMXdiMjVsYm5RdWMzUmhkR1V1WDNaaGJIVmxPMXh1SUNBZ0lIUm9hWE11ZG1Gc2FXUmhkR1VvWTI5dGNHOXVaVzUwS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJOWlhSb2IyUWdjSFYwSUc5dUlHVmhZMmdnYVc1d2RYUWdZMjl0Y0c5dVpXNTBJSFJ2SUhWdWNtVm5hWE4wWlhKY2JpQWdMeThnYVhSelpXeG1JR1p5YjIwZ2RHaGxJR1p2Y20xY2JpQWdaR1YwWVdOb1JuSnZiVVp2Y20wNklHWjFibU4wYVc5dUlDaGpiMjF3YjI1bGJuUXBJSHRjYmlBZ0lDQmtaV3hsZEdVZ2RHaHBjeTVwYm5CMWRITmJZMjl0Y0c5dVpXNTBMbkJ5YjNCekxtNWhiV1ZkTzF4dUlDQWdJR1JsYkdWMFpTQjBhR2x6TG0xdlpHVnNXMk52YlhCdmJtVnVkQzV3Y205d2N5NXVZVzFsWFR0Y2JpQWdmU3hjYmlBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQnlaWFIxY200Z1VtVmhZM1F1UkU5TkxtWnZjbTBvZTF4dUlDQWdJQ0FnSUNCdmJsTjFZbTFwZERvZ2RHaHBjeTV6ZFdKdGFYUXNYRzRnSUNBZ0lDQWdJR05zWVhOelRtRnRaVG9nZEdocGN5NXdjbTl3Y3k1amJHRnpjMDVoYldWY2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCMGFHbHpMbkJ5YjNCekxtTm9hV3hrY21WdVhHNGdJQ0FnS1R0Y2JseHVJQ0I5WEc1OUtUdGNibHh1YVdZZ0tDRm5iRzlpWVd3dVpYaHdiM0owY3lBbUppQWhaMnh2WW1Gc0xtMXZaSFZzWlNBbUppQW9JV2RzYjJKaGJDNWtaV1pwYm1VZ2ZId2dJV2RzYjJKaGJDNWtaV1pwYm1VdVlXMWtLU2tnZTF4dUlDQm5iRzlpWVd3dVJtOXliWE41SUQwZ1JtOXliWE41TzF4dWZWeHVYRzV0YjJSMWJHVXVaWGh3YjNKMGN5QTlJRVp2Y20xemVUdGNiaUpkZlE9PSIsIm1vZHVsZS5leHBvcnRzID0ge1xuICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX3ZhbHVlOiB0aGlzLnByb3BzLnZhbHVlID8gdGhpcy5wcm9wcy52YWx1ZSA6ICcnLFxuICAgICAgX2lzVmFsaWQ6IHRydWUsXG4gICAgICBfaXNQcmlzdGluZTogdHJ1ZVxuICAgIH07XG4gIH0sXG4gIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGNvbmZpZ3VyZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbnModGhpcy5wcm9wcy52YWxpZGF0aW9ucywgdGhpcy5wcm9wcy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm0odGhpcyk7XG4gICAgfS5iaW5kKHRoaXMpO1xuXG4gICAgaWYgKCF0aGlzLnByb3BzLm5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRm9ybSBJbnB1dCByZXF1aXJlcyBhIG5hbWUgcHJvcGVydHkgd2hlbiB1c2VkJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm0pIHtcbiAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW91bnRlZCgpKSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb3JtIE1peGluIHJlcXVpcmVzIGNvbXBvbmVudCB0byBiZSBuZXN0ZWQgaW4gYSBGb3JtJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uZmlndXJlKCk7XG4gICAgICB9LmJpbmQodGhpcyksIDApO1xuICAgIH1cbiAgICBjb25maWd1cmUoKTtcblxuICB9LFxuXG4gIC8vIFdlIGhhdmUgdG8gbWFrZSB0aGUgdmFsaWRhdGUgbWV0aG9kIGlzIGtlcHQgd2hlbiBuZXcgcHJvcHMgYXJlIGFkZGVkXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIChuZXh0UHJvcHMpIHtcbiAgICBuZXh0UHJvcHMuX2F0dGFjaFRvRm9ybSA9IHRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybTtcbiAgICBuZXh0UHJvcHMuX2RldGFjaEZyb21Gb3JtID0gdGhpcy5wcm9wcy5fZGV0YWNoRnJvbUZvcm07XG4gICAgbmV4dFByb3BzLl92YWxpZGF0ZSA9IHRoaXMucHJvcHMuX3ZhbGlkYXRlO1xuICAgIHRoaXMuc2V0VmFsaWRhdGlvbnMobmV4dFByb3BzLnZhbGlkYXRpb25zLCBuZXh0UHJvcHMucmVxdWlyZWQpO1xuICB9LFxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZTogZnVuY3Rpb24gKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG5cbiAgICB2YXIgaXNWYWx1ZUNoYW5nZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMucHJvcHMudmFsdWUgIT09IHByZXZQcm9wcy52YWx1ZSAmJiAoXG4gICAgICAgICAgdGhpcy5zdGF0ZS5fdmFsdWUgPT09IHByZXZQcm9wcy52YWx1ZSB8fFxuXG4gICAgICAgICAgLy8gU2luY2UgdW5kZWZpbmVkIGlzIGNvbnZlcnRlZCB0byBlbXB0eSBzdHJpbmcgd2UgaGF2ZSB0b1xuICAgICAgICAgIC8vIGNoZWNrIHRoYXQgc3BlY2lmaWNhbGx5XG4gICAgICAgICAgKHRoaXMuc3RhdGUuX3ZhbHVlID09PSAnJyAmJiBwcmV2UHJvcHMudmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIH0uYmluZCh0aGlzKTtcblxuXG4gICAgLy8gSWYgdmFsaWRhdGlvbnMgaGFzIGNoYW5nZWQgb3Igc29tZXRoaW5nIG91dHNpZGUgY2hhbmdlcyBcbiAgICAvLyB0aGUgdmFsdWUsIHNldCB0aGUgdmFsdWUgYWdhaW4gcnVubmluZyBhIHZhbGlkYXRpb25cblxuICAgIGlmIChwcmV2UHJvcHMudmFsaWRhdGlvbnMgIT09IHRoaXMucHJvcHMudmFsaWRhdGlvbnMgfHwgaXNWYWx1ZUNoYW5nZWQoKSkge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnByb3BzLnZhbHVlIHx8ICcnKTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gRGV0YWNoIGl0IHdoZW4gY29tcG9uZW50IHVubW91bnRzXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5wcm9wcy5fZGV0YWNoRnJvbUZvcm0odGhpcyk7XG4gIH0sXG5cbiAgc2V0VmFsaWRhdGlvbnM6IGZ1bmN0aW9uICh2YWxpZGF0aW9ucywgcmVxdWlyZWQpIHtcblxuICAgIC8vIEFkZCB2YWxpZGF0aW9ucyB0byB0aGUgc3RvcmUgaXRzZWxmIGFzIHRoZSBwcm9wcyBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZFxuICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnMgfHwgJyc7XG5cbiAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnMgPyB2YWxpZGF0aW9ucyArICcsJyA6ICcnO1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbnMgKz0gJ2lzVmFsdWUnO1xuICAgIH1cblxuICB9LFxuXG4gIC8vIFdlIHZhbGlkYXRlIGFmdGVyIHRoZSB2YWx1ZSBoYXMgYmVlbiBzZXRcbiAgc2V0VmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgX3ZhbHVlOiB2YWx1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiBmYWxzZVxuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMucHJvcHMuX3ZhbGlkYXRlKHRoaXMpO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG4gIHJlc2V0VmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIF92YWx1ZTogJycsXG4gICAgICBfaXNQcmlzdGluZTogdHJ1ZVxuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMucHJvcHMuX3ZhbGlkYXRlKHRoaXMpO1xuICAgIH0pO1xuICB9LFxuICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLl92YWx1ZTtcbiAgfSxcbiAgaGFzVmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5fdmFsdWUgIT09ICcnO1xuICB9LFxuICBnZXRFcnJvck1lc3NhZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgfHwgdGhpcy5zaG93UmVxdWlyZWQoKSA/IG51bGwgOiB0aGlzLnN0YXRlLl9zZXJ2ZXJFcnJvciB8fCB0aGlzLnByb3BzLnZhbGlkYXRpb25FcnJvcjtcbiAgfSxcbiAgaXNGb3JtRGlzYWJsZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5faXNGb3JtRGlzYWJsZWQoKTtcbiAgfSxcbiAgaXNWYWxpZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLl9pc1ZhbGlkO1xuICB9LFxuICBpc1ByaXN0aW5lOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX2lzUHJpc3RpbmU7XG4gIH0sXG4gIGlzUmVxdWlyZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gISF0aGlzLnByb3BzLnJlcXVpcmVkO1xuICB9LFxuICBzaG93UmVxdWlyZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1JlcXVpcmVkKCkgJiYgdGhpcy5zdGF0ZS5fdmFsdWUgPT09ICcnO1xuICB9LFxuICBzaG93RXJyb3I6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gIXRoaXMuc2hvd1JlcXVpcmVkKCkgJiYgIXRoaXMuc3RhdGUuX2lzVmFsaWQ7XG4gIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdlRXbDRhVzR1YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTlWYzJWeWN5OWphSEpwYzNScFlXNWhiR1p2Ym1rdlJHOWpkVzFsYm5SekwyUmxkaTltYjNKdGMza3RjbVZoWTNRdmMzSmpMMDFwZUdsdUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWRCUVVjN1JVRkRaaXhsUVVGbExFVkJRVVVzV1VGQldUdEpRVU16UWl4UFFVRlBPMDFCUTB3c1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVWQlFVVTdUVUZEYUVRc1VVRkJVU3hGUVVGRkxFbEJRVWs3VFVGRFpDeFhRVUZYTEVWQlFVVXNTVUZCU1R0TFFVTnNRaXhEUVVGRE8wZEJRMGc3UVVGRFNDeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxGbEJRVms3TzBsQlJUbENMRWxCUVVrc1UwRkJVeXhIUVVGSExGbEJRVms3VFVGRE1VSXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzAxQlEycEZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNKRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN08wbEJSV0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRk8wMUJRM0JDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc0swTkJRU3RETEVOQlFVTXNRMEZCUXp0QlFVTjJSU3hMUVVGTE96dEpRVVZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUlVGQlJUdE5RVU0zUWl4UFFVRlBMRlZCUVZVc1EwRkJReXhaUVVGWk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzVDBGQlR6dFJRVU01UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVWQlFVVTdWVUZETjBJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHpSRUZCYzBRc1EwRkJReXhEUVVGRE8xTkJRM3BGTzFGQlEwUXNVMEZCVXl4RlFVRkZMRU5CUVVNN1QwRkRZaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOc1FqdEJRVU5NTEVsQlFVa3NVMEZCVXl4RlFVRkZMRU5CUVVNN08wRkJSV2hDTEVkQlFVYzdRVUZEU0RzN1JVRkZSU3g1UWtGQmVVSXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSVHRKUVVNNVF5eFRRVUZUTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETzBsQlEyNUVMRk5CUVZNc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNN1NVRkRka1FzVTBGQlV5eERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU16UXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRMjVGTEVkQlFVYzdPMEZCUlVnc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVU3TzBGQlJYUkVMRWxCUVVrc1NVRkJTU3hqUVVGakxFZEJRVWNzV1VGQldUczdUVUZGTDBJN1VVRkRSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NTMEZCU3l4VFFVRlRMRU5CUVVNc1MwRkJTenRCUVVNMVF5eFZRVUZWTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hMUVVGTExGTkJRVk1zUTBGQlF5eExRVUZMTzBGQlF5OURPMEZCUTBFN08xZEJSVmNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRXRCUVVzc1JVRkJSU3hKUVVGSkxGTkJRVk1zUTBGQlF5eExRVUZMTEV0QlFVc3NVMEZCVXl4RFFVRkRPMU5CUXpWRU8wRkJRMVFzVVVGQlVUczdRVUZGVWl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEycENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEpRVVZKTEVsQlFVa3NVMEZCVXl4RFFVRkRMRmRCUVZjc1MwRkJTeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NTVUZCU1N4alFVRmpMRVZCUVVVc1JVRkJSVHROUVVONFJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMHRCUTNaRE8wRkJRMHdzUjBGQlJ6dEJRVU5JT3p0RlFVVkZMRzlDUVVGdlFpeEZRVUZGTEZsQlFWazdTVUZEYUVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRja01zUjBGQlJ6czdRVUZGU0N4RlFVRkZMR05CUVdNc1JVRkJSU3hWUVVGVkxGZEJRVmNzUlVGQlJTeFJRVUZSTEVWQlFVVTdRVUZEYmtRN08wRkJSVUVzU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRmRCUVZjc1NVRkJTU3hGUVVGRkxFTkJRVU03TzBsQlJYUkRMRWxCUVVrc1VVRkJVU3hGUVVGRk8wMUJRMW9zU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4WFFVRlhMRWRCUVVjc1YwRkJWeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdUVUZEZWtRc1NVRkJTU3hEUVVGRExGbEJRVmtzU1VGQlNTeFRRVUZUTEVOQlFVTTdRVUZEY2tNc1MwRkJTenM3UVVGRlRDeEhRVUZITzBGQlEwZzdPMFZCUlVVc1VVRkJVU3hGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzBsQlEzcENMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03VFVGRFdpeE5RVUZOTEVWQlFVVXNTMEZCU3p0TlFVTmlMRmRCUVZjc1JVRkJSU3hMUVVGTE8wdEJRMjVDTEVWQlFVVXNXVUZCV1R0TlFVTmlMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUXpWQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1IwRkRaanRGUVVORUxGVkJRVlVzUlVGQlJTeFpRVUZaTzBsQlEzUkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03VFVGRFdpeE5RVUZOTEVWQlFVVXNSVUZCUlR0TlFVTldMRmRCUVZjc1JVRkJSU3hKUVVGSk8wdEJRMnhDTEVWQlFVVXNXVUZCV1R0TlFVTmlMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUXpWQ0xFTkJRVU1zUTBGQlF6dEhRVU5LTzBWQlEwUXNVVUZCVVN4RlFVRkZMRmxCUVZrN1NVRkRjRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJRenRIUVVNeFFqdEZRVU5FTEZGQlFWRXNSVUZCUlN4WlFVRlpPMGxCUTNCQ0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRXRCUVVzc1JVRkJSU3hEUVVGRE8wZEJRMnBETzBWQlEwUXNaVUZCWlN4RlFVRkZMRmxCUVZrN1NVRkRNMElzVDBGQlR5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGbEJRVmtzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJRenRIUVVNM1J6dEZRVU5FTEdOQlFXTXNSVUZCUlN4WlFVRlpPMGxCUXpGQ0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRIUVVOeVF6dEZRVU5FTEU5QlFVOHNSVUZCUlN4WlFVRlpPMGxCUTI1Q0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNN1IwRkROVUk3UlVGRFJDeFZRVUZWTEVWQlFVVXNXVUZCV1R0SlFVTjBRaXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRPMGRCUXk5Q08wVkJRMFFzVlVGQlZTeEZRVUZGTEZsQlFWazdTVUZEZEVJc1QwRkJUeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNN1IwRkRPVUk3UlVGRFJDeFpRVUZaTEVWQlFVVXNXVUZCV1R0SlFVTjRRaXhQUVVGUExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUzBGQlN5eEZRVUZGTEVOQlFVTTdSMEZEZEVRN1JVRkRSQ3hUUVVGVExFVkJRVVVzV1VGQldUdEpRVU55UWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU03UjBGRGNrUTdRMEZEUml4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYlc5a2RXeGxMbVY0Y0c5eWRITWdQU0I3WEc0Z0lHZGxkRWx1YVhScFlXeFRkR0YwWlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCZmRtRnNkV1U2SUhSb2FYTXVjSEp2Y0hNdWRtRnNkV1VnUHlCMGFHbHpMbkJ5YjNCekxuWmhiSFZsSURvZ0p5Y3NYRzRnSUNBZ0lDQmZhWE5XWVd4cFpEb2dkSEoxWlN4Y2JpQWdJQ0FnSUY5cGMxQnlhWE4wYVc1bE9pQjBjblZsWEc0Z0lDQWdmVHRjYmlBZ2ZTeGNiaUFnWTI5dGNHOXVaVzUwVjJsc2JFMXZkVzUwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQjJZWElnWTI5dVptbG5kWEpsSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUldZV3hwWkdGMGFXOXVjeWgwYUdsekxuQnliM0J6TG5aaGJHbGtZWFJwYjI1ekxDQjBhR2x6TG5CeWIzQnpMbkpsY1hWcGNtVmtLVHRjYmlBZ0lDQWdJSFJvYVhNdWNISnZjSE11WDJGMGRHRmphRlJ2Um05eWJTaDBhR2x6S1R0Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrN1hHNWNiaUFnSUNCcFppQW9JWFJvYVhNdWNISnZjSE11Ym1GdFpTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZEdiM0p0SUVsdWNIVjBJSEpsY1hWcGNtVnpJR0VnYm1GdFpTQndjbTl3WlhKMGVTQjNhR1Z1SUhWelpXUW5LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXVjSEp2Y0hNdVgyRjBkR0ZqYUZSdlJtOXliU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVhSb2FYTXVhWE5OYjNWdWRHVmtLQ2twSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjBhR2x6TG5CeWIzQnpMbDloZEhSaFkyaFViMFp2Y20wcElIdGNiaUFnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMFp2Y20wZ1RXbDRhVzRnY21WeGRXbHlaWE1nWTI5dGNHOXVaVzUwSUhSdklHSmxJRzVsYzNSbFpDQnBiaUJoSUVadmNtMG5LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamIyNW1hV2QxY21Vb0tUdGNiaUFnSUNBZ0lIMHVZbWx1WkNoMGFHbHpLU3dnTUNrN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym1acFozVnlaU2dwTzF4dVhHNGdJSDBzWEc1Y2JpQWdMeThnVjJVZ2FHRjJaU0IwYnlCdFlXdGxJSFJvWlNCMllXeHBaR0YwWlNCdFpYUm9iMlFnYVhNZ2EyVndkQ0IzYUdWdUlHNWxkeUJ3Y205d2N5QmhjbVVnWVdSa1pXUmNiaUFnWTI5dGNHOXVaVzUwVjJsc2JGSmxZMlZwZG1WUWNtOXdjem9nWm5WdVkzUnBiMjRnS0c1bGVIUlFjbTl3Y3lrZ2UxeHVJQ0FnSUc1bGVIUlFjbTl3Y3k1ZllYUjBZV05vVkc5R2IzSnRJRDBnZEdocGN5NXdjbTl3Y3k1ZllYUjBZV05vVkc5R2IzSnRPMXh1SUNBZ0lHNWxlSFJRY205d2N5NWZaR1YwWVdOb1JuSnZiVVp2Y20wZ1BTQjBhR2x6TG5CeWIzQnpMbDlrWlhSaFkyaEdjbTl0Um05eWJUdGNiaUFnSUNCdVpYaDBVSEp2Y0hNdVgzWmhiR2xrWVhSbElEMGdkR2hwY3k1d2NtOXdjeTVmZG1Gc2FXUmhkR1U3WEc0Z0lDQWdkR2hwY3k1elpYUldZV3hwWkdGMGFXOXVjeWh1WlhoMFVISnZjSE11ZG1Gc2FXUmhkR2x2Ym5Nc0lHNWxlSFJRY205d2N5NXlaWEYxYVhKbFpDazdYRzRnSUgwc1hHNWNiaUFnWTI5dGNHOXVaVzUwUkdsa1ZYQmtZWFJsT2lCbWRXNWpkR2x2YmlBb2NISmxkbEJ5YjNCekxDQndjbVYyVTNSaGRHVXBJSHRjYmx4dUlDQWdJSFpoY2lCcGMxWmhiSFZsUTJoaGJtZGxaQ0E5SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lGeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NTJZV3gxWlNBaFBUMGdjSEpsZGxCeWIzQnpMblpoYkhWbElDWW1JQ2hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExsOTJZV3gxWlNBOVBUMGdjSEpsZGxCeWIzQnpMblpoYkhWbElIeDhYRzVjYmlBZ0lDQWdJQ0FnSUNBdkx5QlRhVzVqWlNCMWJtUmxabWx1WldRZ2FYTWdZMjl1ZG1WeWRHVmtJSFJ2SUdWdGNIUjVJSE4wY21sdVp5QjNaU0JvWVhabElIUnZYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1kyaGxZMnNnZEdoaGRDQnpjR1ZqYVdacFkyRnNiSGxjYmlBZ0lDQWdJQ0FnSUNBb2RHaHBjeTV6ZEdGMFpTNWZkbUZzZFdVZ1BUMDlJQ2NuSUNZbUlIQnlaWFpRY205d2N5NTJZV3gxWlNBOVBUMGdkVzVrWldacGJtVmtLVnh1SUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FwTzF4dVhHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcE8xeHVYRzVjYmlBZ0lDQXZMeUJKWmlCMllXeHBaR0YwYVc5dWN5Qm9ZWE1nWTJoaGJtZGxaQ0J2Y2lCemIyMWxkR2hwYm1jZ2IzVjBjMmxrWlNCamFHRnVaMlZ6SUZ4dUlDQWdJQzh2SUhSb1pTQjJZV3gxWlN3Z2MyVjBJSFJvWlNCMllXeDFaU0JoWjJGcGJpQnlkVzV1YVc1bklHRWdkbUZzYVdSaGRHbHZibHh1WEc0Z0lDQWdhV1lnS0hCeVpYWlFjbTl3Y3k1MllXeHBaR0YwYVc5dWN5QWhQVDBnZEdocGN5NXdjbTl3Y3k1MllXeHBaR0YwYVc5dWN5QjhmQ0JwYzFaaGJIVmxRMmhoYm1kbFpDZ3BLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtIUm9hWE11Y0hKdmNITXVkbUZzZFdVZ2ZId2dKeWNwTzF4dUlDQWdJSDFjYmlBZ2ZTeGNibHh1SUNBdkx5QkVaWFJoWTJnZ2FYUWdkMmhsYmlCamIyMXdiMjVsYm5RZ2RXNXRiM1Z1ZEhOY2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkZWdWJXOTFiblE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCMGFHbHpMbkJ5YjNCekxsOWtaWFJoWTJoR2NtOXRSbTl5YlNoMGFHbHpLVHRjYmlBZ2ZTeGNibHh1SUNCelpYUldZV3hwWkdGMGFXOXVjem9nWm5WdVkzUnBiMjRnS0haaGJHbGtZWFJwYjI1ekxDQnlaWEYxYVhKbFpDa2dlMXh1WEc0Z0lDQWdMeThnUVdSa0lIWmhiR2xrWVhScGIyNXpJSFJ2SUhSb1pTQnpkRzl5WlNCcGRITmxiR1lnWVhNZ2RHaGxJSEJ5YjNCeklHOWlhbVZqZENCallXNGdibTkwSUdKbElHMXZaR2xtYVdWa1hHNGdJQ0FnZEdocGN5NWZkbUZzYVdSaGRHbHZibk1nUFNCMllXeHBaR0YwYVc5dWN5QjhmQ0FuSnp0Y2JseHVJQ0FnSUdsbUlDaHlaWEYxYVhKbFpDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZmRtRnNhV1JoZEdsdmJuTWdQU0IyWVd4cFpHRjBhVzl1Y3lBL0lIWmhiR2xrWVhScGIyNXpJQ3NnSnl3bklEb2dKeWM3WEc0Z0lDQWdJQ0IwYUdsekxsOTJZV3hwWkdGMGFXOXVjeUFyUFNBbmFYTldZV3gxWlNjN1hHNGdJQ0FnZlZ4dVhHNGdJSDBzWEc1Y2JpQWdMeThnVjJVZ2RtRnNhV1JoZEdVZ1lXWjBaWElnZEdobElIWmhiSFZsSUdoaGN5QmlaV1Z1SUhObGRGeHVJQ0J6WlhSV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0haaGJIVmxLU0I3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNCZmRtRnNkV1U2SUhaaGJIVmxMRnh1SUNBZ0lDQWdYMmx6VUhKcGMzUnBibVU2SUdaaGJITmxYRzRnSUNBZ2ZTd2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1ZmRtRnNhV1JoZEdVb2RHaHBjeWs3WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdmU3hjYmlBZ2NtVnpaWFJXWVd4MVpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ1gzWmhiSFZsT2lBbkp5eGNiaUFnSUNBZ0lGOXBjMUJ5YVhOMGFXNWxPaUIwY25WbFhHNGdJQ0FnZlN3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTVmZG1Gc2FXUmhkR1VvZEdocGN5azdYRzRnSUNBZ2ZTazdYRzRnSUgwc1hHNGdJR2RsZEZaaGJIVmxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzUmhkR1V1WDNaaGJIVmxPMXh1SUNCOUxGeHVJQ0JvWVhOV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuTjBZWFJsTGw5MllXeDFaU0FoUFQwZ0p5YzdYRzRnSUgwc1hHNGdJR2RsZEVWeWNtOXlUV1Z6YzJGblpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selZtRnNhV1FvS1NCOGZDQjBhR2x6TG5Ob2IzZFNaWEYxYVhKbFpDZ3BJRDhnYm5Wc2JDQTZJSFJvYVhNdWMzUmhkR1V1WDNObGNuWmxja1Z5Y205eUlIeDhJSFJvYVhNdWNISnZjSE11ZG1Gc2FXUmhkR2x2YmtWeWNtOXlPMXh1SUNCOUxGeHVJQ0JwYzBadmNtMUVhWE5oWW14bFpEb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5CeWIzQnpMbDlwYzBadmNtMUVhWE5oWW14bFpDZ3BPMXh1SUNCOUxGeHVJQ0JwYzFaaGJHbGtPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzUmhkR1V1WDJselZtRnNhV1E3WEc0Z0lIMHNYRzRnSUdselVISnBjM1JwYm1VNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6ZEdGMFpTNWZhWE5RY21semRHbHVaVHRjYmlBZ2ZTeGNiaUFnYVhOU1pYRjFhWEpsWkRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlBaElYUm9hWE11Y0hKdmNITXVjbVZ4ZFdseVpXUTdYRzRnSUgwc1hHNGdJSE5vYjNkU1pYRjFhWEpsWkRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWx6VW1WeGRXbHlaV1FvS1NBbUppQjBhR2x6TG5OMFlYUmxMbDkyWVd4MVpTQTlQVDBnSnljN1hHNGdJSDBzWEc0Z0lITm9iM2RGY25KdmNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQWhkR2hwY3k1emFHOTNVbVZ4ZFdseVpXUW9LU0FtSmlBaGRHaHBjeTV6ZEdGMFpTNWZhWE5XWVd4cFpEdGNiaUFnZlZ4dWZUdGNiaUpkZlE9PSIsInZhciBjc3JmVG9rZW5TZWxlY3RvciA9IHR5cGVvZiBkb2N1bWVudCAhPSAndW5kZWZpbmVkJyA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImNzcmYtdG9rZW5cIl0nKSA6IG51bGw7XG5cbnZhciB0b1VSTEVuY29kZWQgPSBmdW5jdGlvbiAoZWxlbWVudCwga2V5LCBsaXN0KSB7XG4gIHZhciBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgaWYgKHR5cGVvZiAoZWxlbWVudCkgPT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKHZhciBpZHggaW4gZWxlbWVudClcbiAgICAgIHRvVVJMRW5jb2RlZChlbGVtZW50W2lkeF0sIGtleSA/IGtleSArICdbJyArIGlkeCArICddJyA6IGlkeCwgbGlzdCk7XG4gIH0gZWxzZSB7XG4gICAgbGlzdC5wdXNoKGtleSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChlbGVtZW50KSk7XG4gIH1cbiAgcmV0dXJuIGxpc3Quam9pbignJicpO1xufTtcblxudmFyIHJlcXVlc3QgPSBmdW5jdGlvbiAobWV0aG9kLCB1cmwsIGRhdGEsIGNvbnRlbnRUeXBlLCBoZWFkZXJzKSB7XG5cbiAgdmFyIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUgPT09ICd1cmxlbmNvZGVkJyA/ICdhcHBsaWNhdGlvbi8nICsgY29udGVudFR5cGUucmVwbGFjZSgndXJsZW5jb2RlZCcsICd4LXd3dy1mb3JtLXVybGVuY29kZWQnKSA6ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgZGF0YSA9IGNvbnRlbnRUeXBlID09PSAnYXBwbGljYXRpb24vanNvbicgPyBKU09OLnN0cmluZ2lmeShkYXRhKSA6IHRvVVJMRW5jb2RlZChkYXRhKTtcblxuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIHRyeSB7XG4gICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgICB4aHIub3BlbihtZXRob2QsIHVybCwgdHJ1ZSk7XG4gICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCBjb250ZW50VHlwZSk7XG5cbiAgICAgIGlmICghIWNzcmZUb2tlblNlbGVjdG9yICYmICEhY3NyZlRva2VuU2VsZWN0b3IuY29udGVudCkge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignWC1DU1JGLVRva2VuJywgY3NyZlRva2VuU2VsZWN0b3IuY29udGVudCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCBwYXNzZWQgaGVhZGVyc1xuICAgICAgT2JqZWN0LmtleXMoaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbiAoaGVhZGVyKSB7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGhlYWRlciwgaGVhZGVyc1toZWFkZXJdKTtcbiAgICAgIH0pO1xuXG4gICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDQpIHtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSB4aHIucmVzcG9uc2VUZXh0ID8gSlNPTi5wYXJzZSh4aHIucmVzcG9uc2VUZXh0KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCkge1xuICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlamVjdChyZXNwb25zZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgeGhyLnNlbmQoZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVqZWN0KGUpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYXJyYXlzRGlmZmVyOiBmdW5jdGlvbiAoYXJyYXlBLCBhcnJheUIpIHtcbiAgICB2YXIgaXNEaWZmZXJlbnQgPSBmYWxzZTtcbiAgICBpZiAoYXJyYXlBLmxlbmd0aCAhPT0gYXJyYXlCLmxlbmd0aCkge1xuICAgICAgaXNEaWZmZXJlbnQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcnJheUEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKGl0ZW0gIT09IGFycmF5QltpbmRleF0pIHtcbiAgICAgICAgICBpc0RpZmZlcmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNEaWZmZXJlbnQ7XG4gIH0sXG4gIGFqYXg6IHtcbiAgICBwb3N0OiByZXF1ZXN0LmJpbmQobnVsbCwgJ1BPU1QnKSxcbiAgICBwdXQ6IHJlcXVlc3QuYmluZChudWxsLCAnUFVUJylcbiAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12ZFhScGJITXVhbk1pTENKemIzVnlZMlZ6SWpwYklpOVZjMlZ5Y3k5amFISnBjM1JwWVc1aGJHWnZibWt2Ukc5amRXMWxiblJ6TDJSbGRpOW1iM0p0YzNrdGNtVmhZM1F2YzNKakwzVjBhV3h6TG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRWxCUVVrc2FVSkJRV2xDTEVkQlFVY3NUMEZCVHl4UlFVRlJMRWxCUVVrc1YwRkJWeXhIUVVGSExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTTdPMEZCUld4SUxFbEJRVWtzV1VGQldTeEhRVUZITEZWQlFWVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hKUVVGSkxFVkJRVVU3UlVGREwwTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF6dEZRVU4wUWl4SlFVRkpMRkZCUVZFc1QwRkJUeXhEUVVGRExFbEJRVWtzVVVGQlVTeEZRVUZGTzBsQlEyaERMRXRCUVVzc1NVRkJTU3hIUVVGSExFbEJRVWtzVDBGQlR6dE5RVU55UWl4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wZEJRM1pGTEUxQlFVMDdTVUZEVEN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SFFVTndSRHRGUVVORUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVONFFpeERRVUZETEVOQlFVTTdPMEZCUlVZc1NVRkJTU3hQUVVGUExFZEJRVWNzVlVGQlZTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWxCUVVrc1JVRkJSU3hYUVVGWExFVkJRVVVzVDBGQlR5eEZRVUZGT3p0RlFVVXZSQ3hKUVVGSkxGZEJRVmNzUjBGQlJ5eFhRVUZYTEV0QlFVc3NXVUZCV1N4SFFVRkhMR05CUVdNc1IwRkJSeXhYUVVGWExFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NSVUZCUlN4MVFrRkJkVUlzUTBGQlF5eEhRVUZITEd0Q1FVRnJRaXhEUVVGRE8wRkJRM0JLTEVWQlFVVXNTVUZCU1N4SFFVRkhMRmRCUVZjc1MwRkJTeXhyUWtGQmEwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenM3UlVGRmRFWXNUMEZCVHl4SlFVRkpMRTlCUVU4c1EwRkJReXhWUVVGVkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVTdTVUZETlVNc1NVRkJTVHROUVVOR0xFbEJRVWtzUjBGQlJ5eEhRVUZITEVsQlFVa3NZMEZCWXl4RlFVRkZMRU5CUVVNN1RVRkRMMElzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzAxQlF6VkNMRWRCUVVjc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4UlFVRlJMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0QlFVTjZSQ3hOUVVGTkxFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhqUVVGakxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdPMDFCUld4RUxFbEJRVWtzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhKUVVGSkxFTkJRVU1zUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFVkJRVVU3VVVGRGRFUXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVUZETEdOQlFXTXNSVUZCUlN4cFFrRkJhVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTjRSU3hQUVVGUE8wRkJRMUE3TzAxQlJVMHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4TlFVRk5MRVZCUVVVN1VVRkROME1zUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMFJDeFBRVUZQTEVOQlFVTXNRMEZCUXpzN1RVRkZTQ3hIUVVGSExFTkJRVU1zYTBKQlFXdENMRWRCUVVjc1dVRkJXVHRCUVVNelF5eFJRVUZSTEVsQlFVa3NSMEZCUnl4RFFVRkRMRlZCUVZVc1MwRkJTeXhEUVVGRExFVkJRVVU3TzFWQlJYaENMRWxCUVVrN1dVRkRSaXhKUVVGSkxGRkJRVkVzUjBGQlJ5eEhRVUZITEVOQlFVTXNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJRenRaUVVOMFJTeEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RlFVRkZPMk5CUTNwRExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0aFFVTnVRaXhOUVVGTk8yTkJRMHdzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMkZCUTJ4Q08xZEJRMFlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0WlFVTldMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4wUWl4WFFVRlhPenRUUVVWR08wOUJRMFlzUTBGQlF6dE5RVU5HTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRGFFSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHROUVVOV0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTllPMGRCUTBZc1EwRkJReXhEUVVGRE8wRkJRMHdzUTBGQlF5eERRVUZET3p0QlFVVkdMRTFCUVUwc1EwRkJReXhQUVVGUExFZEJRVWM3UlVGRFppeFpRVUZaTEVWQlFVVXNWVUZCVlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRk8wbEJRM1JETEVsQlFVa3NWMEZCVnl4SFFVRkhMRXRCUVVzc1EwRkJRenRKUVVONFFpeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJUdE5RVU51UXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRE8wdEJRM0JDTEUxQlFVMDdUVUZEVEN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlR0UlFVTndReXhKUVVGSkxFbEJRVWtzUzBGQlN5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVN1ZVRkRNVUlzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0VFFVTndRanRQUVVOR0xFTkJRVU1zUTBGQlF6dExRVU5LTzBsQlEwUXNUMEZCVHl4WFFVRlhMRU5CUVVNN1IwRkRjRUk3UlVGRFJDeEpRVUZKTEVWQlFVVTdTVUZEU2l4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNUVUZCVFN4RFFVRkRPMGxCUTJoRExFZEJRVWNzUlVGQlJTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU03UjBGREwwSTdRMEZEUml4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpZG1GeUlHTnpjbVpVYjJ0bGJsTmxiR1ZqZEc5eUlEMGdkSGx3Wlc5bUlHUnZZM1Z0Wlc1MElDRTlJQ2QxYm1SbFptbHVaV1FuSUQ4Z1pHOWpkVzFsYm5RdWNYVmxjbmxUWld4bFkzUnZjaWduYldWMFlWdHVZVzFsUFZ3aVkzTnlaaTEwYjJ0bGJsd2lYU2NwSURvZ2JuVnNiRHRjYmx4dWRtRnlJSFJ2VlZKTVJXNWpiMlJsWkNBOUlHWjFibU4wYVc5dUlDaGxiR1Z0Wlc1MExDQnJaWGtzSUd4cGMzUXBJSHRjYmlBZ2RtRnlJR3hwYzNRZ1BTQnNhWE4wSUh4OElGdGRPMXh1SUNCcFppQW9kSGx3Wlc5bUlDaGxiR1Z0Wlc1MEtTQTlQU0FuYjJKcVpXTjBKeWtnZTF4dUlDQWdJR1p2Y2lBb2RtRnlJR2xrZUNCcGJpQmxiR1Z0Wlc1MEtWeHVJQ0FnSUNBZ2RHOVZVa3hGYm1OdlpHVmtLR1ZzWlcxbGJuUmJhV1I0WFN3Z2EyVjVJRDhnYTJWNUlDc2dKMXNuSUNzZ2FXUjRJQ3NnSjEwbklEb2dhV1I0TENCc2FYTjBLVHRjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0JzYVhOMExuQjFjMmdvYTJWNUlDc2dKejBuSUNzZ1pXNWpiMlJsVlZKSlEyOXRjRzl1Wlc1MEtHVnNaVzFsYm5RcEtUdGNiaUFnZlZ4dUlDQnlaWFIxY200Z2JHbHpkQzVxYjJsdUtDY21KeWs3WEc1OU8xeHVYRzUyWVhJZ2NtVnhkV1Z6ZENBOUlHWjFibU4wYVc5dUlDaHRaWFJvYjJRc0lIVnliQ3dnWkdGMFlTd2dZMjl1ZEdWdWRGUjVjR1VzSUdobFlXUmxjbk1wSUh0Y2JseHVJQ0IyWVhJZ1kyOXVkR1Z1ZEZSNWNHVWdQU0JqYjI1MFpXNTBWSGx3WlNBOVBUMGdKM1Z5YkdWdVkyOWtaV1FuSUQ4Z0oyRndjR3hwWTJGMGFXOXVMeWNnS3lCamIyNTBaVzUwVkhsd1pTNXlaWEJzWVdObEtDZDFjbXhsYm1OdlpHVmtKeXdnSjNndGQzZDNMV1p2Y20wdGRYSnNaVzVqYjJSbFpDY3BJRG9nSjJGd2NHeHBZMkYwYVc5dUwycHpiMjRuTzF4dUlDQmtZWFJoSUQwZ1kyOXVkR1Z1ZEZSNWNHVWdQVDA5SUNkaGNIQnNhV05oZEdsdmJpOXFjMjl1SnlBL0lFcFRUMDR1YzNSeWFXNW5hV1o1S0dSaGRHRXBJRG9nZEc5VlVreEZibU52WkdWa0tHUmhkR0VwTzF4dVhHNGdJSEpsZEhWeWJpQnVaWGNnVUhKdmJXbHpaU2htZFc1amRHbHZiaUFvY21WemIyeDJaU3dnY21WcVpXTjBLU0I3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUhaaGNpQjRhSElnUFNCdVpYY2dXRTFNU0hSMGNGSmxjWFZsYzNRb0tUdGNiaUFnSUNBZ0lIaG9jaTV2Y0dWdUtHMWxkR2h2WkN3Z2RYSnNMQ0IwY25WbEtUdGNiaUFnSUNBZ0lIaG9jaTV6WlhSU1pYRjFaWE4wU0dWaFpHVnlLQ2RCWTJObGNIUW5MQ0FuWVhCd2JHbGpZWFJwYjI0dmFuTnZiaWNwTzF4dUlDQWdJQ0FnZUdoeUxuTmxkRkpsY1hWbGMzUklaV0ZrWlhJb0owTnZiblJsYm5RdFZIbHdaU2NzSUdOdmJuUmxiblJVZVhCbEtUdGNibHh1SUNBZ0lDQWdhV1lnS0NFaFkzTnlabFJ2YTJWdVUyVnNaV04wYjNJZ0ppWWdJU0ZqYzNKbVZHOXJaVzVUWld4bFkzUnZjaTVqYjI1MFpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhob2NpNXpaWFJTWlhGMVpYTjBTR1ZoWkdWeUtDZFlMVU5UVWtZdFZHOXJaVzRuTENCamMzSm1WRzlyWlc1VFpXeGxZM1J2Y2k1amIyNTBaVzUwS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0x5OGdRV1JrSUhCaGMzTmxaQ0JvWldGa1pYSnpYRzRnSUNBZ0lDQlBZbXBsWTNRdWEyVjVjeWhvWldGa1pYSnpLUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2hvWldGa1pYSXBJSHRjYmlBZ0lDQWdJQ0FnZUdoeUxuTmxkRkpsY1hWbGMzUklaV0ZrWlhJb2FHVmhaR1Z5TENCb1pXRmtaWEp6VzJobFlXUmxjbDBwTzF4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lIaG9jaTV2Ym5KbFlXUjVjM1JoZEdWamFHRnVaMlVnUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoNGFISXVjbVZoWkhsVGRHRjBaU0E5UFQwZ05Da2dlMXh1WEc0Z0lDQWdJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ5WlhOd2IyNXpaU0E5SUhob2NpNXlaWE53YjI1elpWUmxlSFFnUHlCS1UwOU9MbkJoY25ObEtIaG9jaTV5WlhOd2IyNXpaVlJsZUhRcElEb2diblZzYkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoNGFISXVjM1JoZEhWeklENDlJREl3TUNBbUppQjRhSEl1YzNSaGRIVnpJRHdnTXpBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjMjlzZG1Vb2NtVnpjRzl1YzJVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZxWldOMEtISmxjM0J2Ym5ObEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQjlJR05oZEdOb0lDaGxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaV3BsWTNRb1pTazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMDdYRzRnSUNBZ0lDQjRhSEl1YzJWdVpDaGtZWFJoS1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsS1NCN1hHNGdJQ0FnSUNCeVpXcGxZM1FvWlNrN1hHNGdJQ0FnZlZ4dUlDQjlLVHRjYm4wN1hHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdlMXh1SUNCaGNuSmhlWE5FYVdabVpYSTZJR1oxYm1OMGFXOXVJQ2hoY25KaGVVRXNJR0Z5Y21GNVFpa2dlMXh1SUNBZ0lIWmhjaUJwYzBScFptWmxjbVZ1ZENBOUlHWmhiSE5sTzF4dUlDQWdJR2xtSUNoaGNuSmhlVUV1YkdWdVozUm9JQ0U5UFNCaGNuSmhlVUl1YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0JwYzBScFptWmxjbVZ1ZENBOUlIUnlkV1U3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHRnljbUY1UVM1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNocGRHVnRMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYUmxiU0FoUFQwZ1lYSnlZWGxDVzJsdVpHVjRYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbHpSR2xtWm1WeVpXNTBJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCcGMwUnBabVpsY21WdWREdGNiaUFnZlN4Y2JpQWdZV3BoZURvZ2UxeHVJQ0FnSUhCdmMzUTZJSEpsY1hWbGMzUXVZbWx1WkNodWRXeHNMQ0FuVUU5VFZDY3BMRnh1SUNBZ0lIQjFkRG9nY21WeGRXVnpkQzVpYVc1a0tHNTFiR3dzSUNkUVZWUW5LVnh1SUNCOVhHNTlPMXh1SWwxOSIsIm1vZHVsZS5leHBvcnRzID0ge1xuICAnaXNWYWx1ZSc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gJyc7XG4gIH0sXG4gICdpc0VtYWlsJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9eKCgoW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKyhcXC4oW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKykqKXwoKFxceDIyKSgoKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KChbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHg3Zl18XFx4MjF8W1xceDIzLVxceDViXXxbXFx4NWQtXFx4N2VdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoXFxcXChbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGQtXFx4N2ZdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpKSooKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KFxceDIyKSkpQCgoKFthLXpdfFxcZHxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KChbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKFthLXpdfFxcZHwtfFxcLnxffH58W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKihbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSlcXC4pKygoW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfCgoW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKFthLXpdfFxcZHwtfFxcLnxffH58W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKihbYS16XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSQvaSk7XG4gIH0sXG4gICdpc1RydWUnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHRydWU7XG4gIH0sXG4gICdpc051bWVyaWMnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBtYXRjaFJlc3VsdHMgPSB2YWx1ZS5tYXRjaCgvWy0rXT8oXFxkKlsuXSk/XFxkKy8pO1xuICAgICAgaWYgKCEhIG1hdGNoUmVzdWx0cykge1xuICAgICAgICByZXR1cm4gbWF0Y2hSZXN1bHRzWzBdID09IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJ2lzQWxwaGEnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL15bYS16QS1aXSskLyk7XG4gIH0sXG4gICdpc1dvcmRzJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9eW2EtekEtWlxcc10rJC8pO1xuICB9LFxuICAnaXNTcGVjaWFsV29yZHMnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL15bYS16QS1aXFxzXFx1MDBDMC1cXHUwMTdGXSskLyk7XG4gIH0sXG4gIGlzTGVuZ3RoOiBmdW5jdGlvbiAodmFsdWUsIG1pbiwgbWF4KSB7XG4gICAgaWYgKG1heCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoID49IG1pbiAmJiB2YWx1ZS5sZW5ndGggPD0gbWF4O1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoID49IG1pbjtcbiAgfSxcbiAgZXF1YWxzOiBmdW5jdGlvbiAodmFsdWUsIGVxbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PSBlcWw7XG4gIH0sXG4gIGVxdWFsc0ZpZWxkOiBmdW5jdGlvbiAodmFsdWUsIGZpZWxkKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0aGlzW2ZpZWxkXTtcbiAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12ZG1Gc2FXUmhkR2x2YmxKMWJHVnpMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXZWWE5sY25NdlkyaHlhWE4wYVdGdVlXeG1iMjVwTDBSdlkzVnRaVzUwY3k5a1pYWXZabTl5YlhONUxYSmxZV04wTDNOeVl5OTJZV3hwWkdGMGFXOXVVblZzWlhNdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVFVGQlRTeERRVUZETEU5QlFVOHNSMEZCUnp0RlFVTm1MRk5CUVZNc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdEpRVU14UWl4UFFVRlBMRXRCUVVzc1MwRkJTeXhGUVVGRkxFTkJRVU03UjBGRGNrSTdSVUZEUkN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRE1VSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExIazBRa0ZCZVRSQ0xFTkJRVU1zUTBGQlF6dEhRVU12TlVJN1JVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdTVUZEZWtJc1QwRkJUeXhMUVVGTExFdEJRVXNzU1VGQlNTeERRVUZETzBkQlEzWkNPMFZCUTBRc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzBsQlF6VkNMRWxCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVTeEZRVUZGTzAxQlF6ZENMRTlCUVU4c1NVRkJTU3hEUVVGRE8wdEJRMklzVFVGQlRUdE5RVU5NTEVsQlFVa3NXVUZCV1N4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenROUVVOd1JDeEpRVUZKTEVOQlFVTXNSVUZCUlN4WlFVRlpMRVZCUVVVN1VVRkRia0lzVDBGQlR5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGRE8wOUJRMnBETEUxQlFVMDdVVUZEVEN4UFFVRlBMRXRCUVVzc1EwRkJRenRQUVVOa08wdEJRMFk3UjBGRFJqdEZRVU5FTEZOQlFWTXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRKUVVNeFFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UjBGRGJrTTdSVUZEUkN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRE1VSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzBkQlEzSkRPMFZCUTBRc1owSkJRV2RDTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRha01zVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVOQlFVTTdSMEZEYkVRN1JVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSVHRKUVVOdVF5eEpRVUZKTEVkQlFVY3NTMEZCU3l4VFFVRlRMRVZCUVVVN1RVRkRja0lzVDBGQlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXp0TFFVTnVSRHRKUVVORUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4SFFVRkhMRU5CUVVNN1IwRkROVUk3UlVGRFJDeE5RVUZOTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRk8wbEJRelZDTEU5QlFVOHNTMEZCU3l4SlFVRkpMRWRCUVVjc1EwRkJRenRIUVVOeVFqdEZRVU5FTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRGJrTXNUMEZCVHl4TFFVRkxMRXRCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBkQlF6bENPME5CUTBZc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTF4dUlDQW5hWE5XWVd4MVpTYzZJR1oxYm1OMGFXOXVJQ2gyWVd4MVpTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0FoUFQwZ0p5YzdYRzRnSUgwc1hHNGdJQ2RwYzBWdFlXbHNKem9nWm5WdVkzUnBiMjRnS0haaGJIVmxLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsTG0xaGRHTm9LQzllS0Nnb1cyRXRlbDE4WEZ4a2ZGc2hJMXhjSkNVbUoxeGNLbHhjSzF4Y0xWeGNMejFjWEQ5Y1hGNWZZSHRjWEh4OWZsMThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS3loY1hDNG9XMkV0ZWwxOFhGeGtmRnNoSTF4Y0pDVW1KMXhjS2x4Y0sxeGNMVnhjTHoxY1hEOWNYRjVmWUh0Y1hIeDlmbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEt5a3FLWHdvS0Z4Y2VESXlLU2dvS0NoY1hIZ3lNSHhjWEhnd09Ta3FLRnhjZURCa1hGeDRNR0VwS1Q4b1hGeDRNakI4WEZ4NE1Ea3BLeWsvS0NoYlhGeDRNREV0WEZ4NE1EaGNYSGd3WWx4Y2VEQmpYRng0TUdVdFhGeDRNV1pjWEhnM1psMThYRng0TWpGOFcxeGNlREl6TFZ4Y2VEVmlYWHhiWEZ4NE5XUXRYRng0TjJWZGZGdGNYSFV3TUVFd0xWeGNkVVEzUmtaY1hIVkdPVEF3TFZ4Y2RVWkVRMFpjWEhWR1JFWXdMVnhjZFVaR1JVWmRLWHdvWEZ4Y1hDaGJYRng0TURFdFhGeDRNRGxjWEhnd1lseGNlREJqWEZ4NE1HUXRYRng0TjJaZGZGdGNYSFV3TUVFd0xWeGNkVVEzUmtaY1hIVkdPVEF3TFZ4Y2RVWkVRMFpjWEhWR1JFWXdMVnhjZFVaR1JVWmRLU2twS1Nvb0tDaGNYSGd5TUh4Y1hIZ3dPU2txS0Z4Y2VEQmtYRng0TUdFcEtUOG9YRng0TWpCOFhGeDRNRGtwS3lrL0tGeGNlREl5S1NrcFFDZ29LRnRoTFhwZGZGeGNaSHhiWEZ4MU1EQkJNQzFjWEhWRU4wWkdYRngxUmprd01DMWNYSFZHUkVOR1hGeDFSa1JHTUMxY1hIVkdSa1ZHWFNsOEtDaGJZUzE2WFh4Y1hHUjhXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS0Z0aExYcGRmRnhjWkh3dGZGeGNMbnhmZkg1OFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLaWhiWVMxNlhYeGNYR1I4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtTbGNYQzRwS3lnb1cyRXRlbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcGZDZ29XMkV0ZWwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLRnRoTFhwZGZGeGNaSHd0ZkZ4Y0xueGZmSDU4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtpaGJZUzE2WFh4YlhGeDFNREJCTUMxY1hIVkVOMFpHWEZ4MVJqa3dNQzFjWEhWR1JFTkdYRngxUmtSR01DMWNYSFZHUmtWR1hTa3BLU1F2YVNrN1hHNGdJSDBzWEc0Z0lDZHBjMVJ5ZFdVbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVWdQVDA5SUhSeWRXVTdYRzRnSUgwc1hHNGdJQ2RwYzA1MWJXVnlhV01uT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBbmJuVnRZbVZ5SnlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhaaGNpQnRZWFJqYUZKbGMzVnNkSE1nUFNCMllXeDFaUzV0WVhSamFDZ3ZXeTByWFQ4b1hGeGtLbHN1WFNrL1hGeGtLeThwTzF4dUlDQWdJQ0FnYVdZZ0tDRWhJRzFoZEdOb1VtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXRjBZMmhTWlhOMWJIUnpXekJkSUQwOUlIWmhiSFZsTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmU3hjYmlBZ0oybHpRV3h3YUdFbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViV0YwWTJnb0wxNWJZUzE2UVMxYVhTc2tMeWs3WEc0Z0lIMHNYRzRnSUNkcGMxZHZjbVJ6SnpvZ1puVnVZM1JwYjI0Z0tIWmhiSFZsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbExtMWhkR05vS0M5ZVcyRXRla0V0V2x4Y2MxMHJKQzhwTzF4dUlDQjlMRnh1SUNBbmFYTlRjR1ZqYVdGc1YyOXlaSE1uT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWJXRjBZMmdvTDE1YllTMTZRUzFhWEZ4elhGeDFNREJETUMxY1hIVXdNVGRHWFNza0x5azdYRzRnSUgwc1hHNGdJR2x6VEdWdVozUm9PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXNJRzFwYml3Z2JXRjRLU0I3WEc0Z0lDQWdhV1lnS0cxaGVDQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVXViR1Z1WjNSb0lENDlJRzFwYmlBbUppQjJZV3gxWlM1c1pXNW5kR2dnUEQwZ2JXRjRPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViR1Z1WjNSb0lENDlJRzFwYmp0Y2JpQWdmU3hjYmlBZ1pYRjFZV3h6T2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUdWeGJDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0E5UFNCbGNXdzdYRzRnSUgwc1hHNGdJR1Z4ZFdGc2MwWnBaV3hrT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUdacFpXeGtLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsSUQwOVBTQjBhR2x6VzJacFpXeGtYVHRjYmlBZ2ZWeHVmVHRjYmlKZGZRPT0iXX0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy9tYWluLmpzIiwiL1VzZXJzL2NocmlzdGlhbmFsZm9uaS9Eb2N1bWVudHMvZGV2L2Zvcm1zeS1yZWFjdC9zcmMvTWl4aW4uanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy91dGlscy5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3JjL3ZhbGlkYXRpb25SdWxlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUNBQSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDaEIsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDdEQsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7O0FBRWpCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDOztBQUVyQixNQUFNLENBQUMsUUFBUSxHQUFHLFVBQVUsYUFBYSxFQUFFO0VBQ3pDLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFDMUIsQ0FBQyxDQUFDOztBQUVGLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLElBQUksRUFBRSxJQUFJLEVBQUU7RUFDL0MsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvQixDQUFDLENBQUM7O0FBRUYsTUFBTSxDQUFD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SyxDQUFDLDRCQUE0QixDQUFDLENBQUM7R0FDbEQ7RUFDRCxRQUFRLEVBQUUsVUFBVSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUNuQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7TUFDckIsT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQztLQUNuRDtJQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUM7R0FDNUI7RUFDRCxNQUFNLEVBQUUsVUFBVSxLQUFLLEVBQUUsR0FBRyxFQUFFO0lBQzVCLE9BQU8sS0FBSyxJQUFJLEdBQUcsQ0FBQztHQUNyQjtFQUNELFdBQVcsRUFBRSxVQUFVLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDbkMsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQzdCO0FBQ0gsQ0FBQyxDQUFDOztBQUVGIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInZhciBSZWFjdCA9IGdsb2JhbC5SZWFjdCB8fCByZXF1aXJlKCdyZWFjdCcpO1xudmFyIEZvcm1zeSA9IHt9O1xudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4vdmFsaWRhdGlvblJ1bGVzLmpzJyk7XG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzLmpzJyk7XG52YXIgTWl4aW4gPSByZXF1aXJlKCcuL01peGluLmpzJyk7XG52YXIgb3B0aW9ucyA9IHt9O1xuXG5Gb3Jtc3kuTWl4aW4gPSBNaXhpbjtcblxuRm9ybXN5LmRlZmF1bHRzID0gZnVuY3Rpb24gKHBhc3NlZE9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IHBhc3NlZE9wdGlvbnM7XG59O1xuXG5Gb3Jtc3kuYWRkVmFsaWRhdGlvblJ1bGUgPSBmdW5jdGlvbiAobmFtZSwgZnVuYykge1xuICB2YWxpZGF0aW9uUnVsZXNbbmFtZV0gPSBmdW5jO1xufTtcblxuRm9ybXN5LkZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiRm9ybVwiLFxuICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNWYWxpZDogdHJ1ZSxcbiAgICAgIGlzU3VibWl0dGluZzogZmFsc2UsXG4gICAgICBjYW5DaGFuZ2U6IGZhbHNlXG4gICAgfTtcbiAgfSxcbiAgZ2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgb25TdWNjZXNzOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uRXJyb3I6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25TdWJtaXQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25WYWxpZFN1Ym1pdDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkludmFsaWRTdWJtaXQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25TdWJtaXR0ZWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25WYWxpZDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkludmFsaWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICgpIHt9XG4gICAgfTtcbiAgfSxcblxuICAvLyBBZGQgYSBtYXAgdG8gc3RvcmUgdGhlIGlucHV0cyBvZiB0aGUgZm9ybSwgYSBtb2RlbCB0byBzdG9yZVxuICAvLyB0aGUgdmFsdWVzIG9mIHRoZSBmb3JtIGFuZCByZWdpc3RlciBjaGlsZCBpbnB1dHNcbiAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5pbnB1dHMgPSB7fTtcbiAgICB0aGlzLm1vZGVsID0ge307XG4gICAgdGhpcy5yZWdpc3RlcklucHV0cyh0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgfSxcblxuICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMudmFsaWRhdGVGb3JtKCk7XG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFVwZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIHZhciBpbnB1dEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmlucHV0cyk7XG5cbiAgICAvLyBUaGUgdXBkYXRlZCBjaGlsZHJlbiBhcnJheSBpcyBub3QgYXZhaWxhYmxlIGhlcmUgZm9yIHNvbWUgcmVhc29uLFxuICAgIC8vIHdlIG5lZWQgdG8gd2FpdCBmb3IgbmV4dCBldmVudCBsb29wXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cbiAgICAgIC8vIFRoZSBjb21wb25lbnQgbWlnaHQgaGF2ZSBiZWVuIHVubW91bnRlZCBvbiBhblxuICAgICAgLy8gdXBkYXRlXG4gICAgICBpZiAodGhpcy5pc01vdW50ZWQoKSkge1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHModGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3JzKSB7XG4gICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbGlkYXRpb25FcnJvcnModGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3JzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuZXdJbnB1dEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmlucHV0cyk7XG4gICAgICAgIGlmICh1dGlscy5hcnJheXNEaWZmZXIoaW5wdXRLZXlzLCBuZXdJbnB1dEtleXMpKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9LmJpbmQodGhpcyksIDApO1xuICB9LFxuXG4gIC8vIFVwZGF0ZSBtb2RlbCwgc3VibWl0IHRvIHVybCBwcm9wIGFuZCBzZW5kIHRoZSBtb2RlbFxuICBzdWJtaXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBUcmlnZ2VyIGZvcm0gYXMgbm90IHByaXN0aW5lLlxuICAgIC8vIElmIGFueSBpbnB1dHMgaGF2ZSBub3QgYmVlbiB0b3VjaGVkIHlldCB0aGlzIHdpbGwgbWFrZSB0aGVtIGRpcnR5XG4gICAgLy8gc28gdmFsaWRhdGlvbiBiZWNvbWVzIHZpc2libGUgKGlmIGJhc2VkIG9uIGlzUHJpc3RpbmUpXG4gICAgdGhpcy5zZXRGb3JtUHJpc3RpbmUoZmFsc2UpO1xuXG4gICAgLy8gVG8gc3VwcG9ydCB1c2UgY2FzZXMgd2hlcmUgbm8gYXN5bmMgb3IgcmVxdWVzdCBvcGVyYXRpb24gaXMgbmVlZGVkLlxuICAgIC8vIFRoZSBcIm9uU3VibWl0XCIgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggdGhlIG1vZGVsIGUuZy4ge2ZpZWxkTmFtZTogXCJteVZhbHVlXCJ9LFxuICAgIC8vIGlmIHdhbnRpbmcgdG8gcmVzZXQgdGhlIGVudGlyZSBmb3JtIHRvIG9yaWdpbmFsIHN0YXRlLCB0aGUgc2Vjb25kIHBhcmFtIGlzIGEgY2FsbGJhY2sgZm9yIHRoaXMuXG4gICAgaWYgKCF0aGlzLnByb3BzLnVybCkge1xuICAgICAgdGhpcy51cGRhdGVNb2RlbCgpO1xuICAgICAgdmFyIG1vZGVsID0gdGhpcy5tYXBNb2RlbCgpO1xuICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdChtb2RlbCwgdGhpcy5yZXNldE1vZGVsLCB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcik7XG4gICAgICB0aGlzLnN0YXRlLmlzVmFsaWQgPyB0aGlzLnByb3BzLm9uVmFsaWRTdWJtaXQobW9kZWwsIHRoaXMucmVzZXRNb2RlbCkgOiB0aGlzLnByb3BzLm9uSW52YWxpZFN1Ym1pdChtb2RlbCwgdGhpcy5yZXNldE1vZGVsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZU1vZGVsKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBpc1N1Ym1pdHRpbmc6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMub25TdWJtaXQodGhpcy5tYXBNb2RlbCgpLCB0aGlzLnJlc2V0TW9kZWwsIHRoaXMudXBkYXRlSW5wdXRzV2l0aEVycm9yKTtcblxuICAgIHZhciBoZWFkZXJzID0gKE9iamVjdC5rZXlzKHRoaXMucHJvcHMuaGVhZGVycykubGVuZ3RoICYmIHRoaXMucHJvcHMuaGVhZGVycykgfHwgb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuXG4gICAgdmFyIG1ldGhvZCA9IHRoaXMucHJvcHMubWV0aG9kICYmIHV0aWxzLmFqYXhbdGhpcy5wcm9wcy5tZXRob2QudG9Mb3dlckNhc2UoKV0gPyB0aGlzLnByb3BzLm1ldGhvZC50b0xvd2VyQ2FzZSgpIDogJ3Bvc3QnO1xuICAgIHV0aWxzLmFqYXhbbWV0aG9kXSh0aGlzLnByb3BzLnVybCwgdGhpcy5tYXBNb2RlbCgpLCB0aGlzLnByb3BzLmNvbnRlbnRUeXBlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgfHwgJ2pzb24nLCBoZWFkZXJzKVxuICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25TdWNjZXNzKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdHRlZCgpO1xuICAgICAgfS5iaW5kKHRoaXMpKVxuICAgICAgLmNhdGNoKHRoaXMuZmFpbFN1Ym1pdCk7XG4gIH0sXG5cbiAgbWFwTW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5tYXBwaW5nID8gdGhpcy5wcm9wcy5tYXBwaW5nKHRoaXMubW9kZWwpIDogdGhpcy5tb2RlbDtcbiAgfSxcblxuICAvLyBHb2VzIHRocm91Z2ggYWxsIHJlZ2lzdGVyZWQgY29tcG9uZW50cyBhbmRcbiAgLy8gdXBkYXRlcyB0aGUgbW9kZWwgdmFsdWVzXG4gIHVwZGF0ZU1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcbiAgICAgIHRoaXMubW9kZWxbbmFtZV0gPSBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG5cbiAgLy8gUmVzZXQgZWFjaCBrZXkgaW4gdGhlIG1vZGVsIHRvIHRoZSBvcmlnaW5hbCAvIGluaXRpYWwgdmFsdWVcbiAgcmVzZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB0aGlzLmlucHV0c1tuYW1lXS5yZXNldFZhbHVlKCk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICB9LFxuXG4gIHNldElucHV0VmFsaWRhdGlvbkVycm9yczogZnVuY3Rpb24gKGVycm9ycykge1xuICAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcbiAgICAgIHZhciBhcmdzID0gW3tcbiAgICAgICAgX2lzVmFsaWQ6ICEobmFtZSBpbiBlcnJvcnMpLFxuICAgICAgICBfc2VydmVyRXJyb3I6IGVycm9yc1tuYW1lXVxuICAgICAgfV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUuYXBwbHkoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9LmJpbmQodGhpcykpOyAgIFxuICB9LFxuXG4gIC8vIEdvIHRocm91Z2ggZXJyb3JzIGZyb20gc2VydmVyIGFuZCBncmFiIHRoZSBjb21wb25lbnRzXG4gIC8vIHN0b3JlZCBpbiB0aGUgaW5wdXRzIG1hcC4gQ2hhbmdlIHRoZWlyIHN0YXRlIHRvIGludmFsaWRcbiAgLy8gYW5kIHNldCB0aGUgc2VydmVyRXJyb3IgbWVzc2FnZVxuICB1cGRhdGVJbnB1dHNXaXRoRXJyb3I6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICBPYmplY3Qua2V5cyhlcnJvcnMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG5cbiAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGFyZSB0cnlpbmcgdG8gdXBkYXRlIGFuIGlucHV0IHRoYXQgZG9lcyBub3QgZXhpc3RzLiBWZXJpZnkgZXJyb3JzIG9iamVjdCB3aXRoIGlucHV0IG5hbWVzLiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyb3JzKSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBhcmdzID0gW3tcbiAgICAgICAgX2lzVmFsaWQ6IGZhbHNlLFxuICAgICAgICBfc2VydmVyRXJyb3I6IGVycm9yc1tuYW1lXVxuICAgICAgfV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUuYXBwbHkoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIGZhaWxTdWJtaXQ6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcihlcnJvcnMpO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMucHJvcHMub25FcnJvcihlcnJvcnMpO1xuICAgIHRoaXMucHJvcHMub25TdWJtaXR0ZWQoKTtcbiAgfSxcblxuICAvLyBUcmF2ZXJzZSB0aGUgY2hpbGRyZW4gYW5kIGNoaWxkcmVuIG9mIGNoaWxkcmVuIHRvIGZpbmRcbiAgLy8gYWxsIGlucHV0cyBieSBjaGVja2luZyB0aGUgbmFtZSBwcm9wLiBNYXliZSBkbyBhIGJldHRlclxuICAvLyBjaGVjayBoZXJlXG4gIHJlZ2lzdGVySW5wdXRzOiBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcblxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm5hbWUpIHtcbiAgICAgICAgY2hpbGQucHJvcHMuX2F0dGFjaFRvRm9ybSA9IHRoaXMuYXR0YWNoVG9Gb3JtO1xuICAgICAgICBjaGlsZC5wcm9wcy5fZGV0YWNoRnJvbUZvcm0gPSB0aGlzLmRldGFjaEZyb21Gb3JtO1xuICAgICAgICBjaGlsZC5wcm9wcy5fdmFsaWRhdGUgPSB0aGlzLnZhbGlkYXRlO1xuICAgICAgICBjaGlsZC5wcm9wcy5faXNGb3JtRGlzYWJsZWQgPSB0aGlzLmlzRm9ybURpc2FibGVkO1xuICAgICAgICBjaGlsZC5wcm9wcy5faXNWYWxpZFZhbHVlID0gdGhpcy5ydW5WYWxpZGF0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hpbGQgJiYgY2hpbGQucHJvcHMgJiYgY2hpbGQucHJvcHMuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcklucHV0cyhjaGlsZC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICB9XG5cbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIGlzRm9ybURpc2FibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGlzYWJsZWQ7XG4gIH0sXG5cbiAgZ2V0Q3VycmVudFZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykucmVkdWNlKGZ1bmN0aW9uIChkYXRhLCBuYW1lKSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG4gICAgICBkYXRhW25hbWVdID0gY29tcG9uZW50LnN0YXRlLl92YWx1ZTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0uYmluZCh0aGlzKSwge30pO1xuICB9LFxuXG4gIHNldEZvcm1QcmlzdGluZTogZnVuY3Rpb24gKGlzUHJpc3RpbmUpIHtcbiAgICB2YXIgaW5wdXRzID0gdGhpcy5pbnB1dHM7XG4gICAgdmFyIGlucHV0S2V5cyA9IE9iamVjdC5rZXlzKGlucHV0cyk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBjb21wb25lbnQgYW5kIHNldCBpdCBhcyBwcmlzdGluZVxuICAgIC8vIG9yIFwiZGlydHlcIi5cbiAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSBpbnB1dHNbbmFtZV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUoe1xuICAgICAgICBfaXNQcmlzdGluZTogaXNQcmlzdGluZVxuICAgICAgfSk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICAvLyBVc2UgdGhlIGJpbmRlZCB2YWx1ZXMgYW5kIHRoZSBhY3R1YWwgaW5wdXQgdmFsdWUgdG9cbiAgLy8gdmFsaWRhdGUgdGhlIGlucHV0IGFuZCBzZXQgaXRzIHN0YXRlLiBUaGVuIGNoZWNrIHRoZVxuICAvLyBzdGF0ZSBvZiB0aGUgZm9ybSBpdHNlbGZcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcblxuICAgIC8vIFRyaWdnZXIgb25DaGFuZ2VcbiAgICBpZiAodGhpcy5zdGF0ZS5jYW5DaGFuZ2UpIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5nZXRDdXJyZW50VmFsdWVzKCkpO1xuICAgIH1cblxuICAgIGlmICghY29tcG9uZW50LnByb3BzLnJlcXVpcmVkICYmICFjb21wb25lbnQuX3ZhbGlkYXRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUnVuIHRocm91Z2ggdGhlIHZhbGlkYXRpb25zLCBzcGxpdCB0aGVtIHVwIGFuZCBjYWxsXG4gICAgLy8gdGhlIHZhbGlkYXRvciBJRiB0aGVyZSBpcyBhIHZhbHVlIG9yIGl0IGlzIHJlcXVpcmVkXG4gICAgdmFyIGlzVmFsaWQgPSB0aGlzLnJ1blZhbGlkYXRpb24oY29tcG9uZW50KTtcblxuICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICBfaXNWYWxpZDogaXNWYWxpZCxcbiAgICAgIF9zZXJ2ZXJFcnJvcjogbnVsbFxuICAgIH0sIHRoaXMudmFsaWRhdGVGb3JtKTtcblxuICB9LFxuXG4gIC8vIENoZWNrcyB2YWxpZGF0aW9uIG9uIGN1cnJlbnQgdmFsdWUgb3IgYSBwYXNzZWQgdmFsdWVcbiAgcnVuVmFsaWRhdGlvbjogZnVuY3Rpb24gKGNvbXBvbmVudCwgdmFsdWUpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gdHJ1ZTtcbiAgICBcbiAgICB2YWx1ZSA9IGFyZ3VtZW50cy5sZW5ndGggPT09IDIgPyB2YWx1ZSA6IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgaWYgKGNvbXBvbmVudC5fdmFsaWRhdGlvbnMubGVuZ3RoICYmIChjb21wb25lbnQucHJvcHMucmVxdWlyZWQgfHwgdmFsdWUgIT09ICcnKSkge1xuICAgICAgY29tcG9uZW50Ll92YWxpZGF0aW9ucy5zcGxpdCgvXFwsKD8hW157XFxbXSpbfVxcXV0pL2cpLmZvckVhY2goZnVuY3Rpb24gKHZhbGlkYXRpb24pIHtcbiAgICAgICAgdmFyIGFyZ3MgPSB2YWxpZGF0aW9uLnNwbGl0KCc6Jyk7XG4gICAgICAgIHZhciB2YWxpZGF0ZU1ldGhvZCA9IGFyZ3Muc2hpZnQoKTtcbiAgICAgICAgYXJncyA9IGFyZ3MubWFwKGZ1bmN0aW9uIChhcmcpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXJnKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJnOyAvLyBJdCBpcyBhIHN0cmluZyBpZiBpdCBjYW4gbm90IHBhcnNlIGl0XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXJncyA9IFt2YWx1ZV0uY29uY2F0KGFyZ3MpO1xuICAgICAgICBpZiAoIXZhbGlkYXRpb25SdWxlc1t2YWxpZGF0ZU1ldGhvZF0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm1zeSBkb2VzIG5vdCBoYXZlIHRoZSB2YWxpZGF0aW9uIHJ1bGU6ICcgKyB2YWxpZGF0ZU1ldGhvZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZGF0aW9uUnVsZXNbdmFsaWRhdGVNZXRob2RdLmFwcGx5KHRoaXMuZ2V0Q3VycmVudFZhbHVlcygpLCBhcmdzKSkge1xuICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH0sXG5cbiAgLy8gVmFsaWRhdGUgdGhlIGZvcm0gYnkgZ29pbmcgdGhyb3VnaCBhbGwgY2hpbGQgaW5wdXQgY29tcG9uZW50c1xuICAvLyBhbmQgY2hlY2sgdGhlaXIgc3RhdGVcbiAgdmFsaWRhdGVGb3JtOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFsbElzVmFsaWQgPSB0cnVlO1xuICAgIHZhciBpbnB1dHMgPSB0aGlzLmlucHV0cztcbiAgICB2YXIgaW5wdXRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRzKTtcblxuICAgIC8vIFdlIG5lZWQgYSBjYWxsYmFjayBhcyB3ZSBhcmUgdmFsaWRhdGluZyBhbGwgaW5wdXRzIGFnYWluLiBUaGlzIHdpbGxcbiAgICAvLyBydW4gd2hlbiB0aGUgbGFzdCBjb21wb25lbnQgaGFzIHNldCBpdHMgc3RhdGVcbiAgICB2YXIgb25WYWxpZGF0aW9uQ29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBpZiAoIWlucHV0c1tuYW1lXS5zdGF0ZS5faXNWYWxpZCkge1xuICAgICAgICAgIGFsbElzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpKTtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlzVmFsaWQ6IGFsbElzVmFsaWRcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoYWxsSXNWYWxpZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uVmFsaWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvcHMub25JbnZhbGlkKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRlbGwgdGhlIGZvcm0gdGhhdCBpdCBjYW4gc3RhcnQgdG8gdHJpZ2dlciBjaGFuZ2UgZXZlbnRzXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2FuQ2hhbmdlOiB0cnVlXG4gICAgICB9KTtcblxuICAgIH0uYmluZCh0aGlzKTtcblxuICAgIC8vIFJ1biB2YWxpZGF0aW9uIGFnYWluIGluIGNhc2UgYWZmZWN0ZWQgYnkgb3RoZXIgaW5wdXRzLiBUaGVcbiAgICAvLyBsYXN0IGNvbXBvbmVudCB2YWxpZGF0ZWQgd2lsbCBydW4gdGhlIG9uVmFsaWRhdGlvbkNvbXBsZXRlIGNhbGxiYWNrXG4gICAgaW5wdXRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gaW5wdXRzW25hbWVdO1xuICAgICAgdmFyIGlzVmFsaWQgPSB0aGlzLnJ1blZhbGlkYXRpb24oY29tcG9uZW50KTtcbiAgICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICAgIF9pc1ZhbGlkOiBpc1ZhbGlkLFxuICAgICAgICBfc2VydmVyRXJyb3I6IG51bGxcbiAgICAgIH0sIGluZGV4ID09PSBpbnB1dEtleXMubGVuZ3RoIC0gMSA/IG9uVmFsaWRhdGlvbkNvbXBsZXRlIDogbnVsbCk7XG4gICAgfS5iaW5kKHRoaXMpKTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSBubyBpbnB1dHMsIHNldCBzdGF0ZSB3aGVyZSBmb3JtIGlzIHJlYWR5IHRvIHRyaWdnZXJcbiAgICAvLyBjaGFuZ2UgZXZlbnQuIE5ldyBpbnB1dHMgbWlnaHQgYmUgYWRkZWQgbGF0ZXJcbiAgICBpZiAoIWlucHV0S2V5cy5sZW5ndGggJiYgdGhpcy5pc01vdW50ZWQoKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNhbkNoYW5nZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8vIE1ldGhvZCBwdXQgb24gZWFjaCBpbnB1dCBjb21wb25lbnQgdG8gcmVnaXN0ZXJcbiAgLy8gaXRzZWxmIHRvIHRoZSBmb3JtXG4gIGF0dGFjaFRvRm9ybTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIHRoaXMuaW5wdXRzW2NvbXBvbmVudC5wcm9wcy5uYW1lXSA9IGNvbXBvbmVudDtcbiAgICB0aGlzLm1vZGVsW2NvbXBvbmVudC5wcm9wcy5uYW1lXSA9IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgdGhpcy52YWxpZGF0ZShjb21wb25lbnQpO1xuICB9LFxuXG4gIC8vIE1ldGhvZCBwdXQgb24gZWFjaCBpbnB1dCBjb21wb25lbnQgdG8gdW5yZWdpc3RlclxuICAvLyBpdHNlbGYgZnJvbSB0aGUgZm9ybVxuICBkZXRhY2hGcm9tRm9ybTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIGRlbGV0ZSB0aGlzLmlucHV0c1tjb21wb25lbnQucHJvcHMubmFtZV07XG4gICAgZGVsZXRlIHRoaXMubW9kZWxbY29tcG9uZW50LnByb3BzLm5hbWVdO1xuICB9LFxuICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcblxuICAgIHJldHVybiBSZWFjdC5ET00uZm9ybSh7XG4gICAgICAgIG9uU3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZVxuICAgICAgfSxcbiAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICApO1xuXG4gIH1cbn0pO1xuXG5pZiAoIWdsb2JhbC5leHBvcnRzICYmICFnbG9iYWwubW9kdWxlICYmICghZ2xvYmFsLmRlZmluZSB8fCAhZ2xvYmFsLmRlZmluZS5hbWQpKSB7XG4gIGdsb2JhbC5Gb3Jtc3kgPSBGb3Jtc3k7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRm9ybXN5O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZiV0ZwYmk1cWN5SXNJbk52ZFhKalpYTWlPbHNpTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12YldGcGJpNXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4SlFVRkpMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zUzBGQlN5eEpRVUZKTEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNM1F5eEpRVUZKTEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRhRUlzU1VGQlNTeGxRVUZsTEVkQlFVY3NUMEZCVHl4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTTdRVUZEZEVRc1NVRkJTU3hMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMEZCUTJ4RExFbEJRVWtzUzBGQlN5eEhRVUZITEU5QlFVOHNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRCUVVOc1F5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNN08wRkJSV3BDTEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE96dEJRVVZ5UWl4TlFVRk5MRU5CUVVNc1VVRkJVU3hIUVVGSExGVkJRVlVzWVVGQllTeEZRVUZGTzBWQlEzcERMRTlCUVU4c1IwRkJSeXhoUVVGaExFTkJRVU03UVVGRE1VSXNRMEZCUXl4RFFVRkRPenRCUVVWR0xFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhWUVVGVkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVTdSVUZETDBNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0QlFVTXZRaXhEUVVGRExFTkJRVU03TzBGQlJVWXNhVU5CUVdsRExHOUNRVUZCTzBWQlF5OUNMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVODdUVUZEVEN4UFFVRlBMRVZCUVVVc1NVRkJTVHROUVVOaUxGbEJRVmtzUlVGQlJTeExRVUZMTzAxQlEyNUNMRk5CUVZNc1JVRkJSU3hMUVVGTE8wdEJRMnBDTEVOQlFVTTdSMEZEU0R0RlFVTkVMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVODdUVUZEVEN4UFFVRlBMRVZCUVVVc1JVRkJSVHROUVVOWUxGTkJRVk1zUlVGQlJTeFpRVUZaTEVWQlFVVTdUVUZEZWtJc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJUdE5RVU4yUWl4UlFVRlJMRVZCUVVVc1dVRkJXU3hGUVVGRk8wMUJRM2hDTEdGQlFXRXNSVUZCUlN4WlFVRlpMRVZCUVVVN1RVRkROMElzWlVGQlpTeEZRVUZGTEZsQlFWa3NSVUZCUlR0TlFVTXZRaXhYUVVGWExFVkJRVVVzV1VGQldTeEZRVUZGTzAxQlF6TkNMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVU3VFVGRGRrSXNVMEZCVXl4RlFVRkZMRmxCUVZrc1JVRkJSVHROUVVONlFpeFJRVUZSTEVWQlFVVXNXVUZCV1N4RlFVRkZPMHRCUTNwQ0xFTkJRVU03UVVGRFRpeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3hyUWtGQmEwSXNSVUZCUlN4WlFVRlpPMGxCUXpsQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJwQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJoQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU0zUXl4SFFVRkhPenRGUVVWRUxHbENRVUZwUWl4RlFVRkZMRmxCUVZrN1NVRkROMElzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMEZCUTNoQ0xFZEJRVWM3TzBWQlJVUXNiVUpCUVcxQ0xFVkJRVVVzV1VGQldUdEJRVU51UXl4SlFVRkpMRWxCUVVrc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRemRETzBGQlEwRTdPMEZCUlVFc1NVRkJTU3hWUVVGVkxFTkJRVU1zV1VGQldUdEJRVU16UWp0QlFVTkJPenRCUVVWQkxFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVN08wRkJSVFZDTEZGQlFWRXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPenRQUVVVeFF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVWQlFVVTdWVUZET1VJc1NVRkJTU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRCUVVOeVJTeFRRVUZUT3p0UlFVVkVMRWxCUVVrc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRelZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhUUVVGVExFVkJRVVVzV1VGQldTeERRVUZETEVWQlFVVTdWVUZETDBNc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzBGQlF6bENMRk5CUVZNN08wRkJSVlFzVDBGQlR6czdTMEZGUml4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnlRaXhIUVVGSE8wRkJRMGc3TzBWQlJVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8wRkJRek5DTEVsQlFVa3NTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8wRkJRek5DTzBGQlEwRTdRVUZEUVRzN1FVRkZRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRhRU03UVVGRFFUdEJRVU5CT3p0SlFVVkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSVUZCUlR0TlFVTnVRaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdUVUZEYmtJc1NVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMDFCUXpWQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETzAxQlEzaEZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dE5RVU16U0N4UFFVRlBPMEZCUTJJc1MwRkJTenM3U1VGRlJDeEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1NVRkRia0lzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0TlFVTmFMRmxCUVZrc1JVRkJSU3hKUVVGSk8wRkJRM2hDTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWUUxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN08wRkJSWFJHTEVsQlFVa3NTVUZCU1N4UFFVRlBMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhMUVVGTExFOUJRVThzUTBGQlF5eFBRVUZQTEVsQlFVa3NSVUZCUlN4RFFVRkRPenRKUVVWMFJ5eEpRVUZKTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWRCUVVjc1RVRkJUU3hEUVVGRE8wbEJRM3BJTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhKUVVGSkxFOUJRVThzUTBGQlF5eFhRVUZYTEVsQlFVa3NUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJRenRQUVVOc1NDeEpRVUZKTEVOQlFVTXNWVUZCVlN4UlFVRlJMRVZCUVVVN1VVRkRlRUlzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGREwwSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFBRVU14UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFBRVU5hTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRE9VSXNSMEZCUnpzN1JVRkZSQ3hSUVVGUkxFVkJRVVVzV1VGQldUdEpRVU53UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRelZGTEVkQlFVYzdRVUZEU0R0QlFVTkJPenRGUVVWRkxGZEJRVmNzUlVGQlJTeFpRVUZaTzBsQlEzWkNMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJUdE5RVU12UXl4SlFVRkpMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMDFCUTJ4RExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdTMEZETTBNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRaXhIUVVGSE8wRkJRMGc3TzBWQlJVVXNWVUZCVlN4RlFVRkZMRmxCUVZrN1NVRkRkRUlzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZPMDFCUXk5RExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03UzBGRGFFTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5rTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRCUVVONFFpeEhRVUZIT3p0RlFVVkVMSGRDUVVGM1FpeEZRVUZGTEZWQlFWVXNUVUZCVFN4RlFVRkZPMHRCUTNwRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVN1RVRkRka1FzU1VGQlNTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dE5RVU5zUXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRE8xRkJRMVlzVVVGQlVTeEZRVUZGTEVWQlFVVXNTVUZCU1N4SlFVRkpMRTFCUVUwc1EwRkJRenRSUVVNelFpeFpRVUZaTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJRenRQUVVNelFpeERRVUZETEVOQlFVTTdUVUZEU0N4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRNME1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1FpeEhRVUZITzBGQlEwZzdRVUZEUVR0QlFVTkJPenRGUVVWRkxIRkNRVUZ4UWl4RlFVRkZMRlZCUVZVc1RVRkJUU3hGUVVGRk8wbEJRM1pETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSVHRCUVVOMlJDeE5RVUZOTEVsQlFVa3NVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdPMDFCUld4RExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdVVUZEWkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHbEhRVUZwUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTndTaXhQUVVGUE96dE5RVVZFTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNN1VVRkRWaXhSUVVGUkxFVkJRVVVzUzBGQlN6dFJRVU5tTEZsQlFWa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRE8wOUJRek5DTEVOQlFVTXNRMEZCUXp0TlFVTklMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVNelF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnhDTEVkQlFVYzdPMFZCUlVRc1ZVRkJWU3hGUVVGRkxGVkJRVlVzVFVGQlRTeEZRVUZGTzBsQlF6VkNMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVOdVF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMDFCUTFvc1dVRkJXU3hGUVVGRkxFdEJRVXM3UzBGRGNFSXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRNMElzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRCUVVNM1FpeEhRVUZITzBGQlEwZzdRVUZEUVR0QlFVTkJPenRGUVVWRkxHTkJRV01zUlVGQlJTeFZRVUZWTEZGQlFWRXNSVUZCUlR0QlFVTjBReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUczdUVUZGYUVRc1NVRkJTU3hMUVVGTExFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJUdFJRVU0xUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpsRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU03VVVGRGJFUXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTjBReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRE8xRkJRMnhFTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTTdRVUZEZGtRc1QwRkJUenM3VFVGRlJDeEpRVUZKTEV0QlFVc3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZPMUZCUTJoRUxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU5zUkN4UFFVRlBPenRMUVVWR0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRUlzUjBGQlJ6czdSVUZGUkN4alFVRmpMRVZCUVVVc1dVRkJXVHRKUVVNeFFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRE8wRkJReTlDTEVkQlFVYzdPMFZCUlVRc1owSkJRV2RDTEVWQlFVVXNXVUZCV1R0SlFVTTFRaXhQUVVGUExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVN1RVRkRNMFFzU1VGQlNTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dE5RVU5zUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1RVRkRjRU1zVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhIUVVGSE96dEZRVVZFTEdWQlFXVXNSVUZCUlN4VlFVRlZMRlZCUVZVc1JVRkJSVHRKUVVOeVF5eEpRVUZKTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRemRDTEVsQlFVa3NTVUZCU1N4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTjRRenRCUVVOQk96dEpRVVZKTEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTzAxQlEzWkRMRWxCUVVrc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTTNRaXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETzFGQlEycENMRmRCUVZjc1JVRkJSU3hWUVVGVk8wOUJRM2hDTEVOQlFVTXNRMEZCUXp0TFFVTktMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVJc1IwRkJSenRCUVVOSU8wRkJRMEU3UVVGRFFUczdRVUZGUVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdEJRVU5xUXpzN1NVRkZTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RlFVRkZPMDFCUTNoQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRia1FzUzBGQlN6czdTVUZGUkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hGUVVGRk8wMUJRM2hFTEU5QlFVODdRVUZEWWl4TFFVRkxPMEZCUTB3N1FVRkRRVHM3UVVGRlFTeEpRVUZKTEVsQlFVa3NUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdPMGxCUlRWRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTTdUVUZEYWtJc1VVRkJVU3hGUVVGRkxFOUJRVTg3VFVGRGFrSXNXVUZCV1N4RlFVRkZMRWxCUVVrN1FVRkRlRUlzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenM3UVVGRk1VSXNSMEZCUnp0QlFVTklPenRCUVVWQkxFVkJRVVVzWVVGQllTeEZRVUZGTEZWQlFWVXNVMEZCVXl4RlFVRkZMRXRCUVVzc1JVRkJSVHM3UVVGRk4wTXNTVUZCU1N4SlFVRkpMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU03TzBsQlJXNUNMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEYUVVc1NVRkJTU3hUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNTMEZCU3l4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeExRVUZMTEV0QlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVVN1RVRkRMMFVzVTBGQlV5eERRVUZETEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hWUVVGVkxFVkJRVVU3VVVGRGFFWXNTVUZCU1N4SlFVRkpMRWRCUVVjc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTnFReXhKUVVGSkxHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1VVRkRiRU1zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hIUVVGSExFVkJRVVU3VlVGRE4wSXNTVUZCU1R0WlFVTkdMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WFFVTjRRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFsQlExWXNUMEZCVHl4SFFVRkhMRU5CUVVNN1YwRkRXanRUUVVOR0xFTkJRVU1zUTBGQlF6dFJRVU5JTEVsQlFVa3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTFRaXhKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEdOQlFXTXNRMEZCUXl4RlFVRkZPMVZCUTNCRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNORU5CUVRSRExFZEJRVWNzWTBGQll5eERRVUZETEVOQlFVTTdVMEZEYUVZN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUlVGQlJUdFZRVU42UlN4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRE8xTkJRMnBDTzA5QlEwWXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5tTzBsQlEwUXNUMEZCVHl4UFFVRlBMRU5CUVVNN1FVRkRia0lzUjBGQlJ6dEJRVU5JTzBGQlEwRTdPMFZCUlVVc1dVRkJXU3hGUVVGRkxGbEJRVms3U1VGRGVFSXNTVUZCU1N4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRM1JDTEVsQlFVa3NUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRE4wSXNTVUZCU1N4SlFVRkpMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTNoRE8wRkJRMEU3TzBsQlJVa3NTVUZCU1N4dlFrRkJiMElzUjBGQlJ5eFpRVUZaTzAxQlEzSkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeEpRVUZKTEVWQlFVVTdVVUZEYUVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVGRk8xVkJRMmhETEZWQlFWVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1UwRkRjRUk3UVVGRFZDeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03TzAxQlJXUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenRSUVVOYUxFOUJRVThzUlVGQlJTeFZRVUZWTzBGQlF6TkNMRTlCUVU4c1EwRkJReXhEUVVGRE96dE5RVVZJTEVsQlFVa3NWVUZCVlN4RlFVRkZPMUZCUTJRc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0UFFVTjBRaXhOUVVGTk8xRkJRMHdzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRCUVVNdlFpeFBRVUZQTzBGQlExQTdPMDFCUlUwc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU5hTEZOQlFWTXNSVUZCUlN4SlFVRkpPMEZCUTNaQ0xFOUJRVThzUTBGQlF5eERRVUZET3p0QlFVVlVMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEYWtJN1FVRkRRVHM3U1VGRlNTeFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdE5RVU4yUXl4SlFVRkpMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdUVUZETjBJc1NVRkJTU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenROUVVNMVF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUTJwQ0xGRkJRVkVzUlVGQlJTeFBRVUZQTzFGQlEycENMRmxCUVZrc1JVRkJSU3hKUVVGSk8wOUJRMjVDTEVWQlFVVXNTMEZCU3l4TFFVRkxMRk5CUVZNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEhRVUZITEc5Q1FVRnZRaXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzWkZMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRanRCUVVOQk96dEpRVVZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlR0TlFVTjZReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzFGQlExb3NVMEZCVXl4RlFVRkZMRWxCUVVrN1QwRkRhRUlzUTBGQlF5eERRVUZETzB0QlEwbzdRVUZEVEN4SFFVRkhPMEZCUTBnN1FVRkRRVHM3UlVGRlJTeFpRVUZaTEVWQlFVVXNWVUZCVlN4VFFVRlRMRVZCUVVVN1NVRkRha01zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0SlFVTTVReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRNVVFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVNM1FpeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3hqUVVGakxFVkJRVVVzVlVGQlZTeFRRVUZUTEVWQlFVVTdTVUZEYmtNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGVrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1IwRkRla003UVVGRFNDeEZRVUZGTEUxQlFVMHNSVUZCUlN4WlFVRlpPenRKUVVWc1FpeFBRVUZQTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRMnhDTEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUVHRSUVVOeVFpeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVE8wOUJRMmhETzAxQlEwUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUk8wRkJRM3BDTEV0QlFVc3NRMEZCUXpzN1IwRkZTRHRCUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVklMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzBWQlF5OUZMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzBGQlEzcENMRU5CUVVNN08wRkJSVVFzVFVGQlRTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnVW1WaFkzUWdQU0JuYkc5aVlXd3VVbVZoWTNRZ2ZId2djbVZ4ZFdseVpTZ25jbVZoWTNRbktUdGNiblpoY2lCR2IzSnRjM2tnUFNCN2ZUdGNiblpoY2lCMllXeHBaR0YwYVc5dVVuVnNaWE1nUFNCeVpYRjFhWEpsS0NjdUwzWmhiR2xrWVhScGIyNVNkV3hsY3k1cWN5Y3BPMXh1ZG1GeUlIVjBhV3h6SUQwZ2NtVnhkV2x5WlNnbkxpOTFkR2xzY3k1cWN5Y3BPMXh1ZG1GeUlFMXBlR2x1SUQwZ2NtVnhkV2x5WlNnbkxpOU5hWGhwYmk1cWN5Y3BPMXh1ZG1GeUlHOXdkR2x2Ym5NZ1BTQjdmVHRjYmx4dVJtOXliWE41TGsxcGVHbHVJRDBnVFdsNGFXNDdYRzVjYmtadmNtMXplUzVrWldaaGRXeDBjeUE5SUdaMWJtTjBhVzl1SUNod1lYTnpaV1JQY0hScGIyNXpLU0I3WEc0Z0lHOXdkR2x2Ym5NZ1BTQndZWE56WldSUGNIUnBiMjV6TzF4dWZUdGNibHh1Um05eWJYTjVMbUZrWkZaaGJHbGtZWFJwYjI1U2RXeGxJRDBnWm5WdVkzUnBiMjRnS0c1aGJXVXNJR1oxYm1NcElIdGNiaUFnZG1Gc2FXUmhkR2x2YmxKMWJHVnpXMjVoYldWZElEMGdablZ1WXp0Y2JuMDdYRzVjYmtadmNtMXplUzVHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNCblpYUkpibWwwYVdGc1UzUmhkR1U2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnYVhOV1lXeHBaRG9nZEhKMVpTeGNiaUFnSUNBZ0lHbHpVM1ZpYldsMGRHbHVaem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQmpZVzVEYUdGdVoyVTZJR1poYkhObFhHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ1oyVjBSR1ZtWVhWc2RGQnliM0J6T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUdobFlXUmxjbk02SUh0OUxGeHVJQ0FnSUNBZ2IyNVRkV05qWlhOek9pQm1kVzVqZEdsdmJpQW9LU0I3ZlN4Y2JpQWdJQ0FnSUc5dVJYSnliM0k2SUdaMWJtTjBhVzl1SUNncElIdDlMRnh1SUNBZ0lDQWdiMjVUZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNVdZV3hwWkZOMVltMXBkRG9nWm5WdVkzUnBiMjRnS0NrZ2UzMHNYRzRnSUNBZ0lDQnZia2x1ZG1Gc2FXUlRkV0p0YVhRNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1VGRXSnRhWFIwWldRNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1V1lXeHBaRG9nWm5WdVkzUnBiMjRnS0NrZ2UzMHNYRzRnSUNBZ0lDQnZia2x1ZG1Gc2FXUTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNURhR0Z1WjJVNklHWjFibU4wYVc5dUlDZ3BJSHQ5WEc0Z0lDQWdmVHRjYmlBZ2ZTeGNibHh1SUNBdkx5QkJaR1FnWVNCdFlYQWdkRzhnYzNSdmNtVWdkR2hsSUdsdWNIVjBjeUJ2WmlCMGFHVWdabTl5YlN3Z1lTQnRiMlJsYkNCMGJ5QnpkRzl5WlZ4dUlDQXZMeUIwYUdVZ2RtRnNkV1Z6SUc5bUlIUm9aU0JtYjNKdElHRnVaQ0J5WldkcGMzUmxjaUJqYUdsc1pDQnBibkIxZEhOY2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkUxdmRXNTBPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnZEdocGN5NXBibkIxZEhNZ1BTQjdmVHRjYmlBZ0lDQjBhR2x6TG0xdlpHVnNJRDBnZTMwN1hHNGdJQ0FnZEdocGN5NXlaV2RwYzNSbGNrbHVjSFYwY3loMGFHbHpMbkJ5YjNCekxtTm9hV3hrY21WdUtUdGNiaUFnZlN4Y2JseHVJQ0JqYjIxd2IyNWxiblJFYVdSTmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhSb2FYTXVkbUZzYVdSaGRHVkdiM0p0S0NrN1hHNGdJSDBzWEc1Y2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkZWd1pHRjBaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhaaGNpQnBibkIxZEV0bGVYTWdQU0JQWW1wbFkzUXVhMlY1Y3loMGFHbHpMbWx1Y0hWMGN5azdYRzVjYmlBZ0lDQXZMeUJVYUdVZ2RYQmtZWFJsWkNCamFHbHNaSEpsYmlCaGNuSmhlU0JwY3lCdWIzUWdZWFpoYVd4aFlteGxJR2hsY21VZ1ptOXlJSE52YldVZ2NtVmhjMjl1TEZ4dUlDQWdJQzh2SUhkbElHNWxaV1FnZEc4Z2QyRnBkQ0JtYjNJZ2JtVjRkQ0JsZG1WdWRDQnNiMjl3WEc0Z0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNBZ0lDOHZJRlJvWlNCamIyMXdiMjVsYm5RZ2JXbG5hSFFnYUdGMlpTQmlaV1Z1SUhWdWJXOTFiblJsWkNCdmJpQmhibHh1SUNBZ0lDQWdMeThnZFhCa1lYUmxYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXBjMDF2ZFc1MFpXUW9LU2tnZTF4dVhHNGdJQ0FnSUNBZ0lIUm9hWE11Y21WbmFYTjBaWEpKYm5CMWRITW9kR2hwY3k1d2NtOXdjeTVqYUdsc1pISmxiaWs3WEc1Y2JpQWdJQ0FnSUNCcFppQW9kR2hwY3k1d2NtOXdjeTUyWVd4cFpHRjBhVzl1UlhKeWIzSnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSSmJuQjFkRlpoYkdsa1lYUnBiMjVGY25KdmNuTW9kR2hwY3k1d2NtOXdjeTUyWVd4cFpHRjBhVzl1UlhKeWIzSnpLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lIWmhjaUJ1WlhkSmJuQjFkRXRsZVhNZ1BTQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gxZEdsc2N5NWhjbkpoZVhORWFXWm1aWElvYVc1d2RYUkxaWGx6TENCdVpYZEpibkIxZEV0bGVYTXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTUyWVd4cFpHRjBaVVp2Y20wb0tUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrc0lEQXBPMXh1SUNCOUxGeHVYRzRnSUM4dklGVndaR0YwWlNCdGIyUmxiQ3dnYzNWaWJXbDBJSFJ2SUhWeWJDQndjbTl3SUdGdVpDQnpaVzVrSUhSb1pTQnRiMlJsYkZ4dUlDQnpkV0p0YVhRNklHWjFibU4wYVc5dUlDaGxkbVZ1ZENrZ2UxeHVJQ0FnSUdWMlpXNTBMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzVjYmlBZ0lDQXZMeUJVY21sbloyVnlJR1p2Y20wZ1lYTWdibTkwSUhCeWFYTjBhVzVsTGx4dUlDQWdJQzh2SUVsbUlHRnVlU0JwYm5CMWRITWdhR0YyWlNCdWIzUWdZbVZsYmlCMGIzVmphR1ZrSUhsbGRDQjBhR2x6SUhkcGJHd2diV0ZyWlNCMGFHVnRJR1JwY25SNVhHNGdJQ0FnTHk4Z2MyOGdkbUZzYVdSaGRHbHZiaUJpWldOdmJXVnpJSFpwYzJsaWJHVWdLR2xtSUdKaGMyVmtJRzl1SUdselVISnBjM1JwYm1VcFhHNGdJQ0FnZEdocGN5NXpaWFJHYjNKdFVISnBjM1JwYm1Vb1ptRnNjMlVwTzF4dVhHNGdJQ0FnTHk4Z1ZHOGdjM1Z3Y0c5eWRDQjFjMlVnWTJGelpYTWdkMmhsY21VZ2JtOGdZWE41Ym1NZ2IzSWdjbVZ4ZFdWemRDQnZjR1Z5WVhScGIyNGdhWE1nYm1WbFpHVmtMbHh1SUNBZ0lDOHZJRlJvWlNCY0ltOXVVM1ZpYldsMFhDSWdZMkZzYkdKaFkyc2dhWE1nWTJGc2JHVmtJSGRwZEdnZ2RHaGxJRzF2WkdWc0lHVXVaeTRnZTJacFpXeGtUbUZ0WlRvZ1hDSnRlVlpoYkhWbFhDSjlMRnh1SUNBZ0lDOHZJR2xtSUhkaGJuUnBibWNnZEc4Z2NtVnpaWFFnZEdobElHVnVkR2x5WlNCbWIzSnRJSFJ2SUc5eWFXZHBibUZzSUhOMFlYUmxMQ0IwYUdVZ2MyVmpiMjVrSUhCaGNtRnRJR2x6SUdFZ1kyRnNiR0poWTJzZ1ptOXlJSFJvYVhNdVhHNGdJQ0FnYVdZZ0tDRjBhR2x6TG5CeWIzQnpMblZ5YkNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVk5iMlJsYkNncE8xeHVJQ0FnSUNBZ2RtRnlJRzF2WkdWc0lEMGdkR2hwY3k1dFlYQk5iMlJsYkNncE8xeHVJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NXZibE4xWW0xcGRDaHRiMlJsYkN3Z2RHaHBjeTV5WlhObGRFMXZaR1ZzTENCMGFHbHpMblZ3WkdGMFpVbHVjSFYwYzFkcGRHaEZjbkp2Y2lrN1hHNGdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtbHpWbUZzYVdRZ1B5QjBhR2x6TG5CeWIzQnpMbTl1Vm1Gc2FXUlRkV0p0YVhRb2JXOWtaV3dzSUhSb2FYTXVjbVZ6WlhSTmIyUmxiQ2tnT2lCMGFHbHpMbkJ5YjNCekxtOXVTVzUyWVd4cFpGTjFZbTFwZENodGIyUmxiQ3dnZEdocGN5NXlaWE5sZEUxdlpHVnNLVHRjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMblZ3WkdGMFpVMXZaR1ZzS0NrN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQnBjMU4xWW0xcGRIUnBibWM2SUhSeWRXVmNiaUFnSUNCOUtUdGNibHh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdKdGFYUW9kR2hwY3k1dFlYQk5iMlJsYkNncExDQjBhR2x6TG5KbGMyVjBUVzlrWld3c0lIUm9hWE11ZFhCa1lYUmxTVzV3ZFhSelYybDBhRVZ5Y205eUtUdGNibHh1SUNBZ0lIWmhjaUJvWldGa1pYSnpJRDBnS0U5aWFtVmpkQzVyWlhsektIUm9hWE11Y0hKdmNITXVhR1ZoWkdWeWN5a3ViR1Z1WjNSb0lDWW1JSFJvYVhNdWNISnZjSE11YUdWaFpHVnljeWtnZkh3Z2IzQjBhVzl1Y3k1b1pXRmtaWEp6SUh4OElIdDlPMXh1WEc0Z0lDQWdkbUZ5SUcxbGRHaHZaQ0E5SUhSb2FYTXVjSEp2Y0hNdWJXVjBhRzlrSUNZbUlIVjBhV3h6TG1GcVlYaGJkR2hwY3k1d2NtOXdjeTV0WlhSb2IyUXVkRzlNYjNkbGNrTmhjMlVvS1YwZ1B5QjBhR2x6TG5CeWIzQnpMbTFsZEdodlpDNTBiMHh2ZDJWeVEyRnpaU2dwSURvZ0ozQnZjM1FuTzF4dUlDQWdJSFYwYVd4ekxtRnFZWGhiYldWMGFHOWtYU2gwYUdsekxuQnliM0J6TG5WeWJDd2dkR2hwY3k1dFlYQk5iMlJsYkNncExDQjBhR2x6TG5CeWIzQnpMbU52Ym5SbGJuUlVlWEJsSUh4OElHOXdkR2x2Ym5NdVkyOXVkR1Z1ZEZSNWNHVWdmSHdnSjJwemIyNG5MQ0JvWldGa1pYSnpLVnh1SUNBZ0lDQWdMblJvWlc0b1puVnVZM1JwYjI0Z0tISmxjM0J2Ym5ObEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNISnZjSE11YjI1VGRXTmpaWE56S0hKbGMzQnZibk5sS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NXZibE4xWW0xcGRIUmxaQ2dwTzF4dUlDQWdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtWeHVJQ0FnSUNBZ0xtTmhkR05vS0hSb2FYTXVabUZwYkZOMVltMXBkQ2s3WEc0Z0lIMHNYRzVjYmlBZ2JXRndUVzlrWld3NklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV3Y205d2N5NXRZWEJ3YVc1bklEOGdkR2hwY3k1d2NtOXdjeTV0WVhCd2FXNW5LSFJvYVhNdWJXOWtaV3dwSURvZ2RHaHBjeTV0YjJSbGJEdGNiaUFnZlN4Y2JseHVJQ0F2THlCSGIyVnpJSFJvY205MVoyZ2dZV3hzSUhKbFoybHpkR1Z5WldRZ1kyOXRjRzl1Wlc1MGN5QmhibVJjYmlBZ0x5OGdkWEJrWVhSbGN5QjBhR1VnYlc5a1pXd2dkbUZzZFdWelhHNGdJSFZ3WkdGMFpVMXZaR1ZzT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ1QySnFaV04wTG10bGVYTW9kR2hwY3k1cGJuQjFkSE1wTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0c1aGJXVXBJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQjBhR2x6TG1sdWNIVjBjMXR1WVcxbFhUdGNiaUFnSUNBZ0lIUm9hWE11Ylc5a1pXeGJibUZ0WlYwZ1BTQmpiMjF3YjI1bGJuUXVjM1JoZEdVdVgzWmhiSFZsTzF4dUlDQWdJSDB1WW1sdVpDaDBhR2x6S1NrN1hHNGdJSDBzWEc1Y2JpQWdMeThnVW1WelpYUWdaV0ZqYUNCclpYa2dhVzRnZEdobElHMXZaR1ZzSUhSdklIUm9aU0J2Y21sbmFXNWhiQ0F2SUdsdWFYUnBZV3dnZG1Gc2RXVmNiaUFnY21WelpYUk5iMlJsYkRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lFOWlhbVZqZEM1clpYbHpLSFJvYVhNdWFXNXdkWFJ6S1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNodVlXMWxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtbHVjSFYwYzF0dVlXMWxYUzV5WlhObGRGWmhiSFZsS0NrN1hHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnSUNCMGFHbHpMblpoYkdsa1lYUmxSbTl5YlNncE8xeHVJQ0I5TEZ4dVhHNGdJSE5sZEVsdWNIVjBWbUZzYVdSaGRHbHZia1Z5Y205eWN6b2dablZ1WTNScGIyNGdLR1Z5Y205eWN5a2dlMXh1SUNBZ0lDQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQjBhR2x6TG1sdWNIVjBjMXR1WVcxbFhUdGNiaUFnSUNBZ0lIWmhjaUJoY21keklEMGdXM3RjYmlBZ0lDQWdJQ0FnWDJselZtRnNhV1E2SUNFb2JtRnRaU0JwYmlCbGNuSnZjbk1wTEZ4dUlDQWdJQ0FnSUNCZmMyVnlkbVZ5UlhKeWIzSTZJR1Z5Y205eWMxdHVZVzFsWFZ4dUlDQWdJQ0FnZlYwN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdWMyVjBVM1JoZEdVdVlYQndiSGtvWTI5dGNHOXVaVzUwTENCaGNtZHpLVHRjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwT3lBZ0lGeHVJQ0I5TEZ4dVhHNGdJQzh2SUVkdklIUm9jbTkxWjJnZ1pYSnliM0p6SUdaeWIyMGdjMlZ5ZG1WeUlHRnVaQ0JuY21GaUlIUm9aU0JqYjIxd2IyNWxiblJ6WEc0Z0lDOHZJSE4wYjNKbFpDQnBiaUIwYUdVZ2FXNXdkWFJ6SUcxaGNDNGdRMmhoYm1kbElIUm9aV2x5SUhOMFlYUmxJSFJ2SUdsdWRtRnNhV1JjYmlBZ0x5OGdZVzVrSUhObGRDQjBhR1VnYzJWeWRtVnlSWEp5YjNJZ2JXVnpjMkZuWlZ4dUlDQjFjR1JoZEdWSmJuQjFkSE5YYVhSb1JYSnliM0k2SUdaMWJtTjBhVzl1SUNobGNuSnZjbk1wSUh0Y2JpQWdJQ0JQWW1wbFkzUXVhMlY1Y3lobGNuSnZjbk1wTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0c1aGJXVXNJR2x1WkdWNEtTQjdYRzRnSUNBZ0lDQjJZWElnWTI5dGNHOXVaVzUwSUQwZ2RHaHBjeTVwYm5CMWRITmJibUZ0WlYwN1hHNWNiaUFnSUNBZ0lHbG1JQ2doWTI5dGNHOXVaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbldXOTFJR0Z5WlNCMGNubHBibWNnZEc4Z2RYQmtZWFJsSUdGdUlHbHVjSFYwSUhSb1lYUWdaRzlsY3lCdWIzUWdaWGhwYzNSekxpQldaWEpwWm5rZ1pYSnliM0p6SUc5aWFtVmpkQ0IzYVhSb0lHbHVjSFYwSUc1aGJXVnpMaUFuSUNzZ1NsTlBUaTV6ZEhKcGJtZHBabmtvWlhKeWIzSnpLU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhaaGNpQmhjbWR6SUQwZ1czdGNiaUFnSUNBZ0lDQWdYMmx6Vm1Gc2FXUTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQmZjMlZ5ZG1WeVJYSnliM0k2SUdWeWNtOXljMXR1WVcxbFhWeHVJQ0FnSUNBZ2ZWMDdYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUXVjMlYwVTNSaGRHVXVZWEJ3Ykhrb1kyOXRjRzl1Wlc1MExDQmhjbWR6S1R0Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVJQ0I5TEZ4dVhHNGdJR1poYVd4VGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNobGNuSnZjbk1wSUh0Y2JpQWdJQ0IwYUdsekxuVndaR0YwWlVsdWNIVjBjMWRwZEdoRmNuSnZjaWhsY25KdmNuTXBPMXh1SUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnYVhOVGRXSnRhWFIwYVc1bk9pQm1ZV3h6WlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFJvYVhNdWNISnZjSE11YjI1RmNuSnZjaWhsY25KdmNuTXBPMXh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdKdGFYUjBaV1FvS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJVY21GMlpYSnpaU0IwYUdVZ1kyaHBiR1J5Wlc0Z1lXNWtJR05vYVd4a2NtVnVJRzltSUdOb2FXeGtjbVZ1SUhSdklHWnBibVJjYmlBZ0x5OGdZV3hzSUdsdWNIVjBjeUJpZVNCamFHVmphMmx1WnlCMGFHVWdibUZ0WlNCd2NtOXdMaUJOWVhsaVpTQmtieUJoSUdKbGRIUmxjbHh1SUNBdkx5QmphR1ZqYXlCb1pYSmxYRzRnSUhKbFoybHpkR1Z5U1c1d2RYUnpPaUJtZFc1amRHbHZiaUFvWTJocGJHUnlaVzRwSUh0Y2JpQWdJQ0JTWldGamRDNURhR2xzWkhKbGJpNW1iM0pGWVdOb0tHTm9hV3hrY21WdUxDQm1kVzVqZEdsdmJpQW9ZMmhwYkdRcElIdGNibHh1SUNBZ0lDQWdhV1lnS0dOb2FXeGtJQ1ltSUdOb2FXeGtMbkJ5YjNCeklDWW1JR05vYVd4a0xuQnliM0J6TG01aGJXVXBJSHRjYmlBZ0lDQWdJQ0FnWTJocGJHUXVjSEp2Y0hNdVgyRjBkR0ZqYUZSdlJtOXliU0E5SUhSb2FYTXVZWFIwWVdOb1ZHOUdiM0p0TzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZaR1YwWVdOb1JuSnZiVVp2Y20wZ1BTQjBhR2x6TG1SbGRHRmphRVp5YjIxR2IzSnRPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZmRtRnNhV1JoZEdVZ1BTQjBhR2x6TG5aaGJHbGtZWFJsTzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZhWE5HYjNKdFJHbHpZV0pzWldRZ1BTQjBhR2x6TG1selJtOXliVVJwYzJGaWJHVmtPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZmFYTldZV3hwWkZaaGJIVmxJRDBnZEdocGN5NXlkVzVXWVd4cFpHRjBhVzl1TzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9ZMmhwYkdRZ0ppWWdZMmhwYkdRdWNISnZjSE1nSmlZZ1kyaHBiR1F1Y0hKdmNITXVZMmhwYkdSeVpXNHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaV2RwYzNSbGNrbHVjSFYwY3loamFHbHNaQzV3Y205d2N5NWphR2xzWkhKbGJpazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQjlMRnh1WEc0Z0lHbHpSbTl5YlVScGMyRmliR1ZrT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjSEp2Y0hNdVpHbHpZV0pzWldRN1hHNGdJSDBzWEc1Y2JpQWdaMlYwUTNWeWNtVnVkRlpoYkhWbGN6b2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrdWNtVmtkV05sS0daMWJtTjBhVzl1SUNoa1lYUmhMQ0J1WVcxbEtTQjdYRzRnSUNBZ0lDQjJZWElnWTI5dGNHOXVaVzUwSUQwZ2RHaHBjeTVwYm5CMWRITmJibUZ0WlYwN1hHNGdJQ0FnSUNCa1lYUmhXMjVoYldWZElEMGdZMjl0Y0c5dVpXNTBMbk4wWVhSbExsOTJZV3gxWlR0Y2JpQWdJQ0FnSUhKbGRIVnliaUJrWVhSaE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektTd2dlMzBwTzF4dUlDQjlMRnh1WEc0Z0lITmxkRVp2Y20xUWNtbHpkR2x1WlRvZ1puVnVZM1JwYjI0Z0tHbHpVSEpwYzNScGJtVXBJSHRjYmlBZ0lDQjJZWElnYVc1d2RYUnpJRDBnZEdocGN5NXBibkIxZEhNN1hHNGdJQ0FnZG1GeUlHbHVjSFYwUzJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0dsdWNIVjBjeWs3WEc1Y2JpQWdJQ0F2THlCSmRHVnlZWFJsSUhSb2NtOTFaMmdnWldGamFDQmpiMjF3YjI1bGJuUWdZVzVrSUhObGRDQnBkQ0JoY3lCd2NtbHpkR2x1WlZ4dUlDQWdJQzh2SUc5eUlGd2laR2x5ZEhsY0lpNWNiaUFnSUNCcGJuQjFkRXRsZVhNdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQnBibkIxZEhOYmJtRnRaVjA3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNCZmFYTlFjbWx6ZEdsdVpUb2dhWE5RY21semRHbHVaVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJWYzJVZ2RHaGxJR0pwYm1SbFpDQjJZV3gxWlhNZ1lXNWtJSFJvWlNCaFkzUjFZV3dnYVc1d2RYUWdkbUZzZFdVZ2RHOWNiaUFnTHk4Z2RtRnNhV1JoZEdVZ2RHaGxJR2x1Y0hWMElHRnVaQ0J6WlhRZ2FYUnpJSE4wWVhSbExpQlVhR1Z1SUdOb1pXTnJJSFJvWlZ4dUlDQXZMeUJ6ZEdGMFpTQnZaaUIwYUdVZ1ptOXliU0JwZEhObGJHWmNiaUFnZG1Gc2FXUmhkR1U2SUdaMWJtTjBhVzl1SUNoamIyMXdiMjVsYm5RcElIdGNibHh1SUNBZ0lDOHZJRlJ5YVdkblpYSWdiMjVEYUdGdVoyVmNiaUFnSUNCcFppQW9kR2hwY3k1emRHRjBaUzVqWVc1RGFHRnVaMlVwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNURhR0Z1WjJVb2RHaHBjeTVuWlhSRGRYSnlaVzUwVm1Gc2RXVnpLQ2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNnaFkyOXRjRzl1Wlc1MExuQnliM0J6TG5KbGNYVnBjbVZrSUNZbUlDRmpiMjF3YjI1bGJuUXVYM1poYkdsa1lYUnBiMjV6S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVW5WdUlIUm9jbTkxWjJnZ2RHaGxJSFpoYkdsa1lYUnBiMjV6TENCemNHeHBkQ0IwYUdWdElIVndJR0Z1WkNCallXeHNYRzRnSUNBZ0x5OGdkR2hsSUhaaGJHbGtZWFJ2Y2lCSlJpQjBhR1Z5WlNCcGN5QmhJSFpoYkhWbElHOXlJR2wwSUdseklISmxjWFZwY21Wa1hHNGdJQ0FnZG1GeUlHbHpWbUZzYVdRZ1BTQjBhR2x6TG5KMWJsWmhiR2xrWVhScGIyNG9ZMjl0Y0c5dVpXNTBLVHRjYmx4dUlDQWdJR052YlhCdmJtVnVkQzV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0JmYVhOV1lXeHBaRG9nYVhOV1lXeHBaQ3hjYmlBZ0lDQWdJRjl6WlhKMlpYSkZjbkp2Y2pvZ2JuVnNiRnh1SUNBZ0lIMHNJSFJvYVhNdWRtRnNhV1JoZEdWR2IzSnRLVHRjYmx4dUlDQjlMRnh1WEc0Z0lDOHZJRU5vWldOcmN5QjJZV3hwWkdGMGFXOXVJRzl1SUdOMWNuSmxiblFnZG1Gc2RXVWdiM0lnWVNCd1lYTnpaV1FnZG1Gc2RXVmNiaUFnY25WdVZtRnNhV1JoZEdsdmJqb2dablZ1WTNScGIyNGdLR052YlhCdmJtVnVkQ3dnZG1Gc2RXVXBJSHRjYmx4dUlDQWdJSFpoY2lCcGMxWmhiR2xrSUQwZ2RISjFaVHRjYmlBZ0lDQmNiaUFnSUNCMllXeDFaU0E5SUdGeVozVnRaVzUwY3k1c1pXNW5kR2dnUFQwOUlESWdQeUIyWVd4MVpTQTZJR052YlhCdmJtVnVkQzV6ZEdGMFpTNWZkbUZzZFdVN1hHNGdJQ0FnYVdZZ0tHTnZiWEJ2Ym1WdWRDNWZkbUZzYVdSaGRHbHZibk11YkdWdVozUm9JQ1ltSUNoamIyMXdiMjVsYm5RdWNISnZjSE11Y21WeGRXbHlaV1FnZkh3Z2RtRnNkV1VnSVQwOUlDY25LU2tnZTF4dUlDQWdJQ0FnWTI5dGNHOXVaVzUwTGw5MllXeHBaR0YwYVc5dWN5NXpjR3hwZENndlhGd3NLRDhoVzE1N1hGeGJYU3BiZlZ4Y1hWMHBMMmNwTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0haaGJHbGtZWFJwYjI0cElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdGeVozTWdQU0IyWVd4cFpHRjBhVzl1TG5Od2JHbDBLQ2M2SnlrN1hHNGdJQ0FnSUNBZ0lIWmhjaUIyWVd4cFpHRjBaVTFsZEdodlpDQTlJR0Z5WjNNdWMyaHBablFvS1R0Y2JpQWdJQ0FnSUNBZ1lYSm5jeUE5SUdGeVozTXViV0Z3S0daMWJtTjBhVzl1SUNoaGNtY3BJSHRjYmlBZ0lDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjR0Z5YzJVb1lYSm5LVHRjYmlBZ0lDQWdJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWVhKbk95QXZMeUJKZENCcGN5QmhJSE4wY21sdVp5QnBaaUJwZENCallXNGdibTkwSUhCaGNuTmxJR2wwWEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnWVhKbmN5QTlJRnQyWVd4MVpWMHVZMjl1WTJGMEtHRnlaM01wTzF4dUlDQWdJQ0FnSUNCcFppQW9JWFpoYkdsa1lYUnBiMjVTZFd4bGMxdDJZV3hwWkdGMFpVMWxkR2h2WkYwcElIdGNiaUFnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMFp2Y20xemVTQmtiMlZ6SUc1dmRDQm9ZWFpsSUhSb1pTQjJZV3hwWkdGMGFXOXVJSEoxYkdVNklDY2dLeUIyWVd4cFpHRjBaVTFsZEdodlpDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjJZV3hwWkdGMGFXOXVVblZzWlhOYmRtRnNhV1JoZEdWTlpYUm9iMlJkTG1Gd2NHeDVLSFJvYVhNdVoyVjBRM1Z5Y21WdWRGWmhiSFZsY3lncExDQmhjbWR6S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6Vm1Gc2FXUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHbHpWbUZzYVdRN1hHNGdJSDBzWEc1Y2JpQWdMeThnVm1Gc2FXUmhkR1VnZEdobElHWnZjbTBnWW5rZ1oyOXBibWNnZEdoeWIzVm5hQ0JoYkd3Z1kyaHBiR1FnYVc1d2RYUWdZMjl0Y0c5dVpXNTBjMXh1SUNBdkx5QmhibVFnWTJobFkyc2dkR2hsYVhJZ2MzUmhkR1ZjYmlBZ2RtRnNhV1JoZEdWR2IzSnRPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnZG1GeUlHRnNiRWx6Vm1Gc2FXUWdQU0IwY25WbE8xeHVJQ0FnSUhaaGNpQnBibkIxZEhNZ1BTQjBhR2x6TG1sdWNIVjBjenRjYmlBZ0lDQjJZWElnYVc1d2RYUkxaWGx6SUQwZ1QySnFaV04wTG10bGVYTW9hVzV3ZFhSektUdGNibHh1SUNBZ0lDOHZJRmRsSUc1bFpXUWdZU0JqWVd4c1ltRmpheUJoY3lCM1pTQmhjbVVnZG1Gc2FXUmhkR2x1WnlCaGJHd2dhVzV3ZFhSeklHRm5ZV2x1TGlCVWFHbHpJSGRwYkd4Y2JpQWdJQ0F2THlCeWRXNGdkMmhsYmlCMGFHVWdiR0Z6ZENCamIyMXdiMjVsYm5RZ2FHRnpJSE5sZENCcGRITWdjM1JoZEdWY2JpQWdJQ0IyWVhJZ2IyNVdZV3hwWkdGMGFXOXVRMjl0Y0d4bGRHVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNCcGJuQjFkRXRsZVhNdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV2x1Y0hWMGMxdHVZVzFsWFM1emRHRjBaUzVmYVhOV1lXeHBaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHRnNiRWx6Vm1Gc2FXUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JseHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUdselZtRnNhV1E2SUdGc2JFbHpWbUZzYVdSY2JpQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQnBaaUFvWVd4c1NYTldZV3hwWkNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CeWIzQnpMbTl1Vm1Gc2FXUW9LVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNISnZjSE11YjI1SmJuWmhiR2xrS0NrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDOHZJRlJsYkd3Z2RHaGxJR1p2Y20wZ2RHaGhkQ0JwZENCallXNGdjM1JoY25RZ2RHOGdkSEpwWjJkbGNpQmphR0Z1WjJVZ1pYWmxiblJ6WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdZMkZ1UTJoaGJtZGxPaUIwY25WbFhHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lIMHVZbWx1WkNoMGFHbHpLVHRjYmx4dUlDQWdJQzh2SUZKMWJpQjJZV3hwWkdGMGFXOXVJR0ZuWVdsdUlHbHVJR05oYzJVZ1lXWm1aV04wWldRZ1lua2diM1JvWlhJZ2FXNXdkWFJ6TGlCVWFHVmNiaUFnSUNBdkx5QnNZWE4wSUdOdmJYQnZibVZ1ZENCMllXeHBaR0YwWldRZ2QybHNiQ0J5ZFc0Z2RHaGxJRzl1Vm1Gc2FXUmhkR2x2YmtOdmJYQnNaWFJsSUdOaGJHeGlZV05yWEc0Z0lDQWdhVzV3ZFhSTFpYbHpMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNGdLRzVoYldVc0lHbHVaR1Y0S1NCN1hHNGdJQ0FnSUNCMllYSWdZMjl0Y0c5dVpXNTBJRDBnYVc1d2RYUnpXMjVoYldWZE8xeHVJQ0FnSUNBZ2RtRnlJR2x6Vm1Gc2FXUWdQU0IwYUdsekxuSjFibFpoYkdsa1lYUnBiMjRvWTI5dGNHOXVaVzUwS1R0Y2JpQWdJQ0FnSUdOdmJYQnZibVZ1ZEM1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lGOXBjMVpoYkdsa09pQnBjMVpoYkdsa0xGeHVJQ0FnSUNBZ0lDQmZjMlZ5ZG1WeVJYSnliM0k2SUc1MWJHeGNiaUFnSUNBZ0lIMHNJR2x1WkdWNElEMDlQU0JwYm5CMWRFdGxlWE11YkdWdVozUm9JQzBnTVNBL0lHOXVWbUZzYVdSaGRHbHZia052YlhCc1pYUmxJRG9nYm5Wc2JDazdYRzRnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVHRjYmx4dUlDQWdJQzh2SUVsbUlIUm9aWEpsSUdGeVpTQnVieUJwYm5CMWRITXNJSE5sZENCemRHRjBaU0IzYUdWeVpTQm1iM0p0SUdseklISmxZV1I1SUhSdklIUnlhV2RuWlhKY2JpQWdJQ0F2THlCamFHRnVaMlVnWlhabGJuUXVJRTVsZHlCcGJuQjFkSE1nYldsbmFIUWdZbVVnWVdSa1pXUWdiR0YwWlhKY2JpQWdJQ0JwWmlBb0lXbHVjSFYwUzJWNWN5NXNaVzVuZEdnZ0ppWWdkR2hwY3k1cGMwMXZkVzUwWldRb0tTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lHTmhia05vWVc1blpUb2dkSEoxWlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlMRnh1WEc0Z0lDOHZJRTFsZEdodlpDQndkWFFnYjI0Z1pXRmphQ0JwYm5CMWRDQmpiMjF3YjI1bGJuUWdkRzhnY21WbmFYTjBaWEpjYmlBZ0x5OGdhWFJ6Wld4bUlIUnZJSFJvWlNCbWIzSnRYRzRnSUdGMGRHRmphRlJ2Um05eWJUb2dablZ1WTNScGIyNGdLR052YlhCdmJtVnVkQ2tnZTF4dUlDQWdJSFJvYVhNdWFXNXdkWFJ6VzJOdmJYQnZibVZ1ZEM1d2NtOXdjeTV1WVcxbFhTQTlJR052YlhCdmJtVnVkRHRjYmlBZ0lDQjBhR2x6TG0xdlpHVnNXMk52YlhCdmJtVnVkQzV3Y205d2N5NXVZVzFsWFNBOUlHTnZiWEJ2Ym1WdWRDNXpkR0YwWlM1ZmRtRnNkV1U3WEc0Z0lDQWdkR2hwY3k1MllXeHBaR0YwWlNoamIyMXdiMjVsYm5RcE8xeHVJQ0I5TEZ4dVhHNGdJQzh2SUUxbGRHaHZaQ0J3ZFhRZ2IyNGdaV0ZqYUNCcGJuQjFkQ0JqYjIxd2IyNWxiblFnZEc4Z2RXNXlaV2RwYzNSbGNseHVJQ0F2THlCcGRITmxiR1lnWm5KdmJTQjBhR1VnWm05eWJWeHVJQ0JrWlhSaFkyaEdjbTl0Um05eWJUb2dablZ1WTNScGIyNGdLR052YlhCdmJtVnVkQ2tnZTF4dUlDQWdJR1JsYkdWMFpTQjBhR2x6TG1sdWNIVjBjMXRqYjIxd2IyNWxiblF1Y0hKdmNITXVibUZ0WlYwN1hHNGdJQ0FnWkdWc1pYUmxJSFJvYVhNdWJXOWtaV3hiWTI5dGNHOXVaVzUwTG5CeWIzQnpMbTVoYldWZE8xeHVJQ0I5TEZ4dUlDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJSEpsZEhWeWJpQlNaV0ZqZEM1RVQwMHVabTl5YlNoN1hHNGdJQ0FnSUNBZ0lHOXVVM1ZpYldsME9pQjBhR2x6TG5OMVltMXBkQ3hjYmlBZ0lDQWdJQ0FnWTJ4aGMzTk9ZVzFsT2lCMGFHbHpMbkJ5YjNCekxtTnNZWE56VG1GdFpWeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIUm9hWE11Y0hKdmNITXVZMmhwYkdSeVpXNWNiaUFnSUNBcE8xeHVYRzRnSUgxY2JuMHBPMXh1WEc1cFppQW9JV2RzYjJKaGJDNWxlSEJ2Y25SeklDWW1JQ0ZuYkc5aVlXd3ViVzlrZFd4bElDWW1JQ2doWjJ4dlltRnNMbVJsWm1sdVpTQjhmQ0FoWjJ4dlltRnNMbVJsWm1sdVpTNWhiV1FwS1NCN1hHNGdJR2RzYjJKaGJDNUdiM0p0YzNrZ1BTQkdiM0p0YzNrN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnUm05eWJYTjVPMXh1SWwxOSIsIm1vZHVsZS5leHBvcnRzID0ge1xuICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdmFsdWUgPSAndmFsdWUnIGluIHRoaXMucHJvcHMgPyB0aGlzLnByb3BzLnZhbHVlIDogJyc7XG4gICAgcmV0dXJuIHtcbiAgICAgIF92YWx1ZTogdmFsdWUsXG4gICAgICBfaXNWYWxpZDogdHJ1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiB0cnVlLFxuICAgICAgX3ByaXN0aW5lVmFsdWU6IHZhbHVlXG4gICAgfTtcbiAgfSxcbiAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgY29uZmlndXJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5zZXRWYWxpZGF0aW9ucyh0aGlzLnByb3BzLnZhbGlkYXRpb25zLCB0aGlzLnByb3BzLnJlcXVpcmVkKTtcbiAgICAgIHRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybSh0aGlzKTtcbiAgICB9LmJpbmQodGhpcyk7XG5cbiAgICBpZiAoIXRoaXMucHJvcHMubmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb3JtIElucHV0IHJlcXVpcmVzIGEgbmFtZSBwcm9wZXJ0eSB3aGVuIHVzZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybSkge1xuICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb3VudGVkKCkpIHJldHVybjtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm0gTWl4aW4gcmVxdWlyZXMgY29tcG9uZW50IHRvIGJlIG5lc3RlZCBpbiBhIEZvcm0nKTtcbiAgICAgICAgfVxuICAgICAgICBjb25maWd1cmUoKTtcbiAgICAgIH0uYmluZCh0aGlzKSwgMCk7XG4gICAgfVxuICAgIGNvbmZpZ3VyZSgpO1xuXG4gIH0sXG5cbiAgLy8gV2UgaGF2ZSB0byBtYWtlIHRoZSB2YWxpZGF0ZSBtZXRob2QgaXMga2VwdCB3aGVuIG5ldyBwcm9wcyBhcmUgYWRkZWRcbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczogZnVuY3Rpb24gKG5leHRQcm9wcykge1xuICAgIG5leHRQcm9wcy5fYXR0YWNoVG9Gb3JtID0gdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtO1xuICAgIG5leHRQcm9wcy5fZGV0YWNoRnJvbUZvcm0gPSB0aGlzLnByb3BzLl9kZXRhY2hGcm9tRm9ybTtcbiAgICBuZXh0UHJvcHMuX3ZhbGlkYXRlID0gdGhpcy5wcm9wcy5fdmFsaWRhdGU7XG4gICAgdGhpcy5zZXRWYWxpZGF0aW9ucyhuZXh0UHJvcHMudmFsaWRhdGlvbnMsIG5leHRQcm9wcy5yZXF1aXJlZCk7XG4gIH0sXG5cbiAgY29tcG9uZW50RGlkVXBkYXRlOiBmdW5jdGlvbiAocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcblxuICAgIHZhciBpc1ZhbHVlQ2hhbmdlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIFxuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5wcm9wcy52YWx1ZSAhPT0gcHJldlByb3BzLnZhbHVlICYmIChcbiAgICAgICAgICB0aGlzLnN0YXRlLl92YWx1ZSA9PT0gcHJldlByb3BzLnZhbHVlIHx8XG5cbiAgICAgICAgICAvLyBTaW5jZSB1bmRlZmluZWQgaXMgY29udmVydGVkIHRvIGVtcHR5IHN0cmluZyB3ZSBoYXZlIHRvXG4gICAgICAgICAgLy8gY2hlY2sgdGhhdCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICAodGhpcy5zdGF0ZS5fdmFsdWUgPT09ICcnICYmIHByZXZQcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgfS5iaW5kKHRoaXMpO1xuXG5cbiAgICAvLyBJZiB2YWxpZGF0aW9ucyBoYXMgY2hhbmdlZCBvciBzb21ldGhpbmcgb3V0c2lkZSBjaGFuZ2VzIFxuICAgIC8vIHRoZSB2YWx1ZSwgc2V0IHRoZSB2YWx1ZSBhZ2FpbiBydW5uaW5nIGEgdmFsaWRhdGlvblxuXG4gICAgaWYgKHByZXZQcm9wcy52YWxpZGF0aW9ucyAhPT0gdGhpcy5wcm9wcy52YWxpZGF0aW9ucyB8fCBpc1ZhbHVlQ2hhbmdlZCgpKSB7XG4gICAgICB2YXIgdmFsdWUgPSAndmFsdWUnIGluIHRoaXMucHJvcHMgPyB0aGlzLnByb3BzLnZhbHVlIDogJyc7XG4gICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gRGV0YWNoIGl0IHdoZW4gY29tcG9uZW50IHVubW91bnRzXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5wcm9wcy5fZGV0YWNoRnJvbUZvcm0odGhpcyk7XG4gIH0sXG5cbiAgc2V0VmFsaWRhdGlvbnM6IGZ1bmN0aW9uICh2YWxpZGF0aW9ucywgcmVxdWlyZWQpIHtcblxuICAgIC8vIEFkZCB2YWxpZGF0aW9ucyB0byB0aGUgc3RvcmUgaXRzZWxmIGFzIHRoZSBwcm9wcyBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZFxuICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnMgfHwgJyc7XG5cbiAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnMgPyB2YWxpZGF0aW9ucyArICcsJyA6ICcnO1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbnMgKz0gJ2lzVmFsdWUnO1xuICAgIH1cblxuICB9LFxuXG4gIC8vIFdlIHZhbGlkYXRlIGFmdGVyIHRoZSB2YWx1ZSBoYXMgYmVlbiBzZXRcbiAgc2V0VmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgX3ZhbHVlOiB2YWx1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiBmYWxzZVxuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMucHJvcHMuX3ZhbGlkYXRlKHRoaXMpO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG4gIHJlc2V0VmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIF92YWx1ZTogdGhpcy5zdGF0ZS5fcHJpc3RpbmVWYWx1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiB0cnVlXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5wcm9wcy5fdmFsaWRhdGUodGhpcyk7XG4gICAgfSk7XG4gIH0sXG4gIGdldFZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX3ZhbHVlO1xuICB9LFxuICBoYXNWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLl92YWx1ZSAhPT0gJyc7XG4gIH0sXG4gIGdldEVycm9yTWVzc2FnZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSB8fCB0aGlzLnNob3dSZXF1aXJlZCgpID8gbnVsbCA6IHRoaXMuc3RhdGUuX3NlcnZlckVycm9yIHx8IHRoaXMucHJvcHMudmFsaWRhdGlvbkVycm9yO1xuICB9LFxuICBpc0Zvcm1EaXNhYmxlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLl9pc0Zvcm1EaXNhYmxlZCgpO1xuICB9LFxuICBpc1ZhbGlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX2lzVmFsaWQ7XG4gIH0sXG4gIGlzUHJpc3RpbmU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5faXNQcmlzdGluZTtcbiAgfSxcbiAgaXNSZXF1aXJlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhIXRoaXMucHJvcHMucmVxdWlyZWQ7XG4gIH0sXG4gIHNob3dSZXF1aXJlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQoKSAmJiB0aGlzLnN0YXRlLl92YWx1ZSA9PT0gJyc7XG4gIH0sXG4gIHNob3dFcnJvcjogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhdGhpcy5zaG93UmVxdWlyZWQoKSAmJiAhdGhpcy5zdGF0ZS5faXNWYWxpZDtcbiAgfSxcbiAgaXNWYWxpZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5faXNWYWxpZFZhbHVlLmNhbGwobnVsbCwgdGhpcywgdmFsdWUpO1xuICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZUV2w0YVc0dWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk5VmMyVnljeTlqYUhKcGMzUnBZVzVoYkdadmJta3ZSRzlqZFcxbGJuUnpMMlJsZGk5bWIzSnRjM2t0Y21WaFkzUXZjM0pqTDAxcGVHbHVMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVkQlFVYzdSVUZEWml4bFFVRmxMRVZCUVVVc1dVRkJXVHRKUVVNelFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRE1VUXNUMEZCVHp0TlFVTk1MRTFCUVUwc1JVRkJSU3hMUVVGTE8wMUJRMklzVVVGQlVTeEZRVUZGTEVsQlFVazdUVUZEWkN4WFFVRlhMRVZCUVVVc1NVRkJTVHROUVVOcVFpeGpRVUZqTEVWQlFVVXNTMEZCU3p0TFFVTjBRaXhEUVVGRE8wZEJRMGc3UVVGRFNDeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxGbEJRVms3TzBsQlJUbENMRWxCUVVrc1UwRkJVeXhIUVVGSExGbEJRVms3VFVGRE1VSXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzAxQlEycEZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNKRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN08wbEJSV0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRk8wMUJRM0JDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc0swTkJRU3RETEVOQlFVTXNRMEZCUXp0QlFVTjJSU3hMUVVGTE96dEpRVVZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUlVGQlJUdE5RVU0zUWl4UFFVRlBMRlZCUVZVc1EwRkJReXhaUVVGWk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzVDBGQlR6dFJRVU01UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVWQlFVVTdWVUZETjBJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHpSRUZCYzBRc1EwRkJReXhEUVVGRE8xTkJRM3BGTzFGQlEwUXNVMEZCVXl4RlFVRkZMRU5CUVVNN1QwRkRZaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOc1FqdEJRVU5NTEVsQlFVa3NVMEZCVXl4RlFVRkZMRU5CUVVNN08wRkJSV2hDTEVkQlFVYzdRVUZEU0RzN1JVRkZSU3g1UWtGQmVVSXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSVHRKUVVNNVF5eFRRVUZUTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETzBsQlEyNUVMRk5CUVZNc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNN1NVRkRka1FzVTBGQlV5eERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU16UXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRMjVGTEVkQlFVYzdPMEZCUlVnc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVU3TzBGQlJYUkVMRWxCUVVrc1NVRkJTU3hqUVVGakxFZEJRVWNzV1VGQldUczdUVUZGTDBJN1VVRkRSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NTMEZCU3l4VFFVRlRMRU5CUVVNc1MwRkJTenRCUVVNMVF5eFZRVUZWTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hMUVVGTExGTkJRVk1zUTBGQlF5eExRVUZMTzBGQlF5OURPMEZCUTBFN08xZEJSVmNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRXRCUVVzc1JVRkJSU3hKUVVGSkxGTkJRVk1zUTBGQlF5eExRVUZMTEV0QlFVc3NVMEZCVXl4RFFVRkRPMU5CUXpWRU8wRkJRMVFzVVVGQlVUczdRVUZGVWl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEycENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEpRVVZKTEVsQlFVa3NVMEZCVXl4RFFVRkRMRmRCUVZjc1MwRkJTeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NTVUZCU1N4alFVRmpMRVZCUVVVc1JVRkJSVHROUVVONFJTeEpRVUZKTEV0QlFVc3NSMEZCUnl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03VFVGRE1VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dExRVU4wUWp0QlFVTk1MRWRCUVVjN1FVRkRTRHM3UlVGRlJTeHZRa0ZCYjBJc1JVRkJSU3haUVVGWk8wbEJRMmhETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzSkRMRWRCUVVjN08wRkJSVWdzUlVGQlJTeGpRVUZqTEVWQlFVVXNWVUZCVlN4WFFVRlhMRVZCUVVVc1VVRkJVU3hGUVVGRk8wRkJRMjVFT3p0QlFVVkJMRWxCUVVrc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eFhRVUZYTEVsQlFVa3NSVUZCUlN4RFFVRkRPenRKUVVWMFF5eEpRVUZKTEZGQlFWRXNSVUZCUlR0TlFVTmFMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzVjBGQlZ5eEhRVUZITEZkQlFWY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRE8wMUJRM3BFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWxCUVVrc1UwRkJVeXhEUVVGRE8wRkJRM0pETEV0QlFVczdPMEZCUlV3c1IwRkJSenRCUVVOSU96dEZRVVZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRKUVVONlFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMDFCUTFvc1RVRkJUU3hGUVVGRkxFdEJRVXM3VFVGRFlpeFhRVUZYTEVWQlFVVXNTMEZCU3p0TFFVTnVRaXhGUVVGRkxGbEJRVms3VFVGRFlpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU0xUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBkQlEyWTdSVUZEUkN4VlFVRlZMRVZCUVVVc1dVRkJXVHRKUVVOMFFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMDFCUTFvc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZMEZCWXp0TlFVTnFReXhYUVVGWExFVkJRVVVzU1VGQlNUdExRVU5zUWl4RlFVRkZMRmxCUVZrN1RVRkRZaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVNMVFpeERRVUZETEVOQlFVTTdSMEZEU2p0RlFVTkVMRkZCUVZFc1JVRkJSU3haUVVGWk8wbEJRM0JDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03UjBGRE1VSTdSVUZEUkN4UlFVRlJMRVZCUVVVc1dVRkJXVHRKUVVOd1FpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hMUVVGTExFVkJRVVVzUTBGQlF6dEhRVU5xUXp0RlFVTkVMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVOHNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFpRVUZaTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU03UjBGRE4wYzdSVUZEUkN4alFVRmpMRVZCUVVVc1dVRkJXVHRKUVVNeFFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03UjBGRGNrTTdSVUZEUkN4UFFVRlBMRVZCUVVVc1dVRkJXVHRKUVVOdVFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRE8wZEJRelZDTzBWQlEwUXNWVUZCVlN4RlFVRkZMRmxCUVZrN1NVRkRkRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJRenRIUVVNdlFqdEZRVU5FTEZWQlFWVXNSVUZCUlN4WlFVRlpPMGxCUTNSQ0xFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRE8wZEJRemxDTzBWQlEwUXNXVUZCV1N4RlFVRkZMRmxCUVZrN1NVRkRlRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NSVUZCUlN4RFFVRkRPMGRCUTNSRU8wVkJRMFFzVTBGQlV5eEZRVUZGTEZsQlFWazdTVUZEY2tJc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETzBkQlEzSkVPMFZCUTBRc1dVRkJXU3hGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzBsQlF6ZENMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdSMEZEZWtRN1EwRkRSaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2liVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQjdYRzRnSUdkbGRFbHVhWFJwWVd4VGRHRjBaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhaaGNpQjJZV3gxWlNBOUlDZDJZV3gxWlNjZ2FXNGdkR2hwY3k1d2NtOXdjeUEvSUhSb2FYTXVjSEp2Y0hNdWRtRnNkV1VnT2lBbkp6dGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnWDNaaGJIVmxPaUIyWVd4MVpTeGNiaUFnSUNBZ0lGOXBjMVpoYkdsa09pQjBjblZsTEZ4dUlDQWdJQ0FnWDJselVISnBjM1JwYm1VNklIUnlkV1VzWEc0Z0lDQWdJQ0JmY0hKcGMzUnBibVZXWVd4MVpUb2dkbUZzZFdWY2JpQWdJQ0I5TzF4dUlDQjlMRnh1SUNCamIyMXdiMjVsYm5SWGFXeHNUVzkxYm5RNklHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJSFpoY2lCamIyNW1hV2QxY21VZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRlpoYkdsa1lYUnBiMjV6S0hSb2FYTXVjSEp2Y0hNdWRtRnNhV1JoZEdsdmJuTXNJSFJvYVhNdWNISnZjSE11Y21WeGRXbHlaV1FwTzF4dUlDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1ZllYUjBZV05vVkc5R2IzSnRLSFJvYVhNcE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektUdGNibHh1SUNBZ0lHbG1JQ2doZEdocGN5NXdjbTl3Y3k1dVlXMWxLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMFp2Y20wZ1NXNXdkWFFnY21WeGRXbHlaWE1nWVNCdVlXMWxJSEJ5YjNCbGNuUjVJSGRvWlc0Z2RYTmxaQ2NwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNnaGRHaHBjeTV3Y205d2N5NWZZWFIwWVdOb1ZHOUdiM0p0S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYzJWMFZHbHRaVzkxZENobWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaGRHaHBjeTVwYzAxdmRXNTBaV1FvS1NrZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNCcFppQW9JWFJvYVhNdWNISnZjSE11WDJGMGRHRmphRlJ2Um05eWJTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduUm05eWJTQk5hWGhwYmlCeVpYRjFhWEpsY3lCamIyMXdiMjVsYm5RZ2RHOGdZbVVnYm1WemRHVmtJR2x1SUdFZ1JtOXliU2NwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibVpwWjNWeVpTZ3BPMXh1SUNBZ0lDQWdmUzVpYVc1a0tIUm9hWE1wTENBd0tUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dVptbG5kWEpsS0NrN1hHNWNiaUFnZlN4Y2JseHVJQ0F2THlCWFpTQm9ZWFpsSUhSdklHMWhhMlVnZEdobElIWmhiR2xrWVhSbElHMWxkR2h2WkNCcGN5QnJaWEIwSUhkb1pXNGdibVYzSUhCeWIzQnpJR0Z5WlNCaFpHUmxaRnh1SUNCamIyMXdiMjVsYm5SWGFXeHNVbVZqWldsMlpWQnliM0J6T2lCbWRXNWpkR2x2YmlBb2JtVjRkRkJ5YjNCektTQjdYRzRnSUNBZ2JtVjRkRkJ5YjNCekxsOWhkSFJoWTJoVWIwWnZjbTBnUFNCMGFHbHpMbkJ5YjNCekxsOWhkSFJoWTJoVWIwWnZjbTA3WEc0Z0lDQWdibVY0ZEZCeWIzQnpMbDlrWlhSaFkyaEdjbTl0Um05eWJTQTlJSFJvYVhNdWNISnZjSE11WDJSbGRHRmphRVp5YjIxR2IzSnRPMXh1SUNBZ0lHNWxlSFJRY205d2N5NWZkbUZzYVdSaGRHVWdQU0IwYUdsekxuQnliM0J6TGw5MllXeHBaR0YwWlR0Y2JpQWdJQ0IwYUdsekxuTmxkRlpoYkdsa1lYUnBiMjV6S0c1bGVIUlFjbTl3Y3k1MllXeHBaR0YwYVc5dWN5d2dibVY0ZEZCeWIzQnpMbkpsY1hWcGNtVmtLVHRjYmlBZ2ZTeGNibHh1SUNCamIyMXdiMjVsYm5SRWFXUlZjR1JoZEdVNklHWjFibU4wYVc5dUlDaHdjbVYyVUhKdmNITXNJSEJ5WlhaVGRHRjBaU2tnZTF4dVhHNGdJQ0FnZG1GeUlHbHpWbUZzZFdWRGFHRnVaMlZrSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdYRzRnSUNBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CeWIzQnpMblpoYkhWbElDRTlQU0J3Y21WMlVISnZjSE11ZG1Gc2RXVWdKaVlnS0Z4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXVYM1poYkhWbElEMDlQU0J3Y21WMlVISnZjSE11ZG1Gc2RXVWdmSHhjYmx4dUlDQWdJQ0FnSUNBZ0lDOHZJRk5wYm1ObElIVnVaR1ZtYVc1bFpDQnBjeUJqYjI1MlpYSjBaV1FnZEc4Z1pXMXdkSGtnYzNSeWFXNW5JSGRsSUdoaGRtVWdkRzljYmlBZ0lDQWdJQ0FnSUNBdkx5QmphR1ZqYXlCMGFHRjBJSE53WldOcFptbGpZV3hzZVZ4dUlDQWdJQ0FnSUNBZ0lDaDBhR2x6TG5OMFlYUmxMbDkyWVd4MVpTQTlQVDBnSnljZ0ppWWdjSEpsZGxCeWIzQnpMblpoYkhWbElEMDlQU0IxYm1SbFptbHVaV1FwWEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNrN1hHNWNiaUFnSUNCOUxtSnBibVFvZEdocGN5azdYRzVjYmx4dUlDQWdJQzh2SUVsbUlIWmhiR2xrWVhScGIyNXpJR2hoY3lCamFHRnVaMlZrSUc5eUlITnZiV1YwYUdsdVp5QnZkWFJ6YVdSbElHTm9ZVzVuWlhNZ1hHNGdJQ0FnTHk4Z2RHaGxJSFpoYkhWbExDQnpaWFFnZEdobElIWmhiSFZsSUdGbllXbHVJSEoxYm01cGJtY2dZU0IyWVd4cFpHRjBhVzl1WEc1Y2JpQWdJQ0JwWmlBb2NISmxkbEJ5YjNCekxuWmhiR2xrWVhScGIyNXpJQ0U5UFNCMGFHbHpMbkJ5YjNCekxuWmhiR2xrWVhScGIyNXpJSHg4SUdselZtRnNkV1ZEYUdGdVoyVmtLQ2twSUh0Y2JpQWdJQ0FnSUhaaGNpQjJZV3gxWlNBOUlDZDJZV3gxWlNjZ2FXNGdkR2hwY3k1d2NtOXdjeUEvSUhSb2FYTXVjSEp2Y0hNdWRtRnNkV1VnT2lBbkp6dGNiaUFnSUNBZ0lIUm9hWE11YzJWMFZtRnNkV1VvZG1Gc2RXVXBPMXh1SUNBZ0lIMWNiaUFnZlN4Y2JseHVJQ0F2THlCRVpYUmhZMmdnYVhRZ2QyaGxiaUJqYjIxd2IyNWxiblFnZFc1dGIzVnVkSE5jYmlBZ1kyOXRjRzl1Wlc1MFYybHNiRlZ1Ylc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0IwYUdsekxuQnliM0J6TGw5a1pYUmhZMmhHY205dFJtOXliU2gwYUdsektUdGNiaUFnZlN4Y2JseHVJQ0J6WlhSV1lXeHBaR0YwYVc5dWN6b2dablZ1WTNScGIyNGdLSFpoYkdsa1lYUnBiMjV6TENCeVpYRjFhWEpsWkNrZ2UxeHVYRzRnSUNBZ0x5OGdRV1JrSUhaaGJHbGtZWFJwYjI1eklIUnZJSFJvWlNCemRHOXlaU0JwZEhObGJHWWdZWE1nZEdobElIQnliM0J6SUc5aWFtVmpkQ0JqWVc0Z2JtOTBJR0psSUcxdlpHbG1hV1ZrWEc0Z0lDQWdkR2hwY3k1ZmRtRnNhV1JoZEdsdmJuTWdQU0IyWVd4cFpHRjBhVzl1Y3lCOGZDQW5KenRjYmx4dUlDQWdJR2xtSUNoeVpYRjFhWEpsWkNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmZG1Gc2FXUmhkR2x2Ym5NZ1BTQjJZV3hwWkdGMGFXOXVjeUEvSUhaaGJHbGtZWFJwYjI1eklDc2dKeXduSURvZ0p5YzdYRzRnSUNBZ0lDQjBhR2x6TGw5MllXeHBaR0YwYVc5dWN5QXJQU0FuYVhOV1lXeDFaU2M3WEc0Z0lDQWdmVnh1WEc0Z0lIMHNYRzVjYmlBZ0x5OGdWMlVnZG1Gc2FXUmhkR1VnWVdaMFpYSWdkR2hsSUhaaGJIVmxJR2hoY3lCaVpXVnVJSE5sZEZ4dUlDQnpaWFJXWVd4MVpUb2dablZ1WTNScGIyNGdLSFpoYkhWbEtTQjdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0JmZG1Gc2RXVTZJSFpoYkhWbExGeHVJQ0FnSUNBZ1gybHpVSEpwYzNScGJtVTZJR1poYkhObFhHNGdJQ0FnZlN3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTVmZG1Gc2FXUmhkR1VvZEdocGN5azdYRzRnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVHRjYmlBZ2ZTeGNiaUFnY21WelpYUldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnWDNaaGJIVmxPaUIwYUdsekxuTjBZWFJsTGw5d2NtbHpkR2x1WlZaaGJIVmxMRnh1SUNBZ0lDQWdYMmx6VUhKcGMzUnBibVU2SUhSeWRXVmNiaUFnSUNCOUxDQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0IwYUdsekxuQnliM0J6TGw5MllXeHBaR0YwWlNoMGFHbHpLVHRjYmlBZ0lDQjlLVHRjYmlBZ2ZTeGNiaUFnWjJWMFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpkR0YwWlM1ZmRtRnNkV1U3WEc0Z0lIMHNYRzRnSUdoaGMxWmhiSFZsT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdVdVgzWmhiSFZsSUNFOVBTQW5KenRjYmlBZ2ZTeGNiaUFnWjJWMFJYSnliM0pOWlhOellXZGxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNncElIeDhJSFJvYVhNdWMyaHZkMUpsY1hWcGNtVmtLQ2tnUHlCdWRXeHNJRG9nZEdocGN5NXpkR0YwWlM1ZmMyVnlkbVZ5UlhKeWIzSWdmSHdnZEdocGN5NXdjbTl3Y3k1MllXeHBaR0YwYVc5dVJYSnliM0k3WEc0Z0lIMHNYRzRnSUdselJtOXliVVJwYzJGaWJHVmtPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNISnZjSE11WDJselJtOXliVVJwYzJGaWJHVmtLQ2s3WEc0Z0lIMHNYRzRnSUdselZtRnNhV1E2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpkR0YwWlM1ZmFYTldZV3hwWkR0Y2JpQWdmU3hjYmlBZ2FYTlFjbWx6ZEdsdVpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5OMFlYUmxMbDlwYzFCeWFYTjBhVzVsTzF4dUlDQjlMRnh1SUNCcGMxSmxjWFZwY21Wa09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlDRWhkR2hwY3k1d2NtOXdjeTV5WlhGMWFYSmxaRHRjYmlBZ2ZTeGNiaUFnYzJodmQxSmxjWFZwY21Wa09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOU1pYRjFhWEpsWkNncElDWW1JSFJvYVhNdWMzUmhkR1V1WDNaaGJIVmxJRDA5UFNBbkp6dGNiaUFnZlN4Y2JpQWdjMmh2ZDBWeWNtOXlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJQ0YwYUdsekxuTm9iM2RTWlhGMWFYSmxaQ2dwSUNZbUlDRjBhR2x6TG5OMFlYUmxMbDlwYzFaaGJHbGtPMXh1SUNCOUxGeHVJQ0JwYzFaaGJHbGtWbUZzZFdVNklHWjFibU4wYVc5dUlDaDJZV3gxWlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuQnliM0J6TGw5cGMxWmhiR2xrVm1Gc2RXVXVZMkZzYkNodWRXeHNMQ0IwYUdsekxDQjJZV3gxWlNrN1hHNGdJSDFjYm4wN1hHNGlYWDA9IiwidmFyIGNzcmZUb2tlblNlbGVjdG9yID0gdHlwZW9mIGRvY3VtZW50ICE9ICd1bmRlZmluZWQnID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiY3NyZi10b2tlblwiXScpIDogbnVsbDtcblxudmFyIHRvVVJMRW5jb2RlZCA9IGZ1bmN0aW9uIChlbGVtZW50LCBrZXksIGxpc3QpIHtcbiAgdmFyIGxpc3QgPSBsaXN0IHx8IFtdO1xuICBpZiAodHlwZW9mIChlbGVtZW50KSA9PSAnb2JqZWN0Jykge1xuICAgIGZvciAodmFyIGlkeCBpbiBlbGVtZW50KVxuICAgICAgdG9VUkxFbmNvZGVkKGVsZW1lbnRbaWR4XSwga2V5ID8ga2V5ICsgJ1snICsgaWR4ICsgJ10nIDogaWR4LCBsaXN0KTtcbiAgfSBlbHNlIHtcbiAgICBsaXN0LnB1c2goa2V5ICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGVsZW1lbnQpKTtcbiAgfVxuICByZXR1cm4gbGlzdC5qb2luKCcmJyk7XG59O1xuXG52YXIgcmVxdWVzdCA9IGZ1bmN0aW9uIChtZXRob2QsIHVybCwgZGF0YSwgY29udGVudFR5cGUsIGhlYWRlcnMpIHtcblxuICB2YXIgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSA9PT0gJ3VybGVuY29kZWQnID8gJ2FwcGxpY2F0aW9uLycgKyBjb250ZW50VHlwZS5yZXBsYWNlKCd1cmxlbmNvZGVkJywgJ3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpIDogJ2FwcGxpY2F0aW9uL2pzb24nO1xuICBkYXRhID0gY29udGVudFR5cGUgPT09ICdhcHBsaWNhdGlvbi9qc29uJyA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogdG9VUkxFbmNvZGVkKGRhdGEpO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgIHhoci5vcGVuKG1ldGhvZCwgdXJsLCB0cnVlKTtcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsIGNvbnRlbnRUeXBlKTtcblxuICAgICAgaWYgKCEhY3NyZlRva2VuU2VsZWN0b3IgJiYgISFjc3JmVG9rZW5TZWxlY3Rvci5jb250ZW50KSB7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdYLUNTUkYtVG9rZW4nLCBjc3JmVG9rZW5TZWxlY3Rvci5jb250ZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHBhc3NlZCBoZWFkZXJzXG4gICAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChoZWFkZXIpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLCBoZWFkZXJzW2hlYWRlcl0pO1xuICAgICAgfSk7XG5cbiAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHhoci5yZXNwb25zZVRleHQgPyBKU09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIuc2VuZChkYXRhKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhcnJheXNEaWZmZXI6IGZ1bmN0aW9uIChhcnJheUEsIGFycmF5Qikge1xuICAgIHZhciBpc0RpZmZlcmVudCA9IGZhbHNlO1xuICAgIGlmIChhcnJheUEubGVuZ3RoICE9PSBhcnJheUIubGVuZ3RoKSB7XG4gICAgICBpc0RpZmZlcmVudCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFycmF5QS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkge1xuICAgICAgICBpZiAoaXRlbSAhPT0gYXJyYXlCW2luZGV4XSkge1xuICAgICAgICAgIGlzRGlmZmVyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpc0RpZmZlcmVudDtcbiAgfSxcbiAgYWpheDoge1xuICAgIHBvc3Q6IHJlcXVlc3QuYmluZChudWxsLCAnUE9TVCcpLFxuICAgIHB1dDogcmVxdWVzdC5iaW5kKG51bGwsICdQVVQnKVxuICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk5VmMyVnljeTlqYUhKcGMzUnBZVzVoYkdadmJta3ZSRzlqZFcxbGJuUnpMMlJsZGk5bWIzSnRjM2t0Y21WaFkzUXZjM0pqTDNWMGFXeHpMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFbEJRVWtzYVVKQlFXbENMRWRCUVVjc1QwRkJUeXhSUVVGUkxFbEJRVWtzVjBGQlZ5eEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNN08wRkJSV3hJTEVsQlFVa3NXVUZCV1N4SFFVRkhMRlZCUVZVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVTdSVUZETDBNc1NVRkJTU3hKUVVGSkxFZEJRVWNzU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXp0RlFVTjBRaXhKUVVGSkxGRkJRVkVzVDBGQlR5eERRVUZETEVsQlFVa3NVVUZCVVN4RlFVRkZPMGxCUTJoRExFdEJRVXNzU1VGQlNTeEhRVUZITEVsQlFVa3NUMEZCVHp0TlFVTnlRaXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBkQlEzWkZMRTFCUVUwN1NVRkRUQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRIUVVOd1JEdEZRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU40UWl4RFFVRkRMRU5CUVVNN08wRkJSVVlzU1VGQlNTeFBRVUZQTEVkQlFVY3NWVUZCVlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFhRVUZYTEVWQlFVVXNUMEZCVHl4RlFVRkZPenRGUVVVdlJDeEpRVUZKTEZkQlFWY3NSMEZCUnl4WFFVRlhMRXRCUVVzc1dVRkJXU3hIUVVGSExHTkJRV01zUjBGQlJ5eFhRVUZYTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmxCUVZrc1JVRkJSU3gxUWtGQmRVSXNRMEZCUXl4SFFVRkhMR3RDUVVGclFpeERRVUZETzBGQlEzQktMRVZCUVVVc1NVRkJTU3hIUVVGSExGZEJRVmNzUzBGQlN5eHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6czdSVUZGZEVZc1QwRkJUeXhKUVVGSkxFOUJRVThzUTBGQlF5eFZRVUZWTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVN1NVRkROVU1zU1VGQlNUdE5RVU5HTEVsQlFVa3NSMEZCUnl4SFFVRkhMRWxCUVVrc1kwRkJZeXhGUVVGRkxFTkJRVU03VFVGREwwSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMDFCUXpWQ0xFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVONlJDeE5RVUZOTEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eGpRVUZqTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNN08wMUJSV3hFTEVsQlFVa3NRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeEpRVUZKTEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFBRVUZQTEVWQlFVVTdVVUZEZEVRc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMR05CUVdNc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVONFJTeFBRVUZQTzBGQlExQTdPMDFCUlUwc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hOUVVGTkxFVkJRVVU3VVVGRE4wTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4wUkN4UFFVRlBMRU5CUVVNc1EwRkJRenM3VFVGRlNDeEhRVUZITEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzV1VGQldUdEJRVU16UXl4UlFVRlJMRWxCUVVrc1IwRkJSeXhEUVVGRExGVkJRVlVzUzBGQlN5eERRVUZETEVWQlFVVTdPMVZCUlhoQ0xFbEJRVWs3V1VGRFJpeEpRVUZKTEZGQlFWRXNSMEZCUnl4SFFVRkhMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6dFpRVU4wUlN4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhGUVVGRk8yTkJRM3BETEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRoUVVOdVFpeE5RVUZOTzJOQlEwd3NUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8yRkJRMnhDTzFkQlEwWXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHRaUVVOV0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhYUVVGWE96dFRRVVZHTzA5QlEwWXNRMEZCUXp0TlFVTkdMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZEYUVJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdE5RVU5XTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOWU8wZEJRMFlzUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRPenRCUVVWR0xFMUJRVTBzUTBGQlF5eFBRVUZQTEVkQlFVYzdSVUZEWml4WlFVRlpMRVZCUVVVc1ZVRkJWU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTzBsQlEzUkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF6dEpRVU40UWl4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlR0TlFVTnVReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzQkNMRTFCUVUwN1RVRkRUQ3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSVHRSUVVOd1F5eEpRVUZKTEVsQlFVa3NTMEZCU3l4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVU3VlVGRE1VSXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRUUVVOd1FqdFBRVU5HTEVOQlFVTXNRMEZCUXp0TFFVTktPMGxCUTBRc1QwRkJUeXhYUVVGWExFTkJRVU03UjBGRGNFSTdSVUZEUkN4SlFVRkpMRVZCUVVVN1NVRkRTaXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRE8wbEJRMmhETEVkQlFVY3NSVUZCUlN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTTdSMEZETDBJN1EwRkRSaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lkbUZ5SUdOemNtWlViMnRsYmxObGJHVmpkRzl5SUQwZ2RIbHdaVzltSUdSdlkzVnRaVzUwSUNFOUlDZDFibVJsWm1sdVpXUW5JRDhnWkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNpZ25iV1YwWVZ0dVlXMWxQVndpWTNOeVppMTBiMnRsYmx3aVhTY3BJRG9nYm5Wc2JEdGNibHh1ZG1GeUlIUnZWVkpNUlc1amIyUmxaQ0E5SUdaMWJtTjBhVzl1SUNobGJHVnRaVzUwTENCclpYa3NJR3hwYzNRcElIdGNiaUFnZG1GeUlHeHBjM1FnUFNCc2FYTjBJSHg4SUZ0ZE8xeHVJQ0JwWmlBb2RIbHdaVzltSUNobGJHVnRaVzUwS1NBOVBTQW5iMkpxWldOMEp5a2dlMXh1SUNBZ0lHWnZjaUFvZG1GeUlHbGtlQ0JwYmlCbGJHVnRaVzUwS1Z4dUlDQWdJQ0FnZEc5VlVreEZibU52WkdWa0tHVnNaVzFsYm5SYmFXUjRYU3dnYTJWNUlEOGdhMlY1SUNzZ0oxc25JQ3NnYVdSNElDc2dKMTBuSURvZ2FXUjRMQ0JzYVhOMEtUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnNhWE4wTG5CMWMyZ29hMlY1SUNzZ0p6MG5JQ3NnWlc1amIyUmxWVkpKUTI5dGNHOXVaVzUwS0dWc1pXMWxiblFwS1R0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnYkdsemRDNXFiMmx1S0NjbUp5azdYRzU5TzF4dVhHNTJZWElnY21WeGRXVnpkQ0E5SUdaMWJtTjBhVzl1SUNodFpYUm9iMlFzSUhWeWJDd2daR0YwWVN3Z1kyOXVkR1Z1ZEZSNWNHVXNJR2hsWVdSbGNuTXBJSHRjYmx4dUlDQjJZWElnWTI5dWRHVnVkRlI1Y0dVZ1BTQmpiMjUwWlc1MFZIbHdaU0E5UFQwZ0ozVnliR1Z1WTI5a1pXUW5JRDhnSjJGd2NHeHBZMkYwYVc5dUx5Y2dLeUJqYjI1MFpXNTBWSGx3WlM1eVpYQnNZV05sS0NkMWNteGxibU52WkdWa0p5d2dKM2d0ZDNkM0xXWnZjbTB0ZFhKc1pXNWpiMlJsWkNjcElEb2dKMkZ3Y0d4cFkyRjBhVzl1TDJwemIyNG5PMXh1SUNCa1lYUmhJRDBnWTI5dWRHVnVkRlI1Y0dVZ1BUMDlJQ2RoY0hCc2FXTmhkR2x2Ymk5cWMyOXVKeUEvSUVwVFQwNHVjM1J5YVc1bmFXWjVLR1JoZEdFcElEb2dkRzlWVWt4RmJtTnZaR1ZrS0dSaGRHRXBPMXh1WEc0Z0lISmxkSFZ5YmlCdVpYY2dVSEp2YldselpTaG1kVzVqZEdsdmJpQW9jbVZ6YjJ4MlpTd2djbVZxWldOMEtTQjdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSFpoY2lCNGFISWdQU0J1WlhjZ1dFMU1TSFIwY0ZKbGNYVmxjM1FvS1R0Y2JpQWdJQ0FnSUhob2NpNXZjR1Z1S0cxbGRHaHZaQ3dnZFhKc0xDQjBjblZsS1R0Y2JpQWdJQ0FnSUhob2NpNXpaWFJTWlhGMVpYTjBTR1ZoWkdWeUtDZEJZMk5sY0hRbkxDQW5ZWEJ3YkdsallYUnBiMjR2YW5OdmJpY3BPMXh1SUNBZ0lDQWdlR2h5TG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvSjBOdmJuUmxiblF0Vkhsd1pTY3NJR052Ym5SbGJuUlVlWEJsS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLQ0VoWTNOeVpsUnZhMlZ1VTJWc1pXTjBiM0lnSmlZZ0lTRmpjM0ptVkc5clpXNVRaV3hsWTNSdmNpNWpiMjUwWlc1MEtTQjdYRzRnSUNBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0NkWUxVTlRVa1l0Vkc5clpXNG5MQ0JqYzNKbVZHOXJaVzVUWld4bFkzUnZjaTVqYjI1MFpXNTBLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1FXUmtJSEJoYzNObFpDQm9aV0ZrWlhKelhHNGdJQ0FnSUNCUFltcGxZM1F1YTJWNWN5aG9aV0ZrWlhKektTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaG9aV0ZrWlhJcElIdGNiaUFnSUNBZ0lDQWdlR2h5TG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvYUdWaFpHVnlMQ0JvWldGa1pYSnpXMmhsWVdSbGNsMHBPMXh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUhob2NpNXZibkpsWVdSNWMzUmhkR1ZqYUdGdVoyVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2g0YUhJdWNtVmhaSGxUZEdGMFpTQTlQVDBnTkNrZ2UxeHVYRzRnSUNBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQnlaWE53YjI1elpTQTlJSGhvY2k1eVpYTndiMjV6WlZSbGVIUWdQeUJLVTA5T0xuQmhjbk5sS0hob2NpNXlaWE53YjI1elpWUmxlSFFwSURvZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2g0YUhJdWMzUmhkSFZ6SUQ0OUlESXdNQ0FtSmlCNGFISXVjM1JoZEhWeklEd2dNekF3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVVvY21WemNHOXVjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnFaV04wS0hKbGMzQnZibk5sS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpXcGxZM1FvWlNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwN1hHNGdJQ0FnSUNCNGFISXVjMlZ1WkNoa1lYUmhLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxLU0I3WEc0Z0lDQWdJQ0J5WldwbFkzUW9aU2s3WEc0Z0lDQWdmVnh1SUNCOUtUdGNibjA3WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2UxeHVJQ0JoY25KaGVYTkVhV1ptWlhJNklHWjFibU4wYVc5dUlDaGhjbkpoZVVFc0lHRnljbUY1UWlrZ2UxeHVJQ0FnSUhaaGNpQnBjMFJwWm1abGNtVnVkQ0E5SUdaaGJITmxPMXh1SUNBZ0lHbG1JQ2hoY25KaGVVRXViR1Z1WjNSb0lDRTlQU0JoY25KaGVVSXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQnBjMFJwWm1abGNtVnVkQ0E5SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUdGeWNtRjVRUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2hwZEdWdExDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhSbGJTQWhQVDBnWVhKeVlYbENXMmx1WkdWNFhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdselJHbG1abVZ5Wlc1MElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJwYzBScFptWmxjbVZ1ZER0Y2JpQWdmU3hjYmlBZ1lXcGhlRG9nZTF4dUlDQWdJSEJ2YzNRNklISmxjWFZsYzNRdVltbHVaQ2h1ZFd4c0xDQW5VRTlUVkNjcExGeHVJQ0FnSUhCMWREb2djbVZ4ZFdWemRDNWlhVzVrS0c1MWJHd3NJQ2RRVlZRbktWeHVJQ0I5WEc1OU8xeHVJbDE5IiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gICdpc1ZhbHVlJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSAnJztcbiAgfSxcbiAgJ2lzRW1haWwnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL14oKChbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKFxcLihbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKSopfCgoXFx4MjIpKCgoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oKFtcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDdmXXxcXHgyMXxbXFx4MjMtXFx4NWJdfFtcXHg1ZC1cXHg3ZV18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfChcXFxcKFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZC1cXHg3Zl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkpKigoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oXFx4MjIpKSlAKCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFxcZHxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkoW2Etel18XFxkfC18XFwufF98fnxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkqKFthLXpdfFxcZHxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKVxcLikrKChbYS16XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KChbYS16XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkoW2Etel18XFxkfC18XFwufF98fnxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkqKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpJC9pKTtcbiAgfSxcbiAgJ2lzVHJ1ZSc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZTtcbiAgfSxcbiAgJ2lzTnVtZXJpYyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG1hdGNoUmVzdWx0cyA9IHZhbHVlLm1hdGNoKC9bLStdPyhcXGQqWy5dKT9cXGQrLyk7XG4gICAgICBpZiAoISEgbWF0Y2hSZXN1bHRzKSB7XG4gICAgICAgIHJldHVybiBtYXRjaFJlc3VsdHNbMF0gPT0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICAnaXNBbHBoYSc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpdKyQvKTtcbiAgfSxcbiAgJ2lzV29yZHMnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL15bYS16QS1aXFxzXSskLyk7XG4gIH0sXG4gICdpc1NwZWNpYWxXb3Jkcyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpcXHNcXHUwMEMwLVxcdTAxN0ZdKyQvKTtcbiAgfSxcbiAgaXNMZW5ndGg6IGZ1bmN0aW9uICh2YWx1ZSwgbWluLCBtYXgpIHtcbiAgICBpZiAobWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPj0gbWluICYmIHZhbHVlLmxlbmd0aCA8PSBtYXg7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPj0gbWluO1xuICB9LFxuICBlcXVhbHM6IGZ1bmN0aW9uICh2YWx1ZSwgZXFsKSB7XG4gICAgcmV0dXJuIHZhbHVlID09IGVxbDtcbiAgfSxcbiAgZXF1YWxzRmllbGQ6IGZ1bmN0aW9uICh2YWx1ZSwgZmllbGQpIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gdGhpc1tmaWVsZF07XG4gIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdmRtRnNhV1JoZEdsdmJsSjFiR1Z6TG1weklpd2ljMjkxY21ObGN5STZXeUl2VlhObGNuTXZZMmh5YVhOMGFXRnVZV3htYjI1cEwwUnZZM1Z0Wlc1MGN5OWtaWFl2Wm05eWJYTjVMWEpsWVdOMEwzTnlZeTkyWVd4cFpHRjBhVzl1VW5Wc1pYTXVhbk1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1RVRkJUU3hEUVVGRExFOUJRVThzUjBGQlJ6dEZRVU5tTEZOQlFWTXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRKUVVNeFFpeFBRVUZQTEV0QlFVc3NTMEZCU3l4RlFVRkZMRU5CUVVNN1IwRkRja0k3UlVGRFJDeFRRVUZUTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRNVUlzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMSGswUWtGQmVUUkNMRU5CUVVNc1EwRkJRenRIUVVNdk5VSTdSVUZEUkN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRGVrSXNUMEZCVHl4TFFVRkxMRXRCUVVzc1NVRkJTU3hEUVVGRE8wZEJRM1pDTzBWQlEwUXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8wbEJRelZDTEVsQlFVa3NUMEZCVHl4TFFVRkxMRXRCUVVzc1VVRkJVU3hGUVVGRk8wMUJRemRDTEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJc1RVRkJUVHROUVVOTUxFbEJRVWtzV1VGQldTeEhRVUZITEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0TlFVTndSQ3hKUVVGSkxFTkJRVU1zUlVGQlJTeFpRVUZaTEVWQlFVVTdVVUZEYmtJc1QwRkJUeXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRPMDlCUTJwRExFMUJRVTA3VVVGRFRDeFBRVUZQTEV0QlFVc3NRMEZCUXp0UFFVTmtPMHRCUTBZN1IwRkRSanRGUVVORUxGTkJRVk1zUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlR0SlFVTXhRaXhQUVVGUExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1IwRkRia003UlVGRFJDeFRRVUZUTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRNVUlzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8wZEJRM0pETzBWQlEwUXNaMEpCUVdkQ0xFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdTVUZEYWtNc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETERSQ1FVRTBRaXhEUVVGRExFTkJRVU03UjBGRGJFUTdSVUZEUkN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlR0SlFVTnVReXhKUVVGSkxFZEJRVWNzUzBGQlN5eFRRVUZUTEVWQlFVVTdUVUZEY2tJc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF6dExRVU51UkR0SlFVTkVMRTlCUVU4c1MwRkJTeXhEUVVGRExFMUJRVTBzU1VGQlNTeEhRVUZITEVOQlFVTTdSMEZETlVJN1JVRkRSQ3hOUVVGTkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZPMGxCUXpWQ0xFOUJRVThzUzBGQlN5eEpRVUZKTEVkQlFVY3NRMEZCUXp0SFFVTnlRanRGUVVORUxGZEJRVmNzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRia01zVDBGQlR5eExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wZEJRemRDTzBOQlEwWXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2UxeHVJQ0FuYVhOV1lXeDFaU2M2SUdaMWJtTjBhVzl1SUNoMllXeDFaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlNBaFBUMGdKeWM3WEc0Z0lIMHNYRzRnSUNkcGMwVnRZV2xzSnpvZ1puVnVZM1JwYjI0Z0tIWmhiSFZsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbExtMWhkR05vS0M5ZUtDZ29XMkV0ZWwxOFhGeGtmRnNoSTF4Y0pDVW1KMXhjS2x4Y0sxeGNMVnhjTHoxY1hEOWNYRjVmWUh0Y1hIeDlmbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEt5aGNYQzRvVzJFdGVsMThYRnhrZkZzaEkxeGNKQ1VtSjF4Y0tseGNLMXhjTFZ4Y0x6MWNYRDljWEY1ZllIdGNYSHg5ZmwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLeWtxS1h3b0tGeGNlREl5S1Nnb0tDaGNYSGd5TUh4Y1hIZ3dPU2txS0Z4Y2VEQmtYRng0TUdFcEtUOG9YRng0TWpCOFhGeDRNRGtwS3lrL0tDaGJYRng0TURFdFhGeDRNRGhjWEhnd1lseGNlREJqWEZ4NE1HVXRYRng0TVdaY1hIZzNabDE4WEZ4NE1qRjhXMXhjZURJekxWeGNlRFZpWFh4YlhGeDROV1F0WEZ4NE4yVmRmRnRjWEhVd01FRXdMVnhjZFVRM1JrWmNYSFZHT1RBd0xWeGNkVVpFUTBaY1hIVkdSRVl3TFZ4Y2RVWkdSVVpkS1h3b1hGeGNYQ2hiWEZ4NE1ERXRYRng0TURsY1hIZ3dZbHhjZURCalhGeDRNR1F0WEZ4NE4yWmRmRnRjWEhVd01FRXdMVnhjZFVRM1JrWmNYSFZHT1RBd0xWeGNkVVpFUTBaY1hIVkdSRVl3TFZ4Y2RVWkdSVVpkS1NrcEtTb29LQ2hjWEhneU1IeGNYSGd3T1NrcUtGeGNlREJrWEZ4NE1HRXBLVDhvWEZ4NE1qQjhYRng0TURrcEt5ay9LRnhjZURJeUtTa3BRQ2dvS0Z0aExYcGRmRnhjWkh4YlhGeDFNREJCTUMxY1hIVkVOMFpHWEZ4MVJqa3dNQzFjWEhWR1JFTkdYRngxUmtSR01DMWNYSFZHUmtWR1hTbDhLQ2hiWVMxNlhYeGNYR1I4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtGdGhMWHBkZkZ4Y1pId3RmRnhjTG54ZmZINThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS2loYllTMTZYWHhjWEdSOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLU2xjWEM0cEt5Z29XMkV0ZWwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBmQ2dvVzJFdGVsMThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS0Z0aExYcGRmRnhjWkh3dGZGeGNMbnhmZkg1OFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLaWhiWVMxNlhYeGJYRngxTURCQk1DMWNYSFZFTjBaR1hGeDFSamt3TUMxY1hIVkdSRU5HWEZ4MVJrUkdNQzFjWEhWR1JrVkdYU2twS1NRdmFTazdYRzRnSUgwc1hHNGdJQ2RwYzFSeWRXVW5PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1VnUFQwOUlIUnlkV1U3WEc0Z0lIMHNYRzRnSUNkcGMwNTFiV1Z5YVdNbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQW5iblZ0WW1WeUp5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lIWmhjaUJ0WVhSamFGSmxjM1ZzZEhNZ1BTQjJZV3gxWlM1dFlYUmphQ2d2V3kwclhUOG9YRnhrS2xzdVhTay9YRnhrS3k4cE8xeHVJQ0FnSUNBZ2FXWWdLQ0VoSUcxaGRHTm9VbVZ6ZFd4MGN5a2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiV0YwWTJoU1pYTjFiSFJ6V3pCZElEMDlJSFpoYkhWbE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlN4Y2JpQWdKMmx6UVd4d2FHRW5PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1V1YldGMFkyZ29MMTViWVMxNlFTMWFYU3NrTHlrN1hHNGdJSDBzWEc0Z0lDZHBjMWR2Y21Sekp6b2dablZ1WTNScGIyNGdLSFpoYkhWbEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhaaGJIVmxMbTFoZEdOb0tDOWVXMkV0ZWtFdFdseGNjMTBySkM4cE8xeHVJQ0I5TEZ4dUlDQW5hWE5UY0dWamFXRnNWMjl5WkhNbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViV0YwWTJnb0wxNWJZUzE2UVMxYVhGeHpYRngxTURCRE1DMWNYSFV3TVRkR1hTc2tMeWs3WEc0Z0lIMHNYRzRnSUdselRHVnVaM1JvT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUcxcGJpd2diV0Y0S1NCN1hHNGdJQ0FnYVdZZ0tHMWhlQ0FoUFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1V1YkdWdVozUm9JRDQ5SUcxcGJpQW1KaUIyWVd4MVpTNXNaVzVuZEdnZ1BEMGdiV0Y0TzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1V1YkdWdVozUm9JRDQ5SUcxcGJqdGNiaUFnZlN4Y2JpQWdaWEYxWVd4ek9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVc0lHVnhiQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlNBOVBTQmxjV3c3WEc0Z0lIMHNYRzRnSUdWeGRXRnNjMFpwWld4a09pQm1kVzVqZEdsdmJpQW9kbUZzZFdVc0lHWnBaV3hrS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbElEMDlJSFJvYVhOYlptbGxiR1JkTzF4dUlDQjlYRzU5TzF4dUlsMTkiXX0= diff --git a/build/specs.js b/build/specs.js index bda1a97..2be6a73 100644 --- a/build/specs.js +++ b/build/specs.js @@ -27,7 +27,7 @@ describe('Element', function() { }); - it('should return true or false when calling hasValue() depending on value existance', function () { + it('should set back to pristine value when running reset', function () { var reset = null; var TestInput = React.createClass({displayName: "TestInput", @@ -49,8 +49,9 @@ describe('Element', function() { ); var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT'); + TestUtils.Simulate.change(input, {target: {value: 'foobar'}}); reset(); - expect(input.getDOMNode().value).toBe(''); + expect(input.getDOMNode().value).toBe('foo'); }); @@ -243,7 +244,7 @@ describe('Element', function() { }, 0); }); - it('should return true or false when calling isPrestine() depending on input has been "touched" or not', function () { + it('should return true or false when calling isPristine() depending on input has been "touched" or not', function () { var isPristine = null; var TestInput = React.createClass({displayName: "TestInput", @@ -307,7 +308,7 @@ it('should allow an undefined value to be updated to a value', function (done) { }, 0); }); -it('should be able to dynamically change validations', function (done) { + it('should be able to dynamically change validations', function (done) { var isInvalid = false; var TestInput = React.createClass({displayName: "TestInput", @@ -348,6 +349,34 @@ it('should be able to dynamically change validations', function (done) { }, 0); }); + it('should be able to test a values validity', function () { + + var isInvalid = false; + var TestInput = React.createClass({displayName: "TestInput", + mixins: [Formsy.Mixin], + render: function () { + return React.createElement("input", {value: this.getValue()}) + } + }); + var TestForm = React.createClass({displayName: "TestForm", + render: function () { + return ( + React.createElement(Formsy.Form, null, + React.createElement(TestInput, {name: "A", validations: "isEmail"}) + ) + ); + } + }); + var form = TestUtils.renderIntoDocument( + React.createElement(TestForm, null) + ); + + var input = TestUtils.findRenderedComponentWithType(form, TestInput); + expect(input.isValidValue('foo@bar.com')).toBe(true); + expect(input.isValidValue('foo@bar')).toBe(false); + + }); + }); @@ -562,66 +591,103 @@ describe('Formsy', function () { }); + describe('validations', function() { + var CheckValid, onSubmit, OtherCheckValid; + var isValid; - it('should invalidate a valid form if dynamically inserted input is invalid', function (done) { - - var forceUpdate = null; - var isInvalid = false; var TestInput = React.createClass({displayName: "TestInput", mixins: [Formsy.Mixin], changeValue: function (event) { this.setValue(event.target.value); }, render: function () { - return React.createElement("input", {value: this.getValue(), onChange: this.changeValue}) + return React.createElement("input", {value: this.getValue(), onChange: this.changeValue}) } }); - - var inputs = [TestInput({ - name: 'test', - validations: 'isEmail', - value: 'foo@bar.com' - })]; - var TestForm = React.createClass({displayName: "TestForm", - componentWillMount: function () { - forceUpdate = this.forceUpdate.bind(this); - }, - setInvalid: function () { - isInvalid = true; + getDefaultProps: function() { + return { + inputs: [], + }; }, render: function () { - return ( - React.createElement(Formsy.Form, {onInvalid: this.setInvalid}, - inputs - )); + var builtInputs = []; + var inputs = this.props.inputs; + for (var i=0; i < inputs.length; i++) { + var input = inputs[i]; + builtInputs.push(React.createElement(TestInput, React.__spread({}, input , {key: input.name}))); + } + var _this = this; + return React.createElement(Formsy.Form, { + onSubmit: function(arg1) { onSubmit(arg1); }, + onValid: function() { isValid = true; }, + onInvalid: function() { isValid = false; }}, + builtInputs + ); } }); - var form = TestUtils.renderIntoDocument( - React.createElement(TestForm, null) - ); - - expect(isInvalid).toBe(false); - - inputs.push(TestInput({ - name: 'test2', - validations: 'isEmail', - value: 'foo@bar' - })); - - - forceUpdate(function () { - - // Wait for next event loop, as that does the form - setTimeout(function () { - TestUtils.Simulate.submit(form.getDOMNode()); - expect(isInvalid).toBe(true); - done(); - }, 0); + beforeEach(function() { + isValid = true; + CheckValid = jasmine.createSpy('CheckValid'); + Formsy.addValidationRule('CheckValid', CheckValid); + OtherCheckValid = jasmine.createSpy('CheckValid'); + Formsy.addValidationRule('OtherCheckValid', OtherCheckValid); + onSubmit = jasmine.createSpy('onSubmit'); }); + it('should run when the input changes', function() { + var form = TestUtils.renderIntoDocument(React.createElement(TestForm, {inputs: [{name: 'one', validations: 'CheckValid', value: 'foo'}] })); + var input = TestUtils.findRenderedDOMComponentWithTag(form, 'input'); + TestUtils.Simulate.change(input.getDOMNode(), {target: {value: 'bar'}}); + expect(CheckValid).toHaveBeenCalledWith('bar'); + expect(OtherCheckValid).not.toHaveBeenCalled(); + }); + + it('should allow the validation to be changed', function() { + var form = TestUtils.renderIntoDocument(React.createElement(TestForm, {inputs: [{name: 'one', validations: 'CheckValid', value: 'foo'}] })); + form.setProps({inputs: [{name: 'one', validations: 'OtherCheckValid', value: 'foo'}] }); + var input = TestUtils.findRenderedDOMComponentWithTag(form, 'input'); + TestUtils.Simulate.change(input.getDOMNode(), {target: {value: 'bar'}}); + expect(OtherCheckValid).toHaveBeenCalledWith('bar'); + }); + + it('should invalidate a form if dynamically inserted input is invalid', function(done) { + var form = TestUtils.renderIntoDocument(React.createElement(TestForm, {inputs: [{name: 'one', validations: 'isEmail', value: 'foo@bar.com'}] })); + expect(isValid).toEqual(true); + form.setProps({inputs: [ + {name: 'one', validations: 'isEmail', value: 'foo@bar.com'}, + {name: 'two', validations: 'isEmail', value: 'foo@bar'}, + ]}, function() { + setTimeout(function() { + expect(isValid).toEqual(false); + done(); + }, 0); + }); + }); + + it('should validate a form when removing an invalid input', function(done) { + var form = TestUtils.renderIntoDocument(React.createElement(TestForm, {inputs: [ + {name: 'one', validations: 'isEmail', value: 'foo@bar.com'}, + {name: 'two', validations: 'isEmail', value: 'foo@bar'}, + ] })); + expect(isValid).toEqual(false); + form.setProps({inputs: [{name: 'one', validations: 'isEmail', value: 'foo@bar.com'}]}, function() { + setTimeout(function() { + expect(isValid).toEqual(true); + done(); + }, 0); + }); + }); + + it('runs multiple validations', function() { + var form = TestUtils.renderIntoDocument(React.createElement(TestForm, {inputs: [{name: 'one', validations: 'CheckValid,OtherCheckValid', value: 'foo'}] })); + var input = TestUtils.findRenderedDOMComponentWithTag(form, 'input'); + TestUtils.Simulate.change(input.getDOMNode(), {target: {value: 'bar'}}); + expect(CheckValid).toHaveBeenCalledWith('bar'); + expect(OtherCheckValid).toHaveBeenCalledWith('bar'); + }); }); it('should not trigger onChange when form is mounted', function () { @@ -756,8 +822,167 @@ describe('Formsy', function () { }); + it('should be possible to pass error state of elements by changing an errors attribute', function (done) { + + var TestInput = React.createClass({displayName: "TestInput", + mixins: [Formsy.Mixin], + render: function () { + return React.createElement("input", {value: this.getValue()}); + } + }); + var TestForm = React.createClass({displayName: "TestForm", + getInitialState: function () { + return { + validationErrors: { + foo: 'bar' + } + }; + }, + onChange: function (values) { + if (values.foo) { + this.setState({ + validationErrors: {} + }); + } else { + this.setState({ + validationErrors: {foo: 'bar'} + }); + } + }, + render: function () { + return ( + React.createElement(Formsy.Form, {onChange: this.onChange, validationErrors: this.state.validationErrors}, + React.createElement(TestInput, {name: "foo"}) + )); + } + }); + var form = TestUtils.renderIntoDocument( + React.createElement(TestForm, null) + ); + + // Wait for update + setTimeout(function () { + var input = TestUtils.findRenderedComponentWithType(form, TestInput); + expect(input.getErrorMessage()).toBe('bar'); + input.setValue('gotValue'); + + // Wait for update + setTimeout(function () { + expect(input.getErrorMessage()).toBe(null); + done(); + }, 0); + }, 0); + + }); + + + it('should trigger an onValidSubmit when submitting a valid form', function () { + + var isCalled = false; + var TestInput = React.createClass({displayName: "TestInput", + mixins: [Formsy.Mixin], + render: function () { + return React.createElement("input", {value: this.getValue()}); + } + }); + var TestForm = React.createClass({displayName: "TestForm", + onValidSubmit: function () { + isCalled = true; + }, + render: function () { + return ( + React.createElement(Formsy.Form, {onValidSubmit: this.onValidSubmit}, + React.createElement(TestInput, {name: "foo", validations: "isEmail", value: "foo@bar.com"}) + )); + } + }); + var form = TestUtils.renderIntoDocument( + React.createElement(TestForm, null) + ); + + var TestForm = TestUtils.findRenderedComponentWithType(form, TestForm); + TestUtils.Simulate.submit(TestForm.getDOMNode()); + expect(isCalled).toBe(true); + + }); + + it('should trigger an onInvalidSubmit when submitting an invalid form', function () { + + var isCalled = false; + var TestInput = React.createClass({displayName: "TestInput", + mixins: [Formsy.Mixin], + render: function () { + return React.createElement("input", {value: this.getValue()}); + } + }); + var TestForm = React.createClass({displayName: "TestForm", + onInvalidSubmit: function () { + isCalled = true; + }, + render: function () { + return ( + React.createElement(Formsy.Form, {onInvalidSubmit: this.onInvalidSubmit}, + React.createElement(TestInput, {name: "foo", validations: "isEmail", value: "foo@bar"}) + )); + } + }); + var form = TestUtils.renderIntoDocument( + React.createElement(TestForm, null) + ); + + var TestForm = TestUtils.findRenderedComponentWithType(form, TestForm); + TestUtils.Simulate.submit(TestForm.getDOMNode()); + expect(isCalled).toBe(true); + + }); + }); + describe("value === false", function() { + var onSubmit; + var TestInput = React.createClass({displayName: "TestInput", + mixins: [Formsy.Mixin], + getDefaultProps: function() { + return { + type: "text", + }; + }, + changeValue: function() { + this.setValue(e.target[this.props.type === "checkbox" ? "checked" : "value"]); + }, + render: function () { + return React.createElement("input", {type: this.props.type, value: this.getValue(), onChange: this.changeValue}) + } + }); + + var TestForm = React.createClass({displayName: "TestForm", + render: function () { + return ( + React.createElement(Formsy.Form, {onSubmit: function(arg1) { onSubmit(arg1); }}, + React.createElement(TestInput, {name: "foo", value: this.props.value, type: "checkbox"}), + React.createElement("button", {type: "submit"}, "Save") + ) + ); + } + }); + + beforeEach(function() { + onSubmit = jasmine.createSpy("onSubmit"); + }); + + it("should call onSubmit correctly", function() { + var form = TestUtils.renderIntoDocument(React.createElement(TestForm, {value: false })); + TestUtils.Simulate.submit(form.getDOMNode()); + expect(onSubmit).toHaveBeenCalledWith({foo: false}); + }); + + it("should allow dynamic changes to false", function() { + var form = TestUtils.renderIntoDocument(React.createElement(TestForm, {value: true })); + form.setProps({value: false}); + TestUtils.Simulate.submit(form.getDOMNode()); + expect(onSubmit).toHaveBeenCalledWith({foo: false}); + }); + }); }); @@ -1144,10 +1369,12 @@ describe('Validation', function() { },{"./../src/main.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/main.js"}],"/Users/christianalfoni/Documents/dev/formsy-react/src/Mixin.js":[function(require,module,exports){ module.exports = { getInitialState: function () { + var value = 'value' in this.props ? this.props.value : ''; return { - _value: this.props.value ? this.props.value : '', + _value: value, _isValid: true, - _isPristine: true + _isPristine: true, + _pristineValue: value }; }, componentWillMount: function () { @@ -1203,7 +1430,8 @@ module.exports = { // the value, set the value again running a validation if (prevProps.validations !== this.props.validations || isValueChanged()) { - this.setValue(this.props.value || ''); + var value = 'value' in this.props ? this.props.value : ''; + this.setValue(value); } }, @@ -1235,7 +1463,7 @@ module.exports = { }, resetValue: function () { this.setState({ - _value: '', + _value: this.state._pristineValue, _isPristine: true }, function () { this.props._validate(this); @@ -1267,6 +1495,9 @@ module.exports = { }, showError: function () { return !this.showRequired() && !this.state._isValid; + }, + isValidValue: function (value) { + return this.props._isValidValue.call(null, this, value); } }; @@ -1305,6 +1536,8 @@ Formsy.Form = React.createClass({displayName: "Form", onSuccess: function () {}, onError: function () {}, onSubmit: function () {}, + onValidSubmit: function () {}, + onInvalidSubmit: function () {}, onSubmitted: function () {}, onValid: function () {}, onInvalid: function () {}, @@ -1337,6 +1570,10 @@ Formsy.Form = React.createClass({displayName: "Form", this.registerInputs(this.props.children); + if (this.props.validationErrors) { + this.setInputValidationErrors(this.props.validationErrors); + } + var newInputKeys = Object.keys(this.inputs); if (utils.arraysDiffer(inputKeys, newInputKeys)) { this.validateForm(); @@ -1361,7 +1598,9 @@ Formsy.Form = React.createClass({displayName: "Form", // if wanting to reset the entire form to original state, the second param is a callback for this. if (!this.props.url) { this.updateModel(); - this.props.onSubmit(this.mapModel(), this.resetModel, this.updateInputsWithError); + var model = this.mapModel(); + this.props.onSubmit(model, this.resetModel, this.updateInputsWithError); + this.state.isValid ? this.props.onValidSubmit(model, this.resetModel) : this.props.onInvalidSubmit(model, this.resetModel); return; } @@ -1404,6 +1643,17 @@ Formsy.Form = React.createClass({displayName: "Form", this.validateForm(); }, + setInputValidationErrors: function (errors) { + Object.keys(this.inputs).forEach(function (name, index) { + var component = this.inputs[name]; + var args = [{ + _isValid: !(name in errors), + _serverError: errors[name] + }]; + component.setState.apply(component, args); + }.bind(this)); + }, + // Go through errors from server and grab the components // stored in the inputs map. Change their state to invalid // and set the serverError message @@ -1443,6 +1693,7 @@ Formsy.Form = React.createClass({displayName: "Form", child.props._detachFromForm = this.detachFromForm; child.props._validate = this.validate; child.props._isFormDisabled = this.isFormDisabled; + child.props._isValidValue = this.runValidation; } if (child && child.props && child.props.children) { @@ -1503,10 +1754,14 @@ Formsy.Form = React.createClass({displayName: "Form", }, - runValidation: function (component) { + // Checks validation on current value or a passed value + runValidation: function (component, value) { + var isValid = true; - if (component._validations.length && (component.props.required || component.state._value !== '')) { - component._validations.split(',').forEach(function (validation) { + + value = arguments.length === 2 ? value : component.state._value; + if (component._validations.length && (component.props.required || value !== '')) { + component._validations.split(/\,(?![^{\[]*[}\]])/g).forEach(function (validation) { var args = validation.split(':'); var validateMethod = args.shift(); args = args.map(function (arg) { @@ -1516,7 +1771,7 @@ Formsy.Form = React.createClass({displayName: "Form", return arg; // It is a string if it can not parse it } }); - args = [component.state._value].concat(args); + args = [value].concat(args); if (!validationRules[validateMethod]) { throw new Error('Formsy does not have the validation rule: ' + validateMethod); } @@ -1739,11 +1994,11 @@ module.exports = { return value == eql; }, equalsField: function (value, field) { - return value === this[field]; + return value == this[field]; } }; },{}]},{},["./specs/Element-spec.js","./specs/Formsy-spec.js","./specs/Submit-spec.js","./specs/Validation-spec.js"]) -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NwZWNzL0VsZW1lbnQtc3BlYy5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3BlY3MvRm9ybXN5LXNwZWMuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NwZWNzL1N1Ym1pdC1zcGVjLmpzIiwiL1VzZXJzL2NocmlzdGlhbmFsZm9uaS9Eb2N1bWVudHMvZGV2L2Zvcm1zeS1yZWFjdC9zcGVjcy9WYWxpZGF0aW9uLXNwZWMuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy9NaXhpbi5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3JjL21haW4uanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy91dGlscy5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3JjL3ZhbGlkYXRpb25SdWxlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDOztBQUV6QyxRQUFRLENBQUMsU0FBUyxFQUFFLFdBQVc7O0FBRS9CLEVBQUUsRUFBRSxDQUFDLGlFQUFpRSxFQUFFLFlBQVk7O0lBRWhGLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsV0FBVztNQUN6RCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxD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O0lBQzVCLE9BQU8sS0FBSyxJQUFJLEdBQUcsQ0FBQztHQUNyQjtFQUNELFdBQVcsRUFBRSxVQUFVLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDbkMsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQzlCO0FBQ0gsQ0FBQyxDQUFDOztBQUVGIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInZhciBGb3Jtc3kgPSByZXF1aXJlKCcuLy4uL3NyYy9tYWluLmpzJyk7XG5cbmRlc2NyaWJlKCdFbGVtZW50JywgZnVuY3Rpb24oKSB7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gcGFzc2VkIGFuZCBzZXRWYWx1ZSgpIHZhbHVlIHdoZW4gdXNpbmcgZ2V0VmFsdWUoKScsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwgbnVsbCwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBleHBlY3QoaW5wdXQuZ2V0RE9NTm9kZSgpLnZhbHVlKS50b0JlKCdmb28nKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdmb29iYXInfX0pO1xuICAgIGV4cGVjdChpbnB1dC5nZXRET01Ob2RlKCkudmFsdWUpLnRvQmUoJ2Zvb2JhcicpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2Ugd2hlbiBjYWxsaW5nIGhhc1ZhbHVlKCkgZGVwZW5kaW5nIG9uIHZhbHVlIGV4aXN0YW5jZScsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgcmVzZXQgPSBudWxsO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmVzZXQgPSB0aGlzLnJlc2V0VmFsdWU7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIHJlc2V0KCk7XG4gICAgZXhwZWN0KGlucHV0LmdldERPTU5vZGUoKS52YWx1ZSkudG9CZSgnJyk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gZXJyb3IgbWVzc2FnZSBwYXNzZWQgd2hlbiBjYWxsaW5nIGdldEVycm9yTWVzc2FnZSgpJywgZnVuY3Rpb24gKCkge1xuICAgIFxuICAgIHZhciBnZXRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZ2V0RXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2U7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNFbWFpbFwiLCB2YWxpZGF0aW9uRXJyb3I6IFwiSGFzIHRvIGJlIGVtYWlsXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICBleHBlY3QoZ2V0RXJyb3JNZXNzYWdlKCkpLnRvQmUoJ0hhcyB0byBiZSBlbWFpbCcpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHNlcnZlciBlcnJvciBtZXNzYWdlIHdoZW4gY2FsbGluZyBnZXRFcnJvck1lc3NhZ2UoKScsIGZ1bmN0aW9uIChkb25lKSB7XG4gICAgXG4gICAgamFzbWluZS5BamF4Lmluc3RhbGwoKTtcblxuICAgIHZhciBnZXRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZ2V0RXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2U7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wifSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCIsIHZhbGlkYXRpb25zOiBcImlzRW1haWxcIiwgdmFsaWRhdGlvbkVycm9yOiBcIkhhcyB0byBiZSBlbWFpbFwifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcblxuICAgIGphc21pbmUuQWpheC5yZXF1ZXN0cy5tb3N0UmVjZW50KCkucmVzcG9uZFdpdGgoe1xuICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgcmVzcG9uc2VUZXh0OiAne1wiZm9vXCI6IFwiYmFyXCJ9J1xuICAgIH0pXG5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGV4cGVjdChnZXRFcnJvck1lc3NhZ2UoKSkudG9CZSgnYmFyJyk7XG4gICAgICBqYXNtaW5lLkFqYXgudW5pbnN0YWxsKCk7XG4gICAgICBkb25lKCk7XG4gICAgfSwgMCk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSB3aGVuIGNhbGxpbmcgaXNWYWxpZCgpIGRlcGVuZGluZyBvbiB2YWxpZCBzdGF0ZScsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgaXNWYWxpZCA9IG51bGw7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICBpc1ZhbGlkID0gdGhpcy5pc1ZhbGlkO1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIn0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc0VtYWlsXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICBleHBlY3QoaXNWYWxpZCgpKS50b0JlKGZhbHNlKTtcbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdmb29AZm9vLmNvbSd9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQoKSkudG9CZSh0cnVlKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIHdoZW4gY2FsbGluZyBpc1JlcXVpcmVkKCkgZGVwZW5kaW5nIG9uIHBhc3NlZCByZXF1aXJlZCBhdHRyaWJ1dGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgXG4gICAgdmFyIGlzUmVxdWlyZWRzID0gW107XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICBpc1JlcXVpcmVkcy5wdXNoKHRoaXMuaXNSZXF1aXJlZCk7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wifSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCJ9KSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCIsIHJlcXVpcmVkOiB0cnVlfSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgZXhwZWN0KGlzUmVxdWlyZWRzWzBdKCkpLnRvQmUoZmFsc2UpO1xuICAgIGV4cGVjdChpc1JlcXVpcmVkc1sxXSgpKS50b0JlKHRydWUpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2Ugd2hlbiBjYWxsaW5nIHNob3dSZXF1aXJlZCgpIGRlcGVuZGluZyBvbiBpbnB1dCBiZWluZyBlbXB0eSBhbmQgcmVxdWlyZWQgaXMgcGFzc2VkLCBvciBub3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgXG4gICAgdmFyIHNob3dSZXF1aXJlZHMgPSBbXTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNob3dSZXF1aXJlZHMucHVzaCh0aGlzLnNob3dSZXF1aXJlZCk7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wifSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJBXCIsIHZhbHVlOiBcImZvb1wifSksIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiQlwiLCB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWV9KSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJDXCIsIHZhbHVlOiBcIlwifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgZXhwZWN0KHNob3dSZXF1aXJlZHNbMF0oKSkudG9CZShmYWxzZSk7XG4gICAgZXhwZWN0KHNob3dSZXF1aXJlZHNbMV0oKSkudG9CZSh0cnVlKTtcbiAgICBleHBlY3Qoc2hvd1JlcXVpcmVkc1syXSgpKS50b0JlKGZhbHNlKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIHdoZW4gY2FsbGluZyBzaG93RXJyb3IoKSBkZXBlbmRpbmcgb24gdmFsdWUgaXMgaW52YWxpZCBvciBhIHNlcnZlciBlcnJvciBoYXMgYXJyaXZlZCwgb3Igbm90JywgZnVuY3Rpb24gKGRvbmUpIHtcblxuICAgIHZhciBzaG93RXJyb3IgPSBudWxsO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2hvd0Vycm9yID0gdGhpcy5zaG93RXJyb3I7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wifSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCIsIHZhbGlkYXRpb25zOiBcImlzRW1haWxcIiwgdmFsaWRhdGlvbkVycm9yOiBcIlRoaXMgaXMgbm90IGFuIGVtYWlsXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICBleHBlY3Qoc2hvd0Vycm9yKCkpLnRvQmUodHJ1ZSk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdmb29AZm9vLmNvbSd9fSk7XG4gICAgZXhwZWN0KHNob3dFcnJvcigpKS50b0JlKGZhbHNlKTtcblxuICAgIGphc21pbmUuQWpheC5pbnN0YWxsKCk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7ICAgIFxuICAgIGphc21pbmUuQWpheC5yZXF1ZXN0cy5tb3N0UmVjZW50KCkucmVzcG9uZFdpdGgoe1xuICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICByZXNwb25zZVR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIHJlc3BvbnNlVGV4dDogJ3tcImZvb1wiOiBcIkVtYWlsIGFscmVhZHkgZXhpc3RzXCJ9J1xuICAgIH0pO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZXhwZWN0KHNob3dFcnJvcigpKS50b0JlKHRydWUpO1xuICAgICAgamFzbWluZS5BamF4LnVuaW5zdGFsbCgpO1xuICAgICAgZG9uZSgpO1xuICAgIH0sIDApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIHdoZW4gY2FsbGluZyBpc1ByZXN0aW5lKCkgZGVwZW5kaW5nIG9uIGlucHV0IGhhcyBiZWVuIFwidG91Y2hlZFwiIG9yIG5vdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgaXNQcmlzdGluZSA9IG51bGw7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICBpc1ByaXN0aW5lID0gdGhpcy5pc1ByaXN0aW5lO1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIn0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiQVwiLCB2YWx1ZTogXCJmb29cIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIGV4cGVjdChpc1ByaXN0aW5lKCkpLnRvQmUodHJ1ZSk7XG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnZm9vJ319KTtcbiAgICBleHBlY3QoaXNQcmlzdGluZSgpKS50b0JlKGZhbHNlKTtcbiAgICBcbiAgfSk7XG5cbml0KCdzaG91bGQgYWxsb3cgYW4gdW5kZWZpbmVkIHZhbHVlIHRvIGJlIHVwZGF0ZWQgdG8gYSB2YWx1ZScsIGZ1bmN0aW9uIChkb25lKSB7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHt2YWx1ZTogdW5kZWZpbmVkfTtcbiAgICAgIH0sXG4gICAgICBjaGFuZ2VWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICB2YWx1ZTogJ2ZvbydcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIn0sIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIkFcIiwgdmFsdWU6IHRoaXMuc3RhdGUudmFsdWV9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKVxuICAgICk7XG5cbiAgICBmb3JtLmNoYW5nZVZhbHVlKCk7XG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBleHBlY3QoaW5wdXQuZ2V0RE9NTm9kZSgpLnZhbHVlKS50b0JlKCdmb28nKTtcbiAgICAgIGRvbmUoKTtcbiAgICB9LCAwKTtcbiAgfSk7ICBcblxuaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSB2YWxpZGF0aW9ucycsIGZ1bmN0aW9uIChkb25lKSB7XG5cbiAgICB2YXIgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHt2YWx1ZTogJ2Zvb0BiYXIuY29tJywgdmFsaWRhdGlvbnM6ICdpc0VtYWlsJ307XG4gICAgICB9LFxuICAgICAgY2hhbmdlVmFsaWRhdGlvbnM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgdmFsaWRhdGlvbnM6ICdlcXVhbHM6Zm9vJ1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBzZXRJbnZhbGlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdSdW5uaW5nIGl0IScpO1xuICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCIsIG9uSW52YWxpZDogdGhpcy5zZXRJbnZhbGlkfSwgXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiQVwiLCB2YWxpZGF0aW9uczogdGhpcy5zdGF0ZS52YWxpZGF0aW9ucywgdmFsdWU6IHRoaXMuc3RhdGUudmFsdWV9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKVxuICAgICk7XG5cbiAgICBmb3JtLmNoYW5nZVZhbGlkYXRpb25zKCk7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBleHBlY3QoaXNJbnZhbGlkKS50b0JlKHRydWUpO1xuICAgICAgZG9uZSgpO1xuICAgIH0sIDApO1xuICB9KTsgIFxuXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjR1ZqY3k5RmJHVnRaVzUwTFhOd1pXTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpOVZjMlZ5Y3k5amFISnBjM1JwWVc1aGJHWnZibWt2Ukc5amRXMWxiblJ6TDJSbGRpOW1iM0p0YzNrdGNtVmhZM1F2YzNCbFkzTXZSV3hsYldWdWRDMXpjR1ZqTG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRWxCUVVrc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRE96dEJRVVY2UXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhGUVVGRkxGZEJRVmM3TzBGQlJTOUNMRVZCUVVVc1JVRkJSU3hEUVVGRExHbEZRVUZwUlN4RlFVRkZMRmxCUVZrN08wbEJSV2hHTEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzAxQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdUVUZEZEVJc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVOdVF6dE5RVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1QwRkRjRVU3UzBGRFJpeERRVUZETEVOQlFVTTdTVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4SlFVRkRMRVZCUVVFN1VVRkRXQ3h2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVzc1EwRkJSU3hEUVVGQk8wMUJRM1pDTEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEVsQlFVa3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrVXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRE4wTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNSU3hKUVVGSkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPenRCUVVWd1JDeEhRVUZITEVOQlFVTXNRMEZCUXpzN1FVRkZUQ3hGUVVGRkxFVkJRVVVzUTBGQlF5eHJSa0ZCYTBZc1JVRkJSU3haUVVGWk96dEpRVVZxUnl4SlFVRkpMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGFrSXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdUVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0TlFVTjBRaXhwUWtGQmFVSXNSVUZCUlN4WlFVRlpPMUZCUXpkQ0xFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRPMDlCUTNwQ08wMUJRMFFzVjBGQlZ5eEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFBRVU51UXp0TlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTEU5QlFVOHNiMEpCUVVFc1QwRkJUU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVU1zUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1YwRkJXU3hEUVVGRkxFTkJRVUU3VDBGRGNFVTdTMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRTQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRmRCUVZjc1JVRkJRU3hKUVVGRExFVkJRVUU3VVVGRFdDeHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVXNzUTBGQlJTeERRVUZCTzAxQlEzWkNMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRWxCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEY2tVc1MwRkJTeXhGUVVGRkxFTkJRVU03UVVGRFdpeEpRVUZKTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE96dEJRVVU1UXl4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRlRDeEZRVUZGTEVWQlFVVXNRMEZCUXl4dFJVRkJiVVVzUlVGQlJTeFpRVUZaT3p0SlFVVnNSaXhKUVVGSkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZETTBJc1NVRkJTU3dyUWtGQkswSXNlVUpCUVVFN1RVRkRha01zVFVGQlRTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJRenROUVVOMFFpeHBRa0ZCYVVJc1JVRkJSU3haUVVGWk8xRkJRemRDTEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRE8wOUJRM2hETzAxQlEwUXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UFFVTnVRenROUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVjBGQldTeERRVUZGTEVOQlFVRTdUMEZEY0VVN1MwRkRSaXhEUVVGRExFTkJRVU03U1VGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeEpRVUZETEVWQlFVRTdVVUZEV0N4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRmRCUVVFc1JVRkJWeXhEUVVGRExGTkJRVUVzUlVGQlV5eERRVUZETEdWQlFVRXNSVUZCWlN4RFFVRkRMR2xDUVVGcFFpeERRVUZGTEVOQlFVRTdUVUZETDBVc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMEZCUlU0c1NVRkJTU3hOUVVGTkxFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXpzN1FVRkZkRVFzUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlV3c1JVRkJSU3hGUVVGRkxFTkJRVU1zYlVWQlFXMUZMRVZCUVVVc1ZVRkJWU3hKUVVGSkxFVkJRVVU3TzBGQlJURkdMRWxCUVVrc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXpzN1NVRkZka0lzU1VGQlNTeGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRPMGxCUXpOQ0xFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNhVUpCUVdsQ0xFVkJRVVVzV1VGQldUdFJRVU0zUWl4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF6dFBRVU40UXp0TlFVTkVMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1QwRkRia003VFVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGRkJRVk1zUTBGQlFTeEZRVUZCTzFGQlEzaENMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1YwRkJRU3hGUVVGWExFTkJRVU1zVTBGQlFTeEZRVUZUTEVOQlFVTXNaVUZCUVN4RlFVRmxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVVXNRMEZCUVR0TlFVTXZSU3hEUVVGQk8wRkJRM0JDTEV0QlFVc3NRMEZCUXpzN1FVRkZUaXhKUVVGSkxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPenRKUVVWNFJDeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eFhRVUZYTEVOQlFVTTdUVUZETjBNc1RVRkJUU3hGUVVGRkxFZEJRVWM3VFVGRFdDeFhRVUZYTEVWQlFVVXNhMEpCUVd0Q08wMUJReTlDTEZsQlFWa3NSVUZCUlN4blFrRkJaMEk3UVVGRGNFTXNTMEZCU3l4RFFVRkRPenRKUVVWR0xGVkJRVlVzUTBGQlF5eFpRVUZaTzAxQlEzSkNMRTFCUVUwc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenROUVVOMFF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8wMUJRM3BDTEVsQlFVa3NSVUZCUlN4RFFVRkRPMEZCUTJJc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVldMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMRFpGUVVFMlJTeEZRVUZGTEZsQlFWazdPMGxCUlRWR0xFbEJRVWtzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTnVRaXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHROUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8wMUJRM1JDTEdsQ1FVRnBRaXhGUVVGRkxGbEJRVms3VVVGRE4wSXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU03VDBGRGVFSTdUVUZEUkN4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VVVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMDlCUTI1RE8wMUJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0UFFVTndSVHRMUVVOR0xFTkJRVU1zUTBGQlF6dEpRVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdUVUZEY2tNc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SFFVRkJMRVZCUVVjc1EwRkJReXhSUVVGVExFTkJRVUVzUlVGQlFUdFJRVU40UWl4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRmRCUVVFc1JVRkJWeXhEUVVGRExGTkJRVk1zUTBGQlJTeERRVUZCTzAxQlF6ZERMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRTFCUVUwc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVNNVFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM0pGTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZGtVc1NVRkJTU3hOUVVGTkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03TzBGQlJXcERMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMRGhHUVVFNFJpeEZRVUZGTEZsQlFWazdPMGxCUlRkSExFbEJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTnlRaXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHROUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8wMUJRM1JDTEdsQ1FVRnBRaXhGUVVGRkxGbEJRVms3VVVGRE4wSXNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdUMEZEYmtNN1RVRkRSQ3hYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJRMjVETzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJReXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlpMRU5CUVVVc1EwRkJRVHRQUVVOd1JUdExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhIUVVGQkxFVkJRVWNzUTBGQlF5eFJRVUZUTEVOQlFVRXNSVUZCUVR0UlFVTjRRaXh2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVzc1EwRkJSU3hEUVVGQkxFVkJRVUU3VVVGRGJrTXNiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4UlFVRkJMRVZCUVVFc1EwRkJSU3hEUVVGQk8wMUJRM2hDTEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenM3UVVGRmVFTXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNkVWhCUVhWSUxFVkJRVVVzV1VGQldUczdTVUZGZEVrc1NVRkJTU3hoUVVGaExFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEzWkNMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzYVVKQlFXbENMRVZCUVVVc1dVRkJXVHRSUVVNM1FpeGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFBRVU4yUXp0TlFVTkVMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1QwRkRia003VFVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGRkJRVk1zUTBGQlFTeEZRVUZCTzFGQlEzaENMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1IwRkJRU3hGUVVGSExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkZMRU5CUVVFc1JVRkJRVHRSUVVOcVF5eHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEVkQlFVRXNSVUZCUnl4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFVkJRVUVzUlVGQlJTeERRVUZETEZGQlFVRXNSVUZCUVN4RFFVRkZMRU5CUVVFc1JVRkJRVHRSUVVNdlFpeHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEVkQlFVRXNSVUZCUnl4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFVkJRVVVzUTBGQlJTeERRVUZCTzAxQlEyeENMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU4yUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRE1VTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03TzBGQlJUTkRMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMREJJUVVFd1NDeEZRVUZGTEZWQlFWVXNTVUZCU1N4RlFVRkZPenRKUVVVM1NTeEpRVUZKTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRja0lzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VFVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dE5RVU4wUWl4cFFrRkJhVUlzUlVGQlJTeFpRVUZaTzFGQlF6ZENMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETzA5QlF6VkNPMDFCUTBRc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVOdVF6dE5RVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1QwRkRjRVU3UzBGRFJpeERRVUZETEVOQlFVTTdTVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1IwRkJRU3hGUVVGSExFTkJRVU1zVVVGQlV5eERRVUZCTEVWQlFVRTdVVUZEZUVJc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhYUVVGQkxFVkJRVmNzUTBGQlF5eFRRVUZCTEVWQlFWTXNRMEZCUXl4bFFVRkJMRVZCUVdVc1EwRkJReXh6UWtGQmMwSXNRMEZCUlN4RFFVRkJPMDFCUTNCR0xFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRCUVVWT0xFbEJRVWtzVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZET3p0SlFVVXZRaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNKRkxGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRrVXNTVUZCU1N4TlFVRk5MRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wbEJSV2hETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03U1VGRGRrSXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkROME1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zVjBGQlZ5eERRVUZETzAxQlF6ZERMRTFCUVUwc1JVRkJSU3hIUVVGSE8wMUJRMWdzV1VGQldTeEZRVUZGTEd0Q1FVRnJRanROUVVOb1F5eFpRVUZaTEVWQlFVVXNhVU5CUVdsRE8wdEJRMmhFTEVOQlFVTXNRMEZCUXp0SlFVTklMRlZCUVZVc1EwRkJReXhaUVVGWk8wMUJRM0pDTEUxQlFVMHNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTXZRaXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMDFCUTNwQ0xFbEJRVWtzUlVGQlJTeERRVUZETzB0QlExSXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOV0xFZEJRVWNzUTBGQlF5eERRVUZET3p0QlFVVk1MRVZCUVVVc1JVRkJSU3hEUVVGRExHOUhRVUZ2Unl4RlFVRkZMRmxCUVZrN08wbEJSVzVJTEVsQlFVa3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOMFFpeEpRVUZKTEN0Q1FVRXJRaXg1UWtGQlFUdE5RVU5xUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzAxQlEzUkNMR2xDUVVGcFFpeEZRVUZGTEZsQlFWazdVVUZETjBJc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTTdUMEZET1VJN1RVRkRSQ3hYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJRMjVETzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJReXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlpMRU5CUVVVc1EwRkJRVHRQUVVOd1JUdExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhIUVVGQkxFVkJRVWNzUTBGQlF5eFJRVUZUTEVOQlFVRXNSVUZCUVR0UlFVTjRRaXh2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFZEJRVUVzUlVGQlJ5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVzc1EwRkJSU3hEUVVGQk8wMUJRM0pDTEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTm9ReXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNKRkxGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGREwwUXNTVUZCU1N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wRkJSWEpETEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWTUxFVkJRVVVzUTBGQlF5d3dSRUZCTUVRc1JVRkJSU3hWUVVGVkxFbEJRVWtzUlVGQlJUdEpRVU16UlN4SlFVRkpMQ3RDUVVFclFpeDVRa0ZCUVR0TlFVTnFReXhOUVVGTkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMDFCUTNSQ0xFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZITEVOQlFVVXNRMEZCUVR0UFFVTjRRenRMUVVOR0xFTkJRVU1zUTBGQlF6dEpRVU5JTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzAxQlEyaERMR1ZCUVdVc1JVRkJSU3haUVVGWk8xRkJRek5DTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03VDBGRE0wSTdUVUZEUkN4WFFVRlhMRVZCUVVVc1dVRkJXVHRSUVVOMlFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMVZCUTFvc1MwRkJTeXhGUVVGRkxFdEJRVXM3VTBGRFlpeERRVUZETEVOQlFVTTdUMEZEU2p0TlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTzFWQlEwVXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEhRVUZCTEVWQlFVY3NRMEZCUXl4UlFVRlRMRU5CUVVFc1JVRkJRVHRaUVVONFFpeHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEVkQlFVRXNSVUZCUnl4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCVFN4RFFVRkZMRU5CUVVFN1ZVRkRiRU1zUTBGQlFUdFZRVU5rTzA5QlEwZzdTMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRTQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRkZCUVZFc1JVRkJRU3hKUVVGRkxFTkJRVUU3UVVGRGFrSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0SlFVTnVRaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNKRkxGVkJRVlVzUTBGQlF5eFpRVUZaTzAxQlEzSkNMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzAxQlF6ZERMRWxCUVVrc1JVRkJSU3hEUVVGRE8wdEJRMUlzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTldMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNRMEZCUXl4clJFRkJhMFFzUlVGQlJTeFZRVUZWTEVsQlFVa3NSVUZCUlRzN1NVRkZia1VzU1VGQlNTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRPMGxCUTNSQ0xFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVjc1EwRkJSU3hEUVVGQk8wOUJRM2hETzB0QlEwWXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3c0UWtGQk9FSXNkMEpCUVVFN1RVRkRhRU1zWlVGQlpTeEZRVUZGTEZsQlFWazdVVUZETTBJc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeGhRVUZoTEVWQlFVVXNWMEZCVnl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8wOUJRM1pFTzAxQlEwUXNhVUpCUVdsQ0xFVkJRVVVzV1VGQldUdFJRVU0zUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8xVkJRMW9zVjBGQlZ5eEZRVUZGTEZsQlFWazdVMEZETVVJc1EwRkJReXhEUVVGRE8wOUJRMG83VFVGRFJDeFZRVUZWTEVWQlFVVXNXVUZCV1R0UlFVTjBRaXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMUZCUXpOQ0xGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTTdUMEZEYkVJN1RVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFJRVU5zUWp0VlFVTkZMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVU1zVTBGQlFTeEZRVUZUTEVOQlFVVXNTVUZCU1N4RFFVRkRMRlZCUVZrc1EwRkJRU3hGUVVGQk8xbEJRM0JFTEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1YwRkJRU3hGUVVGWExFTkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVNc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVUwc1EwRkJSU3hEUVVGQk8xVkJRM1pGTEVOQlFVRTdWVUZEWkR0UFFVTklPMHRCUTBZc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhSUVVGUkxFVkJRVUVzU1VGQlJTeERRVUZCTzBGQlEycENMRXRCUVVzc1EwRkJRenM3U1VGRlJpeEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF6dEpRVU42UWl4VlFVRlZMRU5CUVVNc1dVRkJXVHROUVVOeVFpeE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzAxQlF6ZENMRWxCUVVrc1JVRkJSU3hEUVVGRE8wdEJRMUlzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTldMRWRCUVVjc1EwRkJReXhEUVVGRE96dERRVVZLTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkluWmhjaUJHYjNKdGMza2dQU0J5WlhGMWFYSmxLQ2N1THk0dUwzTnlZeTl0WVdsdUxtcHpKeWs3WEc1Y2JtUmxjMk55YVdKbEtDZEZiR1Z0Wlc1MEp5d2dablZ1WTNScGIyNG9LU0I3WEc1Y2JpQWdhWFFvSjNOb2IzVnNaQ0J5WlhSMWNtNGdjR0Z6YzJWa0lHRnVaQ0J6WlhSV1lXeDFaU2dwSUhaaGJIVmxJSGRvWlc0Z2RYTnBibWNnWjJWMFZtRnNkV1VvS1Njc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQmNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lIVndaR0YwWlZaaGJIVmxPaUJtZFc1amRHbHZiaUFvWlhabGJuUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaGxkbVZ1ZEM1MFlYSm5aWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG5Wd1pHRjBaVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbVp2YjF3aUx6NWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSFpoY2lCcGJuQjFkQ0E5SUZSbGMzUlZkR2xzY3k1bWFXNWtVbVZ1WkdWeVpXUkVUMDFEYjIxd2IyNWxiblJYYVhSb1ZHRm5LR1p2Y20wc0lDZEpUbEJWVkNjcE8xeHVJQ0FnSUdWNGNHVmpkQ2hwYm5CMWRDNW5aWFJFVDAxT2IyUmxLQ2t1ZG1Gc2RXVXBMblJ2UW1Vb0oyWnZieWNwTzF4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9hVzV3ZFhRc0lIdDBZWEpuWlhRNklIdDJZV3gxWlRvZ0oyWnZiMkpoY2lkOWZTazdYRzRnSUNBZ1pYaHdaV04wS0dsdWNIVjBMbWRsZEVSUFRVNXZaR1VvS1M1MllXeDFaU2t1ZEc5Q1pTZ25abTl2WW1GeUp5azdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQnlaWFIxY200Z2RISjFaU0J2Y2lCbVlXeHpaU0IzYUdWdUlHTmhiR3hwYm1jZ2FHRnpWbUZzZFdVb0tTQmtaWEJsYm1ScGJtY2diMjRnZG1Gc2RXVWdaWGhwYzNSaGJtTmxKeXdnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUZ4dUlDQWdJSFpoY2lCeVpYTmxkQ0E5SUc1MWJHdzdYRzRnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUkVhV1JOYjNWdWREb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYTmxkQ0E5SUhSb2FYTXVjbVZ6WlhSV1lXeDFaVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0IxY0dSaGRHVldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tHVjJaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFZtRnNkV1VvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmU0J2YmtOb1lXNW5aVDE3ZEdocGN5NTFjR1JoZEdWV1lXeDFaWDB2UGx4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENoY2JpQWdJQ0FnSUR4R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBZ0lDQWdQRlJsYzNSSmJuQjFkQ0J1WVcxbFBWd2labTl2WENJZ2RtRnNkV1U5WENKbWIyOWNJaTgrWEc0Z0lDQWdJQ0E4TDBadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNrN1hHNWNiaUFnSUNCMllYSWdhVzV3ZFhRZ1BTQlVaWE4wVlhScGJITXVabWx1WkZKbGJtUmxjbVZrUkU5TlEyOXRjRzl1Wlc1MFYybDBhRlJoWnlobWIzSnRMQ0FuU1U1UVZWUW5LVHRjYmlBZ0lDQnlaWE5sZENncE8xeHVJQ0FnSUdWNGNHVmpkQ2hwYm5CMWRDNW5aWFJFVDAxT2IyUmxLQ2t1ZG1Gc2RXVXBMblJ2UW1Vb0p5Y3BPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2R6YUc5MWJHUWdjbVYwZFhKdUlHVnljbTl5SUcxbGMzTmhaMlVnY0dGemMyVmtJSGRvWlc0Z1kyRnNiR2x1WnlCblpYUkZjbkp2Y2sxbGMzTmhaMlVvS1Njc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQmNiaUFnSUNCMllYSWdaMlYwUlhKeWIzSk5aWE56WVdkbElEMGdiblZzYkR0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUdOdmJYQnZibVZ1ZEVScFpFMXZkVzUwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2RsZEVWeWNtOXlUV1Z6YzJGblpTQTlJSFJvYVhNdVoyVjBSWEp5YjNKTlpYTnpZV2RsTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhWd1pHRjBaVlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNobGRtVnVkQzUwWVhKblpYUXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMblZ3WkdGMFpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0ptYjI5Y0lpQjJZV3gxWlQxY0ltWnZiMXdpSUhaaGJHbGtZWFJwYjI1elBWd2lhWE5GYldGcGJGd2lJSFpoYkdsa1lYUnBiMjVGY25KdmNqMWNJa2hoY3lCMGJ5QmlaU0JsYldGcGJGd2lMejVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdWNGNHVmpkQ2huWlhSRmNuSnZjazFsYzNOaFoyVW9LU2t1ZEc5Q1pTZ25TR0Z6SUhSdklHSmxJR1Z0WVdsc0p5azdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQnlaWFIxY200Z2MyVnlkbVZ5SUdWeWNtOXlJRzFsYzNOaFoyVWdkMmhsYmlCallXeHNhVzVuSUdkbGRFVnljbTl5VFdWemMyRm5aU2dwSnl3Z1puVnVZM1JwYjI0Z0tHUnZibVVwSUh0Y2JpQWdJQ0JjYmlBZ0lDQnFZWE50YVc1bExrRnFZWGd1YVc1emRHRnNiQ2dwTzF4dVhHNGdJQ0FnZG1GeUlHZGxkRVZ5Y205eVRXVnpjMkZuWlNBOUlHNTFiR3c3WEc0Z0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lHMXBlR2x1Y3pvZ1cwWnZjbTF6ZVM1TmFYaHBibDBzWEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblJFYVdSTmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQm5aWFJGY25KdmNrMWxjM05oWjJVZ1BTQjBhR2x6TG1kbGRFVnljbTl5VFdWemMyRm5aVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0IxY0dSaGRHVldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tHVjJaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFZtRnNkV1VvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmU0J2YmtOb1lXNW5aVDE3ZEdocGN5NTFjR1JoZEdWV1lXeDFaWDB2UGx4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENoY2JpQWdJQ0FnSUR4R2IzSnRjM2t1Um05eWJTQjFjbXc5WENJdmRYTmxjbk5jSWo1Y2JpQWdJQ0FnSUNBZ1BGUmxjM1JKYm5CMWRDQnVZVzFsUFZ3aVptOXZYQ0lnZG1Gc2RXVTlYQ0ptYjI5Y0lpQjJZV3hwWkdGMGFXOXVjejFjSW1selJXMWhhV3hjSWlCMllXeHBaR0YwYVc5dVJYSnliM0k5WENKSVlYTWdkRzhnWW1VZ1pXMWhhV3hjSWk4K1hHNGdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDazdYRzVjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1WEc0Z0lDQWdhbUZ6YldsdVpTNUJhbUY0TG5KbGNYVmxjM1J6TG0xdmMzUlNaV05sYm5Rb0tTNXlaWE53YjI1a1YybDBhQ2g3WEc0Z0lDQWdJQ0J6ZEdGMGRYTTZJRFV3TUN4Y2JpQWdJQ0FnSUdOdmJuUmxiblJVZVhCbE9pQW5ZWEJ3YkdsallYUnBiMjR2YW5OdmJpY3NYRzRnSUNBZ0lDQnlaWE53YjI1elpWUmxlSFE2SUNkN1hDSm1iMjljSWpvZ1hDSmlZWEpjSW4wblhHNGdJQ0FnZlNsY2JseHVJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdaWGh3WldOMEtHZGxkRVZ5Y205eVRXVnpjMkZuWlNncEtTNTBiMEpsS0NkaVlYSW5LVHRjYmlBZ0lDQWdJR3BoYzIxcGJtVXVRV3BoZUM1MWJtbHVjM1JoYkd3b0tUdGNiaUFnSUNBZ0lHUnZibVVvS1R0Y2JpQWdJQ0I5TENBd0tUdGNibHh1SUNCOUtUdGNibHh1SUNCcGRDZ25jMmh2ZFd4a0lISmxkSFZ5YmlCMGNuVmxJRzl5SUdaaGJITmxJSGRvWlc0Z1kyRnNiR2x1WnlCcGMxWmhiR2xrS0NrZ1pHVndaVzVrYVc1bklHOXVJSFpoYkdsa0lITjBZWFJsSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lGeHVJQ0FnSUhaaGNpQnBjMVpoYkdsa0lEMGdiblZzYkR0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUdOdmJYQnZibVZ1ZEVScFpFMXZkVzUwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2x6Vm1Gc2FXUWdQU0IwYUdsekxtbHpWbUZzYVdRN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2RYQmtZWFJsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtHVjJaVzUwTG5SaGNtZGxkQzUyWVd4MVpTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUE4YVc1d2RYUWdkbUZzZFdVOWUzUm9hWE11WjJWMFZtRnNkV1VvS1gwZ2IyNURhR0Z1WjJVOWUzUm9hWE11ZFhCa1lYUmxWbUZzZFdWOUx6NWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNiaUFnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9YRzRnSUNBZ0lDQThSbTl5YlhONUxrWnZjbTBnZFhKc1BWd2lMM1Z6WlhKelhDSStYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJbVp2YjF3aUlIWmhiSFZsUFZ3aVptOXZYQ0lnZG1Gc2FXUmhkR2x2Ym5NOVhDSnBjMFZ0WVdsc1hDSXZQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWlhod1pXTjBLR2x6Vm1Gc2FXUW9LU2t1ZEc5Q1pTaG1ZV3h6WlNrN1hHNGdJQ0FnZG1GeUlHbHVjSFYwSUQwZ1ZHVnpkRlYwYVd4ekxtWnBibVJTWlc1a1pYSmxaRVJQVFVOdmJYQnZibVZ1ZEZkcGRHaFVZV2NvWm05eWJTd2dKMGxPVUZWVUp5azdYRzRnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExtTm9ZVzVuWlNocGJuQjFkQ3dnZTNSaGNtZGxkRG9nZTNaaGJIVmxPaUFuWm05dlFHWnZieTVqYjIwbmZYMHBPMXh1SUNBZ0lHVjRjR1ZqZENocGMxWmhiR2xrS0NrcExuUnZRbVVvZEhKMVpTazdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQnlaWFIxY200Z2RISjFaU0J2Y2lCbVlXeHpaU0IzYUdWdUlHTmhiR3hwYm1jZ2FYTlNaWEYxYVhKbFpDZ3BJR1JsY0dWdVpHbHVaeUJ2YmlCd1lYTnpaV1FnY21WeGRXbHlaV1FnWVhSMGNtbGlkWFJsSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lGeHVJQ0FnSUhaaGNpQnBjMUpsY1hWcGNtVmtjeUE5SUZ0ZE8xeHVJQ0FnSUhaaGNpQlVaWE4wU1c1d2RYUWdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ1kyOXRjRzl1Wlc1MFJHbGtUVzkxYm5RNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnYVhOU1pYRjFhWEpsWkhNdWNIVnphQ2gwYUdsekxtbHpVbVZ4ZFdseVpXUXBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSFZ3WkdGMFpWWmhiSFZsT2lCbWRXNWpkR2x2YmlBb1pYWmxiblFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxuVndaR0YwWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElIVnliRDFjSWk5MWMyVnljMXdpUGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbVp2YjF3aUx6NWNiaUFnSUNBZ0lDQWdQRlJsYzNSSmJuQjFkQ0J1WVcxbFBWd2labTl2WENJZ2RtRnNkV1U5WENKbWIyOWNJaUJ5WlhGMWFYSmxaQzgrWEc0Z0lDQWdJQ0E4TDBadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNrN1hHNWNiaUFnSUNCbGVIQmxZM1FvYVhOU1pYRjFhWEpsWkhOYk1GMG9LU2t1ZEc5Q1pTaG1ZV3h6WlNrN1hHNGdJQ0FnWlhod1pXTjBLR2x6VW1WeGRXbHlaV1J6V3pGZEtDa3BMblJ2UW1Vb2RISjFaU2s3WEc1Y2JpQWdmU2s3WEc1Y2JpQWdhWFFvSjNOb2IzVnNaQ0J5WlhSMWNtNGdkSEoxWlNCdmNpQm1ZV3h6WlNCM2FHVnVJR05oYkd4cGJtY2djMmh2ZDFKbGNYVnBjbVZrS0NrZ1pHVndaVzVrYVc1bklHOXVJR2x1Y0hWMElHSmxhVzVuSUdWdGNIUjVJR0Z1WkNCeVpYRjFhWEpsWkNCcGN5QndZWE56WldRc0lHOXlJRzV2ZENjc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQmNiaUFnSUNCMllYSWdjMmh2ZDFKbGNYVnBjbVZrY3lBOUlGdGRPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdZMjl0Y0c5dVpXNTBSR2xrVFc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2MyaHZkMUpsY1hWcGNtVmtjeTV3ZFhOb0tIUm9hWE11YzJodmQxSmxjWFZwY21Wa0tUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQjFjR1JoZEdWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUR4cGJuQjFkQ0IyWVd4MVpUMTdkR2hwY3k1blpYUldZV3gxWlNncGZTQnZia05vWVc1blpUMTdkR2hwY3k1MWNHUmhkR1ZXWVd4MVpYMHZQbHh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2hjYmlBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCMWNtdzlYQ0l2ZFhObGNuTmNJajVjYmlBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpUVZ3aUlIWmhiSFZsUFZ3aVptOXZYQ0l2UGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKQ1hDSWdkbUZzZFdVOVhDSmNJaUJ5WlhGMWFYSmxaQzgrWEc0Z0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSWtOY0lpQjJZV3gxWlQxY0lsd2lMejVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdWNGNHVmpkQ2h6YUc5M1VtVnhkV2x5WldSeld6QmRLQ2twTG5SdlFtVW9abUZzYzJVcE8xeHVJQ0FnSUdWNGNHVmpkQ2h6YUc5M1VtVnhkV2x5WldSeld6RmRLQ2twTG5SdlFtVW9kSEoxWlNrN1hHNGdJQ0FnWlhod1pXTjBLSE5vYjNkU1pYRjFhWEpsWkhOYk1sMG9LU2t1ZEc5Q1pTaG1ZV3h6WlNrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCeVpYUjFjbTRnZEhKMVpTQnZjaUJtWVd4elpTQjNhR1Z1SUdOaGJHeHBibWNnYzJodmQwVnljbTl5S0NrZ1pHVndaVzVrYVc1bklHOXVJSFpoYkhWbElHbHpJR2x1ZG1Gc2FXUWdiM0lnWVNCelpYSjJaWElnWlhKeWIzSWdhR0Z6SUdGeWNtbDJaV1FzSUc5eUlHNXZkQ2NzSUdaMWJtTjBhVzl1SUNoa2IyNWxLU0I3WEc1Y2JpQWdJQ0IyWVhJZ2MyaHZkMFZ5Y205eUlEMGdiblZzYkR0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUdOdmJYQnZibVZ1ZEVScFpFMXZkVzUwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSE5vYjNkRmNuSnZjaUE5SUhSb2FYTXVjMmh2ZDBWeWNtOXlPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSFZ3WkdGMFpWWmhiSFZsT2lCbWRXNWpkR2x2YmlBb1pYWmxiblFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxuVndaR0YwWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElIVnliRDFjSWk5MWMyVnljMXdpUGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbVp2YjF3aUlIWmhiR2xrWVhScGIyNXpQVndpYVhORmJXRnBiRndpSUhaaGJHbGtZWFJwYjI1RmNuSnZjajFjSWxSb2FYTWdhWE1nYm05MElHRnVJR1Z0WVdsc1hDSXZQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWlhod1pXTjBLSE5vYjNkRmNuSnZjaWdwS1M1MGIwSmxLSFJ5ZFdVcE8xeHVYRzRnSUNBZ2RtRnlJR2x1Y0hWMElEMGdWR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVSUFRVTnZiWEJ2Ym1WdWRGZHBkR2hVWVdjb1ptOXliU3dnSjBsT1VGVlVKeWs3WEc0Z0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaHBibkIxZEN3Z2UzUmhjbWRsZERvZ2UzWmhiSFZsT2lBblptOXZRR1p2Ynk1amIyMG5mWDBwTzF4dUlDQWdJR1Y0Y0dWamRDaHphRzkzUlhKeWIzSW9LU2t1ZEc5Q1pTaG1ZV3h6WlNrN1hHNWNiaUFnSUNCcVlYTnRhVzVsTGtGcVlYZ3VhVzV6ZEdGc2JDZ3BPMXh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE95QWdJQ0JjYmlBZ0lDQnFZWE50YVc1bExrRnFZWGd1Y21WeGRXVnpkSE11Ylc5emRGSmxZMlZ1ZENncExuSmxjM0J2Ym1SWGFYUm9LSHRjYmlBZ0lDQWdJSE4wWVhSMWN6b2dOVEF3TEZ4dUlDQWdJQ0FnY21WemNHOXVjMlZVZVhCbE9pQW5ZWEJ3YkdsallYUnBiMjR2YW5OdmJpY3NYRzRnSUNBZ0lDQnlaWE53YjI1elpWUmxlSFE2SUNkN1hDSm1iMjljSWpvZ1hDSkZiV0ZwYkNCaGJISmxZV1I1SUdWNGFYTjBjMXdpZlNkY2JpQWdJQ0I5S1R0Y2JpQWdJQ0J6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lHVjRjR1ZqZENoemFHOTNSWEp5YjNJb0tTa3VkRzlDWlNoMGNuVmxLVHRjYmlBZ0lDQWdJR3BoYzIxcGJtVXVRV3BoZUM1MWJtbHVjM1JoYkd3b0tUdGNiaUFnSUNBZ0lHUnZibVVvS1R0Y2JpQWdJQ0I5TENBd0tUdGNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCeVpYUjFjbTRnZEhKMVpTQnZjaUJtWVd4elpTQjNhR1Z1SUdOaGJHeHBibWNnYVhOUWNtVnpkR2x1WlNncElHUmxjR1Z1WkdsdVp5QnZiaUJwYm5CMWRDQm9ZWE1nWW1WbGJpQmNJblJ2ZFdOb1pXUmNJaUJ2Y2lCdWIzUW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnWEc0Z0lDQWdkbUZ5SUdselVISnBjM1JwYm1VZ1BTQnVkV3hzTzF4dUlDQWdJSFpoY2lCVVpYTjBTVzV3ZFhRZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQnRhWGhwYm5NNklGdEdiM0p0YzNrdVRXbDRhVzVkTEZ4dUlDQWdJQ0FnWTI5dGNHOXVaVzUwUkdsa1RXOTFiblE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdhWE5RY21semRHbHVaU0E5SUhSb2FYTXVhWE5RY21semRHbHVaVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0IxY0dSaGRHVldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tHVjJaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFZtRnNkV1VvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmU0J2YmtOb1lXNW5aVDE3ZEdocGN5NTFjR1JoZEdWV1lXeDFaWDB2UGx4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENoY2JpQWdJQ0FnSUR4R2IzSnRjM2t1Um05eWJTQjFjbXc5WENJdmRYTmxjbk5jSWo1Y2JpQWdJQ0FnSUNBZ1BGUmxjM1JKYm5CMWRDQnVZVzFsUFZ3aVFWd2lJSFpoYkhWbFBWd2labTl2WENJdlBseHVJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdaWGh3WldOMEtHbHpVSEpwYzNScGJtVW9LU2t1ZEc5Q1pTaDBjblZsS1R0Y2JpQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtSRTlOUTI5dGNHOXVaVzUwVjJsMGFGUmhaeWhtYjNKdExDQW5TVTVRVlZRbktUdGNiaUFnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdVkyaGhibWRsS0dsdWNIVjBMQ0I3ZEdGeVoyVjBPaUI3ZG1Gc2RXVTZJQ2RtYjI4bmZYMHBPMXh1SUNBZ0lHVjRjR1ZqZENocGMxQnlhWE4wYVc1bEtDa3BMblJ2UW1Vb1ptRnNjMlVwTzF4dUlDQWdJRnh1SUNCOUtUdGNibHh1YVhRb0ozTm9iM1ZzWkNCaGJHeHZkeUJoYmlCMWJtUmxabWx1WldRZ2RtRnNkV1VnZEc4Z1ltVWdkWEJrWVhSbFpDQjBieUJoSUhaaGJIVmxKeXdnWm5WdVkzUnBiMjRnS0dSdmJtVXBJSHRjYmlBZ0lDQjJZWElnVkdWemRFbHVjSFYwSUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ2JXbDRhVzV6T2lCYlJtOXliWE41TGsxcGVHbHVYU3hjYmlBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUx6NWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNiaUFnSUNCMllYSWdWR1Z6ZEVadmNtMGdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0JuWlhSSmJtbDBhV0ZzVTNSaGRHVTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUh0MllXeDFaVG9nZFc1a1pXWnBibVZrZlR0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCamFHRnVaMlZXWVd4MVpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nSjJadmJ5ZGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBb1hHNGdJQ0FnSUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUhWeWJEMWNJaTkxYzJWeWMxd2lQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BGUmxjM1JKYm5CMWRDQnVZVzFsUFZ3aVFWd2lJSFpoYkhWbFBYdDBhR2x6TG5OMFlYUmxMblpoYkhWbGZTOCtYRzRnSUNBZ0lDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvWEc0Z0lDQWdJQ0E4VkdWemRFWnZjbTB2UGx4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JtYjNKdExtTm9ZVzVuWlZaaGJIVmxLQ2s3WEc0Z0lDQWdkbUZ5SUdsdWNIVjBJRDBnVkdWemRGVjBhV3h6TG1acGJtUlNaVzVrWlhKbFpFUlBUVU52YlhCdmJtVnVkRmRwZEdoVVlXY29abTl5YlN3Z0owbE9VRlZVSnlrN1hHNGdJQ0FnYzJWMFZHbHRaVzkxZENobWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQmxlSEJsWTNRb2FXNXdkWFF1WjJWMFJFOU5UbTlrWlNncExuWmhiSFZsS1M1MGIwSmxLQ2RtYjI4bktUdGNiaUFnSUNBZ0lHUnZibVVvS1R0Y2JpQWdJQ0I5TENBd0tUdGNiaUFnZlNrN0lDQmNibHh1YVhRb0ozTm9iM1ZzWkNCaVpTQmhZbXhsSUhSdklHUjVibUZ0YVdOaGJHeDVJR05vWVc1blpTQjJZV3hwWkdGMGFXOXVjeWNzSUdaMWJtTjBhVzl1SUNoa2IyNWxLU0I3WEc1Y2JpQWdJQ0IyWVhJZ2FYTkpiblpoYkdsa0lEMGdabUZzYzJVN1hHNGdJQ0FnZG1GeUlGUmxjM1JKYm5CMWRDQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJRzFwZUdsdWN6b2dXMFp2Y20xemVTNU5hWGhwYmwwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUZSbGMzUkdiM0p0SUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ1oyVjBTVzVwZEdsaGJGTjBZWFJsT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdkbUZzZFdVNklDZG1iMjlBWW1GeUxtTnZiU2NzSUhaaGJHbGtZWFJwYjI1ek9pQW5hWE5GYldGcGJDZDlPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR05vWVc1blpWWmhiR2xrWVhScGIyNXpPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNBZ0lIWmhiR2xrWVhScGIyNXpPaUFuWlhGMVlXeHpPbVp2YnlkY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjMlYwU1c1MllXeHBaRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExteHZaeWduVW5WdWJtbHVaeUJwZENFbktUdGNiaUFnSUNBZ0lDQWdhWE5KYm5aaGJHbGtJRDBnZEhKMVpUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnSUNBOFJtOXliWE41TGtadmNtMGdkWEpzUFZ3aUwzVnpaWEp6WENJZ2IyNUpiblpoYkdsa1BYdDBhR2x6TG5ObGRFbHVkbUZzYVdSOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpUVZ3aUlIWmhiR2xrWVhScGIyNXpQWHQwYUdsekxuTjBZWFJsTG5aaGJHbGtZWFJwYjI1emZTQjJZV3gxWlQxN2RHaHBjeTV6ZEdGMFpTNTJZV3gxWlgwdlBseHVJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRlJsYzNSR2IzSnRMejVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdabTl5YlM1amFHRnVaMlZXWVd4cFpHRjBhVzl1Y3lncE8xeHVJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdaWGh3WldOMEtHbHpTVzUyWVd4cFpDa3VkRzlDWlNoMGNuVmxLVHRjYmlBZ0lDQWdJR1J2Ym1Vb0tUdGNiaUFnSUNCOUxDQXdLVHRjYmlBZ2ZTazdJQ0JjYmx4dWZTazdYRzRpWFgwPSIsInZhciBGb3Jtc3kgPSByZXF1aXJlKCcuLy4uL3NyYy9tYWluLmpzJyk7XG5cbmRlc2NyaWJlKCdGb3Jtc3knLCBmdW5jdGlvbiAoKSB7XG5cbiAgZGVzY3JpYmUoJ1NldHRpbmcgdXAgYSBmb3JtJywgZnVuY3Rpb24gKCkge1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgYSBmb3JtIGludG8gdGhlIGRvY3VtZW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsKSk7XG4gICAgICBleHBlY3QoZm9ybS5nZXRET01Ob2RlKCkudGFnTmFtZSkudG9FcXVhbCgnRk9STScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzZXQgYSBjbGFzcyBuYW1lIGlmIHBhc3NlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge2NsYXNzTmFtZTogXCJmb29cIn0pKTtcbiAgICAgIGV4cGVjdChmb3JtLmdldERPTU5vZGUoKS5jbGFzc05hbWUpLnRvRXF1YWwoJ2ZvbycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBmb3IgbnVsbC91bmRlZmluZWQgY2hpbGRyZW4nLCBmdW5jdGlvbiAoZG9uZSkge1xuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgY2hhbmdlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMuY2hhbmdlVmFsdWV9KVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdmFyIG1vZGVsID0gbnVsbDtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBvblN1Ym1pdDogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgICAgICAgIG1vZGVsID0gZm9ybU1vZGVsO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uU3VibWl0OiAgdGhpcy5vblN1Ym1pdH0sIFxuICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwgbnVsbCwgXCJUZXN0XCIpLCBcbiAgICAgICAgICAgICAgIG51bGwsIFxuICAgICAgICAgICAgICAgdW5kZWZpbmVkLCBcbiAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIm5hbWVcIiwgdmFsdWU6ICAnZm9vJyB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkpO1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgICAgICBleHBlY3QobW9kZWwpLnRvRXF1YWwoe25hbWU6ICdmb28nfSk7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgZm9yIGlucHV0cyBiZWluZyBhZGRlZCBkeW5hbWljYWxseScsIGZ1bmN0aW9uIChkb25lKSB7XG5cbiAgICAgIHZhciBpbnB1dHMgPSBbXTtcbiAgICAgIHZhciBmb3JjZVVwZGF0ZSA9IG51bGw7XG4gICAgICB2YXIgbW9kZWwgPSBudWxsO1xuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbClcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZm9yY2VVcGRhdGUgPSB0aGlzLmZvcmNlVXBkYXRlLmJpbmQodGhpcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgICAgICAgbW9kZWwgPSBmb3JtTW9kZWw7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiAoIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uU3VibWl0OiB0aGlzLm9uU3VibWl0fSwgXG4gICAgICAgICAgICAgIGlucHV0c1xuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkgXG4gICAgICApO1xuXG4gICAgICAvLyBXYWl0IGJlZm9yZSBhZGRpbmcgdGhlIGlucHV0XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblxuICAgICAgICBpbnB1dHMucHVzaChUZXN0SW5wdXQoe1xuICAgICAgICAgIG5hbWU6ICd0ZXN0J1xuICAgICAgICB9KSk7XG5cbiAgICAgICAgZm9yY2VVcGRhdGUoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgLy8gV2FpdCBmb3IgbmV4dCBldmVudCBsb29wLCBhcyB0aGF0IGRvZXMgdGhlIGZvcm1cbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgICAgICAgICAgZXhwZWN0KG1vZGVsLnRlc3QpLnRvQmVEZWZpbmVkKCk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgfSk7XG5cbiAgICAgIH0sIDEwKTtcblxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBkeW5hbWljYWxseSBhZGRlZCBpbnB1dHMgdG8gdXBkYXRlIHRoZSBmb3JtLW1vZGVsJywgZnVuY3Rpb24gKGRvbmUpIHtcblxuICAgICAgdmFyIGlucHV0cyA9IFtdO1xuICAgICAgdmFyIGZvcmNlVXBkYXRlID0gbnVsbDtcbiAgICAgIHZhciBtb2RlbCA9IG51bGw7XG4gICAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgICBjaGFuZ2VWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy5jaGFuZ2VWYWx1ZX0pXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICAgIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZvcmNlVXBkYXRlID0gdGhpcy5mb3JjZVVwZGF0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB9LFxuICAgICAgICBvblN1Ym1pdDogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgICAgICAgIG1vZGVsID0gZm9ybU1vZGVsO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblN1Ym1pdDogdGhpcy5vblN1Ym1pdH0sIFxuICAgICAgICAgICAgICBpbnB1dHNcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpIFxuICAgICAgKTtcblxuICAgICAgLy8gV2FpdCBiZWZvcmUgYWRkaW5nIHRoZSBpbnB1dFxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgaW5wdXRzLnB1c2goVGVzdElucHV0KHtcbiAgICAgICAgICBuYW1lOiAndGVzdCdcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGZvcmNlVXBkYXRlKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgIC8vIFdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcCwgYXMgdGhhdCBkb2VzIHRoZSBmb3JtXG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpLCB7dGFyZ2V0OiB7dmFsdWU6ICdmb28nfX0pO1xuICAgICAgICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG4gICAgICAgICAgICBleHBlY3QobW9kZWwudGVzdCkudG9CZSgnZm9vJyk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgfSk7XG5cbiAgICAgIH0sIDEwKTtcblxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBhIGR5bmFtaWNhbGx5IHVwZGF0ZWQgaW5wdXQgdG8gdXBkYXRlIHRoZSBmb3JtLW1vZGVsJywgZnVuY3Rpb24gKGRvbmUpIHtcblxuICAgICAgdmFyIGZvcmNlVXBkYXRlID0gbnVsbDtcbiAgICAgIHZhciBtb2RlbCA9IG51bGw7XG4gICAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgICBjaGFuZ2VWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy5jaGFuZ2VWYWx1ZX0pXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB2YXIgaW5wdXQ7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZm9yY2VVcGRhdGUgPSB0aGlzLmZvcmNlVXBkYXRlLmJpbmQodGhpcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgICAgICAgbW9kZWwgPSBmb3JtTW9kZWw7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlucHV0ID0gUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcInRlc3RcIiwgdmFsdWU6ICB0aGlzLnByb3BzLnZhbHVlfSk7XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uU3VibWl0OiB0aGlzLm9uU3VibWl0fSwgXG4gICAgICAgICAgICAgIGlucHV0XG4gICAgICAgICAgICApKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwge3ZhbHVlOiBcImZvb1wifSkpO1xuXG4gICAgICAvLyBXYWl0IGJlZm9yZSBjaGFuZ2luZyB0aGUgaW5wdXRcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3JtLnNldFByb3BzKHt2YWx1ZTogJ2Jhcid9KTtcblxuICAgICAgICBmb3JjZVVwZGF0ZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2FpdCBmb3IgbmV4dCBldmVudCBsb29wLCBhcyB0aGF0IGRvZXMgdGhlIGZvcm1cbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgICAgICAgICAgZXhwZWN0KG1vZGVsLnRlc3QpLnRvQmUoJ2JhcicpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgIH0pO1xuXG4gICAgICB9LCAxMCk7XG5cbiAgICB9KTtcblxuXG4gICAgaXQoJ3Nob3VsZCBpbnZhbGlkYXRlIGEgdmFsaWQgZm9ybSBpZiBkeW5hbWljYWxseSBpbnNlcnRlZCBpbnB1dCBpcyBpbnZhbGlkJywgZnVuY3Rpb24gKGRvbmUpIHtcblxuICAgICAgdmFyIGZvcmNlVXBkYXRlID0gbnVsbDtcbiAgICAgIHZhciBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgIGNoYW5nZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLmNoYW5nZVZhbHVlfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG5cblxuICAgICAgdmFyIGlucHV0cyA9IFtUZXN0SW5wdXQoe1xuICAgICAgICBuYW1lOiAndGVzdCcsXG4gICAgICAgIHZhbGlkYXRpb25zOiAnaXNFbWFpbCcsXG4gICAgICAgIHZhbHVlOiAnZm9vQGJhci5jb20nXG4gICAgICB9KV07XG5cbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmb3JjZVVwZGF0ZSA9IHRoaXMuZm9yY2VVcGRhdGUuYmluZCh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SW52YWxpZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiAoIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uSW52YWxpZDogdGhpcy5zZXRJbnZhbGlkfSwgXG4gICAgICAgICAgICAgIGlucHV0c1xuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkgXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoaXNJbnZhbGlkKS50b0JlKGZhbHNlKTtcblxuICAgICAgaW5wdXRzLnB1c2goVGVzdElucHV0KHtcbiAgICAgICAgbmFtZTogJ3Rlc3QyJyxcbiAgICAgICAgdmFsaWRhdGlvbnM6ICdpc0VtYWlsJyxcbiAgICAgICAgdmFsdWU6ICdmb29AYmFyJ1xuICAgICAgfSkpO1xuXG5cbiAgICAgIGZvcmNlVXBkYXRlKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAvLyBXYWl0IGZvciBuZXh0IGV2ZW50IGxvb3AsIGFzIHRoYXQgZG9lcyB0aGUgZm9ybVxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICAgICAgICBleHBlY3QoaXNJbnZhbGlkKS50b0JlKHRydWUpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgIH0pO1xuXG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCB0cmlnZ2VyIG9uQ2hhbmdlIHdoZW4gZm9ybSBpcyBtb3VudGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGhhc0NoYW5nZWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnb25DaGFuZ2UnKTtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGhhc0NoYW5nZWQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkNoYW5nZTogdGhpcy5vbkNoYW5nZX0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKSk7XG4gICAgICBleHBlY3QoaGFzQ2hhbmdlZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdHJpZ2dlciBvbkNoYW5nZSB3aGVuIGZvcm0gZWxlbWVudCBpcyBjaGFuZ2VkJywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGhhc0NoYW5nZWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnb25DaGFuZ2UnKTtcbiAgICAgIHZhciBNeUlucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIk15SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2V9KVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGhhc0NoYW5nZWQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkNoYW5nZTogdGhpcy5vbkNoYW5nZX0sIFxuICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE15SW5wdXQsIHtuYW1lOiBcImZvb1wifSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKSk7XG4gICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpLCB7dGFyZ2V0OiB7dmFsdWU6ICdiYXInfX0pO1xuICAgICAgZXhwZWN0KGhhc0NoYW5nZWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdHJpZ2dlciBvbkNoYW5nZSB3aGVuIG5ldyBpbnB1dCBpcyBhZGRlZCB0byBmb3JtJywgZnVuY3Rpb24gKGRvbmUpIHtcbiAgICAgIHZhciBoYXNDaGFuZ2VkID0gamFzbWluZS5jcmVhdGVTcHkoJ29uQ2hhbmdlJyk7XG4gICAgICB2YXIgaW5wdXRzID0gW107XG4gICAgICB2YXIgZm9yY2VVcGRhdGUgPSBudWxsO1xuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgY2hhbmdlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMuY2hhbmdlVmFsdWV9KVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmb3JjZVVwZGF0ZSA9IHRoaXMuZm9yY2VVcGRhdGUuYmluZCh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBoYXNDaGFuZ2VkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiAoIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlfSwgXG4gICAgICAgICAgICAgIGlucHV0c1xuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkgXG4gICAgICApO1xuXG4gICAgICAvLyBXYWl0IGJlZm9yZSBhZGRpbmcgdGhlIGlucHV0XG4gICAgICBpbnB1dHMucHVzaChUZXN0SW5wdXQoe1xuICAgICAgICBuYW1lOiAndGVzdCdcbiAgICAgIH0pKTtcblxuICAgICAgZm9yY2VVcGRhdGUoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgIC8vIFdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcCwgYXMgdGhhdCBkb2VzIHRoZSBmb3JtXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGV4cGVjdChoYXNDaGFuZ2VkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgfSk7XG5cbiAgICB9KTtcblxuICB9KTtcblxuICBkZXNjcmliZSgnVXBkYXRlIGEgZm9ybScsIGZ1bmN0aW9uICgpIHtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgZWxlbWVudHMgdG8gY2hlY2sgaWYgdGhlIGZvcm0gaXMgZGlzYWJsZWQnLCBmdW5jdGlvbiAoZG9uZSkge1xuXG4gICAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHtkaXNhYmxlZDogdHJ1ZX07XG4gICAgICAgIH0sXG4gICAgICAgIGVuYWJsZUZvcm06IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSwgZGlzYWJsZWQ6IHRoaXMuc3RhdGUuZGlzYWJsZWR9LCBcbiAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wifSlcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpIFxuICAgICAgKTtcblxuICAgICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZENvbXBvbmVudFdpdGhUeXBlKGZvcm0sIFRlc3RJbnB1dCk7XG4gICAgICBleHBlY3QoaW5wdXQuaXNGb3JtRGlzYWJsZWQoKSkudG9CZSh0cnVlKTtcbiAgICAgIGZvcm0uZW5hYmxlRm9ybSgpO1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGV4cGVjdChpbnB1dC5pc0Zvcm1EaXNhYmxlZCgpKS50b0JlKGZhbHNlKTtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSwgMCk7XG5cbiAgICB9KTtcblxuICB9KTtcblxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y0dWamN5OUdiM0p0YzNrdGMzQmxZeTVxY3lJc0luTnZkWEpqWlhNaU9sc2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNHVmpjeTlHYjNKdGMza3RjM0JsWXk1cWN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hKUVVGSkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6czdRVUZGZWtNc1VVRkJVU3hEUVVGRExGRkJRVkVzUlVGQlJTeFpRVUZaT3p0QlFVVXZRaXhGUVVGRkxGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1JVRkJSU3haUVVGWk96dEpRVVY0UXl4RlFVRkZMRU5CUVVNc2QwTkJRWGRETEVWQlFVVXNXVUZCV1R0TlFVTjJSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzYjBKQlFVTXNWMEZCVnl4RlFVRkJMRWxCUVdVc1EwRkJRU3hEUVVGRExFTkJRVU03VFVGRGRFVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGVFUXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wbEJSVWdzUlVGQlJTeERRVUZETEcxRFFVRnRReXhGUVVGRkxGbEJRVms3VFVGRGJFUXNTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNVMEZCUVN4RlFVRlRMRU5CUVVNc1MwRkJUU3hEUVVGakxFTkJRVUVzUTBGQlF5eERRVUZETzAxQlEzUkdMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzcEVMRXRCUVVzc1EwRkJReXhEUVVGRE96dEpRVVZJTEVWQlFVVXNRMEZCUXl3d1EwRkJNRU1zUlVGQlJTeFZRVUZWTEVsQlFVa3NSVUZCUlR0TlFVTTNSQ3hKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHRSUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM1JDTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRWUVVNMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVMEZEYmtNN1VVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFZRVU5zUWl4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZETEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVVc1NVRkJTU3hEUVVGRExGZEJRVmtzUTBGQlJTeERRVUZCTzFOQlEzQkZPMEZCUTFRc1QwRkJUeXhEUVVGRExFTkJRVU03TzAxQlJVZ3NTVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRE8wMUJRMnBDTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMRkZCUVZFc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdFZRVU0zUWl4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRE8xTkJRMjVDTzFGQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1ZVRkRiRUk3V1VGRFJTeHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJSeXhEUVVGQkxFVkJRVUU3WTBGRGRFTXNiMEpCUVVFc1NVRkJSeXhGUVVGQkxFbEJRVU1zUlVGQlFTeE5RVUZUTEVOQlFVRXNSVUZCUVR0alFVTmFMRU5CUVVNc1NVRkJTU3hGUVVGQkxFTkJRVVU3WTBGRFVDeERRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkZPMk5CUTJJc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhOUVVGQkxFVkJRVTBzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4RFFVRkRMRTFCUVU4c1EwRkJRU3hEUVVGSExFTkJRVUU3V1VGRE4wSXNRMEZCUVR0WlFVTmtPMU5CUTBnN1FVRkRWQ3hQUVVGUExFTkJRVU1zUTBGQlF6czdUVUZGU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVsQlFVVXNRMEZCUVN4RFFVRkRMRU5CUVVNN1RVRkRja1FzVlVGQlZTeERRVUZETEZsQlFWazdVVUZEY2tJc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRE4wTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pETEVsQlFVa3NSVUZCUlN4RFFVRkRPMDlCUTFJc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU5pTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWUUxFbEJRVWtzUlVGQlJTeERRVUZETEdsRVFVRnBSQ3hGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGT3p0TlFVVndSU3hKUVVGSkxFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTTdUVUZEYUVJc1NVRkJTU3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzAxQlEzWkNMRWxCUVVrc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF6dE5RVU5xUWl4SlFVRkpMQ3RDUVVFclFpeDVRa0ZCUVR0UlFVTnFReXhOUVVGTkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTNSQ0xFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENMRTlCUVU4c2IwSkJRVUVzUzBGQlNTeEZRVUZCTEVsQlFVVXNRMEZCUVR0VFFVTmtPMDlCUTBZc1EwRkJReXhEUVVGRE8wMUJRMGdzU1VGQlNTdzRRa0ZCT0VJc2QwSkJRVUU3VVVGRGFFTXNhMEpCUVd0Q0xFVkJRVVVzV1VGQldUdFZRVU01UWl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRNME03VVVGRFJDeFJRVUZSTEVWQlFVVXNWVUZCVlN4VFFVRlRMRVZCUVVVN1ZVRkROMElzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXp0VFFVTnVRanRSUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENPMWxCUTBVc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlZTeERRVUZCTEVWQlFVRTdZMEZEYmtNc1RVRkJUenRaUVVOSkxFTkJRVUVzUlVGQlJUdFRRVU51UWp0UFFVTkdMRU5CUVVNc1EwRkJRenROUVVOSUxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMEk3VVVGRGNrTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFbEJRVVVzUTBGQlFUdEJRVU51UWl4UFFVRlBMRU5CUVVNN1FVRkRVanM3UVVGRlFTeE5RVUZOTEZWQlFWVXNRMEZCUXl4WlFVRlpPenRSUVVWeVFpeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJRenRWUVVOd1FpeEpRVUZKTEVWQlFVVXNUVUZCVFR0QlFVTjBRaXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVmFMRkZCUVZFc1YwRkJWeXhEUVVGRExGbEJRVms3UVVGRGFFTTdPMVZCUlZVc1ZVRkJWU3hEUVVGRExGbEJRVms3V1VGRGNrSXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkROME1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU5xUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRCUVVOdVFpeFhRVUZYTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN08wRkJSV2hDTEZOQlFWTXNRMEZCUXl4RFFVRkRPenRCUVVWWUxFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXpzN1FVRkZZaXhMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZGVUN4SlFVRkpMRVZCUVVVc1EwRkJReXhuUlVGQlowVXNSVUZCUlN4VlFVRlZMRWxCUVVrc1JVRkJSVHM3VFVGRmJrWXNTVUZCU1N4TlFVRk5MRWRCUVVjc1JVRkJSU3hEUVVGRE8wMUJRMmhDTEVsQlFVa3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenROUVVOMlFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNN1RVRkRha0lzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VVVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU4wUWl4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VlVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTI1RE8xRkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdWVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0VFFVTndSVHRQUVVOR0xFTkJRVU1zUTBGQlF6dE5RVU5JTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMR3RDUVVGclFpeEZRVUZGTEZsQlFWazdWVUZET1VJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xTkJRek5ETzFGQlEwUXNVVUZCVVN4RlFVRkZMRlZCUVZVc1UwRkJVeXhGUVVGRk8xVkJRemRDTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNN1UwRkRia0k3VVVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0VlFVTnNRanRaUVVORkxHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWVXNRMEZCUVN4RlFVRkJPMk5CUTI1RExFMUJRVTg3V1VGRFNTeERRVUZCTEVWQlFVVTdVMEZEYmtJN1QwRkRSaXhEUVVGRExFTkJRVU03VFVGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzFGQlEzSkRMRzlDUVVGRExGRkJRVkVzUlVGQlFTeEpRVUZGTEVOQlFVRTdRVUZEYmtJc1QwRkJUeXhEUVVGRE8wRkJRMUk3TzBGQlJVRXNUVUZCVFN4VlFVRlZMRU5CUVVNc1dVRkJXVHM3VVVGRmNrSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU03VlVGRGNFSXNTVUZCU1N4RlFVRkZMRTFCUVUwN1FVRkRkRUlzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZXaXhSUVVGUkxGZEJRVmNzUTBGQlF5eFpRVUZaTzBGQlEyaERPenRWUVVWVkxGVkJRVlVzUTBGQlF5eFpRVUZaTzFsQlEzSkNMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRemxITEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUXpkRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlF5OUNMRWxCUVVrc1JVRkJSU3hEUVVGRE8wRkJRMjVDTEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenM3UVVGRmFFSXNVMEZCVXl4RFFVRkRMRU5CUVVNN08wRkJSVmdzVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPenRCUVVWaUxFdEJRVXNzUTBGQlF5eERRVUZET3p0QlFVVlFMRWxCUVVrc1JVRkJSU3hEUVVGRExHMUZRVUZ0UlN4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRk96dE5RVVYwUml4SlFVRkpMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU03VFVGRGRrSXNTVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRE8wMUJRMnBDTEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzFGQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZEZEVJc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFWQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRUUVVOdVF6dFJRVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMVZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1UwRkRjRVU3UVVGRFZDeFBRVUZQTEVOQlFVTXNRMEZCUXpzN1RVRkZTQ3hKUVVGSkxFdEJRVXNzUTBGQlF6dE5RVU5XTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMR3RDUVVGclFpeEZRVUZGTEZsQlFWazdWVUZET1VJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xTkJRek5ETzFGQlEwUXNVVUZCVVN4RlFVRkZMRlZCUVZVc1UwRkJVeXhGUVVGRk8xVkJRemRDTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNN1UwRkRia0k3VVVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0QlFVTTFRaXhWUVVGVkxFdEJRVXNzUjBGQlJ5eHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEUxQlFVRXNSVUZCVFN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVVc1EwRkJRU3hEUVVGSExFTkJRVUVzUTBGQlF6czdWVUZGTjBRN1dVRkRSU3h2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZWTEVOQlFVRXNSVUZCUVR0alFVTnVReXhMUVVGTk8xbEJRMHNzUTBGQlFTeEZRVUZGTzFOQlEyNUNPMDlCUTBZc1EwRkJReXhEUVVGRE8wRkJRMVFzVFVGQlRTeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVVc1EwRkJRU3hEUVVGRExFTkJRVU03UVVGRGRrVTdPMDFCUlUwc1ZVRkJWU3hEUVVGRExGbEJRVms3UVVGRE4wSXNVVUZCVVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN08wRkJSWFJETEZGQlFWRXNWMEZCVnl4RFFVRkRMRmxCUVZrN08xVkJSWFJDTEZWQlFWVXNRMEZCUXl4WlFVRlpPMWxCUTNKQ0xGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzFsQlF6ZERMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJReTlDTEVsQlFVa3NSVUZCUlN4RFFVRkRPMEZCUTI1Q0xGZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZhRUlzVTBGQlV5eERRVUZETEVOQlFVTTdPMEZCUlZnc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZET3p0QlFVVmlMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRMUE3TzBGQlJVRXNTVUZCU1N4RlFVRkZMRU5CUVVNc2VVVkJRWGxGTEVWQlFVVXNWVUZCVlN4SlFVRkpMRVZCUVVVN08wMUJSVFZHTEVsQlFVa3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenROUVVOMlFpeEpRVUZKTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VVVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU4wUWl4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VlVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTI1RE8xRkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdWVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0VFFVTndSVHRCUVVOVUxFOUJRVThzUTBGQlF5eERRVUZETzBGQlExUTdPMDFCUlUwc1NVRkJTU3hOUVVGTkxFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTTdVVUZEZEVJc1NVRkJTU3hGUVVGRkxFMUJRVTA3VVVGRFdpeFhRVUZYTEVWQlFVVXNVMEZCVXp0UlFVTjBRaXhMUVVGTExFVkJRVVVzWVVGQllUdEJRVU0xUWl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE96dE5RVVZLTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMR3RDUVVGclFpeEZRVUZGTEZsQlFWazdWVUZET1VJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xTkJRek5ETzFGQlEwUXNWVUZCVlN4RlFVRkZMRmxCUVZrN1ZVRkRkRUlzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXp0VFFVTnNRanRSUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENPMWxCUTBVc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4VFFVRkJMRVZCUVZNc1EwRkJSU3hKUVVGSkxFTkJRVU1zVlVGQldTeERRVUZCTEVWQlFVRTdZMEZEZEVNc1RVRkJUenRaUVVOSkxFTkJRVUVzUlVGQlJUdFRRVU51UWp0UFFVTkdMRU5CUVVNc1EwRkJRenROUVVOSUxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMEk3VVVGRGNrTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFbEJRVVVzUTBGQlFUdEJRVU51UWl4UFFVRlBMRU5CUVVNN08wRkJSVklzVFVGQlRTeE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZET3p0TlFVVTVRaXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXp0UlFVTndRaXhKUVVGSkxFVkJRVVVzVDBGQlR6dFJRVU5pTEZkQlFWY3NSVUZCUlN4VFFVRlRPMUZCUTNSQ0xFdEJRVXNzUlVGQlJTeFRRVUZUTzBGQlEzaENMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFZqczdRVUZGUVN4TlFVRk5MRmRCUVZjc1EwRkJReXhaUVVGWk8wRkJRemxDT3p0UlFVVlJMRlZCUVZVc1EwRkJReXhaUVVGWk8xVkJRM0pDTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMVZCUXpkRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VlVGRE4wSXNTVUZCU1N4RlFVRkZMRU5CUVVNN1FVRkRha0lzVTBGQlV5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWa0xFOUJRVThzUTBGQlF5eERRVUZET3p0QlFVVlVMRXRCUVVzc1EwRkJReXhEUVVGRE96dEpRVVZJTEVWQlFVVXNRMEZCUXl4clJFRkJhMFFzUlVGQlJTeFpRVUZaTzAxQlEycEZMRWxCUVVrc1ZVRkJWU3hIUVVGSExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1RVRkRMME1zU1VGQlNTdzRRa0ZCT0VJc2QwSkJRVUU3VVVGRGFFTXNVVUZCVVN4RlFVRkZMRmxCUVZrN1ZVRkRjRUlzVlVGQlZTeEZRVUZGTEVOQlFVTTdVMEZEWkR0UlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xVkJRMnhDTEU5QlFVOHNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFTkJRVUVzUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJWU3hEUVVGakxFTkJRVUVzUTBGQlF6dFRRVU0zUkR0UFFVTkdMRU5CUVVNc1EwRkJRenROUVVOSUxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eHZRa0ZCUXl4UlFVRlJMRVZCUVVFc1NVRkJSU3hEUVVGQkxFTkJRVU1zUTBGQlF6dE5RVU55UkN4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03UVVGRGFFUXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wbEJSVWdzUlVGQlJTeERRVUZETEhORVFVRnpSQ3hGUVVGRkxGbEJRVms3VFVGRGNrVXNTVUZCU1N4VlFVRlZMRWRCUVVjc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0TlFVTXZReXhKUVVGSkxEWkNRVUUyUWl4MVFrRkJRVHRSUVVNdlFpeE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM1JDTEZGQlFWRXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRWUVVONlFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVMEZEYmtNN1VVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFZRVU5zUWl4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZETEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVk1zUTBGQlJTeERRVUZCTzFOQlEycEZPMDlCUTBZc1EwRkJReXhEUVVGRE8wMUJRMGdzU1VGQlNTdzRRa0ZCT0VJc2QwSkJRVUU3VVVGRGFFTXNVVUZCVVN4RlFVRkZMRmxCUVZrN1ZVRkRjRUlzVlVGQlZTeEZRVUZGTEVOQlFVTTdVMEZEWkR0UlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xVkJRMnhDTzFsQlEwVXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFTkJRVUVzUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJWU3hEUVVGQkxFVkJRVUU3WTBGRGNFTXNiMEpCUVVNc1QwRkJUeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVVc1EwRkJRVHRaUVVOVUxFTkJRVUU3V1VGRFpEdFRRVU5JTzA5QlEwWXNRMEZCUXl4RFFVRkRPMDFCUTBnc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExHOUNRVUZETEZGQlFWRXNSVUZCUVN4SlFVRkZMRU5CUVVFc1EwRkJReXhEUVVGRE8wMUJRM0pFTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMDFCUXpsSExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeERRVUZETzBGQlF6VkRMRXRCUVVzc1EwRkJReXhEUVVGRE96dEpRVVZJTEVWQlFVVXNRMEZCUXl4NVJFRkJlVVFzUlVGQlJTeFZRVUZWTEVsQlFVa3NSVUZCUlR0TlFVTTFSU3hKUVVGSkxGVkJRVlVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wMUJReTlETEVsQlFVa3NUVUZCVFN4SFFVRkhMRVZCUVVVc1EwRkJRenROUVVOb1FpeEpRVUZKTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1RVRkRka0lzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VVVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU4wUWl4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VlVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTI1RE8xRkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdWVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0VFFVTndSVHRQUVVOR0xFTkJRVU1zUTBGQlF6dE5RVU5JTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMR3RDUVVGclFpeEZRVUZGTEZsQlFWazdWVUZET1VJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xTkJRek5ETzFGQlEwUXNVVUZCVVN4RlFVRkZMRmxCUVZrN1ZVRkRjRUlzVlVGQlZTeEZRVUZGTEVOQlFVTTdVMEZEWkR0UlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xVkJRMnhDTzFsQlEwVXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFTkJRVUVzUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJWU3hEUVVGQkxFVkJRVUU3WTBGRGJrTXNUVUZCVHp0WlFVTkpMRU5CUVVFc1JVRkJSVHRUUVVOdVFqdFBRVU5HTEVOQlFVTXNRMEZCUXp0TlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1VVRkRja01zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRWxCUVVVc1EwRkJRVHRCUVVOdVFpeFBRVUZQTEVOQlFVTTdRVUZEVWpzN1RVRkZUU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXp0UlFVTndRaXhKUVVGSkxFVkJRVVVzVFVGQlRUdEJRVU53UWl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE96dEJRVVZXTEUxQlFVMHNWMEZCVnl4RFFVRkRMRmxCUVZrN1FVRkRPVUk3TzFGQlJWRXNWVUZCVlN4RFFVRkRMRmxCUVZrN1ZVRkRja0lzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdWVUZEZEVNc1NVRkJTU3hGUVVGRkxFTkJRVU03UVVGRGFrSXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE96dEJRVVZrTEU5QlFVOHNRMEZCUXl4RFFVRkRPenRCUVVWVUxFdEJRVXNzUTBGQlF5eERRVUZET3p0QlFVVlFMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNVVUZCVVN4RFFVRkRMR1ZCUVdVc1JVRkJSU3haUVVGWk96dEJRVVY0UXl4SlFVRkpMRVZCUVVVc1EwRkJReXgzUkVGQmQwUXNSVUZCUlN4VlFVRlZMRWxCUVVrc1JVRkJSVHM3VFVGRk0wVXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdVVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVTjBRaXhOUVVGTkxFVkJRVVVzV1VGQldUdFZRVU5zUWl4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJ5eERRVUZGTEVOQlFVRTdVMEZEZUVNN1QwRkRSaXhEUVVGRExFTkJRVU03VFVGRFNDeEpRVUZKTERoQ1FVRTRRaXgzUWtGQlFUdFJRVU5vUXl4bFFVRmxMRVZCUVVVc1dVRkJXVHRWUVVNelFpeFBRVUZQTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xTkJRM3BDTzFGQlEwUXNWVUZCVlN4RlFVRkZMRmxCUVZrN1ZVRkRkRUlzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0WlFVTmFMRkZCUVZFc1JVRkJSU3hMUVVGTE8xZEJRMmhDTEVOQlFVTXNRMEZCUXp0VFFVTktPMUZCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VlVGRGJFSTdXVUZEUlN4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVU1zUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVlVzUTBGQlFTeEZRVUZCTzJOQlEyNUZMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRkxFTkJRVUU3V1VGRFdDeERRVUZCTEVWQlFVVTdVMEZEYmtJN1QwRkRSaXhEUVVGRExFTkJRVU03VFVGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzFGQlEzSkRMRzlDUVVGRExGRkJRVkVzUlVGQlFTeEpRVUZGTEVOQlFVRTdRVUZEYmtJc1QwRkJUeXhEUVVGRE96dE5RVVZHTEVsQlFVa3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03VFVGRGNrVXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenROUVVNeFF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1RVRkRiRUlzVlVGQlZTeERRVUZETEZsQlFWazdVVUZEY2tJc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU16UXl4SlFVRkpMRVZCUVVVc1EwRkJRenRCUVVObUxFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZXaXhMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZGVUN4SFFVRkhMRU5CUVVNc1EwRkJRenM3UTBGRlNpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1JtOXliWE41SUQwZ2NtVnhkV2x5WlNnbkxpOHVMaTl6Y21NdmJXRnBiaTVxY3ljcE8xeHVYRzVrWlhOamNtbGlaU2duUm05eWJYTjVKeXdnWm5WdVkzUnBiMjRnS0NrZ2UxeHVYRzRnSUdSbGMyTnlhV0psS0NkVFpYUjBhVzVuSUhWd0lHRWdabTl5YlNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJR2wwS0NkemFHOTFiR1FnY21WdVpHVnlJR0VnWm05eWJTQnBiblJ2SUhSb1pTQmtiMk4xYldWdWRDY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDZ2dQRVp2Y20xemVTNUdiM0p0UGp3dlJtOXliWE41TGtadmNtMCtLVHRjYmlBZ0lDQWdJR1Y0Y0dWamRDaG1iM0p0TG1kbGRFUlBUVTV2WkdVb0tTNTBZV2RPWVcxbEtTNTBiMFZ4ZFdGc0tDZEdUMUpOSnlrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lITmxkQ0JoSUdOc1lYTnpJRzVoYldVZ2FXWWdjR0Z6YzJWa0p5d2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtDQThSbTl5YlhONUxrWnZjbTBnWTJ4aGMzTk9ZVzFsUFZ3aVptOXZYQ0krUEM5R2IzSnRjM2t1Um05eWJUNHBPMXh1SUNBZ0lDQWdaWGh3WldOMEtHWnZjbTB1WjJWMFJFOU5UbTlrWlNncExtTnNZWE56VG1GdFpTa3VkRzlGY1hWaGJDZ25abTl2SnlrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lHRnNiRzkzSUdadmNpQnVkV3hzTDNWdVpHVm1hVzVsWkNCamFHbHNaSEpsYmljc0lHWjFibU4wYVc5dUlDaGtiMjVsS1NCN1hHNGdJQ0FnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdJQ0JqYUdGdVoyVldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tHVjJaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNobGRtVnVkQzUwWVhKblpYUXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxtTm9ZVzVuWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQjJZWElnYlc5a1pXd2dQU0J1ZFd4c08xeHVJQ0FnSUNBZ2RtRnlJRlJsYzNSR2IzSnRJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnSUNCdmJsTjFZbTFwZERvZ1puVnVZM1JwYjI0Z0tHWnZjbTFOYjJSbGJDa2dlMXh1SUNBZ0lDQWdJQ0FnSUcxdlpHVnNJRDBnWm05eWJVMXZaR1ZzTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUc5dVUzVmliV2wwUFhzZ2RHaHBjeTV2YmxOMVltMXBkQ0I5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4YURFK1ZHVnpkRHd2YURFK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhzZ2JuVnNiQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHNnZFc1a1pXWnBibVZrSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQU2R1WVcxbEp5QjJZV3gxWlQxN0lDZG1iMjhuSUgwZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENnOFZHVnpkRVp2Y20wdlBpazdYRzRnSUNBZ0lDQnpaWFJVYVcxbGIzVjBLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExuTjFZbTFwZENobWIzSnRMbWRsZEVSUFRVNXZaR1VvS1NrN1hHNGdJQ0FnSUNBZ0lHVjRjR1ZqZENodGIyUmxiQ2t1ZEc5RmNYVmhiQ2g3Ym1GdFpUb2dKMlp2YnlkOUtUdGNiaUFnSUNBZ0lDQWdaRzl1WlNncE8xeHVJQ0FnSUNBZ2ZTd2dNVEFwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnYVhRb0ozTm9iM1ZzWkNCaGJHeHZkeUJtYjNJZ2FXNXdkWFJ6SUdKbGFXNW5JR0ZrWkdWa0lHUjVibUZ0YVdOaGJHeDVKeXdnWm5WdVkzUnBiMjRnS0dSdmJtVXBJSHRjYmx4dUlDQWdJQ0FnZG1GeUlHbHVjSFYwY3lBOUlGdGRPMXh1SUNBZ0lDQWdkbUZ5SUdadmNtTmxWWEJrWVhSbElEMGdiblZzYkR0Y2JpQWdJQ0FnSUhaaGNpQnRiMlJsYkNBOUlHNTFiR3c3WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdScGRpOCtYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZG1GeUlGUmxjM1JHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0JqYjIxd2IyNWxiblJYYVd4c1RXOTFiblE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0JtYjNKalpWVndaR0YwWlNBOUlIUm9hWE11Wm05eVkyVlZjR1JoZEdVdVltbHVaQ2gwYUdsektUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnYjI1VGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNobWIzSnRUVzlrWld3cElIdGNiaUFnSUNBZ0lDQWdJQ0J0YjJSbGJDQTlJR1p2Y20xTmIyUmxiRHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2dnWEc0Z0lDQWdJQ0FnSUNBZ0lDQThSbTl5YlhONUxrWnZjbTBnYjI1VGRXSnRhWFE5ZTNSb2FYTXViMjVUZFdKdGFYUjlQaUJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdlMmx1Y0hWMGMzMWNiaUFnSUNBZ0lDQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9JRnh1SUNBZ0lDQWdJQ0E4VkdWemRFWnZjbTB2UGlCY2JpQWdJQ0FnSUNrN1hHNWNiaUFnSUNBZ0lDOHZJRmRoYVhRZ1ltVm1iM0psSUdGa1pHbHVaeUIwYUdVZ2FXNXdkWFJjYmlBZ0lDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVYRzRnSUNBZ0lDQWdJR2x1Y0hWMGN5NXdkWE5vS0ZSbGMzUkpibkIxZENoN1hHNGdJQ0FnSUNBZ0lDQWdibUZ0WlRvZ0ozUmxjM1FuWEc0Z0lDQWdJQ0FnSUgwcEtUdGNibHh1SUNBZ0lDQWdJQ0JtYjNKalpWVndaR0YwWlNobWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQWdJQ0FnSUNBdkx5QlhZV2wwSUdadmNpQnVaWGgwSUdWMlpXNTBJR3h2YjNBc0lHRnpJSFJvWVhRZ1pHOWxjeUIwYUdVZ1ptOXliVnh1SUNBZ0lDQWdJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExuTjFZbTFwZENobWIzSnRMbWRsZEVSUFRVNXZaR1VvS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsZUhCbFkzUW9iVzlrWld3dWRHVnpkQ2t1ZEc5Q1pVUmxabWx1WldRb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdSdmJtVW9LVHRjYmlBZ0lDQWdJQ0FnSUNCOUxDQXdLVHRjYmx4dUlDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdmU3dnTVRBcE8xeHVYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnBkQ2duYzJodmRXeGtJR0ZzYkc5M0lHUjVibUZ0YVdOaGJHeDVJR0ZrWkdWa0lHbHVjSFYwY3lCMGJ5QjFjR1JoZEdVZ2RHaGxJR1p2Y20wdGJXOWtaV3duTENCbWRXNWpkR2x2YmlBb1pHOXVaU2tnZTF4dVhHNGdJQ0FnSUNCMllYSWdhVzV3ZFhSeklEMGdXMTA3WEc0Z0lDQWdJQ0IyWVhJZ1ptOXlZMlZWY0dSaGRHVWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ2RtRnlJRzF2WkdWc0lEMGdiblZzYkR0Y2JpQWdJQ0FnSUhaaGNpQlVaWE4wU1c1d2RYUWdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQWdJR05vWVc1blpWWmhiSFZsT2lCbWRXNWpkR2x2YmlBb1pYWmxiblFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGWmhiSFZsS0dWMlpXNTBMblJoY21kbGRDNTJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMGdiMjVEYUdGdVoyVTllM1JvYVhNdVkyaGhibWRsVm1Gc2RXVjlMejVjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCMllYSWdWR1Z6ZEVadmNtMGdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0FnSUdOdmJYQnZibVZ1ZEZkcGJHeE5iM1Z1ZERvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdadmNtTmxWWEJrWVhSbElEMGdkR2hwY3k1bWIzSmpaVlZ3WkdGMFpTNWlhVzVrS0hSb2FYTXBPMXh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCdmJsTjFZbTFwZERvZ1puVnVZM1JwYjI0Z0tHWnZjbTFOYjJSbGJDa2dlMXh1SUNBZ0lDQWdJQ0FnSUcxdlpHVnNJRDBnWm05eWJVMXZaR1ZzTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnS0NCY2JpQWdJQ0FnSUNBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCdmJsTjFZbTFwZEQxN2RHaHBjeTV2YmxOMVltMXBkSDArSUZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I3YVc1d2RYUnpmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDRwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2dnWEc0Z0lDQWdJQ0FnSUR4VVpYTjBSbTl5YlM4K0lGeHVJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lDQWdMeThnVjJGcGRDQmlaV1p2Y21VZ1lXUmthVzVuSUhSb1pTQnBibkIxZEZ4dUlDQWdJQ0FnYzJWMFZHbHRaVzkxZENobWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQWdJQ0FnYVc1d2RYUnpMbkIxYzJnb1ZHVnpkRWx1Y0hWMEtIdGNiaUFnSUNBZ0lDQWdJQ0J1WVcxbE9pQW5kR1Z6ZENkY2JpQWdJQ0FnSUNBZ2ZTa3BPMXh1WEc0Z0lDQWdJQ0FnSUdadmNtTmxWWEJrWVhSbEtHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJQ0FnSUNBZ0lDOHZJRmRoYVhRZ1ptOXlJRzVsZUhRZ1pYWmxiblFnYkc5dmNDd2dZWE1nZEdoaGRDQmtiMlZ6SUhSb1pTQm1iM0p0WEc0Z0lDQWdJQ0FnSUNBZ2MyVjBWR2x0Wlc5MWRDaG1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQlVaWE4wVlhScGJITXVVMmx0ZFd4aGRHVXVZMmhoYm1kbEtGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JFVDAxRGIyMXdiMjVsYm5SWGFYUm9WR0ZuS0dadmNtMHNJQ2RKVGxCVlZDY3BMQ0I3ZEdGeVoyVjBPaUI3ZG1Gc2RXVTZJQ2RtYjI4bmZYMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExuTjFZbTFwZENobWIzSnRMbWRsZEVSUFRVNXZaR1VvS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsZUhCbFkzUW9iVzlrWld3dWRHVnpkQ2t1ZEc5Q1pTZ25abTl2SnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYjI1bEtDazdYRzRnSUNBZ0lDQWdJQ0FnZlN3Z01DazdYRzVjYmlBZ0lDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lIMHNJREV3S1R0Y2JseHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2FYUW9KM05vYjNWc1pDQmhiR3h2ZHlCaElHUjVibUZ0YVdOaGJHeDVJSFZ3WkdGMFpXUWdhVzV3ZFhRZ2RHOGdkWEJrWVhSbElIUm9aU0JtYjNKdExXMXZaR1ZzSnl3Z1puVnVZM1JwYjI0Z0tHUnZibVVwSUh0Y2JseHVJQ0FnSUNBZ2RtRnlJR1p2Y21ObFZYQmtZWFJsSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJSFpoY2lCdGIyUmxiQ0E5SUc1MWJHdzdYRzRnSUNBZ0lDQjJZWElnVkdWemRFbHVjSFYwSUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ0lDQnRhWGhwYm5NNklGdEdiM0p0YzNrdVRXbDRhVzVkTEZ4dUlDQWdJQ0FnSUNCamFHRnVaMlZXWVd4MVpUb2dablZ1WTNScGIyNGdLR1YyWlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaGxkbVZ1ZEM1MFlYSm5aWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMbU5vWVc1blpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0IyWVhJZ2FXNXdkWFE3WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRVp2Y20wZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQWdJR052YlhCdmJtVnVkRmRwYkd4TmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR1p2Y21ObFZYQmtZWFJsSUQwZ2RHaHBjeTVtYjNKalpWVndaR0YwWlM1aWFXNWtLSFJvYVhNcE8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0J2YmxOMVltMXBkRG9nWm5WdVkzUnBiMjRnS0dadmNtMU5iMlJsYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJRzF2WkdWc0lEMGdabTl5YlUxdlpHVnNPMXh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0JwYm5CMWRDQTlJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMG5kR1Z6ZENjZ2RtRnNkV1U5ZXlCMGFHbHpMbkJ5YjNCekxuWmhiSFZsSUgwZ0x6NDdYRzVjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUc5dVUzVmliV2wwUFh0MGFHbHpMbTl1VTNWaWJXbDBmVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdlMmx1Y0hWMGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDZzhWR1Z6ZEVadmNtMGdkbUZzZFdVOUoyWnZieWN2UGlrN1hHNWNiaUFnSUNBZ0lDOHZJRmRoYVhRZ1ltVm1iM0psSUdOb1lXNW5hVzVuSUhSb1pTQnBibkIxZEZ4dUlDQWdJQ0FnYzJWMFZHbHRaVzkxZENobWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR1p2Y20wdWMyVjBVSEp2Y0hNb2UzWmhiSFZsT2lBblltRnlKMzBwTzF4dVhHNGdJQ0FnSUNBZ0lHWnZjbU5sVlhCa1lYUmxLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJYWVdsMElHWnZjaUJ1WlhoMElHVjJaVzUwSUd4dmIzQXNJR0Z6SUhSb1lYUWdaRzlsY3lCMGFHVWdabTl5YlZ4dUlDQWdJQ0FnSUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbk4xWW0xcGRDaG1iM0p0TG1kbGRFUlBUVTV2WkdVb0tTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGVIQmxZM1FvYlc5a1pXd3VkR1Z6ZENrdWRHOUNaU2duWW1GeUp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCa2IyNWxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZTd2dNQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSDBzSURFd0tUdGNibHh1SUNBZ0lIMHBPMXh1WEc1Y2JpQWdJQ0JwZENnbmMyaHZkV3hrSUdsdWRtRnNhV1JoZEdVZ1lTQjJZV3hwWkNCbWIzSnRJR2xtSUdSNWJtRnRhV05oYkd4NUlHbHVjMlZ5ZEdWa0lHbHVjSFYwSUdseklHbHVkbUZzYVdRbkxDQm1kVzVqZEdsdmJpQW9aRzl1WlNrZ2UxeHVYRzRnSUNBZ0lDQjJZWElnWm05eVkyVlZjR1JoZEdVZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnZG1GeUlHbHpTVzUyWVd4cFpDQTlJR1poYkhObE8xeHVJQ0FnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUNBZ2JXbDRhVzV6T2lCYlJtOXliWE41TGsxcGVHbHVYU3hjYmlBZ0lDQWdJQ0FnWTJoaGJtZGxWbUZzZFdVNklHWjFibU4wYVc5dUlDaGxkbVZ1ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyVjBWbUZzZFdVb1pYWmxiblF1ZEdGeVoyVjBMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmU0J2YmtOb1lXNW5aVDE3ZEdocGN5NWphR0Z1WjJWV1lXeDFaWDB2UGx4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNibHh1WEc0Z0lDQWdJQ0IyWVhJZ2FXNXdkWFJ6SUQwZ1cxUmxjM1JKYm5CMWRDaDdYRzRnSUNBZ0lDQWdJRzVoYldVNklDZDBaWE4wSnl4Y2JpQWdJQ0FnSUNBZ2RtRnNhV1JoZEdsdmJuTTZJQ2RwYzBWdFlXbHNKeXhjYmlBZ0lDQWdJQ0FnZG1Gc2RXVTZJQ2RtYjI5QVltRnlMbU52YlNkY2JpQWdJQ0FnSUgwcFhUdGNibHh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkdiM0p0SUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ0lDQmpiMjF3YjI1bGJuUlhhV3hzVFc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQm1iM0pqWlZWd1pHRjBaU0E5SUhSb2FYTXVabTl5WTJWVmNHUmhkR1V1WW1sdVpDaDBhR2x6S1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjMlYwU1c1MllXeHBaRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6U1c1MllXeHBaQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9JRnh1SUNBZ0lDQWdJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJRzl1U1c1MllXeHBaRDE3ZEdocGN5NXpaWFJKYm5aaGJHbGtmVDRnWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHRwYm5CMWRITjlYRzRnSUNBZ0lDQWdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLQ0JjYmlBZ0lDQWdJQ0FnUEZSbGMzUkdiM0p0THo0Z1hHNGdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQmxlSEJsWTNRb2FYTkpiblpoYkdsa0tTNTBiMEpsS0daaGJITmxLVHRjYmx4dUlDQWdJQ0FnYVc1d2RYUnpMbkIxYzJnb1ZHVnpkRWx1Y0hWMEtIdGNiaUFnSUNBZ0lDQWdibUZ0WlRvZ0ozUmxjM1F5Snl4Y2JpQWdJQ0FnSUNBZ2RtRnNhV1JoZEdsdmJuTTZJQ2RwYzBWdFlXbHNKeXhjYmlBZ0lDQWdJQ0FnZG1Gc2RXVTZJQ2RtYjI5QVltRnlKMXh1SUNBZ0lDQWdmU2twTzF4dVhHNWNiaUFnSUNBZ0lHWnZjbU5sVlhCa1lYUmxLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJYWVdsMElHWnZjaUJ1WlhoMElHVjJaVzUwSUd4dmIzQXNJR0Z6SUhSb1lYUWdaRzlsY3lCMGFHVWdabTl5YlZ4dUlDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdWMzVmliV2wwS0dadmNtMHVaMlYwUkU5TlRtOWtaU2dwS1R0Y2JpQWdJQ0FnSUNBZ0lDQmxlSEJsWTNRb2FYTkpiblpoYkdsa0tTNTBiMEpsS0hSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUdSdmJtVW9LVHRjYmlBZ0lDQWdJQ0FnZlN3Z01DazdYRzVjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lHNXZkQ0IwY21sbloyVnlJRzl1UTJoaGJtZGxJSGRvWlc0Z1ptOXliU0JwY3lCdGIzVnVkR1ZrSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdkbUZ5SUdoaGMwTm9ZVzVuWldRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTZ25iMjVEYUdGdVoyVW5LVHRjYmlBZ0lDQWdJSFpoY2lCVVpYTjBSbTl5YlNBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQm9ZWE5EYUdGdVoyVmtLQ2s3WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUE4Um05eWJYTjVMa1p2Y20wZ2IyNURhR0Z1WjJVOWUzUm9hWE11YjI1RGFHRnVaMlY5UGp3dlJtOXliWE41TGtadmNtMCtPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDZzhWR1Z6ZEVadmNtMHZQaWs3WEc0Z0lDQWdJQ0JsZUhCbFkzUW9hR0Z6UTJoaGJtZGxaQ2t1Ym05MExuUnZTR0YyWlVKbFpXNURZV3hzWldRb0tUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lHbDBLQ2R6YUc5MWJHUWdkSEpwWjJkbGNpQnZia05vWVc1blpTQjNhR1Z1SUdadmNtMGdaV3hsYldWdWRDQnBjeUJqYUdGdVoyVmtKeXdnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ2RtRnlJR2hoYzBOb1lXNW5aV1FnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNnbmIyNURhR0Z1WjJVbktUdGNiaUFnSUNBZ0lIWmhjaUJOZVVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdJQ0J2YmtOb1lXNW5aVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG05dVEyaGhibWRsZlM4K1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkdiM0p0SUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ0lDQnZia05vWVc1blpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHaGhjME5vWVc1blpXUW9LVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lEeEdiM0p0YzNrdVJtOXliU0J2YmtOb1lXNW5aVDE3ZEdocGN5NXZia05vWVc1blpYMCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeE5lVWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaTgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtEeFVaWE4wUm05eWJTOCtLVHRjYmlBZ0lDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9WR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVSUFRVTnZiWEJ2Ym1WdWRGZHBkR2hVWVdjb1ptOXliU3dnSjBsT1VGVlVKeWtzSUh0MFlYSm5aWFE2SUh0MllXeDFaVG9nSjJKaGNpZDlmU2s3WEc0Z0lDQWdJQ0JsZUhCbFkzUW9hR0Z6UTJoaGJtZGxaQ2t1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnYVhRb0ozTm9iM1ZzWkNCMGNtbG5aMlZ5SUc5dVEyaGhibWRsSUhkb1pXNGdibVYzSUdsdWNIVjBJR2x6SUdGa1pHVmtJSFJ2SUdadmNtMG5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1SUNBZ0lDQWdkbUZ5SUdoaGMwTm9ZVzVuWldRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTZ25iMjVEYUdGdVoyVW5LVHRjYmlBZ0lDQWdJSFpoY2lCcGJuQjFkSE1nUFNCYlhUdGNiaUFnSUNBZ0lIWmhjaUJtYjNKalpWVndaR0YwWlNBOUlHNTFiR3c3WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQmphR0Z1WjJWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG1Ob1lXNW5aVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZG1GeUlGUmxjM1JHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0JqYjIxd2IyNWxiblJYYVd4c1RXOTFiblE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0JtYjNKalpWVndaR0YwWlNBOUlIUm9hWE11Wm05eVkyVlZjR1JoZEdVdVltbHVaQ2gwYUdsektUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnYjI1RGFHRnVaMlU2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0JvWVhORGFHRnVaMlZrS0NrN1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb0lGeHVJQ0FnSUNBZ0lDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElHOXVRMmhoYm1kbFBYdDBhR2x6TG05dVEyaGhibWRsZlQ0Z1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUh0cGJuQjFkSE45WEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0NCY2JpQWdJQ0FnSUNBZ1BGUmxjM1JHYjNKdEx6NGdYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0F2THlCWFlXbDBJR0psWm05eVpTQmhaR1JwYm1jZ2RHaGxJR2x1Y0hWMFhHNGdJQ0FnSUNCcGJuQjFkSE11Y0hWemFDaFVaWE4wU1c1d2RYUW9lMXh1SUNBZ0lDQWdJQ0J1WVcxbE9pQW5kR1Z6ZENkY2JpQWdJQ0FnSUgwcEtUdGNibHh1SUNBZ0lDQWdabTl5WTJWVmNHUmhkR1VvWm5WdVkzUnBiMjRnS0NrZ2UxeHVYRzRnSUNBZ0lDQWdJQzh2SUZkaGFYUWdabTl5SUc1bGVIUWdaWFpsYm5RZ2JHOXZjQ3dnWVhNZ2RHaGhkQ0JrYjJWeklIUm9aU0JtYjNKdFhHNGdJQ0FnSUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHVjRjR1ZqZENob1lYTkRhR0Z1WjJWa0tTNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa0tDazdYRzRnSUNBZ0lDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lDQWdJQ0I5TENBd0tUdGNibHh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0I5S1R0Y2JseHVJQ0I5S1R0Y2JseHVJQ0JrWlhOamNtbGlaU2duVlhCa1lYUmxJR0VnWm05eWJTY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUdsMEtDZHphRzkxYkdRZ1lXeHNiM2NnWld4bGJXVnVkSE1nZEc4Z1kyaGxZMnNnYVdZZ2RHaGxJR1p2Y20wZ2FYTWdaR2x6WVdKc1pXUW5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUx6NWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRVp2Y20wZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQWdJR2RsZEVsdWFYUnBZV3hUZEdGMFpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCN1pHbHpZV0pzWldRNklIUnlkV1Y5TzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQmxibUZpYkdWR2IzSnRPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYVhOaFlteGxaRG9nWm1Gc2MyVmNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNnZ1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wZ2IyNURhR0Z1WjJVOWUzUm9hWE11YjI1RGFHRnVaMlY5SUdScGMyRmliR1ZrUFh0MGFHbHpMbk4wWVhSbExtUnBjMkZpYkdWa2ZUNGdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb0lGeHVJQ0FnSUNBZ0lDQThWR1Z6ZEVadmNtMHZQaUJjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUhaaGNpQnBibkIxZENBOUlGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JEYjIxd2IyNWxiblJYYVhSb1ZIbHdaU2htYjNKdExDQlVaWE4wU1c1d2RYUXBPMXh1SUNBZ0lDQWdaWGh3WldOMEtHbHVjSFYwTG1selJtOXliVVJwYzJGaWJHVmtLQ2twTG5SdlFtVW9kSEoxWlNrN1hHNGdJQ0FnSUNCbWIzSnRMbVZ1WVdKc1pVWnZjbTBvS1R0Y2JpQWdJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0JsZUhCbFkzUW9hVzV3ZFhRdWFYTkdiM0p0UkdsellXSnNaV1FvS1NrdWRHOUNaU2htWVd4elpTazdYRzRnSUNBZ0lDQWdJR1J2Ym1Vb0tUdGNiaUFnSUNBZ0lIMHNJREFwTzF4dVhHNGdJQ0FnZlNrN1hHNWNiaUFnZlNrN1hHNWNibjBwTzF4dUlsMTkiLCJ2YXIgRm9ybXN5ID0gcmVxdWlyZSgnLi8uLi9zcmMvbWFpbi5qcycpO1xuXG5kZXNjcmliZSgnQWpheCcsIGZ1bmN0aW9uKCkge1xuXG4gIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgIGphc21pbmUuQWpheC5pbnN0YWxsKCk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgamFzbWluZS5BamF4LnVuaW5zdGFsbCgpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHBvc3QgdG8gYSBnaXZlbiB1cmwgaWYgcGFzc2VkJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIn1cbiAgICAgIClcbiAgICApO1xuICAgIFxuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgIGV4cGVjdChqYXNtaW5lLkFqYXgucmVxdWVzdHMubW9zdFJlY2VudCgpLnVybCkudG9CZSgnL3VzZXJzJyk7XG4gICAgZXhwZWN0KGphc21pbmUuQWpheC5yZXF1ZXN0cy5tb3N0UmVjZW50KCkubWV0aG9kKS50b0JlKCdQT1NUJyk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwdXQgdG8gYSBnaXZlbiB1cmwgaWYgcGFzc2VkIGEgbWV0aG9kIGF0dHJpYnV0ZScsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCIsIG1ldGhvZDogXCJQVVRcIn1cbiAgICAgIClcbiAgICApO1xuICAgIFxuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgIGV4cGVjdChqYXNtaW5lLkFqYXgucmVxdWVzdHMubW9zdFJlY2VudCgpLnVybCkudG9CZSgnL3VzZXJzJyk7XG4gICAgZXhwZWN0KGphc21pbmUuQWpheC5yZXF1ZXN0cy5tb3N0UmVjZW50KCkubWV0aG9kKS50b0JlKCdQVVQnKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHBhc3MgeC13d3ctZm9ybS11cmxlbmNvZGVkIGFzIGNvbnRlbnRUeXBlIHdoZW4gdXJsZW5jb2RlZCBpcyBzZXQgYXMgY29udGVudFR5cGUnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wiLCBjb250ZW50VHlwZTogXCJ1cmxlbmNvZGVkXCJ9XG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICBleHBlY3QoamFzbWluZS5BamF4LnJlcXVlc3RzLm1vc3RSZWNlbnQoKS5jb250ZW50VHlwZSgpKS50b0JlKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHJ1biBhbiBvblN1Y2Nlc3MgaGFuZGxlciwgaWYgcGFzc2VkIGFuZCBhamF4IGlzIHN1Y2Nlc3NmdWxsLiBGaXJzdCBhcmd1bWVudCBpcyBkYXRhIGZyb20gc2VydmVyJywgZnVuY3Rpb24gKGRvbmUpIHtcbiBcbiAgICB2YXIgb25TdWNjZXNzID0gamFzbWluZS5jcmVhdGVTcHkoXCJzdWNjZXNzXCIpO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCIsIG9uU3VjY2Vzczogb25TdWNjZXNzfVxuICAgICAgKVxuICAgICk7XG4gICAgXG4gICAgamFzbWluZS5BamF4LnN0dWJSZXF1ZXN0KCcvdXNlcnMnKS5hbmRSZXR1cm4oe1xuICAgICAgc3RhdHVzOiAyMDAsXG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgcmVzcG9uc2VUZXh0OiAne30nXG4gICAgfSk7XG5cbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcblxuICAgIC8vIFNpbmNlIGFqYXggaXMgcmV0dXJuZWQgYXMgYSBwcm9taXNlIChhc3luYyksIG1vdmUgYXNzZXJ0aW9uXG4gICAgLy8gdG8gZW5kIG9mIGV2ZW50IGxvb3BcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGV4cGVjdChvblN1Y2Nlc3MpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHt9KTtcbiAgICAgIGRvbmUoKTtcbiAgICB9LCAwKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIG5vdCBkbyBhamF4IHJlcXVlc3QgaWYgb25TdWJtaXQgaGFuZGxlciBpcyBwYXNzZWQsIGJ1dCBwYXNzIHRoZSBtb2RlbCBhcyBmaXJzdCBhcmd1bWVudCB0byBvblN1Ym1pdCBoYW5kbGVyJywgZnVuY3Rpb24gKCkge1xuICAgIFxuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCl9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblN1Ym1pdDogb25TdWJtaXR9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJiYXJcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuXG4gICAgZXhwZWN0KGphc21pbmUuQWpheC5yZXF1ZXN0cy5jb3VudCgpKS50b0JlKDApO1xuXG4gICAgZnVuY3Rpb24gb25TdWJtaXQgKGRhdGEpIHtcbiAgICAgIGV4cGVjdChkYXRhKS50b0VxdWFsKHtcbiAgICAgICAgZm9vOiAnYmFyJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdHJpZ2dlciBhbiBvblN1Ym1pdHRlZCBoYW5kbGVyLCBpZiBwYXNzZWQgYW5kIHRoZSBzdWJtaXQgaGFzIHJlc3BvbmRlZCB3aXRoIFNVQ0NFU1MnLCBmdW5jdGlvbiAoZG9uZSkge1xuICAgIFxuICAgIHZhciBvblN1Ym1pdHRlZCA9IGphc21pbmUuY3JlYXRlU3B5KFwic3VibWl0dGVkXCIpO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCIsIG9uU3VibWl0dGVkOiBvblN1Ym1pdHRlZH1cbiAgICAgIClcbiAgICApO1xuICAgIFxuICAgIGphc21pbmUuQWpheC5zdHViUmVxdWVzdCgnL3VzZXJzJykuYW5kUmV0dXJuKHtcbiAgICAgIHN0YXR1czogMjAwLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIHJlc3BvbnNlVGV4dDogJ3t9J1xuICAgIH0pO1xuXG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG5cbiAgICAvLyBTaW5jZSBhamF4IGlzIHJldHVybmVkIGFzIGEgcHJvbWlzZSAoYXN5bmMpLCBtb3ZlIGFzc2VydGlvblxuICAgIC8vIHRvIGVuZCBvZiBldmVudCBsb29wXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBleHBlY3Qob25TdWJtaXR0ZWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGRvbmUoKTtcbiAgICB9LCAwKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHRyaWdnZXIgYW4gb25TdWJtaXR0ZWQgaGFuZGxlciwgaWYgcGFzc2VkIGFuZCB0aGUgc3VibWl0IGhhcyByZXNwb25kZWQgd2l0aCBFUlJPUicsIGZ1bmN0aW9uIChkb25lKSB7XG4gICAgXG4gICAgdmFyIG9uU3VibWl0dGVkID0gamFzbWluZS5jcmVhdGVTcHkoXCJzdWJtaXR0ZWRcIik7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIiwgb25TdWJtaXR0ZWQ6IG9uU3VibWl0dGVkfVxuICAgICAgKVxuICAgICk7XG4gICAgXG4gICAgamFzbWluZS5BamF4LnN0dWJSZXF1ZXN0KCcvdXNlcnMnKS5hbmRSZXR1cm4oe1xuICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgcmVzcG9uc2VUZXh0OiAne30nXG4gICAgfSk7XG5cbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcblxuICAgIC8vIFNpbmNlIGFqYXggaXMgcmV0dXJuZWQgYXMgYSBwcm9taXNlIChhc3luYyksIG1vdmUgYXNzZXJ0aW9uXG4gICAgLy8gdG8gZW5kIG9mIGV2ZW50IGxvb3BcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGV4cGVjdChvblN1Ym1pdHRlZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZG9uZSgpO1xuICAgIH0sIDApO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdHJpZ2dlciBhbiBvbkVycm9yIGhhbmRsZXIsIGlmIHBhc3NlZCBhbmQgdGhlIHN1Ym1pdCBoYXMgcmVzcG9uZGVkIHdpdGggRVJST1InLCBmdW5jdGlvbiAoZG9uZSkge1xuICAgIFxuICAgIHZhciBvbkVycm9yID0gamFzbWluZS5jcmVhdGVTcHkoXCJlcnJvclwiKTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wiLCBvbkVycm9yOiBvbkVycm9yfVxuICAgICAgKVxuICAgICk7XG4gICAgXG4gICAgLy8gRG8gbm90IHJldHVybiBhbnkgZXJyb3IgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXRzXG4gICAgamFzbWluZS5BamF4LnN0dWJSZXF1ZXN0KCcvdXNlcnMnKS5hbmRSZXR1cm4oe1xuICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgcmVzcG9uc2VUZXh0OiAne30nXG4gICAgfSk7XG5cbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcblxuICAgIC8vIFNpbmNlIGFqYXggaXMgcmV0dXJuZWQgYXMgYSBwcm9taXNlIChhc3luYyksIG1vdmUgYXNzZXJ0aW9uXG4gICAgLy8gdG8gZW5kIG9mIGV2ZW50IGxvb3BcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGV4cGVjdChvbkVycm9yKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7fSk7XG4gICAgICBkb25lKCk7XG4gICAgfSwgMCk7XG5cbiAgfSk7XG5cbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNHVmpjeTlUZFdKdGFYUXRjM0JsWXk1cWN5SXNJbk52ZFhKalpYTWlPbHNpTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjR1ZqY3k5VGRXSnRhWFF0YzNCbFl5NXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4SlFVRkpMRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJRenM3UVVGRmVrTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWE96dEZRVVV4UWl4VlFVRlZMRU5CUVVNc1dVRkJXVHRKUVVOeVFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRek5DTEVkQlFVY3NRMEZCUXl4RFFVRkRPenRGUVVWSUxGTkJRVk1zUTBGQlF5eFpRVUZaTzBsQlEzQkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdRVUZETjBJc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4RlFVRkZMRU5CUVVNc2MwTkJRWE5ETEVWQlFVVXNXVUZCV1RzN1NVRkZja1FzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEVkQlFVRXNSVUZCUnl4RFFVRkRMRkZCUVZNc1EwRkJRVHROUVVOYUxFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6ZERMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRiRVVzU1VGQlNTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZET3p0QlFVVnVSU3hIUVVGSExFTkJRVU1zUTBGQlF6czdRVUZGVEN4RlFVRkZMRVZCUVVVc1EwRkJReXgzUkVGQmQwUXNSVUZCUlN4WlFVRlpPenRKUVVWMlJTeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVU1zVFVGQlFTeEZRVUZOTEVOQlFVTXNTMEZCVFN4RFFVRkJPMDFCUTNwQ0xFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6ZERMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRiRVVzU1VGQlNTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZET3p0QlFVVnNSU3hIUVVGSExFTkJRVU1zUTBGQlF6czdRVUZGVEN4RlFVRkZMRVZCUVVVc1EwRkJReXgzUmtGQmQwWXNSVUZCUlN4WlFVRlpPenRKUVVWMlJ5eEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVU1zVjBGQlFTeEZRVUZYTEVOQlFVTXNXVUZCWVN4RFFVRkJPMDFCUTNKRExFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEycEVMRWxCUVVrc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFEUVVGdFF5eERRVUZETEVOQlFVTTdPMEZCUlhaSExFZEJRVWNzUTBGQlF5eERRVUZET3p0QlFVVk1MRVZCUVVVc1JVRkJSU3hEUVVGRExIZEhRVUYzUnl4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRk96dEpRVVV6U0N4SlFVRkpMRk5CUVZNc1IwRkJSeXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMGxCUXpkRExFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMEk3VFVGRGNrTXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEhRVUZCTEVWQlFVY3NRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJReXhUUVVGQkxFVkJRVk1zUTBGQlJTeFRRVUZYTEVOQlFVRTdUVUZEYkVNc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMGxCUlVZc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8wMUJRek5ETEUxQlFVMHNSVUZCUlN4SFFVRkhPMDFCUTFnc1YwRkJWeXhGUVVGRkxHdENRVUZyUWp0TlFVTXZRaXhaUVVGWkxFVkJRVVVzU1VGQlNUdEJRVU40UWl4TFFVRkxMRU5CUVVNc1EwRkJRenM3UVVGRlVDeEpRVUZKTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTJwRU8wRkJRMEU3TzBsQlJVa3NWVUZCVlN4RFFVRkRMRmxCUVZrN1RVRkRja0lzVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMDFCUXpORExFbEJRVWtzUlVGQlJTeERRVUZETzBGQlEySXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE96dEJRVVZXTEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWTUxFVkJRVVVzUlVGQlJTeERRVUZETEc5SVFVRnZTQ3hGUVVGRkxGbEJRVms3TzBsQlJXNUpMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVY3NRMEZCUlN4RFFVRkJPMDlCUTNoRE8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxGRkJRVlVzUTBGQlFTeEZRVUZCTzFGQlF5OUNMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkZMRU5CUVVFN1RVRkRka0lzUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wRkJSVTRzU1VGQlNTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXpzN1FVRkZha1FzU1VGQlNTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03TzBsQlJUbERMRk5CUVZNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUlVGQlJUdE5RVU4yUWl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETzFGQlEyNUNMRWRCUVVjc1JVRkJSU3hMUVVGTE8wOUJRMWdzUTBGQlF5eERRVUZETzBGQlExUXNTMEZCU3pzN1FVRkZUQ3hIUVVGSExFTkJRVU1zUTBGQlF6czdRVUZGVEN4RlFVRkZMRVZCUVVVc1EwRkJReXcwUmtGQk5FWXNSVUZCUlN4VlFVRlZMRWxCUVVrc1JVRkJSVHM3U1VGRkwwY3NTVUZCU1N4WFFVRlhMRWRCUVVjc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0SlFVTnFSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRmRCUVZjc1JVRkJRU3hEUVVGQkxFTkJRVU1zUjBGQlFTeEZRVUZITEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVNc1YwRkJRU3hGUVVGWExFTkJRVVVzVjBGQllTeERRVUZCTzAxQlEzUkRMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenROUVVNelF5eE5RVUZOTEVWQlFVVXNSMEZCUnp0TlFVTllMRmRCUVZjc1JVRkJSU3hyUWtGQmEwSTdUVUZETDBJc1dVRkJXU3hGUVVGRkxFbEJRVWs3UVVGRGVFSXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wRkJSVkFzU1VGQlNTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTnFSRHRCUVVOQk96dEpRVVZKTEZWQlFWVXNRMEZCUXl4WlFVRlpPMDFCUTNKQ0xFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeERRVUZETzAxQlEzWkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8wRkJRMklzUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWV0xFZEJRVWNzUTBGQlF5eERRVUZET3p0QlFVVk1MRVZCUVVVc1JVRkJSU3hEUVVGRExEQkdRVUV3Uml4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRk96dEpRVVUzUnl4SlFVRkpMRmRCUVZjc1IwRkJSeXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMGxCUTJwRUxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMEk3VFVGRGNrTXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEhRVUZCTEVWQlFVY3NRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJReXhYUVVGQkxFVkJRVmNzUTBGQlJTeFhRVUZoTEVOQlFVRTdUVUZEZEVNc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMGxCUlVZc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8wMUJRek5ETEUxQlFVMHNSVUZCUlN4SFFVRkhPMDFCUTFnc1YwRkJWeXhGUVVGRkxHdENRVUZyUWp0TlFVTXZRaXhaUVVGWkxFVkJRVVVzU1VGQlNUdEJRVU40UWl4TFFVRkxMRU5CUVVNc1EwRkJRenM3UVVGRlVDeEpRVUZKTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTJwRU8wRkJRMEU3TzBsQlJVa3NWVUZCVlN4RFFVRkRMRmxCUVZrN1RVRkRja0lzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdUVUZEZGtNc1NVRkJTU3hGUVVGRkxFTkJRVU03UVVGRFlpeExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN08wRkJSVllzUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlV3c1JVRkJSU3hGUVVGRkxFTkJRVU1zYzBaQlFYTkdMRVZCUVVVc1ZVRkJWU3hKUVVGSkxFVkJRVVU3TzBsQlJYcEhMRWxCUVVrc1QwRkJUeXhIUVVGSExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRla01zU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEVkQlFVRXNSVUZCUnl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRExFOUJRVUVzUlVGQlR5eERRVUZGTEU5QlFWTXNRMEZCUVR0TlFVTTVRaXhEUVVGQk8wRkJRM0JDTEV0QlFVc3NRMEZCUXp0QlFVTk9PenRKUVVWSkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dE5RVU16UXl4TlFVRk5MRVZCUVVVc1IwRkJSenROUVVOWUxGZEJRVmNzUlVGQlJTeHJRa0ZCYTBJN1RVRkRMMElzV1VGQldTeEZRVUZGTEVsQlFVazdRVUZEZUVJc1MwRkJTeXhEUVVGRExFTkJRVU03TzBGQlJWQXNTVUZCU1N4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOcVJEdEJRVU5CT3p0SlFVVkpMRlZCUVZVc1EwRkJReXhaUVVGWk8wMUJRM0pDTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenROUVVONlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0QlFVTmlMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6czdRVUZGVml4SFFVRkhMRU5CUVVNc1EwRkJRenM3UTBGRlNpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1JtOXliWE41SUQwZ2NtVnhkV2x5WlNnbkxpOHVMaTl6Y21NdmJXRnBiaTVxY3ljcE8xeHVYRzVrWlhOamNtbGlaU2duUVdwaGVDY3NJR1oxYm1OMGFXOXVLQ2tnZTF4dVhHNGdJR0psWm05eVpVVmhZMmdvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUdwaGMyMXBibVV1UVdwaGVDNXBibk4wWVd4c0tDazdYRzRnSUgwcE8xeHVYRzRnSUdGbWRHVnlSV0ZqYUNobWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2FtRnpiV2x1WlM1QmFtRjRMblZ1YVc1emRHRnNiQ2dwTzF4dUlDQjlLVHRjYmx4dUlDQnBkQ2duYzJodmRXeGtJSEJ2YzNRZ2RHOGdZU0JuYVhabGJpQjFjbXdnYVdZZ2NHRnpjMlZrSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElIVnliRDFjSWk5MWMyVnljMXdpUGx4dUlDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBcE8xeHVJQ0FnSUZ4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1SUNBZ0lHVjRjR1ZqZENocVlYTnRhVzVsTGtGcVlYZ3VjbVZ4ZFdWemRITXViVzl6ZEZKbFkyVnVkQ2dwTG5WeWJDa3VkRzlDWlNnbkwzVnpaWEp6SnlrN1hHNGdJQ0FnWlhod1pXTjBLR3BoYzIxcGJtVXVRV3BoZUM1eVpYRjFaWE4wY3k1dGIzTjBVbVZqWlc1MEtDa3ViV1YwYUc5a0tTNTBiMEpsS0NkUVQxTlVKeWs3WEc1Y2JpQWdmU2s3WEc1Y2JpQWdhWFFvSjNOb2IzVnNaQ0J3ZFhRZ2RHOGdZU0JuYVhabGJpQjFjbXdnYVdZZ2NHRnpjMlZrSUdFZ2JXVjBhRzlrSUdGMGRISnBZblYwWlNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENoY2JpQWdJQ0FnSUR4R2IzSnRjM2t1Um05eWJTQjFjbXc5WENJdmRYTmxjbk5jSWlCdFpYUm9iMlE5WENKUVZWUmNJajVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JpQWdJQ0JjYmlBZ0lDQlVaWE4wVlhScGJITXVVMmx0ZFd4aGRHVXVjM1ZpYldsMEtHWnZjbTB1WjJWMFJFOU5UbTlrWlNncEtUdGNiaUFnSUNCbGVIQmxZM1FvYW1GemJXbHVaUzVCYW1GNExuSmxjWFZsYzNSekxtMXZjM1JTWldObGJuUW9LUzUxY213cExuUnZRbVVvSnk5MWMyVnljeWNwTzF4dUlDQWdJR1Y0Y0dWamRDaHFZWE50YVc1bExrRnFZWGd1Y21WeGRXVnpkSE11Ylc5emRGSmxZMlZ1ZENncExtMWxkR2h2WkNrdWRHOUNaU2duVUZWVUp5azdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQndZWE56SUhndGQzZDNMV1p2Y20wdGRYSnNaVzVqYjJSbFpDQmhjeUJqYjI1MFpXNTBWSGx3WlNCM2FHVnVJSFZ5YkdWdVkyOWtaV1FnYVhNZ2MyVjBJR0Z6SUdOdmJuUmxiblJVZVhCbEp5d2dablZ1WTNScGIyNGdLQ2tnZTF4dVhHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJSFZ5YkQxY0lpOTFjMlZ5YzF3aUlHTnZiblJsYm5SVWVYQmxQVndpZFhKc1pXNWpiMlJsWkZ3aVBseHVJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQXBPMXh1SUNBZ0lGeHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1emRXSnRhWFFvWm05eWJTNW5aWFJFVDAxT2IyUmxLQ2twTzF4dUlDQWdJR1Y0Y0dWamRDaHFZWE50YVc1bExrRnFZWGd1Y21WeGRXVnpkSE11Ylc5emRGSmxZMlZ1ZENncExtTnZiblJsYm5SVWVYQmxLQ2twTG5SdlFtVW9KMkZ3Y0d4cFkyRjBhVzl1TDNndGQzZDNMV1p2Y20wdGRYSnNaVzVqYjJSbFpDY3BPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2R6YUc5MWJHUWdjblZ1SUdGdUlHOXVVM1ZqWTJWemN5Qm9ZVzVrYkdWeUxDQnBaaUJ3WVhOelpXUWdZVzVrSUdGcVlYZ2dhWE1nYzNWalkyVnpjMloxYkd3dUlFWnBjbk4wSUdGeVozVnRaVzUwSUdseklHUmhkR0VnWm5KdmJTQnpaWEoyWlhJbkxDQm1kVzVqZEdsdmJpQW9aRzl1WlNrZ2UxeHVJRnh1SUNBZ0lIWmhjaUJ2YmxOMVkyTmxjM01nUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNoY0luTjFZMk5sYzNOY0lpazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUhWeWJEMWNJaTkxYzJWeWMxd2lJRzl1VTNWalkyVnpjejE3YjI1VGRXTmpaWE56ZlQ1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNiaUFnSUNCY2JpQWdJQ0JxWVhOdGFXNWxMa0ZxWVhndWMzUjFZbEpsY1hWbGMzUW9KeTkxYzJWeWN5Y3BMbUZ1WkZKbGRIVnliaWg3WEc0Z0lDQWdJQ0J6ZEdGMGRYTTZJREl3TUN4Y2JpQWdJQ0FnSUdOdmJuUmxiblJVZVhCbE9pQW5ZWEJ3YkdsallYUnBiMjR2YW5OdmJpY3NYRzRnSUNBZ0lDQnlaWE53YjI1elpWUmxlSFE2SUNkN2ZTZGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE8xeHVYRzRnSUNBZ0x5OGdVMmx1WTJVZ1lXcGhlQ0JwY3lCeVpYUjFjbTVsWkNCaGN5QmhJSEJ5YjIxcGMyVWdLR0Z6ZVc1aktTd2diVzkyWlNCaGMzTmxjblJwYjI1Y2JpQWdJQ0F2THlCMGJ5QmxibVFnYjJZZ1pYWmxiblFnYkc5dmNGeHVJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdaWGh3WldOMEtHOXVVM1ZqWTJWemN5a3VkRzlJWVhabFFtVmxia05oYkd4bFpGZHBkR2dvZTMwcE8xeHVJQ0FnSUNBZ1pHOXVaU2dwTzF4dUlDQWdJSDBzSURBcE8xeHVYRzRnSUgwcE8xeHVYRzRnSUdsMEtDZHphRzkxYkdRZ2JtOTBJR1J2SUdGcVlYZ2djbVZ4ZFdWemRDQnBaaUJ2YmxOMVltMXBkQ0JvWVc1a2JHVnlJR2x6SUhCaGMzTmxaQ3dnWW5WMElIQmhjM01nZEdobElHMXZaR1ZzSUdGeklHWnBjbk4wSUdGeVozVnRaVzUwSUhSdklHOXVVM1ZpYldsMElHaGhibVJzWlhJbkxDQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdYRzRnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJRzl1VTNWaWJXbDBQWHR2YmxOMVltMXBkSDArWEc0Z0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSW1admIxd2lJSFpoYkhWbFBWd2lZbUZ5WENJdlBseHVJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbk4xWW0xcGRDaG1iM0p0TG1kbGRFUlBUVTV2WkdVb0tTazdYRzVjYmlBZ0lDQmxlSEJsWTNRb2FtRnpiV2x1WlM1QmFtRjRMbkpsY1hWbGMzUnpMbU52ZFc1MEtDa3BMblJ2UW1Vb01DazdYRzVjYmlBZ0lDQm1kVzVqZEdsdmJpQnZibE4xWW0xcGRDQW9aR0YwWVNrZ2UxeHVJQ0FnSUNBZ1pYaHdaV04wS0dSaGRHRXBMblJ2UlhGMVlXd29lMXh1SUNBZ0lDQWdJQ0JtYjI4NklDZGlZWEluWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdmU2s3WEc1Y2JpQWdhWFFvSjNOb2IzVnNaQ0IwY21sbloyVnlJR0Z1SUc5dVUzVmliV2wwZEdWa0lHaGhibVJzWlhJc0lHbG1JSEJoYzNObFpDQmhibVFnZEdobElITjFZbTFwZENCb1lYTWdjbVZ6Y0c5dVpHVmtJSGRwZEdnZ1UxVkRRMFZUVXljc0lHWjFibU4wYVc5dUlDaGtiMjVsS1NCN1hHNGdJQ0FnWEc0Z0lDQWdkbUZ5SUc5dVUzVmliV2wwZEdWa0lEMGdhbUZ6YldsdVpTNWpjbVZoZEdWVGNIa29YQ0p6ZFdKdGFYUjBaV1JjSWlrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJSFZ5YkQxY0lpOTFjMlZ5YzF3aUlHOXVVM1ZpYldsMGRHVmtQWHR2YmxOMVltMXBkSFJsWkgwK1hHNGdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDazdYRzRnSUNBZ1hHNGdJQ0FnYW1GemJXbHVaUzVCYW1GNExuTjBkV0pTWlhGMVpYTjBLQ2N2ZFhObGNuTW5LUzVoYm1SU1pYUjFjbTRvZTF4dUlDQWdJQ0FnYzNSaGRIVnpPaUF5TURBc1hHNGdJQ0FnSUNCamIyNTBaVzUwVkhsd1pUb2dKMkZ3Y0d4cFkyRjBhVzl1TDJwemIyNG5MRnh1SUNBZ0lDQWdjbVZ6Y0c5dWMyVlVaWGgwT2lBbmUzMG5YRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQlVaWE4wVlhScGJITXVVMmx0ZFd4aGRHVXVjM1ZpYldsMEtHWnZjbTB1WjJWMFJFOU5UbTlrWlNncEtUdGNibHh1SUNBZ0lDOHZJRk5wYm1ObElHRnFZWGdnYVhNZ2NtVjBkWEp1WldRZ1lYTWdZU0J3Y205dGFYTmxJQ2hoYzNsdVl5a3NJRzF2ZG1VZ1lYTnpaWEowYVc5dVhHNGdJQ0FnTHk4Z2RHOGdaVzVrSUc5bUlHVjJaVzUwSUd4dmIzQmNiaUFnSUNCelpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJR1Y0Y0dWamRDaHZibE4xWW0xcGRIUmxaQ2t1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dUlDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lIMHNJREFwTzF4dVhHNGdJSDBwTzF4dVhHNGdJR2wwS0NkemFHOTFiR1FnZEhKcFoyZGxjaUJoYmlCdmJsTjFZbTFwZEhSbFpDQm9ZVzVrYkdWeUxDQnBaaUJ3WVhOelpXUWdZVzVrSUhSb1pTQnpkV0p0YVhRZ2FHRnpJSEpsYzNCdmJtUmxaQ0IzYVhSb0lFVlNVazlTSnl3Z1puVnVZM1JwYjI0Z0tHUnZibVVwSUh0Y2JpQWdJQ0JjYmlBZ0lDQjJZWElnYjI1VGRXSnRhWFIwWldRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTaGNJbk4xWW0xcGRIUmxaRndpS1R0Y2JpQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb1hHNGdJQ0FnSUNBOFJtOXliWE41TGtadmNtMGdkWEpzUFZ3aUwzVnpaWEp6WENJZ2IyNVRkV0p0YVhSMFpXUTllMjl1VTNWaWJXbDBkR1ZrZlQ1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNiaUFnSUNCY2JpQWdJQ0JxWVhOdGFXNWxMa0ZxWVhndWMzUjFZbEpsY1hWbGMzUW9KeTkxYzJWeWN5Y3BMbUZ1WkZKbGRIVnliaWg3WEc0Z0lDQWdJQ0J6ZEdGMGRYTTZJRFV3TUN4Y2JpQWdJQ0FnSUdOdmJuUmxiblJVZVhCbE9pQW5ZWEJ3YkdsallYUnBiMjR2YW5OdmJpY3NYRzRnSUNBZ0lDQnlaWE53YjI1elpWUmxlSFE2SUNkN2ZTZGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE8xeHVYRzRnSUNBZ0x5OGdVMmx1WTJVZ1lXcGhlQ0JwY3lCeVpYUjFjbTVsWkNCaGN5QmhJSEJ5YjIxcGMyVWdLR0Z6ZVc1aktTd2diVzkyWlNCaGMzTmxjblJwYjI1Y2JpQWdJQ0F2THlCMGJ5QmxibVFnYjJZZ1pYWmxiblFnYkc5dmNGeHVJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdaWGh3WldOMEtHOXVVM1ZpYldsMGRHVmtLUzUwYjBoaGRtVkNaV1Z1UTJGc2JHVmtLQ2s3WEc0Z0lDQWdJQ0JrYjI1bEtDazdYRzRnSUNBZ2ZTd2dNQ2s3WEc1Y2JpQWdmU2s3WEc1Y2JpQWdhWFFvSjNOb2IzVnNaQ0IwY21sbloyVnlJR0Z1SUc5dVJYSnliM0lnYUdGdVpHeGxjaXdnYVdZZ2NHRnpjMlZrSUdGdVpDQjBhR1VnYzNWaWJXbDBJR2hoY3lCeVpYTndiMjVrWldRZ2QybDBhQ0JGVWxKUFVpY3NJR1oxYm1OMGFXOXVJQ2hrYjI1bEtTQjdYRzRnSUNBZ1hHNGdJQ0FnZG1GeUlHOXVSWEp5YjNJZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTaGNJbVZ5Y205eVhDSXBPMXh1SUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2hjYmlBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCMWNtdzlYQ0l2ZFhObGNuTmNJaUJ2YmtWeWNtOXlQWHR2YmtWeWNtOXlmVDVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JpQWdJQ0JjYmlBZ0lDQXZMeUJFYnlCdWIzUWdjbVYwZFhKdUlHRnVlU0JsY25KdmNpQmlaV05oZFhObElIUm9aWEpsSUdGeVpTQnVieUJwYm5CMWRITmNiaUFnSUNCcVlYTnRhVzVsTGtGcVlYZ3VjM1IxWWxKbGNYVmxjM1FvSnk5MWMyVnljeWNwTG1GdVpGSmxkSFZ5YmloN1hHNGdJQ0FnSUNCemRHRjBkWE02SURVd01DeGNiaUFnSUNBZ0lHTnZiblJsYm5SVWVYQmxPaUFuWVhCd2JHbGpZWFJwYjI0dmFuTnZiaWNzWEc0Z0lDQWdJQ0J5WlhOd2IyNXpaVlJsZUhRNklDZDdmU2RjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1WEc0Z0lDQWdMeThnVTJsdVkyVWdZV3BoZUNCcGN5QnlaWFIxY201bFpDQmhjeUJoSUhCeWIyMXBjMlVnS0dGemVXNWpLU3dnYlc5MlpTQmhjM05sY25ScGIyNWNiaUFnSUNBdkx5QjBieUJsYm1RZ2IyWWdaWFpsYm5RZ2JHOXZjRnh1SUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnWlhod1pXTjBLRzl1UlhKeWIzSXBMblJ2U0dGMlpVSmxaVzVEWVd4c1pXUlhhWFJvS0h0OUtUdGNiaUFnSUNBZ0lHUnZibVVvS1R0Y2JpQWdJQ0I5TENBd0tUdGNibHh1SUNCOUtUdGNibHh1ZlNrN1hHNGlYWDA9IiwidmFyIEZvcm1zeSA9IHJlcXVpcmUoJy4vLi4vc3JjL21haW4uanMnKTtcblxuZGVzY3JpYmUoJ1ZhbGlkYXRpb24nLCBmdW5jdGlvbigpIHtcblxuICBpdCgnc2hvdWxkIHRyaWdnZXIgYW4gb25WYWxpZCBoYW5kbGVyLCBpZiBwYXNzZWQsIHdoZW4gZm9ybSBpcyB2YWxpZCcsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBvblZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ3ZhbGlkJyk7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblZhbGlkOiBvblZhbGlkfSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgcmVxdWlyZWQ6IHRydWV9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdmb28nfX0pO1xuICAgIGV4cGVjdChvblZhbGlkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0cmlnZ2VyIGFuIG9uSW52YWxpZCBoYW5kbGVyLCBpZiBwYXNzZWQsIHdoZW4gZm9ybSBpcyBpbnZhbGlkJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIG9uSW52YWxpZCA9IGphc21pbmUuY3JlYXRlU3B5KCdpbnZhbGlkJyk7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblZhbGlkOiBvbkludmFsaWR9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJyd9fSk7XG4gICAgZXhwZWN0KG9uSW52YWxpZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gIH0pO1xuXG4gIGl0KCdSVUxFOiBpc0VtYWlsJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGlzVmFsaWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgndmFsaWQnKTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICBpc1ZhbGlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc0VtYWlsXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBleHBlY3QoaXNWYWxpZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdmb29AZm9vLmNvbSd9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnUlVMRTogaXNOdW1lcmljJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGlzVmFsaWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgndmFsaWQnKTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICBpc1ZhbGlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc051bWVyaWNcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIGV4cGVjdChpc1ZhbGlkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJzEyMyd9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnUlVMRTogaXNOdW1lcmljIChhY3R1YWwgbnVtYmVyKScsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ3ZhbGlkJyk7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSkpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICBpc1ZhbGlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc051bWVyaWNcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIGV4cGVjdChpc1ZhbGlkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJzEyMyd9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnUlVMRTogaXNOdW1lcmljIChzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBmbG9hdCknLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgaXNWYWxpZCA9IGphc21pbmUuY3JlYXRlU3B5KCd2YWxpZCcpO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgIGlzVmFsaWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwgbnVsbCwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCIsIHZhbGlkYXRpb25zOiBcImlzTnVtZXJpY1wifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnMS41J319KTtcbiAgICBleHBlY3QoaXNWYWxpZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gIH0pO1xuXG4gIGl0KCdSVUxFOiBpc051bWVyaWMgaXMgZmFsc2UgKHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBpbnZhbGlkIGZsb2F0KScsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ3ZhbGlkJyk7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgaXNWYWxpZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNOdW1lcmljXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBleHBlY3QoaXNWYWxpZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICcxLid9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgfSk7XG5cbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNHVmpjeTlXWVd4cFpHRjBhVzl1TFhOd1pXTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpOVZjMlZ5Y3k5amFISnBjM1JwWVc1aGJHWnZibWt2Ukc5amRXMWxiblJ6TDJSbGRpOW1iM0p0YzNrdGNtVmhZM1F2YzNCbFkzTXZWbUZzYVdSaGRHbHZiaTF6Y0dWakxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEVsQlFVa3NUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPenRCUVVWNlF5eFJRVUZSTEVOQlFVTXNXVUZCV1N4RlFVRkZMRmRCUVZjN08wRkJSV3hETEVWQlFVVXNSVUZCUlN4RFFVRkRMR3RGUVVGclJTeEZRVUZGTEZsQlFWazdPMGxCUldwR0xFbEJRVWtzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrTXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdUVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0TlFVTjBRaXhYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJRMjVETzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJReXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlpMRU5CUVVVc1EwRkJRVHRQUVVOd1JUdExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhQUVVGQkxFVkJRVThzUTBGQlJTeFBRVUZUTEVOQlFVRXNSVUZCUVR0UlFVTTNRaXh2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEZGQlFVRXNSVUZCUVN4RFFVRkZMRU5CUVVFN1RVRkRXaXhEUVVGQk8wRkJRM0JDTEV0QlFVc3NRMEZCUXpzN1NVRkZSaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNKRkxGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGREwwUXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenM3UVVGRmRrTXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNjMFZCUVhORkxFVkJRVVVzV1VGQldUczdTVUZGY2tZc1NVRkJTU3hUUVVGVExFZEJRVWNzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVNM1F5eEpRVUZKTEN0Q1FVRXJRaXg1UWtGQlFUdE5RVU5xUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzAxQlEzUkNMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1QwRkRia003VFVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRTlCUVVFc1JVRkJUeXhEUVVGRkxGTkJRVmNzUTBGQlFTeEZRVUZCTzFGQlF5OUNMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkZMRU5CUVVFN1RVRkRka0lzUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wbEJSVVlzU1VGQlNTeExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOeVJTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6VkVMRWxCUVVrc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03TzBGQlJYcERMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMR1ZCUVdVc1JVRkJSU3haUVVGWk96dEpRVVU1UWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNwRExFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UFFVTnVRenROUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzFWQlEyeENMRTlCUVU4c1JVRkJSU3hEUVVGRE8xTkJRMWc3VVVGRFJDeFBRVUZQTEc5Q1FVRkJMRTlCUVUwc1JVRkJRU3hEUVVGQkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRExFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVVXNTVUZCU1N4RFFVRkRMRmRCUVZrc1EwRkJSU3hEUVVGQk8wOUJRM0JGTzB0QlEwWXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRanROUVVOeVF5eHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1NVRkJReXhGUVVGQk8xRkJRMWdzYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eFhRVUZCTEVWQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVVc1EwRkJRVHROUVVNM1F5eERRVUZCTzBGQlEzQkNMRXRCUVVzc1EwRkJRenM3U1VGRlJpeEpRVUZKTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM0pGTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenRKUVVOMlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzWkZMRWxCUVVrc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03TzBGQlJYWkRMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEZsQlFWazdPMGxCUldoRExFbEJRVWtzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrTXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdUVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0TlFVTjBRaXhYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJRMjVETzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVN1ZVRkRiRUlzVDBGQlR5eEZRVUZGTEVOQlFVTTdVMEZEV0R0UlFVTkVMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVjBGQldTeERRVUZGTEVOQlFVRTdUMEZEY0VVN1MwRkRSaXhEUVVGRExFTkJRVU03U1VGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeEpRVUZETEVWQlFVRTdVVUZEV0N4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRmRCUVVFc1JVRkJWeXhEUVVGRExGZEJRVmNzUTBGQlJTeERRVUZCTzAxQlF5OURMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRWxCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEY2tVc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUlVGQlJTeERRVUZETzBsQlEzWkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRMMFFzU1VGQlNTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNRMEZCUXpzN1FVRkZka01zUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlV3c1JVRkJSU3hGUVVGRkxFTkJRVU1zYVVOQlFXbERMRVZCUVVVc1dVRkJXVHM3U1VGRmFFUXNTVUZCU1N4UFFVRlBMRWRCUVVjc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTjZReXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHROUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8wMUJRM1JDTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRSUVVNMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1QwRkRNME03VFVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlR0VlFVTnNRaXhQUVVGUExFVkJRVVVzUTBGQlF6dFRRVU5ZTzFGQlEwUXNUMEZCVHl4dlFrRkJRU3hQUVVGTkxFVkJRVUVzUTBGQlFTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlF5eERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRWxCUVVrc1EwRkJReXhYUVVGWkxFTkJRVVVzUTBGQlFUdFBRVU53UlR0TFFVTkdMRU5CUVVNc1EwRkJRenRKUVVOSUxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMEk3VFVGRGNrTXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFbEJRVU1zUlVGQlFUdFJRVU5ZTEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNWMEZCUVN4RlFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRkxFTkJRVUU3VFVGREwwTXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNTVUZCU1N4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRExDdENRVUVyUWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU55UlN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03U1VGRGRrTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXZSQ3hKUVVGSkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeERRVUZET3p0QlFVVjJReXhIUVVGSExFTkJRVU1zUTBGQlF6czdRVUZGVEN4RlFVRkZMRVZCUVVVc1EwRkJReXh2UkVGQmIwUXNSVUZCUlN4WlFVRlpPenRKUVVWdVJTeEpRVUZKTEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzcERMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzVjBGQlZ5eEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFBRVU51UXp0TlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRk8xVkJRMnhDTEU5QlFVOHNSVUZCUlN4RFFVRkRPMU5CUTFnN1VVRkRSQ3hQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNTVUZCUXl4RlFVRkJPMUZCUTFnc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhYUVVGQkxFVkJRVmNzUTBGQlF5eFhRVUZYTEVOQlFVVXNRMEZCUVR0TlFVTXZReXhEUVVGQk8wRkJRM0JDTEV0QlFVc3NRMEZCUXpzN1NVRkZSaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNKRkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNRMEZCUXp0SlFVTjJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJReTlFTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN08wRkJSWFpETEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWTUxFVkJRVVVzUlVGQlJTeERRVUZETEhORlFVRnpSU3hGUVVGRkxGbEJRVms3TzBsQlJYSkdMRWxCUVVrc1QwRkJUeXhIUVVGSExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRla01zU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VFVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dE5RVU4wUWl4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VVVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMDlCUTI1RE8wMUJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdWVUZEYkVJc1QwRkJUeXhGUVVGRkxFTkJRVU03VTBGRFdEdFJRVU5FTEU5QlFVOHNiMEpCUVVFc1QwRkJUU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVU1zUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1YwRkJXU3hEUVVGRkxFTkJRVUU3VDBGRGNFVTdTMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRTQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRmRCUVZjc1JVRkJRU3hKUVVGRExFVkJRVUU3VVVGRFdDeHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEZkQlFVRXNSVUZCVnl4RFFVRkRMRmRCUVZjc1EwRkJSU3hEUVVGQk8wMUJReTlETEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEVsQlFVa3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrVXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRE8wbEJRM1pETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZET1VRc1NVRkJTU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdPMEZCUlRORExFZEJRVWNzUTBGQlF5eERRVUZET3p0RFFVVktMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQkdiM0p0YzNrZ1BTQnlaWEYxYVhKbEtDY3VMeTR1TDNOeVl5OXRZV2x1TG1wekp5azdYRzVjYm1SbGMyTnlhV0psS0NkV1lXeHBaR0YwYVc5dUp5d2dablZ1WTNScGIyNG9LU0I3WEc1Y2JpQWdhWFFvSjNOb2IzVnNaQ0IwY21sbloyVnlJR0Z1SUc5dVZtRnNhV1FnYUdGdVpHeGxjaXdnYVdZZ2NHRnpjMlZrTENCM2FHVnVJR1p2Y20wZ2FYTWdkbUZzYVdRbkxDQm1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0IyWVhJZ2IyNVdZV3hwWkNBOUlHcGhjMjFwYm1VdVkzSmxZWFJsVTNCNUtDZDJZV3hwWkNjcE8xeHVJQ0FnSUhaaGNpQlVaWE4wU1c1d2RYUWdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ2RYQmtZWFJsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtHVjJaVzUwTG5SaGNtZGxkQzUyWVd4MVpTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUE4YVc1d2RYUWdkbUZzZFdVOWUzUm9hWE11WjJWMFZtRnNkV1VvS1gwZ2IyNURhR0Z1WjJVOWUzUm9hWE11ZFhCa1lYUmxWbUZzZFdWOUx6NWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNiaUFnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9YRzRnSUNBZ0lDQThSbTl5YlhONUxrWnZjbTBnYjI1V1lXeHBaRDE3YjI1V1lXeHBaSDArWEc0Z0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSW1admIxd2lJSEpsY1hWcGNtVmtMejVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhaaGNpQnBibkIxZENBOUlGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JFVDAxRGIyMXdiMjVsYm5SWGFYUm9WR0ZuS0dadmNtMHNJQ2RKVGxCVlZDY3BPMXh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNWphR0Z1WjJVb2FXNXdkWFFzSUh0MFlYSm5aWFE2SUh0MllXeDFaVG9nSjJadmJ5ZDlmU2s3WEc0Z0lDQWdaWGh3WldOMEtHOXVWbUZzYVdRcExuUnZTR0YyWlVKbFpXNURZV3hzWldRb0tUdGNibHh1SUNCOUtUdGNibHh1SUNCcGRDZ25jMmh2ZFd4a0lIUnlhV2RuWlhJZ1lXNGdiMjVKYm5aaGJHbGtJR2hoYm1Sc1pYSXNJR2xtSUhCaGMzTmxaQ3dnZDJobGJpQm1iM0p0SUdseklHbHVkbUZzYVdRbkxDQm1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0IyWVhJZ2IyNUpiblpoYkdsa0lEMGdhbUZ6YldsdVpTNWpjbVZoZEdWVGNIa29KMmx1ZG1Gc2FXUW5LVHRjYmlBZ0lDQjJZWElnVkdWemRFbHVjSFYwSUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ2JXbDRhVzV6T2lCYlJtOXliWE41TGsxcGVHbHVYU3hjYmlBZ0lDQWdJSFZ3WkdGMFpWWmhiSFZsT2lCbWRXNWpkR2x2YmlBb1pYWmxiblFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxuVndaR0YwWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElHOXVWbUZzYVdROWUyOXVTVzUyWVd4cFpIMCtYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJbVp2YjF3aUlIWmhiSFZsUFZ3aVptOXZYQ0l2UGx4dUlDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBcE8xeHVYRzRnSUNBZ2RtRnlJR2x1Y0hWMElEMGdWR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVSUFRVTnZiWEJ2Ym1WdWRGZHBkR2hVWVdjb1ptOXliU3dnSjBsT1VGVlVKeWs3WEc0Z0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaHBibkIxZEN3Z2UzUmhjbWRsZERvZ2UzWmhiSFZsT2lBbkozMTlLVHRjYmlBZ0lDQmxlSEJsWTNRb2IyNUpiblpoYkdsa0tTNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa0tDazdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KMUpWVEVVNklHbHpSVzFoYVd3bkxDQm1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0IyWVhJZ2FYTldZV3hwWkNBOUlHcGhjMjFwYm1VdVkzSmxZWFJsVTNCNUtDZDJZV3hwWkNjcE8xeHVJQ0FnSUhaaGNpQlVaWE4wU1c1d2RYUWdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ2RYQmtZWFJsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtHVjJaVzUwTG5SaGNtZGxkQzUyWVd4MVpTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1selZtRnNhV1FvS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6Vm1Gc2FXUW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG5Wd1pHRjBaVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbVp2YjF3aUlIWmhiR2xrWVhScGIyNXpQVndpYVhORmJXRnBiRndpTHo1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNibHh1SUNBZ0lIWmhjaUJwYm5CMWRDQTlJRlJsYzNSVmRHbHNjeTVtYVc1a1VtVnVaR1Z5WldSRVQwMURiMjF3YjI1bGJuUlhhWFJvVkdGbktHWnZjbTBzSUNkSlRsQlZWQ2NwTzF4dUlDQWdJR1Y0Y0dWamRDaHBjMVpoYkdsa0tTNXViM1F1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9hVzV3ZFhRc0lIdDBZWEpuWlhRNklIdDJZV3gxWlRvZ0oyWnZiMEJtYjI4dVkyOXRKMzE5S1R0Y2JpQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VkRzlJWVhabFFtVmxia05oYkd4bFpDZ3BPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2RTVlV4Rk9pQnBjMDUxYldWeWFXTW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCMllYSWdhWE5XWVd4cFpDQTlJR3BoYzIxcGJtVXVZM0psWVhSbFUzQjVLQ2QyWVd4cFpDY3BPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdkWEJrWVhSbFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtbHpWbUZzYVdRb0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdselZtRnNhV1FvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxuVndaR0YwWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNBZ0lDQThWR1Z6ZEVsdWNIVjBJRzVoYldVOVhDSm1iMjljSWlCMllXeDFaVDFjSW1admIxd2lJSFpoYkdsa1lYUnBiMjV6UFZ3aWFYTk9kVzFsY21salhDSXZQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnZG1GeUlHbHVjSFYwSUQwZ1ZHVnpkRlYwYVd4ekxtWnBibVJTWlc1a1pYSmxaRVJQVFVOdmJYQnZibVZ1ZEZkcGRHaFVZV2NvWm05eWJTd2dKMGxPVUZWVUp5azdYRzRnSUNBZ1pYaHdaV04wS0dselZtRnNhV1FwTG01dmRDNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa0tDazdYRzRnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExtTm9ZVzVuWlNocGJuQjFkQ3dnZTNSaGNtZGxkRG9nZTNaaGJIVmxPaUFuTVRJekozMTlLVHRjYmlBZ0lDQmxlSEJsWTNRb2FYTldZV3hwWkNrdWRHOUlZWFpsUW1WbGJrTmhiR3hsWkNncE8xeHVYRzRnSUgwcE8xeHVYRzRnSUdsMEtDZFNWVXhGT2lCcGMwNTFiV1Z5YVdNZ0tHRmpkSFZoYkNCdWRXMWlaWElwSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1WEc0Z0lDQWdkbUZ5SUdselZtRnNhV1FnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNnbmRtRnNhV1FuS1R0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUhWd1pHRjBaVlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNoT2RXMWlaWElvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1NrN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbWx6Vm1Gc2FXUW9LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbHpWbUZzYVdRb0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMblZ3WkdGMFpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0ptYjI5Y0lpQjJZV3gxWlQxY0ltWnZiMXdpSUhaaGJHbGtZWFJwYjI1elBWd2lhWE5PZFcxbGNtbGpYQ0l2UGx4dUlDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBcE8xeHVYRzRnSUNBZ2RtRnlJR2x1Y0hWMElEMGdWR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVSUFRVTnZiWEJ2Ym1WdWRGZHBkR2hVWVdjb1ptOXliU3dnSjBsT1VGVlVKeWs3WEc0Z0lDQWdaWGh3WldOMEtHbHpWbUZzYVdRcExtNXZkQzUwYjBoaGRtVkNaV1Z1UTJGc2JHVmtLQ2s3WEc0Z0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaHBibkIxZEN3Z2UzUmhjbWRsZERvZ2UzWmhiSFZsT2lBbk1USXpKMzE5S1R0Y2JpQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VkRzlJWVhabFFtVmxia05oYkd4bFpDZ3BPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2RTVlV4Rk9pQnBjMDUxYldWeWFXTWdLSE4wY21sdVp5QnlaWEJ5WlhObGJuUmhkR2x2YmlCdlppQmhJR1pzYjJGMEtTY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUhaaGNpQnBjMVpoYkdsa0lEMGdhbUZ6YldsdVpTNWpjbVZoZEdWVGNIa29KM1poYkdsa0p5azdYRzRnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQjFjR1JoZEdWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWFYTldZV3hwWkNncEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVhOV1lXeHBaQ2dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMGdiMjVEYUdGdVoyVTllM1JvYVhNdWRYQmtZWFJsVm1Gc2RXVjlMejVjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvWEc0Z0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpSUhaaGJIVmxQVndpWm05dlhDSWdkbUZzYVdSaGRHbHZibk05WENKcGMwNTFiV1Z5YVdOY0lpOCtYRzRnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtSRTlOUTI5dGNHOXVaVzUwVjJsMGFGUmhaeWhtYjNKdExDQW5TVTVRVlZRbktUdGNiaUFnSUNCbGVIQmxZM1FvYVhOV1lXeHBaQ2t1Ym05MExuUnZTR0YyWlVKbFpXNURZV3hzWldRb0tUdGNiaUFnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdVkyaGhibWRsS0dsdWNIVjBMQ0I3ZEdGeVoyVjBPaUI3ZG1Gc2RXVTZJQ2N4TGpVbmZYMHBPMXh1SUNBZ0lHVjRjR1ZqZENocGMxWmhiR2xrS1M1MGIwaGhkbVZDWldWdVEyRnNiR1ZrS0NrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0oxSlZURVU2SUdselRuVnRaWEpwWXlCcGN5Qm1ZV3h6WlNBb2MzUnlhVzVuSUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUdGdUlHbHVkbUZzYVdRZ1pteHZZWFFwSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1WEc0Z0lDQWdkbUZ5SUdselZtRnNhV1FnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNnbmRtRnNhV1FuS1R0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUhWd1pHRjBaVlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNobGRtVnVkQzUwWVhKblpYUXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVwYzFaaGJHbGtLQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBjMVpoYkdsa0tDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTUxY0dSaGRHVldZV3gxWlgwdlBseHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDaGNiaUFnSUNBZ0lEeEdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpWm05dlhDSWdkbUZzZFdVOVhDSm1iMjljSWlCMllXeHBaR0YwYVc5dWN6MWNJbWx6VG5WdFpYSnBZMXdpTHo1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNibHh1SUNBZ0lIWmhjaUJwYm5CMWRDQTlJRlJsYzNSVmRHbHNjeTVtYVc1a1VtVnVaR1Z5WldSRVQwMURiMjF3YjI1bGJuUlhhWFJvVkdGbktHWnZjbTBzSUNkSlRsQlZWQ2NwTzF4dUlDQWdJR1Y0Y0dWamRDaHBjMVpoYkdsa0tTNXViM1F1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9hVzV3ZFhRc0lIdDBZWEpuWlhRNklIdDJZV3gxWlRvZ0p6RXVKMzE5S1R0Y2JpQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VibTkwTG5SdlNHRjJaVUpsWlc1RFlXeHNaV1FvS1R0Y2JseHVJQ0I5S1R0Y2JseHVmU2s3WEc0aVhYMD0iLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF92YWx1ZTogdGhpcy5wcm9wcy52YWx1ZSA/IHRoaXMucHJvcHMudmFsdWUgOiAnJyxcbiAgICAgIF9pc1ZhbGlkOiB0cnVlLFxuICAgICAgX2lzUHJpc3RpbmU6IHRydWVcbiAgICB9O1xuICB9LFxuICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBjb25maWd1cmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLnNldFZhbGlkYXRpb25zKHRoaXMucHJvcHMudmFsaWRhdGlvbnMsIHRoaXMucHJvcHMucmVxdWlyZWQpO1xuICAgICAgdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtKHRoaXMpO1xuICAgIH0uYmluZCh0aGlzKTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5uYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm0gSW5wdXQgcmVxdWlyZXMgYSBuYW1lIHByb3BlcnR5IHdoZW4gdXNlZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtKSB7XG4gICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRm9ybSBNaXhpbiByZXF1aXJlcyBjb21wb25lbnQgdG8gYmUgbmVzdGVkIGluIGEgRm9ybScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbmZpZ3VyZSgpO1xuICAgICAgfS5iaW5kKHRoaXMpLCAwKTtcbiAgICB9XG4gICAgY29uZmlndXJlKCk7XG5cbiAgfSxcblxuICAvLyBXZSBoYXZlIHRvIG1ha2UgdGhlIHZhbGlkYXRlIG1ldGhvZCBpcyBrZXB0IHdoZW4gbmV3IHByb3BzIGFyZSBhZGRlZFxuICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzOiBmdW5jdGlvbiAobmV4dFByb3BzKSB7XG4gICAgbmV4dFByb3BzLl9hdHRhY2hUb0Zvcm0gPSB0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm07XG4gICAgbmV4dFByb3BzLl9kZXRhY2hGcm9tRm9ybSA9IHRoaXMucHJvcHMuX2RldGFjaEZyb21Gb3JtO1xuICAgIG5leHRQcm9wcy5fdmFsaWRhdGUgPSB0aGlzLnByb3BzLl92YWxpZGF0ZTtcbiAgICB0aGlzLnNldFZhbGlkYXRpb25zKG5leHRQcm9wcy52YWxpZGF0aW9ucywgbmV4dFByb3BzLnJlcXVpcmVkKTtcbiAgfSxcblxuICBjb21wb25lbnREaWRVcGRhdGU6IGZ1bmN0aW9uIChwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuXG4gICAgdmFyIGlzVmFsdWVDaGFuZ2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgXG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLnByb3BzLnZhbHVlICE9PSBwcmV2UHJvcHMudmFsdWUgJiYgKFxuICAgICAgICAgIHRoaXMuc3RhdGUuX3ZhbHVlID09PSBwcmV2UHJvcHMudmFsdWUgfHxcblxuICAgICAgICAgIC8vIFNpbmNlIHVuZGVmaW5lZCBpcyBjb252ZXJ0ZWQgdG8gZW1wdHkgc3RyaW5nIHdlIGhhdmUgdG9cbiAgICAgICAgICAvLyBjaGVjayB0aGF0IHNwZWNpZmljYWxseVxuICAgICAgICAgICh0aGlzLnN0YXRlLl92YWx1ZSA9PT0gJycgJiYgcHJldlByb3BzLnZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICB9LmJpbmQodGhpcyk7XG5cblxuICAgIC8vIElmIHZhbGlkYXRpb25zIGhhcyBjaGFuZ2VkIG9yIHNvbWV0aGluZyBvdXRzaWRlIGNoYW5nZXMgXG4gICAgLy8gdGhlIHZhbHVlLCBzZXQgdGhlIHZhbHVlIGFnYWluIHJ1bm5pbmcgYSB2YWxpZGF0aW9uXG5cbiAgICBpZiAocHJldlByb3BzLnZhbGlkYXRpb25zICE9PSB0aGlzLnByb3BzLnZhbGlkYXRpb25zIHx8IGlzVmFsdWVDaGFuZ2VkKCkpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5wcm9wcy52YWx1ZSB8fCAnJyk7XG4gICAgfVxuICB9LFxuXG4gIC8vIERldGFjaCBpdCB3aGVuIGNvbXBvbmVudCB1bm1vdW50c1xuICBjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMucHJvcHMuX2RldGFjaEZyb21Gb3JtKHRoaXMpO1xuICB9LFxuXG4gIHNldFZhbGlkYXRpb25zOiBmdW5jdGlvbiAodmFsaWRhdGlvbnMsIHJlcXVpcmVkKSB7XG5cbiAgICAvLyBBZGQgdmFsaWRhdGlvbnMgdG8gdGhlIHN0b3JlIGl0c2VsZiBhcyB0aGUgcHJvcHMgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWRcbiAgICB0aGlzLl92YWxpZGF0aW9ucyA9IHZhbGlkYXRpb25zIHx8ICcnO1xuXG4gICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICB0aGlzLl92YWxpZGF0aW9ucyA9IHZhbGlkYXRpb25zID8gdmFsaWRhdGlvbnMgKyAnLCcgOiAnJztcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25zICs9ICdpc1ZhbHVlJztcbiAgICB9XG5cbiAgfSxcblxuICAvLyBXZSB2YWxpZGF0ZSBhZnRlciB0aGUgdmFsdWUgaGFzIGJlZW4gc2V0XG4gIHNldFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIF92YWx1ZTogdmFsdWUsXG4gICAgICBfaXNQcmlzdGluZTogZmFsc2VcbiAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLnByb3BzLl92YWxpZGF0ZSh0aGlzKTtcbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuICByZXNldFZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBfdmFsdWU6ICcnLFxuICAgICAgX2lzUHJpc3RpbmU6IHRydWVcbiAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLnByb3BzLl92YWxpZGF0ZSh0aGlzKTtcbiAgICB9KTtcbiAgfSxcbiAgZ2V0VmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5fdmFsdWU7XG4gIH0sXG4gIGhhc1ZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX3ZhbHVlICE9PSAnJztcbiAgfSxcbiAgZ2V0RXJyb3JNZXNzYWdlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpIHx8IHRoaXMuc2hvd1JlcXVpcmVkKCkgPyBudWxsIDogdGhpcy5zdGF0ZS5fc2VydmVyRXJyb3IgfHwgdGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3I7XG4gIH0sXG4gIGlzRm9ybURpc2FibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuX2lzRm9ybURpc2FibGVkKCk7XG4gIH0sXG4gIGlzVmFsaWQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5faXNWYWxpZDtcbiAgfSxcbiAgaXNQcmlzdGluZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLl9pc1ByaXN0aW5lO1xuICB9LFxuICBpc1JlcXVpcmVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5wcm9wcy5yZXF1aXJlZDtcbiAgfSxcbiAgc2hvd1JlcXVpcmVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZXF1aXJlZCgpICYmIHRoaXMuc3RhdGUuX3ZhbHVlID09PSAnJztcbiAgfSxcbiAgc2hvd0Vycm9yOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICF0aGlzLnNob3dSZXF1aXJlZCgpICYmICF0aGlzLnN0YXRlLl9pc1ZhbGlkO1xuICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZUV2w0YVc0dWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk5VmMyVnljeTlqYUhKcGMzUnBZVzVoYkdadmJta3ZSRzlqZFcxbGJuUnpMMlJsZGk5bWIzSnRjM2t0Y21WaFkzUXZjM0pqTDAxcGVHbHVMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVkQlFVYzdSVUZEWml4bFFVRmxMRVZCUVVVc1dVRkJXVHRKUVVNelFpeFBRVUZQTzAxQlEwd3NUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFVkJRVVU3VFVGRGFFUXNVVUZCVVN4RlFVRkZMRWxCUVVrN1RVRkRaQ3hYUVVGWExFVkJRVVVzU1VGQlNUdExRVU5zUWl4RFFVRkRPMGRCUTBnN1FVRkRTQ3hGUVVGRkxHdENRVUZyUWl4RlFVRkZMRmxCUVZrN08wbEJSVGxDTEVsQlFVa3NVMEZCVXl4SFFVRkhMRmxCUVZrN1RVRkRNVUlzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wMUJRMnBGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzSkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdPMGxCUldJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkZPMDFCUTNCQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNLME5CUVN0RExFTkJRVU1zUTBGQlF6dEJRVU4yUlN4TFFVRkxPenRKUVVWRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1JVRkJSVHROUVVNM1FpeFBRVUZQTEZWQlFWVXNRMEZCUXl4WlFVRlpPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVc1QwRkJUenRSUVVNNVFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhoUVVGaExFVkJRVVU3VlVGRE4wSXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXh6UkVGQmMwUXNRMEZCUXl4RFFVRkRPMU5CUTNwRk8xRkJRMFFzVTBGQlV5eEZRVUZGTEVOQlFVTTdUMEZEWWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTnNRanRCUVVOTUxFbEJRVWtzVTBGQlV5eEZRVUZGTEVOQlFVTTdPMEZCUldoQ0xFZEJRVWM3UVVGRFNEczdSVUZGUlN4NVFrRkJlVUlzUlVGQlJTeFZRVUZWTEZOQlFWTXNSVUZCUlR0SlFVTTVReXhUUVVGVExFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRE8wbEJRMjVFTEZOQlFWTXNRMEZCUXl4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTTdTVUZEZGtRc1UwRkJVeXhEUVVGRExGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJRenRKUVVNelF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRk5CUVZNc1EwRkJReXhYUVVGWExFVkJRVVVzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUTI1RkxFZEJRVWM3TzBGQlJVZ3NSVUZCUlN4clFrRkJhMElzUlVGQlJTeFZRVUZWTEZOQlFWTXNSVUZCUlN4VFFVRlRMRVZCUVVVN08wRkJSWFJFTEVsQlFVa3NTVUZCU1N4alFVRmpMRWRCUVVjc1dVRkJXVHM3VFVGRkwwSTdVVUZEUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUzBGQlN5eFRRVUZUTEVOQlFVTXNTMEZCU3p0QlFVTTFReXhWUVVGVkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4TFFVRkxMRk5CUVZNc1EwRkJReXhMUVVGTE8wRkJReTlETzBGQlEwRTdPMWRCUlZjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NSVUZCUlN4SlFVRkpMRk5CUVZNc1EwRkJReXhMUVVGTExFdEJRVXNzVTBGQlV5eERRVUZETzFOQlF6VkVPMEZCUTFRc1VVRkJVVHM3UVVGRlVpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRMnBDTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRKUVVWSkxFbEJRVWtzVTBGQlV5eERRVUZETEZkQlFWY3NTMEZCU3l4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzU1VGQlNTeGpRVUZqTEVWQlFVVXNSVUZCUlR0TlFVTjRSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzB0QlEzWkRPMEZCUTB3c1IwRkJSenRCUVVOSU96dEZRVVZGTEc5Q1FVRnZRaXhGUVVGRkxGbEJRVms3U1VGRGFFTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEY2tNc1IwRkJSenM3UVVGRlNDeEZRVUZGTEdOQlFXTXNSVUZCUlN4VlFVRlZMRmRCUVZjc1JVRkJSU3hSUVVGUkxFVkJRVVU3UVVGRGJrUTdPMEZCUlVFc1NVRkJTU3hKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEZkQlFWY3NTVUZCU1N4RlFVRkZMRU5CUVVNN08wbEJSWFJETEVsQlFVa3NVVUZCVVN4RlFVRkZPMDFCUTFvc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eFhRVUZYTEVkQlFVY3NWMEZCVnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU03VFVGRGVrUXNTVUZCU1N4RFFVRkRMRmxCUVZrc1NVRkJTU3hUUVVGVExFTkJRVU03UVVGRGNrTXNTMEZCU3pzN1FVRkZUQ3hIUVVGSE8wRkJRMGc3TzBWQlJVVXNVVUZCVVN4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8wbEJRM3BDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1RVRkRXaXhOUVVGTkxFVkJRVVVzUzBGQlN6dE5RVU5pTEZkQlFWY3NSVUZCUlN4TFFVRkxPMHRCUTI1Q0xFVkJRVVVzV1VGQldUdE5RVU5pTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlF6VkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdSMEZEWmp0RlFVTkVMRlZCUVZVc1JVRkJSU3haUVVGWk8wbEJRM1JDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1RVRkRXaXhOUVVGTkxFVkJRVVVzUlVGQlJUdE5RVU5XTEZkQlFWY3NSVUZCUlN4SlFVRkpPMHRCUTJ4Q0xFVkJRVVVzV1VGQldUdE5RVU5pTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlF6VkNMRU5CUVVNc1EwRkJRenRIUVVOS08wVkJRMFFzVVVGQlVTeEZRVUZGTEZsQlFWazdTVUZEY0VJc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0SFFVTXhRanRGUVVORUxGRkJRVkVzUlVGQlJTeFpRVUZaTzBsQlEzQkNMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NSVUZCUlN4RFFVRkRPMGRCUTJwRE8wVkJRMFFzWlVGQlpTeEZRVUZGTEZsQlFWazdTVUZETTBJc1QwRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmxCUVZrc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXp0SFFVTTNSenRGUVVORUxHTkJRV01zUlVGQlJTeFpRVUZaTzBsQlF6RkNMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0SFFVTnlRenRGUVVORUxFOUJRVThzUlVGQlJTeFpRVUZaTzBsQlEyNUNMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTTdSMEZETlVJN1JVRkRSQ3hWUVVGVkxFVkJRVVVzV1VGQldUdEpRVU4wUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETzBkQlF5OUNPMFZCUTBRc1ZVRkJWU3hGUVVGRkxGbEJRVms3U1VGRGRFSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTTdSMEZET1VJN1JVRkRSQ3haUVVGWkxFVkJRVVVzV1VGQldUdEpRVU40UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1MwRkJTeXhGUVVGRkxFTkJRVU03UjBGRGRFUTdSVUZEUkN4VFFVRlRMRVZCUVVVc1dVRkJXVHRKUVVOeVFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNN1IwRkRja1E3UTBGRFJpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCN1hHNGdJR2RsZEVsdWFYUnBZV3hUZEdGMFpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmZkbUZzZFdVNklIUm9hWE11Y0hKdmNITXVkbUZzZFdVZ1B5QjBhR2x6TG5CeWIzQnpMblpoYkhWbElEb2dKeWNzWEc0Z0lDQWdJQ0JmYVhOV1lXeHBaRG9nZEhKMVpTeGNiaUFnSUNBZ0lGOXBjMUJ5YVhOMGFXNWxPaUIwY25WbFhHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ1kyOXRjRzl1Wlc1MFYybHNiRTF2ZFc1ME9pQm1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0IyWVhJZ1kyOXVabWxuZFhKbElEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXpaWFJXWVd4cFpHRjBhVzl1Y3loMGFHbHpMbkJ5YjNCekxuWmhiR2xrWVhScGIyNXpMQ0IwYUdsekxuQnliM0J6TG5KbGNYVnBjbVZrS1R0Y2JpQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdVgyRjBkR0ZqYUZSdlJtOXliU2gwYUdsektUdGNiaUFnSUNCOUxtSnBibVFvZEdocGN5azdYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXVjSEp2Y0hNdWJtRnRaU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RHYjNKdElFbHVjSFYwSUhKbGNYVnBjbVZ6SUdFZ2JtRnRaU0J3Y205d1pYSjBlU0IzYUdWdUlIVnpaV1FuS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11Y0hKdmNITXVYMkYwZEdGamFGUnZSbTl5YlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lYUm9hWE11YVhOTmIzVnVkR1ZrS0NrcElISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxuQnliM0J6TGw5aGRIUmhZMmhVYjBadmNtMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjBadmNtMGdUV2w0YVc0Z2NtVnhkV2x5WlhNZ1kyOXRjRzl1Wlc1MElIUnZJR0psSUc1bGMzUmxaQ0JwYmlCaElFWnZjbTBuS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpiMjVtYVdkMWNtVW9LVHRjYmlBZ0lDQWdJSDB1WW1sdVpDaDBhR2x6S1N3Z01DazdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJtWnBaM1Z5WlNncE8xeHVYRzRnSUgwc1hHNWNiaUFnTHk4Z1YyVWdhR0YyWlNCMGJ5QnRZV3RsSUhSb1pTQjJZV3hwWkdGMFpTQnRaWFJvYjJRZ2FYTWdhMlZ3ZENCM2FHVnVJRzVsZHlCd2NtOXdjeUJoY21VZ1lXUmtaV1JjYmlBZ1kyOXRjRzl1Wlc1MFYybHNiRkpsWTJWcGRtVlFjbTl3Y3pvZ1puVnVZM1JwYjI0Z0tHNWxlSFJRY205d2N5a2dlMXh1SUNBZ0lHNWxlSFJRY205d2N5NWZZWFIwWVdOb1ZHOUdiM0p0SUQwZ2RHaHBjeTV3Y205d2N5NWZZWFIwWVdOb1ZHOUdiM0p0TzF4dUlDQWdJRzVsZUhSUWNtOXdjeTVmWkdWMFlXTm9Sbkp2YlVadmNtMGdQU0IwYUdsekxuQnliM0J6TGw5a1pYUmhZMmhHY205dFJtOXliVHRjYmlBZ0lDQnVaWGgwVUhKdmNITXVYM1poYkdsa1lYUmxJRDBnZEdocGN5NXdjbTl3Y3k1ZmRtRnNhV1JoZEdVN1hHNGdJQ0FnZEdocGN5NXpaWFJXWVd4cFpHRjBhVzl1Y3lodVpYaDBVSEp2Y0hNdWRtRnNhV1JoZEdsdmJuTXNJRzVsZUhSUWNtOXdjeTV5WlhGMWFYSmxaQ2s3WEc0Z0lIMHNYRzVjYmlBZ1kyOXRjRzl1Wlc1MFJHbGtWWEJrWVhSbE9pQm1kVzVqZEdsdmJpQW9jSEpsZGxCeWIzQnpMQ0J3Y21WMlUzUmhkR1VwSUh0Y2JseHVJQ0FnSUhaaGNpQnBjMVpoYkhWbFEyaGhibWRsWkNBOUlHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJRnh1SUNBZ0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTUyWVd4MVpTQWhQVDBnY0hKbGRsQnliM0J6TG5aaGJIVmxJQ1ltSUNoY2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbDkyWVd4MVpTQTlQVDBnY0hKbGRsQnliM0J6TG5aaGJIVmxJSHg4WEc1Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJUYVc1alpTQjFibVJsWm1sdVpXUWdhWE1nWTI5dWRtVnlkR1ZrSUhSdklHVnRjSFI1SUhOMGNtbHVaeUIzWlNCb1lYWmxJSFJ2WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdZMmhsWTJzZ2RHaGhkQ0J6Y0dWamFXWnBZMkZzYkhsY2JpQWdJQ0FnSUNBZ0lDQW9kR2hwY3k1emRHRjBaUzVmZG1Gc2RXVWdQVDA5SUNjbklDWW1JSEJ5WlhaUWNtOXdjeTUyWVd4MVpTQTlQVDBnZFc1a1pXWnBibVZrS1Z4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcE8xeHVYRzRnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBPMXh1WEc1Y2JpQWdJQ0F2THlCSlppQjJZV3hwWkdGMGFXOXVjeUJvWVhNZ1kyaGhibWRsWkNCdmNpQnpiMjFsZEdocGJtY2diM1YwYzJsa1pTQmphR0Z1WjJWeklGeHVJQ0FnSUM4dklIUm9aU0IyWVd4MVpTd2djMlYwSUhSb1pTQjJZV3gxWlNCaFoyRnBiaUJ5ZFc1dWFXNW5JR0VnZG1Gc2FXUmhkR2x2Ymx4dVhHNGdJQ0FnYVdZZ0tIQnlaWFpRY205d2N5NTJZV3hwWkdGMGFXOXVjeUFoUFQwZ2RHaHBjeTV3Y205d2N5NTJZV3hwWkdGMGFXOXVjeUI4ZkNCcGMxWmhiSFZsUTJoaGJtZGxaQ2dwS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLSFJvYVhNdWNISnZjSE11ZG1Gc2RXVWdmSHdnSnljcE8xeHVJQ0FnSUgxY2JpQWdmU3hjYmx4dUlDQXZMeUJFWlhSaFkyZ2dhWFFnZDJobGJpQmpiMjF3YjI1bGJuUWdkVzV0YjNWdWRITmNiaUFnWTI5dGNHOXVaVzUwVjJsc2JGVnViVzkxYm5RNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQjBhR2x6TG5CeWIzQnpMbDlrWlhSaFkyaEdjbTl0Um05eWJTaDBhR2x6S1R0Y2JpQWdmU3hjYmx4dUlDQnpaWFJXWVd4cFpHRjBhVzl1Y3pvZ1puVnVZM1JwYjI0Z0tIWmhiR2xrWVhScGIyNXpMQ0J5WlhGMWFYSmxaQ2tnZTF4dVhHNGdJQ0FnTHk4Z1FXUmtJSFpoYkdsa1lYUnBiMjV6SUhSdklIUm9aU0J6ZEc5eVpTQnBkSE5sYkdZZ1lYTWdkR2hsSUhCeWIzQnpJRzlpYW1WamRDQmpZVzRnYm05MElHSmxJRzF2WkdsbWFXVmtYRzRnSUNBZ2RHaHBjeTVmZG1Gc2FXUmhkR2x2Ym5NZ1BTQjJZV3hwWkdGMGFXOXVjeUI4ZkNBbkp6dGNibHh1SUNBZ0lHbG1JQ2h5WlhGMWFYSmxaQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NWZkbUZzYVdSaGRHbHZibk1nUFNCMllXeHBaR0YwYVc5dWN5QS9JSFpoYkdsa1lYUnBiMjV6SUNzZ0p5d25JRG9nSnljN1hHNGdJQ0FnSUNCMGFHbHpMbDkyWVd4cFpHRjBhVzl1Y3lBclBTQW5hWE5XWVd4MVpTYzdYRzRnSUNBZ2ZWeHVYRzRnSUgwc1hHNWNiaUFnTHk4Z1YyVWdkbUZzYVdSaGRHVWdZV1owWlhJZ2RHaGxJSFpoYkhWbElHaGhjeUJpWldWdUlITmxkRnh1SUNCelpYUldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tIWmhiSFZsS1NCN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQmZkbUZzZFdVNklIWmhiSFZsTEZ4dUlDQWdJQ0FnWDJselVISnBjM1JwYm1VNklHWmhiSE5sWEc0Z0lDQWdmU3dnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NWZkbUZzYVdSaGRHVW9kR2hwY3lrN1hHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnZlN4Y2JpQWdjbVZ6WlhSV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdYM1poYkhWbE9pQW5KeXhjYmlBZ0lDQWdJRjlwYzFCeWFYTjBhVzVsT2lCMGNuVmxYRzRnSUNBZ2ZTd2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1ZmRtRnNhV1JoZEdVb2RHaHBjeWs3WEc0Z0lDQWdmU2s3WEc0Z0lIMHNYRzRnSUdkbGRGWmhiSFZsT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdVdVgzWmhiSFZsTzF4dUlDQjlMRnh1SUNCb1lYTldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhSbExsOTJZV3gxWlNBaFBUMGdKeWM3WEc0Z0lIMHNYRzRnSUdkbGRFVnljbTl5VFdWemMyRm5aVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpWbUZzYVdRb0tTQjhmQ0IwYUdsekxuTm9iM2RTWlhGMWFYSmxaQ2dwSUQ4Z2JuVnNiQ0E2SUhSb2FYTXVjM1JoZEdVdVgzTmxjblpsY2tWeWNtOXlJSHg4SUhSb2FYTXVjSEp2Y0hNdWRtRnNhV1JoZEdsdmJrVnljbTl5TzF4dUlDQjlMRnh1SUNCcGMwWnZjbTFFYVhOaFlteGxaRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuQnliM0J6TGw5cGMwWnZjbTFFYVhOaFlteGxaQ2dwTzF4dUlDQjlMRnh1SUNCcGMxWmhiR2xrT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdVdVgybHpWbUZzYVdRN1hHNGdJSDBzWEc0Z0lHbHpVSEpwYzNScGJtVTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emRHRjBaUzVmYVhOUWNtbHpkR2x1WlR0Y2JpQWdmU3hjYmlBZ2FYTlNaWEYxYVhKbFpEb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQWhJWFJvYVhNdWNISnZjSE11Y21WeGRXbHlaV1E3WEc0Z0lIMHNYRzRnSUhOb2IzZFNaWEYxYVhKbFpEb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1selVtVnhkV2x5WldRb0tTQW1KaUIwYUdsekxuTjBZWFJsTGw5MllXeDFaU0E5UFQwZ0p5YzdYRzRnSUgwc1hHNGdJSE5vYjNkRmNuSnZjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUFoZEdocGN5NXphRzkzVW1WeGRXbHlaV1FvS1NBbUppQWhkR2hwY3k1emRHRjBaUzVmYVhOV1lXeHBaRHRjYmlBZ2ZWeHVmVHRjYmlKZGZRPT0iLCJ2YXIgUmVhY3QgPSBnbG9iYWwuUmVhY3QgfHwgcmVxdWlyZSgncmVhY3QnKTtcbnZhciBGb3Jtc3kgPSB7fTtcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuL3ZhbGlkYXRpb25SdWxlcy5qcycpO1xudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscy5qcycpO1xudmFyIE1peGluID0gcmVxdWlyZSgnLi9NaXhpbi5qcycpO1xudmFyIG9wdGlvbnMgPSB7fTtcblxuRm9ybXN5Lk1peGluID0gTWl4aW47XG5cbkZvcm1zeS5kZWZhdWx0cyA9IGZ1bmN0aW9uIChwYXNzZWRPcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBwYXNzZWRPcHRpb25zO1xufTtcblxuRm9ybXN5LmFkZFZhbGlkYXRpb25SdWxlID0gZnVuY3Rpb24gKG5hbWUsIGZ1bmMpIHtcbiAgdmFsaWRhdGlvblJ1bGVzW25hbWVdID0gZnVuYztcbn07XG5cbkZvcm1zeS5Gb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIkZvcm1cIixcbiAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IHRydWUsXG4gICAgICBpc1N1Ym1pdHRpbmc6IGZhbHNlLFxuICAgICAgY2FuQ2hhbmdlOiBmYWxzZVxuICAgIH07XG4gIH0sXG4gIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBoZWFkZXJzOiB7fSxcbiAgICAgIG9uU3VjY2VzczogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkVycm9yOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uU3VibWl0OiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uVmFsaWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25JbnZhbGlkOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAoKSB7fVxuICAgIH07XG4gIH0sXG5cbiAgLy8gQWRkIGEgbWFwIHRvIHN0b3JlIHRoZSBpbnB1dHMgb2YgdGhlIGZvcm0sIGEgbW9kZWwgdG8gc3RvcmVcbiAgLy8gdGhlIHZhbHVlcyBvZiB0aGUgZm9ybSBhbmQgcmVnaXN0ZXIgY2hpbGQgaW5wdXRzXG4gIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuaW5wdXRzID0ge307XG4gICAgdGhpcy5tb2RlbCA9IHt9O1xuICAgIHRoaXMucmVnaXN0ZXJJbnB1dHModGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gIH0sXG5cbiAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVcGRhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgaW5wdXRLZXlzID0gT2JqZWN0LmtleXModGhpcy5pbnB1dHMpO1xuXG4gICAgLy8gVGhlIHVwZGF0ZWQgY2hpbGRyZW4gYXJyYXkgaXMgbm90IGF2YWlsYWJsZSBoZXJlIGZvciBzb21lIHJlYXNvbixcbiAgICAvLyB3ZSBuZWVkIHRvIHdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcFxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXG4gICAgICAvLyBUaGUgY29tcG9uZW50IG1pZ2h0IGhhdmUgYmVlbiB1bm1vdW50ZWQgb24gYW5cbiAgICAgIC8vIHVwZGF0ZVxuICAgICAgaWYgKHRoaXMuaXNNb3VudGVkKCkpIHtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVySW5wdXRzKHRoaXMucHJvcHMuY2hpbGRyZW4pO1xuXG4gICAgICAgIHZhciBuZXdJbnB1dEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmlucHV0cyk7XG4gICAgICAgIGlmICh1dGlscy5hcnJheXNEaWZmZXIoaW5wdXRLZXlzLCBuZXdJbnB1dEtleXMpKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9LmJpbmQodGhpcyksIDApO1xuICB9LFxuXG4gIC8vIFVwZGF0ZSBtb2RlbCwgc3VibWl0IHRvIHVybCBwcm9wIGFuZCBzZW5kIHRoZSBtb2RlbFxuICBzdWJtaXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBUcmlnZ2VyIGZvcm0gYXMgbm90IHByaXN0aW5lLlxuICAgIC8vIElmIGFueSBpbnB1dHMgaGF2ZSBub3QgYmVlbiB0b3VjaGVkIHlldCB0aGlzIHdpbGwgbWFrZSB0aGVtIGRpcnR5XG4gICAgLy8gc28gdmFsaWRhdGlvbiBiZWNvbWVzIHZpc2libGUgKGlmIGJhc2VkIG9uIGlzUHJpc3RpbmUpXG4gICAgdGhpcy5zZXRGb3JtUHJpc3RpbmUoZmFsc2UpO1xuXG4gICAgLy8gVG8gc3VwcG9ydCB1c2UgY2FzZXMgd2hlcmUgbm8gYXN5bmMgb3IgcmVxdWVzdCBvcGVyYXRpb24gaXMgbmVlZGVkLlxuICAgIC8vIFRoZSBcIm9uU3VibWl0XCIgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggdGhlIG1vZGVsIGUuZy4ge2ZpZWxkTmFtZTogXCJteVZhbHVlXCJ9LFxuICAgIC8vIGlmIHdhbnRpbmcgdG8gcmVzZXQgdGhlIGVudGlyZSBmb3JtIHRvIG9yaWdpbmFsIHN0YXRlLCB0aGUgc2Vjb25kIHBhcmFtIGlzIGEgY2FsbGJhY2sgZm9yIHRoaXMuXG4gICAgaWYgKCF0aGlzLnByb3BzLnVybCkge1xuICAgICAgdGhpcy51cGRhdGVNb2RlbCgpO1xuICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdCh0aGlzLm1hcE1vZGVsKCksIHRoaXMucmVzZXRNb2RlbCwgdGhpcy51cGRhdGVJbnB1dHNXaXRoRXJyb3IpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlTW9kZWwoKTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGlzU3VibWl0dGluZzogdHJ1ZVxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9wcy5vblN1Ym1pdCh0aGlzLm1hcE1vZGVsKCksIHRoaXMucmVzZXRNb2RlbCwgdGhpcy51cGRhdGVJbnB1dHNXaXRoRXJyb3IpO1xuXG4gICAgdmFyIGhlYWRlcnMgPSAoT2JqZWN0LmtleXModGhpcy5wcm9wcy5oZWFkZXJzKS5sZW5ndGggJiYgdGhpcy5wcm9wcy5oZWFkZXJzKSB8fCBvcHRpb25zLmhlYWRlcnMgfHwge307XG5cbiAgICB2YXIgbWV0aG9kID0gdGhpcy5wcm9wcy5tZXRob2QgJiYgdXRpbHMuYWpheFt0aGlzLnByb3BzLm1ldGhvZC50b0xvd2VyQ2FzZSgpXSA/IHRoaXMucHJvcHMubWV0aG9kLnRvTG93ZXJDYXNlKCkgOiAncG9zdCc7XG4gICAgdXRpbHMuYWpheFttZXRob2RdKHRoaXMucHJvcHMudXJsLCB0aGlzLm1hcE1vZGVsKCksIHRoaXMucHJvcHMuY29udGVudFR5cGUgfHwgb3B0aW9ucy5jb250ZW50VHlwZSB8fCAnanNvbicsIGhlYWRlcnMpXG4gICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblN1Y2Nlc3MocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLnByb3BzLm9uU3VibWl0dGVkKCk7XG4gICAgICB9LmJpbmQodGhpcykpXG4gICAgICAuY2F0Y2godGhpcy5mYWlsU3VibWl0KTtcbiAgfSxcblxuICBtYXBNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm1hcHBpbmcgPyB0aGlzLnByb3BzLm1hcHBpbmcodGhpcy5tb2RlbCkgOiB0aGlzLm1vZGVsO1xuICB9LFxuXG4gIC8vIEdvZXMgdGhyb3VnaCBhbGwgcmVnaXN0ZXJlZCBjb21wb25lbnRzIGFuZFxuICAvLyB1cGRhdGVzIHRoZSBtb2RlbCB2YWx1ZXNcbiAgdXBkYXRlTW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMuaW5wdXRzW25hbWVdO1xuICAgICAgdGhpcy5tb2RlbFtuYW1lXSA9IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICAvLyBSZXNldCBlYWNoIGtleSBpbiB0aGUgbW9kZWwgdG8gdGhlIG9yaWdpbmFsIC8gaW5pdGlhbCB2YWx1ZVxuICByZXNldE1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHRoaXMuaW5wdXRzW25hbWVdLnJlc2V0VmFsdWUoKTtcbiAgICB9LmJpbmQodGhpcykpO1xuICAgIHRoaXMudmFsaWRhdGVGb3JtKCk7XG4gIH0sXG5cbiAgLy8gR28gdGhyb3VnaCBlcnJvcnMgZnJvbSBzZXJ2ZXIgYW5kIGdyYWIgdGhlIGNvbXBvbmVudHNcbiAgLy8gc3RvcmVkIGluIHRoZSBpbnB1dHMgbWFwLiBDaGFuZ2UgdGhlaXIgc3RhdGUgdG8gaW52YWxpZFxuICAvLyBhbmQgc2V0IHRoZSBzZXJ2ZXJFcnJvciBtZXNzYWdlXG4gIHVwZGF0ZUlucHV0c1dpdGhFcnJvcjogZnVuY3Rpb24gKGVycm9ycykge1xuICAgIE9iamVjdC5rZXlzKGVycm9ycykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcblxuICAgICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgYXJlIHRyeWluZyB0byB1cGRhdGUgYW4gaW5wdXQgdGhhdCBkb2VzIG5vdCBleGlzdHMuIFZlcmlmeSBlcnJvcnMgb2JqZWN0IHdpdGggaW5wdXQgbmFtZXMuICcgKyBKU09OLnN0cmluZ2lmeShlcnJvcnMpKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGFyZ3MgPSBbe1xuICAgICAgICBfaXNWYWxpZDogZmFsc2UsXG4gICAgICAgIF9zZXJ2ZXJFcnJvcjogZXJyb3JzW25hbWVdXG4gICAgICB9XTtcbiAgICAgIGNvbXBvbmVudC5zZXRTdGF0ZS5hcHBseShjb21wb25lbnQsIGFyZ3MpO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG5cbiAgZmFpbFN1Ym1pdDogZnVuY3Rpb24gKGVycm9ycykge1xuICAgIHRoaXMudXBkYXRlSW5wdXRzV2l0aEVycm9yKGVycm9ycyk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBpc1N1Ym1pdHRpbmc6IGZhbHNlXG4gICAgfSk7XG4gICAgdGhpcy5wcm9wcy5vbkVycm9yKGVycm9ycyk7XG4gICAgdGhpcy5wcm9wcy5vblN1Ym1pdHRlZCgpO1xuICB9LFxuXG4gIC8vIFRyYXZlcnNlIHRoZSBjaGlsZHJlbiBhbmQgY2hpbGRyZW4gb2YgY2hpbGRyZW4gdG8gZmluZFxuICAvLyBhbGwgaW5wdXRzIGJ5IGNoZWNraW5nIHRoZSBuYW1lIHByb3AuIE1heWJlIGRvIGEgYmV0dGVyXG4gIC8vIGNoZWNrIGhlcmVcbiAgcmVnaXN0ZXJJbnB1dHM6IGZ1bmN0aW9uIChjaGlsZHJlbikge1xuICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuXG4gICAgICBpZiAoY2hpbGQgJiYgY2hpbGQucHJvcHMgJiYgY2hpbGQucHJvcHMubmFtZSkge1xuICAgICAgICBjaGlsZC5wcm9wcy5fYXR0YWNoVG9Gb3JtID0gdGhpcy5hdHRhY2hUb0Zvcm07XG4gICAgICAgIGNoaWxkLnByb3BzLl9kZXRhY2hGcm9tRm9ybSA9IHRoaXMuZGV0YWNoRnJvbUZvcm07XG4gICAgICAgIGNoaWxkLnByb3BzLl92YWxpZGF0ZSA9IHRoaXMudmFsaWRhdGU7XG4gICAgICAgIGNoaWxkLnByb3BzLl9pc0Zvcm1EaXNhYmxlZCA9IHRoaXMuaXNGb3JtRGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGlsZCAmJiBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLnJlZ2lzdGVySW5wdXRzKGNoaWxkLnByb3BzLmNoaWxkcmVuKTtcbiAgICAgIH1cblxuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG5cbiAgaXNGb3JtRGlzYWJsZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kaXNhYmxlZDtcbiAgfSxcblxuICBnZXRDdXJyZW50VmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKS5yZWR1Y2UoZnVuY3Rpb24gKGRhdGEsIG5hbWUpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcbiAgICAgIGRhdGFbbmFtZV0gPSBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfS5iaW5kKHRoaXMpLCB7fSk7XG4gIH0sXG5cbiAgc2V0Rm9ybVByaXN0aW5lOiBmdW5jdGlvbiAoaXNQcmlzdGluZSkge1xuICAgIHZhciBpbnB1dHMgPSB0aGlzLmlucHV0cztcbiAgICB2YXIgaW5wdXRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRzKTtcblxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGNvbXBvbmVudCBhbmQgc2V0IGl0IGFzIHByaXN0aW5lXG4gICAgLy8gb3IgXCJkaXJ0eVwiLlxuICAgIGlucHV0S2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lLCBpbmRleCkge1xuICAgICAgdmFyIGNvbXBvbmVudCA9IGlucHV0c1tuYW1lXTtcbiAgICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICAgIF9pc1ByaXN0aW5lOiBpc1ByaXN0aW5lXG4gICAgICB9KTtcbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIC8vIFVzZSB0aGUgYmluZGVkIHZhbHVlcyBhbmQgdGhlIGFjdHVhbCBpbnB1dCB2YWx1ZSB0b1xuICAvLyB2YWxpZGF0ZSB0aGUgaW5wdXQgYW5kIHNldCBpdHMgc3RhdGUuIFRoZW4gY2hlY2sgdGhlXG4gIC8vIHN0YXRlIG9mIHRoZSBmb3JtIGl0c2VsZlxuICB2YWxpZGF0ZTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuXG4gICAgLy8gVHJpZ2dlciBvbkNoYW5nZVxuICAgIGlmICh0aGlzLnN0YXRlLmNhbkNoYW5nZSkge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLmdldEN1cnJlbnRWYWx1ZXMoKSk7XG4gICAgfVxuXG4gICAgaWYgKCFjb21wb25lbnQucHJvcHMucmVxdWlyZWQgJiYgIWNvbXBvbmVudC5fdmFsaWRhdGlvbnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSdW4gdGhyb3VnaCB0aGUgdmFsaWRhdGlvbnMsIHNwbGl0IHRoZW0gdXAgYW5kIGNhbGxcbiAgICAvLyB0aGUgdmFsaWRhdG9yIElGIHRoZXJlIGlzIGEgdmFsdWUgb3IgaXQgaXMgcmVxdWlyZWRcbiAgICB2YXIgaXNWYWxpZCA9IHRoaXMucnVuVmFsaWRhdGlvbihjb21wb25lbnQpO1xuXG4gICAgY29tcG9uZW50LnNldFN0YXRlKHtcbiAgICAgIF9pc1ZhbGlkOiBpc1ZhbGlkLFxuICAgICAgX3NlcnZlckVycm9yOiBudWxsXG4gICAgfSwgdGhpcy52YWxpZGF0ZUZvcm0pO1xuXG4gIH0sXG5cbiAgcnVuVmFsaWRhdGlvbjogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIHZhciBpc1ZhbGlkID0gdHJ1ZTtcbiAgICBpZiAoY29tcG9uZW50Ll92YWxpZGF0aW9ucy5sZW5ndGggJiYgKGNvbXBvbmVudC5wcm9wcy5yZXF1aXJlZCB8fCBjb21wb25lbnQuc3RhdGUuX3ZhbHVlICE9PSAnJykpIHtcbiAgICAgIGNvbXBvbmVudC5fdmFsaWRhdGlvbnMuc3BsaXQoJywnKS5mb3JFYWNoKGZ1bmN0aW9uICh2YWxpZGF0aW9uKSB7XG4gICAgICAgIHZhciBhcmdzID0gdmFsaWRhdGlvbi5zcGxpdCgnOicpO1xuICAgICAgICB2YXIgdmFsaWRhdGVNZXRob2QgPSBhcmdzLnNoaWZ0KCk7XG4gICAgICAgIGFyZ3MgPSBhcmdzLm1hcChmdW5jdGlvbiAoYXJnKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGFyZyk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFyZzsgLy8gSXQgaXMgYSBzdHJpbmcgaWYgaXQgY2FuIG5vdCBwYXJzZSBpdFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGFyZ3MgPSBbY29tcG9uZW50LnN0YXRlLl92YWx1ZV0uY29uY2F0KGFyZ3MpO1xuICAgICAgICBpZiAoIXZhbGlkYXRpb25SdWxlc1t2YWxpZGF0ZU1ldGhvZF0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm1zeSBkb2VzIG5vdCBoYXZlIHRoZSB2YWxpZGF0aW9uIHJ1bGU6ICcgKyB2YWxpZGF0ZU1ldGhvZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZGF0aW9uUnVsZXNbdmFsaWRhdGVNZXRob2RdLmFwcGx5KHRoaXMuZ2V0Q3VycmVudFZhbHVlcygpLCBhcmdzKSkge1xuICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH0sXG5cbiAgLy8gVmFsaWRhdGUgdGhlIGZvcm0gYnkgZ29pbmcgdGhyb3VnaCBhbGwgY2hpbGQgaW5wdXQgY29tcG9uZW50c1xuICAvLyBhbmQgY2hlY2sgdGhlaXIgc3RhdGVcbiAgdmFsaWRhdGVGb3JtOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFsbElzVmFsaWQgPSB0cnVlO1xuICAgIHZhciBpbnB1dHMgPSB0aGlzLmlucHV0cztcbiAgICB2YXIgaW5wdXRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRzKTtcblxuICAgIC8vIFdlIG5lZWQgYSBjYWxsYmFjayBhcyB3ZSBhcmUgdmFsaWRhdGluZyBhbGwgaW5wdXRzIGFnYWluLiBUaGlzIHdpbGxcbiAgICAvLyBydW4gd2hlbiB0aGUgbGFzdCBjb21wb25lbnQgaGFzIHNldCBpdHMgc3RhdGVcbiAgICB2YXIgb25WYWxpZGF0aW9uQ29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBpZiAoIWlucHV0c1tuYW1lXS5zdGF0ZS5faXNWYWxpZCkge1xuICAgICAgICAgIGFsbElzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpKTtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlzVmFsaWQ6IGFsbElzVmFsaWRcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoYWxsSXNWYWxpZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uVmFsaWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvcHMub25JbnZhbGlkKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRlbGwgdGhlIGZvcm0gdGhhdCBpdCBjYW4gc3RhcnQgdG8gdHJpZ2dlciBjaGFuZ2UgZXZlbnRzXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2FuQ2hhbmdlOiB0cnVlXG4gICAgICB9KTtcblxuICAgIH0uYmluZCh0aGlzKTtcblxuICAgIC8vIFJ1biB2YWxpZGF0aW9uIGFnYWluIGluIGNhc2UgYWZmZWN0ZWQgYnkgb3RoZXIgaW5wdXRzLiBUaGVcbiAgICAvLyBsYXN0IGNvbXBvbmVudCB2YWxpZGF0ZWQgd2lsbCBydW4gdGhlIG9uVmFsaWRhdGlvbkNvbXBsZXRlIGNhbGxiYWNrXG4gICAgaW5wdXRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gaW5wdXRzW25hbWVdO1xuICAgICAgdmFyIGlzVmFsaWQgPSB0aGlzLnJ1blZhbGlkYXRpb24oY29tcG9uZW50KTtcbiAgICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICAgIF9pc1ZhbGlkOiBpc1ZhbGlkLFxuICAgICAgICBfc2VydmVyRXJyb3I6IG51bGxcbiAgICAgIH0sIGluZGV4ID09PSBpbnB1dEtleXMubGVuZ3RoIC0gMSA/IG9uVmFsaWRhdGlvbkNvbXBsZXRlIDogbnVsbCk7XG4gICAgfS5iaW5kKHRoaXMpKTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSBubyBpbnB1dHMsIHNldCBzdGF0ZSB3aGVyZSBmb3JtIGlzIHJlYWR5IHRvIHRyaWdnZXJcbiAgICAvLyBjaGFuZ2UgZXZlbnQuIE5ldyBpbnB1dHMgbWlnaHQgYmUgYWRkZWQgbGF0ZXJcbiAgICBpZiAoIWlucHV0S2V5cy5sZW5ndGggJiYgdGhpcy5pc01vdW50ZWQoKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNhbkNoYW5nZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8vIE1ldGhvZCBwdXQgb24gZWFjaCBpbnB1dCBjb21wb25lbnQgdG8gcmVnaXN0ZXJcbiAgLy8gaXRzZWxmIHRvIHRoZSBmb3JtXG4gIGF0dGFjaFRvRm9ybTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIHRoaXMuaW5wdXRzW2NvbXBvbmVudC5wcm9wcy5uYW1lXSA9IGNvbXBvbmVudDtcbiAgICB0aGlzLm1vZGVsW2NvbXBvbmVudC5wcm9wcy5uYW1lXSA9IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgdGhpcy52YWxpZGF0ZShjb21wb25lbnQpO1xuICB9LFxuXG4gIC8vIE1ldGhvZCBwdXQgb24gZWFjaCBpbnB1dCBjb21wb25lbnQgdG8gdW5yZWdpc3RlclxuICAvLyBpdHNlbGYgZnJvbSB0aGUgZm9ybVxuICBkZXRhY2hGcm9tRm9ybTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIGRlbGV0ZSB0aGlzLmlucHV0c1tjb21wb25lbnQucHJvcHMubmFtZV07XG4gICAgZGVsZXRlIHRoaXMubW9kZWxbY29tcG9uZW50LnByb3BzLm5hbWVdO1xuICB9LFxuICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcblxuICAgIHJldHVybiBSZWFjdC5ET00uZm9ybSh7XG4gICAgICAgIG9uU3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZVxuICAgICAgfSxcbiAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICApO1xuXG4gIH1cbn0pO1xuXG5pZiAoIWdsb2JhbC5leHBvcnRzICYmICFnbG9iYWwubW9kdWxlICYmICghZ2xvYmFsLmRlZmluZSB8fCAhZ2xvYmFsLmRlZmluZS5hbWQpKSB7XG4gIGdsb2JhbC5Gb3Jtc3kgPSBGb3Jtc3k7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRm9ybXN5O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZiV0ZwYmk1cWN5SXNJbk52ZFhKalpYTWlPbHNpTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12YldGcGJpNXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4SlFVRkpMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zUzBGQlN5eEpRVUZKTEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNM1F5eEpRVUZKTEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRhRUlzU1VGQlNTeGxRVUZsTEVkQlFVY3NUMEZCVHl4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTTdRVUZEZEVRc1NVRkJTU3hMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMEZCUTJ4RExFbEJRVWtzUzBGQlN5eEhRVUZITEU5QlFVOHNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRCUVVOc1F5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNN08wRkJSV3BDTEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE96dEJRVVZ5UWl4TlFVRk5MRU5CUVVNc1VVRkJVU3hIUVVGSExGVkJRVlVzWVVGQllTeEZRVUZGTzBWQlEzcERMRTlCUVU4c1IwRkJSeXhoUVVGaExFTkJRVU03UVVGRE1VSXNRMEZCUXl4RFFVRkRPenRCUVVWR0xFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhWUVVGVkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVTdSVUZETDBNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0QlFVTXZRaXhEUVVGRExFTkJRVU03TzBGQlJVWXNhVU5CUVdsRExHOUNRVUZCTzBWQlF5OUNMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVODdUVUZEVEN4UFFVRlBMRVZCUVVVc1NVRkJTVHROUVVOaUxGbEJRVmtzUlVGQlJTeExRVUZMTzAxQlEyNUNMRk5CUVZNc1JVRkJSU3hMUVVGTE8wdEJRMnBDTEVOQlFVTTdSMEZEU0R0RlFVTkVMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVODdUVUZEVEN4UFFVRlBMRVZCUVVVc1JVRkJSVHROUVVOWUxGTkJRVk1zUlVGQlJTeFpRVUZaTEVWQlFVVTdUVUZEZWtJc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJUdE5RVU4yUWl4UlFVRlJMRVZCUVVVc1dVRkJXU3hGUVVGRk8wMUJRM2hDTEZkQlFWY3NSVUZCUlN4WlFVRlpMRVZCUVVVN1RVRkRNMElzVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlR0TlFVTjJRaXhUUVVGVExFVkJRVVVzV1VGQldTeEZRVUZGTzAxQlEzcENMRkZCUVZFc1JVRkJSU3haUVVGWkxFVkJRVVU3UzBGRGVrSXNRMEZCUXp0QlFVTk9MRWRCUVVjN1FVRkRTRHRCUVVOQk96dEZRVVZGTEd0Q1FVRnJRaXhGUVVGRkxGbEJRVms3U1VGRE9VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGFrSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGFFSXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUXpkRExFZEJRVWM3TzBWQlJVUXNhVUpCUVdsQ0xFVkJRVVVzV1VGQldUdEpRVU0zUWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03UVVGRGVFSXNSMEZCUnpzN1JVRkZSQ3h0UWtGQmJVSXNSVUZCUlN4WlFVRlpPMEZCUTI1RExFbEJRVWtzU1VGQlNTeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdRVUZETjBNN1FVRkRRVHM3UVVGRlFTeEpRVUZKTEZWQlFWVXNRMEZCUXl4WlFVRlpPMEZCUXpOQ08wRkJRMEU3TzBGQlJVRXNUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzUlVGQlJUczdRVUZGTlVJc1VVRkJVU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03TzFGQlJYcERMRWxCUVVrc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRelZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhUUVVGVExFVkJRVVVzV1VGQldTeERRVUZETEVWQlFVVTdWVUZETDBNc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzBGQlF6bENMRk5CUVZNN08wRkJSVlFzVDBGQlR6czdTMEZGUml4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnlRaXhIUVVGSE8wRkJRMGc3TzBWQlJVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8wRkJRek5DTEVsQlFVa3NTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8wRkJRek5DTzBGQlEwRTdRVUZEUVRzN1FVRkZRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRhRU03UVVGRFFUdEJRVU5CT3p0SlFVVkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSVUZCUlR0TlFVTnVRaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdUVUZEYmtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTTdUVUZEYkVZc1QwRkJUenRCUVVOaUxFdEJRVXM3TzBsQlJVUXNTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8wbEJRMjVDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1RVRkRXaXhaUVVGWkxFVkJRVVVzU1VGQlNUdEJRVU40UWl4TFFVRkxMRU5CUVVNc1EwRkJRenM3UVVGRlVDeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE96dEJRVVYwUml4SlFVRkpMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUzBGQlN5eFBRVUZQTEVOQlFVTXNUMEZCVHl4SlFVRkpMRVZCUVVVc1EwRkJRenM3U1VGRmRFY3NTVUZCU1N4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF6dEpRVU42U0N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzU1VGQlNTeFBRVUZQTEVOQlFVTXNWMEZCVnl4SlFVRkpMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU03VDBGRGJFZ3NTVUZCU1N4RFFVRkRMRlZCUVZVc1VVRkJVU3hGUVVGRk8xRkJRM2hDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF5OUNMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdUMEZETVVJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdUMEZEV2l4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlF6bENMRWRCUVVjN08wVkJSVVFzVVVGQlVTeEZRVUZGTEZsQlFWazdTVUZEY0VJc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF6dEJRVU0xUlN4SFFVRkhPMEZCUTBnN1FVRkRRVHM3UlVGRlJTeFhRVUZYTEVWQlFVVXNXVUZCV1R0SlFVTjJRaXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeEpRVUZKTEVWQlFVVTdUVUZETDBNc1NVRkJTU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenROUVVOc1F5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRPMHRCUXpORExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRUlzUjBGQlJ6dEJRVU5JT3p0RlFVVkZMRlZCUVZVc1JVRkJSU3haUVVGWk8wbEJRM1JDTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRWxCUVVrc1JVRkJSVHROUVVNdlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzB0QlEyaERMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEWkN4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03UVVGRGVFSXNSMEZCUnp0QlFVTklPMEZCUTBFN1FVRkRRVHM3UlVGRlJTeHhRa0ZCY1VJc1JVRkJSU3hWUVVGVkxFMUJRVTBzUlVGQlJUdEpRVU4yUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVU3UVVGRGRrUXNUVUZCVFN4SlFVRkpMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPenROUVVWc1F5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZPMUZCUTJRc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHBSMEZCYVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRjRW9zVDBGQlR6czdUVUZGUkN4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRE8xRkJRMVlzVVVGQlVTeEZRVUZGTEV0QlFVczdVVUZEWml4WlFVRlpMRVZCUVVVc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF6dFBRVU16UWl4RFFVRkRMRU5CUVVNN1RVRkRTQ3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE0wTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUWl4SFFVRkhPenRGUVVWRUxGVkJRVlVzUlVGQlJTeFZRVUZWTEUxQlFVMHNSVUZCUlR0SlFVTTFRaXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGJrTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenROUVVOYUxGbEJRVmtzUlVGQlJTeExRVUZMTzB0QlEzQkNMRU5CUVVNc1EwRkJRenRKUVVOSUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRek5DTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03UVVGRE4wSXNSMEZCUnp0QlFVTklPMEZCUTBFN1FVRkRRVHM3UlVGRlJTeGpRVUZqTEVWQlFVVXNWVUZCVlN4UlFVRlJMRVZCUVVVN1FVRkRkRU1zU1VGQlNTeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdPMDFCUldoRUxFbEJRVWtzUzBGQlN5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVWQlFVVTdVVUZETlVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJRenRSUVVNNVF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETzFGQlEyeEVMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1VVRkRkRU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF6dEJRVU14UkN4UFFVRlBPenROUVVWRUxFbEJRVWtzUzBGQlN5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVTdVVUZEYUVRc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRMnhFTEU5QlFVODdPMHRCUlVZc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRaXhIUVVGSE96dEZRVVZFTEdOQlFXTXNSVUZCUlN4WlFVRlpPMGxCUXpGQ0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNN1FVRkRMMElzUjBGQlJ6czdSVUZGUkN4blFrRkJaMElzUlVGQlJTeFpRVUZaTzBsQlF6VkNMRTlCUVU4c1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExGVkJRVlVzU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlR0TlFVTXpSQ3hKUVVGSkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wMUJRMnhETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0TlFVTndReXhQUVVGUExFbEJRVWtzUTBGQlF6dExRVU5pTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzUkNMRWRCUVVjN08wVkJSVVFzWlVGQlpTeEZRVUZGTEZWQlFWVXNWVUZCVlN4RlFVRkZPMGxCUTNKRExFbEJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkROMElzU1VGQlNTeEpRVUZKTEZOQlFWTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEzaERPMEZCUTBFN08wbEJSVWtzVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVU3VFVGRGRrTXNTVUZCU1N4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzAxQlF6ZENMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU03VVVGRGFrSXNWMEZCVnl4RlFVRkZMRlZCUVZVN1QwRkRlRUlzUTBGQlF5eERRVUZETzB0QlEwb3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUWl4SFFVRkhPMEZCUTBnN1FVRkRRVHRCUVVOQk96dEJRVVZCTEVWQlFVVXNVVUZCVVN4RlFVRkZMRlZCUVZVc1UwRkJVeXhGUVVGRk8wRkJRMnBET3p0SlFVVkpMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVTdUVUZEZUVJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTnVSQ3hMUVVGTE96dEpRVVZFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4WlFVRlpMRVZCUVVVN1RVRkRlRVFzVDBGQlR6dEJRVU5pTEV0QlFVczdRVUZEVER0QlFVTkJPenRCUVVWQkxFbEJRVWtzU1VGQlNTeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6czdTVUZGTlVNc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF6dE5RVU5xUWl4UlFVRlJMRVZCUVVVc1QwRkJUenROUVVOcVFpeFpRVUZaTEVWQlFVVXNTVUZCU1R0QlFVTjRRaXhMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPenRCUVVVeFFpeEhRVUZIT3p0RlFVVkVMR0ZCUVdFc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdEpRVU5zUXl4SlFVRkpMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGJrSXNTVUZCU1N4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFMUJRVTBzUzBGQlN5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1NVRkJTU3hUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSVHROUVVOb1J5eFRRVUZUTEVOQlFVTXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4VlFVRlZMRVZCUVVVN1VVRkRPVVFzU1VGQlNTeEpRVUZKTEVkQlFVY3NWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4SlFVRkpMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZEYkVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4SFFVRkhMRVZCUVVVN1ZVRkROMElzU1VGQlNUdFpRVU5HTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFhRVU40UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMVlzVDBGQlR5eEhRVUZITEVOQlFVTTdWMEZEV2p0VFFVTkdMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpkRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNZMEZCWXl4RFFVRkRMRVZCUVVVN1ZVRkRjRU1zVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl3MFEwRkJORU1zUjBGQlJ5eGpRVUZqTEVOQlFVTXNRMEZCUXp0VFFVTm9SanRSUVVORUxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEZRVUZGTzFWQlEzcEZMRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU03VTBGRGFrSTdUMEZEUml4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzB0QlEyWTdTVUZEUkN4UFFVRlBMRTlCUVU4c1EwRkJRenRCUVVOdVFpeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3haUVVGWkxFVkJRVVVzV1VGQldUdEpRVU40UWl4SlFVRkpMRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGRFSXNTVUZCU1N4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU0zUWl4SlFVRkpMRWxCUVVrc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1FVRkRlRU03UVVGRFFUczdTVUZGU1N4SlFVRkpMRzlDUVVGdlFpeEhRVUZITEZsQlFWazdUVUZEY2tNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlR0UlFVTm9ReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRVVU3VlVGRGFFTXNWVUZCVlN4SFFVRkhMRXRCUVVzc1EwRkJRenRUUVVOd1FqdEJRVU5VTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6czdUVUZGWkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRMW9zVDBGQlR5eEZRVUZGTEZWQlFWVTdRVUZETTBJc1QwRkJUeXhEUVVGRExFTkJRVU03TzAxQlJVZ3NTVUZCU1N4VlFVRlZMRVZCUVVVN1VVRkRaQ3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMDlCUTNSQ0xFMUJRVTA3VVVGRFRDeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8wRkJReTlDTEU5QlFVODdRVUZEVURzN1RVRkZUU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzFGQlExb3NVMEZCVXl4RlFVRkZMRWxCUVVrN1FVRkRka0lzVDBGQlR5eERRVUZETEVOQlFVTTdPMEZCUlZRc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTnFRanRCUVVOQk96dEpRVVZKTEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTzAxQlEzWkRMRWxCUVVrc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTTNRaXhKUVVGSkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wMUJRelZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1VVRkRha0lzVVVGQlVTeEZRVUZGTEU5QlFVODdVVUZEYWtJc1dVRkJXU3hGUVVGRkxFbEJRVWs3VDBGRGJrSXNSVUZCUlN4TFFVRkxMRXRCUVVzc1UwRkJVeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NiMEpCUVc5Q0xFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEZGtVc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJ4Q08wRkJRMEU3TzBsQlJVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZPMDFCUTNwRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdVVUZEV2l4VFFVRlRMRVZCUVVVc1NVRkJTVHRQUVVOb1FpeERRVUZETEVOQlFVTTdTMEZEU2p0QlFVTk1MRWRCUVVjN1FVRkRTRHRCUVVOQk96dEZRVVZGTEZsQlFWa3NSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSVHRKUVVOcVF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRPMGxCUXpsRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVNeFJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRemRDTEVkQlFVYzdRVUZEU0R0QlFVTkJPenRGUVVWRkxHTkJRV01zUlVGQlJTeFZRVUZWTEZOQlFWTXNSVUZCUlR0SlFVTnVReXhQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU42UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRIUVVONlF6dEJRVU5JTEVWQlFVVXNUVUZCVFN4RlFVRkZMRmxCUVZrN08wbEJSV3hDTEU5QlFVOHNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU03VVVGRGJFSXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTk8xRkJRM0pDTEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk03VDBGRGFFTTdUVUZEUkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkU3UVVGRGVrSXNTMEZCU3l4RFFVRkRPenRIUVVWSU8wRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTTdPMEZCUlVnc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVTdSVUZETDBVc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTTdRVUZEZWtJc1EwRkJRenM3UVVGRlJDeE5RVUZOTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQlNaV0ZqZENBOUlHZHNiMkpoYkM1U1pXRmpkQ0I4ZkNCeVpYRjFhWEpsS0NkeVpXRmpkQ2NwTzF4dWRtRnlJRVp2Y20xemVTQTlJSHQ5TzF4dWRtRnlJSFpoYkdsa1lYUnBiMjVTZFd4bGN5QTlJSEpsY1hWcGNtVW9KeTR2ZG1Gc2FXUmhkR2x2YmxKMWJHVnpMbXB6SnlrN1hHNTJZWElnZFhScGJITWdQU0J5WlhGMWFYSmxLQ2N1TDNWMGFXeHpMbXB6SnlrN1hHNTJZWElnVFdsNGFXNGdQU0J5WlhGMWFYSmxLQ2N1TDAxcGVHbHVMbXB6SnlrN1hHNTJZWElnYjNCMGFXOXVjeUE5SUh0OU8xeHVYRzVHYjNKdGMza3VUV2w0YVc0Z1BTQk5hWGhwYmp0Y2JseHVSbTl5YlhONUxtUmxabUYxYkhSeklEMGdablZ1WTNScGIyNGdLSEJoYzNObFpFOXdkR2x2Ym5NcElIdGNiaUFnYjNCMGFXOXVjeUE5SUhCaGMzTmxaRTl3ZEdsdmJuTTdYRzU5TzF4dVhHNUdiM0p0YzNrdVlXUmtWbUZzYVdSaGRHbHZibEoxYkdVZ1BTQm1kVzVqZEdsdmJpQW9ibUZ0WlN3Z1puVnVZeWtnZTF4dUlDQjJZV3hwWkdGMGFXOXVVblZzWlhOYmJtRnRaVjBnUFNCbWRXNWpPMXh1ZlR0Y2JseHVSbTl5YlhONUxrWnZjbTBnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJR2RsZEVsdWFYUnBZV3hUZEdGMFpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnBjMVpoYkdsa09pQjBjblZsTEZ4dUlDQWdJQ0FnYVhOVGRXSnRhWFIwYVc1bk9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUdOaGJrTm9ZVzVuWlRvZ1ptRnNjMlZjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JuWlhSRVpXWmhkV3gwVUhKdmNITTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdhR1ZoWkdWeWN6b2dlMzBzWEc0Z0lDQWdJQ0J2YmxOMVkyTmxjM002SUdaMWJtTjBhVzl1SUNncElIdDlMRnh1SUNBZ0lDQWdiMjVGY25KdmNqb2dablZ1WTNScGIyNGdLQ2tnZTMwc1hHNGdJQ0FnSUNCdmJsTjFZbTFwZERvZ1puVnVZM1JwYjI0Z0tDa2dlMzBzWEc0Z0lDQWdJQ0J2YmxOMVltMXBkSFJsWkRvZ1puVnVZM1JwYjI0Z0tDa2dlMzBzWEc0Z0lDQWdJQ0J2YmxaaGJHbGtPaUJtZFc1amRHbHZiaUFvS1NCN2ZTeGNiaUFnSUNBZ0lHOXVTVzUyWVd4cFpEb2dablZ1WTNScGIyNGdLQ2tnZTMwc1hHNGdJQ0FnSUNCdmJrTm9ZVzVuWlRvZ1puVnVZM1JwYjI0Z0tDa2dlMzFjYmlBZ0lDQjlPMXh1SUNCOUxGeHVYRzRnSUM4dklFRmtaQ0JoSUcxaGNDQjBieUJ6ZEc5eVpTQjBhR1VnYVc1d2RYUnpJRzltSUhSb1pTQm1iM0p0TENCaElHMXZaR1ZzSUhSdklITjBiM0psWEc0Z0lDOHZJSFJvWlNCMllXeDFaWE1nYjJZZ2RHaGxJR1p2Y20wZ1lXNWtJSEpsWjJsemRHVnlJR05vYVd4a0lHbHVjSFYwYzF4dUlDQmpiMjF3YjI1bGJuUlhhV3hzVFc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0IwYUdsekxtbHVjSFYwY3lBOUlIdDlPMXh1SUNBZ0lIUm9hWE11Ylc5a1pXd2dQU0I3ZlR0Y2JpQWdJQ0IwYUdsekxuSmxaMmx6ZEdWeVNXNXdkWFJ6S0hSb2FYTXVjSEp2Y0hNdVkyaHBiR1J5Wlc0cE8xeHVJQ0I5TEZ4dVhHNGdJR052YlhCdmJtVnVkRVJwWkUxdmRXNTBPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnZEdocGN5NTJZV3hwWkdGMFpVWnZjbTBvS1R0Y2JpQWdmU3hjYmx4dUlDQmpiMjF3YjI1bGJuUlhhV3hzVlhCa1lYUmxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnZG1GeUlHbHVjSFYwUzJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0hSb2FYTXVhVzV3ZFhSektUdGNibHh1SUNBZ0lDOHZJRlJvWlNCMWNHUmhkR1ZrSUdOb2FXeGtjbVZ1SUdGeWNtRjVJR2x6SUc1dmRDQmhkbUZwYkdGaWJHVWdhR1Z5WlNCbWIzSWdjMjl0WlNCeVpXRnpiMjRzWEc0Z0lDQWdMeThnZDJVZ2JtVmxaQ0IwYnlCM1lXbDBJR1p2Y2lCdVpYaDBJR1YyWlc1MElHeHZiM0JjYmlBZ0lDQnpaWFJVYVcxbGIzVjBLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUNBZ0x5OGdWR2hsSUdOdmJYQnZibVZ1ZENCdGFXZG9kQ0JvWVhabElHSmxaVzRnZFc1dGIzVnVkR1ZrSUc5dUlHRnVYRzRnSUNBZ0lDQXZMeUIxY0dSaGRHVmNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxtbHpUVzkxYm5SbFpDZ3BLU0I3WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV5WldkcGMzUmxja2x1Y0hWMGN5aDBhR2x6TG5CeWIzQnpMbU5vYVd4a2NtVnVLVHRjYmx4dUlDQWdJQ0FnSUNCMllYSWdibVYzU1c1d2RYUkxaWGx6SUQwZ1QySnFaV04wTG10bGVYTW9kR2hwY3k1cGJuQjFkSE1wTzF4dUlDQWdJQ0FnSUNCcFppQW9kWFJwYkhNdVlYSnlZWGx6UkdsbVptVnlLR2x1Y0hWMFMyVjVjeXdnYm1WM1NXNXdkWFJMWlhsektTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVkbUZzYVdSaGRHVkdiM0p0S0NrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wTENBd0tUdGNiaUFnZlN4Y2JseHVJQ0F2THlCVmNHUmhkR1VnYlc5a1pXd3NJSE4xWW0xcGRDQjBieUIxY213Z2NISnZjQ0JoYm1RZ2MyVnVaQ0IwYUdVZ2JXOWtaV3hjYmlBZ2MzVmliV2wwT2lCbWRXNWpkR2x2YmlBb1pYWmxiblFwSUh0Y2JpQWdJQ0JsZG1WdWRDNXdjbVYyWlc1MFJHVm1ZWFZzZENncE8xeHVYRzRnSUNBZ0x5OGdWSEpwWjJkbGNpQm1iM0p0SUdGeklHNXZkQ0J3Y21semRHbHVaUzVjYmlBZ0lDQXZMeUJKWmlCaGJua2dhVzV3ZFhSeklHaGhkbVVnYm05MElHSmxaVzRnZEc5MVkyaGxaQ0I1WlhRZ2RHaHBjeUIzYVd4c0lHMWhhMlVnZEdobGJTQmthWEowZVZ4dUlDQWdJQzh2SUhOdklIWmhiR2xrWVhScGIyNGdZbVZqYjIxbGN5QjJhWE5wWW14bElDaHBaaUJpWVhObFpDQnZiaUJwYzFCeWFYTjBhVzVsS1Z4dUlDQWdJSFJvYVhNdWMyVjBSbTl5YlZCeWFYTjBhVzVsS0daaGJITmxLVHRjYmx4dUlDQWdJQzh2SUZSdklITjFjSEJ2Y25RZ2RYTmxJR05oYzJWeklIZG9aWEpsSUc1dklHRnplVzVqSUc5eUlISmxjWFZsYzNRZ2IzQmxjbUYwYVc5dUlHbHpJRzVsWldSbFpDNWNiaUFnSUNBdkx5QlVhR1VnWENKdmJsTjFZbTFwZEZ3aUlHTmhiR3hpWVdOcklHbHpJR05oYkd4bFpDQjNhWFJvSUhSb1pTQnRiMlJsYkNCbExtY3VJSHRtYVdWc1pFNWhiV1U2SUZ3aWJYbFdZV3gxWlZ3aWZTeGNiaUFnSUNBdkx5QnBaaUIzWVc1MGFXNW5JSFJ2SUhKbGMyVjBJSFJvWlNCbGJuUnBjbVVnWm05eWJTQjBieUJ2Y21sbmFXNWhiQ0J6ZEdGMFpTd2dkR2hsSUhObFkyOXVaQ0J3WVhKaGJTQnBjeUJoSUdOaGJHeGlZV05ySUdadmNpQjBhR2x6TGx4dUlDQWdJR2xtSUNnaGRHaHBjeTV3Y205d2N5NTFjbXdwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFRXOWtaV3dvS1R0Y2JpQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNVRkV0p0YVhRb2RHaHBjeTV0WVhCTmIyUmxiQ2dwTENCMGFHbHpMbkpsYzJWMFRXOWtaV3dzSUhSb2FYTXVkWEJrWVhSbFNXNXdkWFJ6VjJsMGFFVnljbTl5S1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TG5Wd1pHRjBaVTF2WkdWc0tDazdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0JwYzFOMVltMXBkSFJwYm1jNklIUnlkV1ZjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSFJvYVhNdWNISnZjSE11YjI1VGRXSnRhWFFvZEdocGN5NXRZWEJOYjJSbGJDZ3BMQ0IwYUdsekxuSmxjMlYwVFc5a1pXd3NJSFJvYVhNdWRYQmtZWFJsU1c1d2RYUnpWMmwwYUVWeWNtOXlLVHRjYmx4dUlDQWdJSFpoY2lCb1pXRmtaWEp6SUQwZ0tFOWlhbVZqZEM1clpYbHpLSFJvYVhNdWNISnZjSE11YUdWaFpHVnljeWt1YkdWdVozUm9JQ1ltSUhSb2FYTXVjSEp2Y0hNdWFHVmhaR1Z5Y3lrZ2ZId2diM0IwYVc5dWN5NW9aV0ZrWlhKeklIeDhJSHQ5TzF4dVhHNGdJQ0FnZG1GeUlHMWxkR2h2WkNBOUlIUm9hWE11Y0hKdmNITXViV1YwYUc5a0lDWW1JSFYwYVd4ekxtRnFZWGhiZEdocGN5NXdjbTl3Y3k1dFpYUm9iMlF1ZEc5TWIzZGxja05oYzJVb0tWMGdQeUIwYUdsekxuQnliM0J6TG0xbGRHaHZaQzUwYjB4dmQyVnlRMkZ6WlNncElEb2dKM0J2YzNRbk8xeHVJQ0FnSUhWMGFXeHpMbUZxWVhoYmJXVjBhRzlrWFNoMGFHbHpMbkJ5YjNCekxuVnliQ3dnZEdocGN5NXRZWEJOYjJSbGJDZ3BMQ0IwYUdsekxuQnliM0J6TG1OdmJuUmxiblJVZVhCbElIeDhJRzl3ZEdsdmJuTXVZMjl1ZEdWdWRGUjVjR1VnZkh3Z0oycHpiMjRuTENCb1pXRmtaWEp6S1Z4dUlDQWdJQ0FnTG5Sb1pXNG9ablZ1WTNScGIyNGdLSEpsYzNCdmJuTmxLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNVRkV05qWlhOektISmxjM0J2Ym5ObEtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTV2YmxOMVltMXBkSFJsWkNncE8xeHVJQ0FnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVnh1SUNBZ0lDQWdMbU5oZEdOb0tIUm9hWE11Wm1GcGJGTjFZbTFwZENrN1hHNGdJSDBzWEc1Y2JpQWdiV0Z3VFc5a1pXdzZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1d2NtOXdjeTV0WVhCd2FXNW5JRDhnZEdocGN5NXdjbTl3Y3k1dFlYQndhVzVuS0hSb2FYTXViVzlrWld3cElEb2dkR2hwY3k1dGIyUmxiRHRjYmlBZ2ZTeGNibHh1SUNBdkx5QkhiMlZ6SUhSb2NtOTFaMmdnWVd4c0lISmxaMmx6ZEdWeVpXUWdZMjl0Y0c5dVpXNTBjeUJoYm1SY2JpQWdMeThnZFhCa1lYUmxjeUIwYUdVZ2JXOWtaV3dnZG1Gc2RXVnpYRzRnSUhWd1pHRjBaVTF2WkdWc09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdUMkpxWldOMExtdGxlWE1vZEdocGN5NXBibkIxZEhNcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0Z0tHNWhiV1VwSUh0Y2JpQWdJQ0FnSUhaaGNpQmpiMjF3YjI1bGJuUWdQU0IwYUdsekxtbHVjSFYwYzF0dVlXMWxYVHRjYmlBZ0lDQWdJSFJvYVhNdWJXOWtaV3hiYm1GdFpWMGdQU0JqYjIxd2IyNWxiblF1YzNSaGRHVXVYM1poYkhWbE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektTazdYRzRnSUgwc1hHNWNiaUFnTHk4Z1VtVnpaWFFnWldGamFDQnJaWGtnYVc0Z2RHaGxJRzF2WkdWc0lIUnZJSFJvWlNCdmNtbG5hVzVoYkNBdklHbHVhWFJwWVd3Z2RtRnNkV1ZjYmlBZ2NtVnpaWFJOYjJSbGJEb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJRTlpYW1WamRDNXJaWGx6S0hSb2FYTXVhVzV3ZFhSektTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHVZVzFsS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbWx1Y0hWMGMxdHVZVzFsWFM1eVpYTmxkRlpoYkhWbEtDazdYRzRnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVHRjYmlBZ0lDQjBhR2x6TG5aaGJHbGtZWFJsUm05eWJTZ3BPMXh1SUNCOUxGeHVYRzRnSUM4dklFZHZJSFJvY205MVoyZ2daWEp5YjNKeklHWnliMjBnYzJWeWRtVnlJR0Z1WkNCbmNtRmlJSFJvWlNCamIyMXdiMjVsYm5SelhHNGdJQzh2SUhOMGIzSmxaQ0JwYmlCMGFHVWdhVzV3ZFhSeklHMWhjQzRnUTJoaGJtZGxJSFJvWldseUlITjBZWFJsSUhSdklHbHVkbUZzYVdSY2JpQWdMeThnWVc1a0lITmxkQ0IwYUdVZ2MyVnlkbVZ5UlhKeWIzSWdiV1Z6YzJGblpWeHVJQ0IxY0dSaGRHVkpibkIxZEhOWGFYUm9SWEp5YjNJNklHWjFibU4wYVc5dUlDaGxjbkp2Y25NcElIdGNiaUFnSUNCUFltcGxZM1F1YTJWNWN5aGxjbkp2Y25NcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0Z0tHNWhiV1VzSUdsdVpHVjRLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1kyOXRjRzl1Wlc1MElEMGdkR2hwY3k1cGJuQjFkSE5iYm1GdFpWMDdYRzVjYmlBZ0lDQWdJR2xtSUNnaFkyOXRjRzl1Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25XVzkxSUdGeVpTQjBjbmxwYm1jZ2RHOGdkWEJrWVhSbElHRnVJR2x1Y0hWMElIUm9ZWFFnWkc5bGN5QnViM1FnWlhocGMzUnpMaUJXWlhKcFpua2daWEp5YjNKeklHOWlhbVZqZENCM2FYUm9JR2x1Y0hWMElHNWhiV1Z6TGlBbklDc2dTbE5QVGk1emRISnBibWRwWm5rb1pYSnliM0p6S1NrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lIWmhjaUJoY21keklEMGdXM3RjYmlBZ0lDQWdJQ0FnWDJselZtRnNhV1E2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0JmYzJWeWRtVnlSWEp5YjNJNklHVnljbTl5YzF0dVlXMWxYVnh1SUNBZ0lDQWdmVjA3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1YzJWMFUzUmhkR1V1WVhCd2JIa29ZMjl0Y0c5dVpXNTBMQ0JoY21kektUdGNiaUFnSUNCOUxtSnBibVFvZEdocGN5a3BPMXh1SUNCOUxGeHVYRzRnSUdaaGFXeFRkV0p0YVhRNklHWjFibU4wYVc5dUlDaGxjbkp2Y25NcElIdGNiaUFnSUNCMGFHbHpMblZ3WkdGMFpVbHVjSFYwYzFkcGRHaEZjbkp2Y2lobGNuSnZjbk1wTzF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ2FYTlRkV0p0YVhSMGFXNW5PaUJtWVd4elpWeHVJQ0FnSUgwcE8xeHVJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNUZjbkp2Y2lobGNuSnZjbk1wTzF4dUlDQWdJSFJvYVhNdWNISnZjSE11YjI1VGRXSnRhWFIwWldRb0tUdGNiaUFnZlN4Y2JseHVJQ0F2THlCVWNtRjJaWEp6WlNCMGFHVWdZMmhwYkdSeVpXNGdZVzVrSUdOb2FXeGtjbVZ1SUc5bUlHTm9hV3hrY21WdUlIUnZJR1pwYm1SY2JpQWdMeThnWVd4c0lHbHVjSFYwY3lCaWVTQmphR1ZqYTJsdVp5QjBhR1VnYm1GdFpTQndjbTl3TGlCTllYbGlaU0JrYnlCaElHSmxkSFJsY2x4dUlDQXZMeUJqYUdWamF5Qm9aWEpsWEc0Z0lISmxaMmx6ZEdWeVNXNXdkWFJ6T2lCbWRXNWpkR2x2YmlBb1kyaHBiR1J5Wlc0cElIdGNiaUFnSUNCU1pXRmpkQzVEYUdsc1pISmxiaTVtYjNKRllXTm9LR05vYVd4a2NtVnVMQ0JtZFc1amRHbHZiaUFvWTJocGJHUXBJSHRjYmx4dUlDQWdJQ0FnYVdZZ0tHTm9hV3hrSUNZbUlHTm9hV3hrTG5CeWIzQnpJQ1ltSUdOb2FXeGtMbkJ5YjNCekxtNWhiV1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyaHBiR1F1Y0hKdmNITXVYMkYwZEdGamFGUnZSbTl5YlNBOUlIUm9hWE11WVhSMFlXTm9WRzlHYjNKdE8xeHVJQ0FnSUNBZ0lDQmphR2xzWkM1d2NtOXdjeTVmWkdWMFlXTm9Sbkp2YlVadmNtMGdQU0IwYUdsekxtUmxkR0ZqYUVaeWIyMUdiM0p0TzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZkbUZzYVdSaGRHVWdQU0IwYUdsekxuWmhiR2xrWVhSbE8xeHVJQ0FnSUNBZ0lDQmphR2xzWkM1d2NtOXdjeTVmYVhOR2IzSnRSR2x6WVdKc1pXUWdQU0IwYUdsekxtbHpSbTl5YlVScGMyRmliR1ZrTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9ZMmhwYkdRZ0ppWWdZMmhwYkdRdWNISnZjSE1nSmlZZ1kyaHBiR1F1Y0hKdmNITXVZMmhwYkdSeVpXNHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaV2RwYzNSbGNrbHVjSFYwY3loamFHbHNaQzV3Y205d2N5NWphR2xzWkhKbGJpazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQjlMRnh1WEc0Z0lHbHpSbTl5YlVScGMyRmliR1ZrT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjSEp2Y0hNdVpHbHpZV0pzWldRN1hHNGdJSDBzWEc1Y2JpQWdaMlYwUTNWeWNtVnVkRlpoYkhWbGN6b2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrdWNtVmtkV05sS0daMWJtTjBhVzl1SUNoa1lYUmhMQ0J1WVcxbEtTQjdYRzRnSUNBZ0lDQjJZWElnWTI5dGNHOXVaVzUwSUQwZ2RHaHBjeTVwYm5CMWRITmJibUZ0WlYwN1hHNGdJQ0FnSUNCa1lYUmhXMjVoYldWZElEMGdZMjl0Y0c5dVpXNTBMbk4wWVhSbExsOTJZV3gxWlR0Y2JpQWdJQ0FnSUhKbGRIVnliaUJrWVhSaE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektTd2dlMzBwTzF4dUlDQjlMRnh1WEc0Z0lITmxkRVp2Y20xUWNtbHpkR2x1WlRvZ1puVnVZM1JwYjI0Z0tHbHpVSEpwYzNScGJtVXBJSHRjYmlBZ0lDQjJZWElnYVc1d2RYUnpJRDBnZEdocGN5NXBibkIxZEhNN1hHNGdJQ0FnZG1GeUlHbHVjSFYwUzJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0dsdWNIVjBjeWs3WEc1Y2JpQWdJQ0F2THlCSmRHVnlZWFJsSUhSb2NtOTFaMmdnWldGamFDQmpiMjF3YjI1bGJuUWdZVzVrSUhObGRDQnBkQ0JoY3lCd2NtbHpkR2x1WlZ4dUlDQWdJQzh2SUc5eUlGd2laR2x5ZEhsY0lpNWNiaUFnSUNCcGJuQjFkRXRsZVhNdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQnBibkIxZEhOYmJtRnRaVjA3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNCZmFYTlFjbWx6ZEdsdVpUb2dhWE5RY21semRHbHVaVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJWYzJVZ2RHaGxJR0pwYm1SbFpDQjJZV3gxWlhNZ1lXNWtJSFJvWlNCaFkzUjFZV3dnYVc1d2RYUWdkbUZzZFdVZ2RHOWNiaUFnTHk4Z2RtRnNhV1JoZEdVZ2RHaGxJR2x1Y0hWMElHRnVaQ0J6WlhRZ2FYUnpJSE4wWVhSbExpQlVhR1Z1SUdOb1pXTnJJSFJvWlZ4dUlDQXZMeUJ6ZEdGMFpTQnZaaUIwYUdVZ1ptOXliU0JwZEhObGJHWmNiaUFnZG1Gc2FXUmhkR1U2SUdaMWJtTjBhVzl1SUNoamIyMXdiMjVsYm5RcElIdGNibHh1SUNBZ0lDOHZJRlJ5YVdkblpYSWdiMjVEYUdGdVoyVmNiaUFnSUNCcFppQW9kR2hwY3k1emRHRjBaUzVqWVc1RGFHRnVaMlVwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNURhR0Z1WjJVb2RHaHBjeTVuWlhSRGRYSnlaVzUwVm1Gc2RXVnpLQ2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNnaFkyOXRjRzl1Wlc1MExuQnliM0J6TG5KbGNYVnBjbVZrSUNZbUlDRmpiMjF3YjI1bGJuUXVYM1poYkdsa1lYUnBiMjV6S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVW5WdUlIUm9jbTkxWjJnZ2RHaGxJSFpoYkdsa1lYUnBiMjV6TENCemNHeHBkQ0IwYUdWdElIVndJR0Z1WkNCallXeHNYRzRnSUNBZ0x5OGdkR2hsSUhaaGJHbGtZWFJ2Y2lCSlJpQjBhR1Z5WlNCcGN5QmhJSFpoYkhWbElHOXlJR2wwSUdseklISmxjWFZwY21Wa1hHNGdJQ0FnZG1GeUlHbHpWbUZzYVdRZ1BTQjBhR2x6TG5KMWJsWmhiR2xrWVhScGIyNG9ZMjl0Y0c5dVpXNTBLVHRjYmx4dUlDQWdJR052YlhCdmJtVnVkQzV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0JmYVhOV1lXeHBaRG9nYVhOV1lXeHBaQ3hjYmlBZ0lDQWdJRjl6WlhKMlpYSkZjbkp2Y2pvZ2JuVnNiRnh1SUNBZ0lIMHNJSFJvYVhNdWRtRnNhV1JoZEdWR2IzSnRLVHRjYmx4dUlDQjlMRnh1WEc0Z0lISjFibFpoYkdsa1lYUnBiMjQ2SUdaMWJtTjBhVzl1SUNoamIyMXdiMjVsYm5RcElIdGNiaUFnSUNCMllYSWdhWE5XWVd4cFpDQTlJSFJ5ZFdVN1hHNGdJQ0FnYVdZZ0tHTnZiWEJ2Ym1WdWRDNWZkbUZzYVdSaGRHbHZibk11YkdWdVozUm9JQ1ltSUNoamIyMXdiMjVsYm5RdWNISnZjSE11Y21WeGRXbHlaV1FnZkh3Z1kyOXRjRzl1Wlc1MExuTjBZWFJsTGw5MllXeDFaU0FoUFQwZ0p5Y3BLU0I3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1WDNaaGJHbGtZWFJwYjI1ekxuTndiR2wwS0Njc0p5a3VabTl5UldGamFDaG1kVzVqZEdsdmJpQW9kbUZzYVdSaGRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCMllYSWdZWEpuY3lBOUlIWmhiR2xrWVhScGIyNHVjM0JzYVhRb0p6b25LVHRjYmlBZ0lDQWdJQ0FnZG1GeUlIWmhiR2xrWVhSbFRXVjBhRzlrSUQwZ1lYSm5jeTV6YUdsbWRDZ3BPMXh1SUNBZ0lDQWdJQ0JoY21keklEMGdZWEpuY3k1dFlYQW9ablZ1WTNScGIyNGdLR0Z5WnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdTbE5QVGk1d1lYSnpaU2hoY21jcE8xeHVJQ0FnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmhjbWM3SUM4dklFbDBJR2x6SUdFZ2MzUnlhVzVuSUdsbUlHbDBJR05oYmlCdWIzUWdjR0Z5YzJVZ2FYUmNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQmhjbWR6SUQwZ1cyTnZiWEJ2Ym1WdWRDNXpkR0YwWlM1ZmRtRnNkV1ZkTG1OdmJtTmhkQ2hoY21kektUdGNiaUFnSUNBZ0lDQWdhV1lnS0NGMllXeHBaR0YwYVc5dVVuVnNaWE5iZG1Gc2FXUmhkR1ZOWlhSb2IyUmRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkR2IzSnRjM2tnWkc5bGN5QnViM1FnYUdGMlpTQjBhR1VnZG1Gc2FXUmhkR2x2YmlCeWRXeGxPaUFuSUNzZ2RtRnNhV1JoZEdWTlpYUm9iMlFwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2doZG1Gc2FXUmhkR2x2YmxKMWJHVnpXM1poYkdsa1lYUmxUV1YwYUc5a1hTNWhjSEJzZVNoMGFHbHpMbWRsZEVOMWNuSmxiblJXWVd4MVpYTW9LU3dnWVhKbmN5a3BJSHRjYmlBZ0lDQWdJQ0FnSUNCcGMxWmhiR2xrSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwdVltbHVaQ2gwYUdsektTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJwYzFaaGJHbGtPMXh1SUNCOUxGeHVYRzRnSUM4dklGWmhiR2xrWVhSbElIUm9aU0JtYjNKdElHSjVJR2R2YVc1bklIUm9jbTkxWjJnZ1lXeHNJR05vYVd4a0lHbHVjSFYwSUdOdmJYQnZibVZ1ZEhOY2JpQWdMeThnWVc1a0lHTm9aV05ySUhSb1pXbHlJSE4wWVhSbFhHNGdJSFpoYkdsa1lYUmxSbTl5YlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lIWmhjaUJoYkd4SmMxWmhiR2xrSUQwZ2RISjFaVHRjYmlBZ0lDQjJZWElnYVc1d2RYUnpJRDBnZEdocGN5NXBibkIxZEhNN1hHNGdJQ0FnZG1GeUlHbHVjSFYwUzJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0dsdWNIVjBjeWs3WEc1Y2JpQWdJQ0F2THlCWFpTQnVaV1ZrSUdFZ1kyRnNiR0poWTJzZ1lYTWdkMlVnWVhKbElIWmhiR2xrWVhScGJtY2dZV3hzSUdsdWNIVjBjeUJoWjJGcGJpNGdWR2hwY3lCM2FXeHNYRzRnSUNBZ0x5OGdjblZ1SUhkb1pXNGdkR2hsSUd4aGMzUWdZMjl0Y0c5dVpXNTBJR2hoY3lCelpYUWdhWFJ6SUhOMFlYUmxYRzRnSUNBZ2RtRnlJRzl1Vm1Gc2FXUmhkR2x2YmtOdmJYQnNaWFJsSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdhVzV3ZFhSTFpYbHpMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNGdLRzVoYldVcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGcGJuQjFkSE5iYm1GdFpWMHVjM1JoZEdVdVgybHpWbUZzYVdRcElIdGNiaUFnSUNBZ0lDQWdJQ0JoYkd4SmMxWmhiR2xrSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwdVltbHVaQ2gwYUdsektTazdYRzVjYmlBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ0lDQnBjMVpoYkdsa09pQmhiR3hKYzFaaGJHbGtYRzRnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tHRnNiRWx6Vm1Gc2FXUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1dmJsWmhiR2xrS0NrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ5YjNCekxtOXVTVzUyWVd4cFpDZ3BPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0F2THlCVVpXeHNJSFJvWlNCbWIzSnRJSFJvWVhRZ2FYUWdZMkZ1SUhOMFlYSjBJSFJ2SUhSeWFXZG5aWElnWTJoaGJtZGxJR1YyWlc1MGMxeHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUdOaGJrTm9ZVzVuWlRvZ2RISjFaVnh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrN1hHNWNiaUFnSUNBdkx5QlNkVzRnZG1Gc2FXUmhkR2x2YmlCaFoyRnBiaUJwYmlCallYTmxJR0ZtWm1WamRHVmtJR0o1SUc5MGFHVnlJR2x1Y0hWMGN5NGdWR2hsWEc0Z0lDQWdMeThnYkdGemRDQmpiMjF3YjI1bGJuUWdkbUZzYVdSaGRHVmtJSGRwYkd3Z2NuVnVJSFJvWlNCdmJsWmhiR2xrWVhScGIyNURiMjF3YkdWMFpTQmpZV3hzWW1GamExeHVJQ0FnSUdsdWNIVjBTMlY1Y3k1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNodVlXMWxMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdkbUZ5SUdOdmJYQnZibVZ1ZENBOUlHbHVjSFYwYzF0dVlXMWxYVHRjYmlBZ0lDQWdJSFpoY2lCcGMxWmhiR2xrSUQwZ2RHaHBjeTV5ZFc1V1lXeHBaR0YwYVc5dUtHTnZiWEJ2Ym1WdWRDazdYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0JmYVhOV1lXeHBaRG9nYVhOV1lXeHBaQ3hjYmlBZ0lDQWdJQ0FnWDNObGNuWmxja1Z5Y205eU9pQnVkV3hzWEc0Z0lDQWdJQ0I5TENCcGJtUmxlQ0E5UFQwZ2FXNXdkWFJMWlhsekxteGxibWQwYUNBdElERWdQeUJ2YmxaaGJHbGtZWFJwYjI1RGIyMXdiR1YwWlNBNklHNTFiR3dwTzF4dUlDQWdJSDB1WW1sdVpDaDBhR2x6S1NrN1hHNWNiaUFnSUNBdkx5QkpaaUIwYUdWeVpTQmhjbVVnYm04Z2FXNXdkWFJ6TENCelpYUWdjM1JoZEdVZ2QyaGxjbVVnWm05eWJTQnBjeUJ5WldGa2VTQjBieUIwY21sbloyVnlYRzRnSUNBZ0x5OGdZMmhoYm1kbElHVjJaVzUwTGlCT1pYY2dhVzV3ZFhSeklHMXBaMmgwSUdKbElHRmtaR1ZrSUd4aGRHVnlYRzRnSUNBZ2FXWWdLQ0ZwYm5CMWRFdGxlWE11YkdWdVozUm9JQ1ltSUhSb2FYTXVhWE5OYjNWdWRHVmtLQ2twSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0JqWVc1RGFHRnVaMlU2SUhSeWRXVmNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNiaUFnZlN4Y2JseHVJQ0F2THlCTlpYUm9iMlFnY0hWMElHOXVJR1ZoWTJnZ2FXNXdkWFFnWTI5dGNHOXVaVzUwSUhSdklISmxaMmx6ZEdWeVhHNGdJQzh2SUdsMGMyVnNaaUIwYnlCMGFHVWdabTl5YlZ4dUlDQmhkSFJoWTJoVWIwWnZjbTA2SUdaMWJtTjBhVzl1SUNoamIyMXdiMjVsYm5RcElIdGNiaUFnSUNCMGFHbHpMbWx1Y0hWMGMxdGpiMjF3YjI1bGJuUXVjSEp2Y0hNdWJtRnRaVjBnUFNCamIyMXdiMjVsYm5RN1hHNGdJQ0FnZEdocGN5NXRiMlJsYkZ0amIyMXdiMjVsYm5RdWNISnZjSE11Ym1GdFpWMGdQU0JqYjIxd2IyNWxiblF1YzNSaGRHVXVYM1poYkhWbE8xeHVJQ0FnSUhSb2FYTXVkbUZzYVdSaGRHVW9ZMjl0Y0c5dVpXNTBLVHRjYmlBZ2ZTeGNibHh1SUNBdkx5Qk5aWFJvYjJRZ2NIVjBJRzl1SUdWaFkyZ2dhVzV3ZFhRZ1kyOXRjRzl1Wlc1MElIUnZJSFZ1Y21WbmFYTjBaWEpjYmlBZ0x5OGdhWFJ6Wld4bUlHWnliMjBnZEdobElHWnZjbTFjYmlBZ1pHVjBZV05vUm5KdmJVWnZjbTA2SUdaMWJtTjBhVzl1SUNoamIyMXdiMjVsYm5RcElIdGNiaUFnSUNCa1pXeGxkR1VnZEdocGN5NXBibkIxZEhOYlkyOXRjRzl1Wlc1MExuQnliM0J6TG01aGJXVmRPMXh1SUNBZ0lHUmxiR1YwWlNCMGFHbHpMbTF2WkdWc1cyTnZiWEJ2Ym1WdWRDNXdjbTl3Y3k1dVlXMWxYVHRjYmlBZ2ZTeGNiaUFnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCeVpYUjFjbTRnVW1WaFkzUXVSRTlOTG1admNtMG9lMXh1SUNBZ0lDQWdJQ0J2YmxOMVltMXBkRG9nZEdocGN5NXpkV0p0YVhRc1hHNGdJQ0FnSUNBZ0lHTnNZWE56VG1GdFpUb2dkR2hwY3k1d2NtOXdjeTVqYkdGemMwNWhiV1ZjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0IwYUdsekxuQnliM0J6TG1Ob2FXeGtjbVZ1WEc0Z0lDQWdLVHRjYmx4dUlDQjlYRzU5S1R0Y2JseHVhV1lnS0NGbmJHOWlZV3d1Wlhod2IzSjBjeUFtSmlBaFoyeHZZbUZzTG0xdlpIVnNaU0FtSmlBb0lXZHNiMkpoYkM1a1pXWnBibVVnZkh3Z0lXZHNiMkpoYkM1a1pXWnBibVV1WVcxa0tTa2dlMXh1SUNCbmJHOWlZV3d1Um05eWJYTjVJRDBnUm05eWJYTjVPMXh1ZlZ4dVhHNXRiMlIxYkdVdVpYaHdiM0owY3lBOUlFWnZjbTF6ZVR0Y2JpSmRmUT09IiwidmFyIGNzcmZUb2tlblNlbGVjdG9yID0gdHlwZW9mIGRvY3VtZW50ICE9ICd1bmRlZmluZWQnID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiY3NyZi10b2tlblwiXScpIDogbnVsbDtcblxudmFyIHRvVVJMRW5jb2RlZCA9IGZ1bmN0aW9uIChlbGVtZW50LCBrZXksIGxpc3QpIHtcbiAgdmFyIGxpc3QgPSBsaXN0IHx8IFtdO1xuICBpZiAodHlwZW9mIChlbGVtZW50KSA9PSAnb2JqZWN0Jykge1xuICAgIGZvciAodmFyIGlkeCBpbiBlbGVtZW50KVxuICAgICAgdG9VUkxFbmNvZGVkKGVsZW1lbnRbaWR4XSwga2V5ID8ga2V5ICsgJ1snICsgaWR4ICsgJ10nIDogaWR4LCBsaXN0KTtcbiAgfSBlbHNlIHtcbiAgICBsaXN0LnB1c2goa2V5ICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGVsZW1lbnQpKTtcbiAgfVxuICByZXR1cm4gbGlzdC5qb2luKCcmJyk7XG59O1xuXG52YXIgcmVxdWVzdCA9IGZ1bmN0aW9uIChtZXRob2QsIHVybCwgZGF0YSwgY29udGVudFR5cGUsIGhlYWRlcnMpIHtcblxuICB2YXIgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSA9PT0gJ3VybGVuY29kZWQnID8gJ2FwcGxpY2F0aW9uLycgKyBjb250ZW50VHlwZS5yZXBsYWNlKCd1cmxlbmNvZGVkJywgJ3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpIDogJ2FwcGxpY2F0aW9uL2pzb24nO1xuICBkYXRhID0gY29udGVudFR5cGUgPT09ICdhcHBsaWNhdGlvbi9qc29uJyA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogdG9VUkxFbmNvZGVkKGRhdGEpO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgIHhoci5vcGVuKG1ldGhvZCwgdXJsLCB0cnVlKTtcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsIGNvbnRlbnRUeXBlKTtcblxuICAgICAgaWYgKCEhY3NyZlRva2VuU2VsZWN0b3IgJiYgISFjc3JmVG9rZW5TZWxlY3Rvci5jb250ZW50KSB7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdYLUNTUkYtVG9rZW4nLCBjc3JmVG9rZW5TZWxlY3Rvci5jb250ZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHBhc3NlZCBoZWFkZXJzXG4gICAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChoZWFkZXIpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLCBoZWFkZXJzW2hlYWRlcl0pO1xuICAgICAgfSk7XG5cbiAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHhoci5yZXNwb25zZVRleHQgPyBKU09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIuc2VuZChkYXRhKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhcnJheXNEaWZmZXI6IGZ1bmN0aW9uIChhcnJheUEsIGFycmF5Qikge1xuICAgIHZhciBpc0RpZmZlcmVudCA9IGZhbHNlO1xuICAgIGlmIChhcnJheUEubGVuZ3RoICE9PSBhcnJheUIubGVuZ3RoKSB7XG4gICAgICBpc0RpZmZlcmVudCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFycmF5QS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkge1xuICAgICAgICBpZiAoaXRlbSAhPT0gYXJyYXlCW2luZGV4XSkge1xuICAgICAgICAgIGlzRGlmZmVyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpc0RpZmZlcmVudDtcbiAgfSxcbiAgYWpheDoge1xuICAgIHBvc3Q6IHJlcXVlc3QuYmluZChudWxsLCAnUE9TVCcpLFxuICAgIHB1dDogcmVxdWVzdC5iaW5kKG51bGwsICdQVVQnKVxuICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk5VmMyVnljeTlqYUhKcGMzUnBZVzVoYkdadmJta3ZSRzlqZFcxbGJuUnpMMlJsZGk5bWIzSnRjM2t0Y21WaFkzUXZjM0pqTDNWMGFXeHpMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFbEJRVWtzYVVKQlFXbENMRWRCUVVjc1QwRkJUeXhSUVVGUkxFbEJRVWtzVjBGQlZ5eEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNN08wRkJSV3hJTEVsQlFVa3NXVUZCV1N4SFFVRkhMRlZCUVZVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVTdSVUZETDBNc1NVRkJTU3hKUVVGSkxFZEJRVWNzU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXp0RlFVTjBRaXhKUVVGSkxGRkJRVkVzVDBGQlR5eERRVUZETEVsQlFVa3NVVUZCVVN4RlFVRkZPMGxCUTJoRExFdEJRVXNzU1VGQlNTeEhRVUZITEVsQlFVa3NUMEZCVHp0TlFVTnlRaXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBkQlEzWkZMRTFCUVUwN1NVRkRUQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRIUVVOd1JEdEZRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU40UWl4RFFVRkRMRU5CUVVNN08wRkJSVVlzU1VGQlNTeFBRVUZQTEVkQlFVY3NWVUZCVlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFhRVUZYTEVWQlFVVXNUMEZCVHl4RlFVRkZPenRGUVVVdlJDeEpRVUZKTEZkQlFWY3NSMEZCUnl4WFFVRlhMRXRCUVVzc1dVRkJXU3hIUVVGSExHTkJRV01zUjBGQlJ5eFhRVUZYTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmxCUVZrc1JVRkJSU3gxUWtGQmRVSXNRMEZCUXl4SFFVRkhMR3RDUVVGclFpeERRVUZETzBGQlEzQktMRVZCUVVVc1NVRkJTU3hIUVVGSExGZEJRVmNzUzBGQlN5eHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6czdSVUZGZEVZc1QwRkJUeXhKUVVGSkxFOUJRVThzUTBGQlF5eFZRVUZWTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVN1NVRkROVU1zU1VGQlNUdE5RVU5HTEVsQlFVa3NSMEZCUnl4SFFVRkhMRWxCUVVrc1kwRkJZeXhGUVVGRkxFTkJRVU03VFVGREwwSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMDFCUXpWQ0xFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVONlJDeE5RVUZOTEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eGpRVUZqTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNN08wMUJSV3hFTEVsQlFVa3NRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeEpRVUZKTEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFBRVUZQTEVWQlFVVTdVVUZEZEVRc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMR05CUVdNc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVONFJTeFBRVUZQTzBGQlExQTdPMDFCUlUwc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hOUVVGTkxFVkJRVVU3VVVGRE4wTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4wUkN4UFFVRlBMRU5CUVVNc1EwRkJRenM3VFVGRlNDeEhRVUZITEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzV1VGQldUdEJRVU16UXl4UlFVRlJMRWxCUVVrc1IwRkJSeXhEUVVGRExGVkJRVlVzUzBGQlN5eERRVUZETEVWQlFVVTdPMVZCUlhoQ0xFbEJRVWs3V1VGRFJpeEpRVUZKTEZGQlFWRXNSMEZCUnl4SFFVRkhMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6dFpRVU4wUlN4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhGUVVGRk8yTkJRM3BETEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRoUVVOdVFpeE5RVUZOTzJOQlEwd3NUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8yRkJRMnhDTzFkQlEwWXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHRaUVVOV0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhYUVVGWE96dFRRVVZHTzA5QlEwWXNRMEZCUXp0TlFVTkdMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZEYUVJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdE5RVU5XTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOWU8wZEJRMFlzUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRPenRCUVVWR0xFMUJRVTBzUTBGQlF5eFBRVUZQTEVkQlFVYzdSVUZEWml4WlFVRlpMRVZCUVVVc1ZVRkJWU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTzBsQlEzUkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF6dEpRVU40UWl4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlR0TlFVTnVReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzQkNMRTFCUVUwN1RVRkRUQ3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSVHRSUVVOd1F5eEpRVUZKTEVsQlFVa3NTMEZCU3l4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVU3VlVGRE1VSXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRUUVVOd1FqdFBRVU5HTEVOQlFVTXNRMEZCUXp0TFFVTktPMGxCUTBRc1QwRkJUeXhYUVVGWExFTkJRVU03UjBGRGNFSTdSVUZEUkN4SlFVRkpMRVZCUVVVN1NVRkRTaXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRE8wbEJRMmhETEVkQlFVY3NSVUZCUlN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTTdSMEZETDBJN1EwRkRSaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lkbUZ5SUdOemNtWlViMnRsYmxObGJHVmpkRzl5SUQwZ2RIbHdaVzltSUdSdlkzVnRaVzUwSUNFOUlDZDFibVJsWm1sdVpXUW5JRDhnWkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNpZ25iV1YwWVZ0dVlXMWxQVndpWTNOeVppMTBiMnRsYmx3aVhTY3BJRG9nYm5Wc2JEdGNibHh1ZG1GeUlIUnZWVkpNUlc1amIyUmxaQ0E5SUdaMWJtTjBhVzl1SUNobGJHVnRaVzUwTENCclpYa3NJR3hwYzNRcElIdGNiaUFnZG1GeUlHeHBjM1FnUFNCc2FYTjBJSHg4SUZ0ZE8xeHVJQ0JwWmlBb2RIbHdaVzltSUNobGJHVnRaVzUwS1NBOVBTQW5iMkpxWldOMEp5a2dlMXh1SUNBZ0lHWnZjaUFvZG1GeUlHbGtlQ0JwYmlCbGJHVnRaVzUwS1Z4dUlDQWdJQ0FnZEc5VlVreEZibU52WkdWa0tHVnNaVzFsYm5SYmFXUjRYU3dnYTJWNUlEOGdhMlY1SUNzZ0oxc25JQ3NnYVdSNElDc2dKMTBuSURvZ2FXUjRMQ0JzYVhOMEtUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnNhWE4wTG5CMWMyZ29hMlY1SUNzZ0p6MG5JQ3NnWlc1amIyUmxWVkpKUTI5dGNHOXVaVzUwS0dWc1pXMWxiblFwS1R0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnYkdsemRDNXFiMmx1S0NjbUp5azdYRzU5TzF4dVhHNTJZWElnY21WeGRXVnpkQ0E5SUdaMWJtTjBhVzl1SUNodFpYUm9iMlFzSUhWeWJDd2daR0YwWVN3Z1kyOXVkR1Z1ZEZSNWNHVXNJR2hsWVdSbGNuTXBJSHRjYmx4dUlDQjJZWElnWTI5dWRHVnVkRlI1Y0dVZ1BTQmpiMjUwWlc1MFZIbHdaU0E5UFQwZ0ozVnliR1Z1WTI5a1pXUW5JRDhnSjJGd2NHeHBZMkYwYVc5dUx5Y2dLeUJqYjI1MFpXNTBWSGx3WlM1eVpYQnNZV05sS0NkMWNteGxibU52WkdWa0p5d2dKM2d0ZDNkM0xXWnZjbTB0ZFhKc1pXNWpiMlJsWkNjcElEb2dKMkZ3Y0d4cFkyRjBhVzl1TDJwemIyNG5PMXh1SUNCa1lYUmhJRDBnWTI5dWRHVnVkRlI1Y0dVZ1BUMDlJQ2RoY0hCc2FXTmhkR2x2Ymk5cWMyOXVKeUEvSUVwVFQwNHVjM1J5YVc1bmFXWjVLR1JoZEdFcElEb2dkRzlWVWt4RmJtTnZaR1ZrS0dSaGRHRXBPMXh1WEc0Z0lISmxkSFZ5YmlCdVpYY2dVSEp2YldselpTaG1kVzVqZEdsdmJpQW9jbVZ6YjJ4MlpTd2djbVZxWldOMEtTQjdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSFpoY2lCNGFISWdQU0J1WlhjZ1dFMU1TSFIwY0ZKbGNYVmxjM1FvS1R0Y2JpQWdJQ0FnSUhob2NpNXZjR1Z1S0cxbGRHaHZaQ3dnZFhKc0xDQjBjblZsS1R0Y2JpQWdJQ0FnSUhob2NpNXpaWFJTWlhGMVpYTjBTR1ZoWkdWeUtDZEJZMk5sY0hRbkxDQW5ZWEJ3YkdsallYUnBiMjR2YW5OdmJpY3BPMXh1SUNBZ0lDQWdlR2h5TG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvSjBOdmJuUmxiblF0Vkhsd1pTY3NJR052Ym5SbGJuUlVlWEJsS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLQ0VoWTNOeVpsUnZhMlZ1VTJWc1pXTjBiM0lnSmlZZ0lTRmpjM0ptVkc5clpXNVRaV3hsWTNSdmNpNWpiMjUwWlc1MEtTQjdYRzRnSUNBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0NkWUxVTlRVa1l0Vkc5clpXNG5MQ0JqYzNKbVZHOXJaVzVUWld4bFkzUnZjaTVqYjI1MFpXNTBLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1FXUmtJSEJoYzNObFpDQm9aV0ZrWlhKelhHNGdJQ0FnSUNCUFltcGxZM1F1YTJWNWN5aG9aV0ZrWlhKektTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaG9aV0ZrWlhJcElIdGNiaUFnSUNBZ0lDQWdlR2h5TG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvYUdWaFpHVnlMQ0JvWldGa1pYSnpXMmhsWVdSbGNsMHBPMXh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUhob2NpNXZibkpsWVdSNWMzUmhkR1ZqYUdGdVoyVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2g0YUhJdWNtVmhaSGxUZEdGMFpTQTlQVDBnTkNrZ2UxeHVYRzRnSUNBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQnlaWE53YjI1elpTQTlJSGhvY2k1eVpYTndiMjV6WlZSbGVIUWdQeUJLVTA5T0xuQmhjbk5sS0hob2NpNXlaWE53YjI1elpWUmxlSFFwSURvZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2g0YUhJdWMzUmhkSFZ6SUQ0OUlESXdNQ0FtSmlCNGFISXVjM1JoZEhWeklEd2dNekF3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVVvY21WemNHOXVjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnFaV04wS0hKbGMzQnZibk5sS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpXcGxZM1FvWlNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwN1hHNGdJQ0FnSUNCNGFISXVjMlZ1WkNoa1lYUmhLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxLU0I3WEc0Z0lDQWdJQ0J5WldwbFkzUW9aU2s3WEc0Z0lDQWdmVnh1SUNCOUtUdGNibjA3WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2UxeHVJQ0JoY25KaGVYTkVhV1ptWlhJNklHWjFibU4wYVc5dUlDaGhjbkpoZVVFc0lHRnljbUY1UWlrZ2UxeHVJQ0FnSUhaaGNpQnBjMFJwWm1abGNtVnVkQ0E5SUdaaGJITmxPMXh1SUNBZ0lHbG1JQ2hoY25KaGVVRXViR1Z1WjNSb0lDRTlQU0JoY25KaGVVSXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQnBjMFJwWm1abGNtVnVkQ0E5SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUdGeWNtRjVRUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2hwZEdWdExDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhSbGJTQWhQVDBnWVhKeVlYbENXMmx1WkdWNFhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdselJHbG1abVZ5Wlc1MElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJwYzBScFptWmxjbVZ1ZER0Y2JpQWdmU3hjYmlBZ1lXcGhlRG9nZTF4dUlDQWdJSEJ2YzNRNklISmxjWFZsYzNRdVltbHVaQ2h1ZFd4c0xDQW5VRTlUVkNjcExGeHVJQ0FnSUhCMWREb2djbVZ4ZFdWemRDNWlhVzVrS0c1MWJHd3NJQ2RRVlZRbktWeHVJQ0I5WEc1OU8xeHVJbDE5IiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gICdpc1ZhbHVlJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSAnJztcbiAgfSxcbiAgJ2lzRW1haWwnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL14oKChbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKFxcLihbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKSopfCgoXFx4MjIpKCgoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oKFtcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDdmXXxcXHgyMXxbXFx4MjMtXFx4NWJdfFtcXHg1ZC1cXHg3ZV18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfChcXFxcKFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZC1cXHg3Zl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkpKigoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oXFx4MjIpKSlAKCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFxcZHxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkoW2Etel18XFxkfC18XFwufF98fnxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkqKFthLXpdfFxcZHxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKVxcLikrKChbYS16XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KChbYS16XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkoW2Etel18XFxkfC18XFwufF98fnxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkqKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpJC9pKTtcbiAgfSxcbiAgJ2lzVHJ1ZSc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZTtcbiAgfSxcbiAgJ2lzTnVtZXJpYyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG1hdGNoUmVzdWx0cyA9IHZhbHVlLm1hdGNoKC9bLStdPyhcXGQqWy5dKT9cXGQrLyk7XG4gICAgICBpZiAoISEgbWF0Y2hSZXN1bHRzKSB7XG4gICAgICAgIHJldHVybiBtYXRjaFJlc3VsdHNbMF0gPT0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICAnaXNBbHBoYSc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpdKyQvKTtcbiAgfSxcbiAgJ2lzV29yZHMnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL15bYS16QS1aXFxzXSskLyk7XG4gIH0sXG4gICdpc1NwZWNpYWxXb3Jkcyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpcXHNcXHUwMEMwLVxcdTAxN0ZdKyQvKTtcbiAgfSxcbiAgaXNMZW5ndGg6IGZ1bmN0aW9uICh2YWx1ZSwgbWluLCBtYXgpIHtcbiAgICBpZiAobWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPj0gbWluICYmIHZhbHVlLmxlbmd0aCA8PSBtYXg7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPj0gbWluO1xuICB9LFxuICBlcXVhbHM6IGZ1bmN0aW9uICh2YWx1ZSwgZXFsKSB7XG4gICAgcmV0dXJuIHZhbHVlID09IGVxbDtcbiAgfSxcbiAgZXF1YWxzRmllbGQ6IGZ1bmN0aW9uICh2YWx1ZSwgZmllbGQpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHRoaXNbZmllbGRdO1xuICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZkbUZzYVdSaGRHbHZibEoxYkdWekxtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdlZYTmxjbk12WTJoeWFYTjBhV0Z1WVd4bWIyNXBMMFJ2WTNWdFpXNTBjeTlrWlhZdlptOXliWE41TFhKbFlXTjBMM055WXk5MllXeHBaR0YwYVc5dVVuVnNaWE11YW5NaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUVUZCVFN4RFFVRkRMRTlCUVU4c1IwRkJSenRGUVVObUxGTkJRVk1zUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlR0SlFVTXhRaXhQUVVGUExFdEJRVXNzUzBGQlN5eEZRVUZGTEVOQlFVTTdSMEZEY2tJN1JVRkRSQ3hUUVVGVExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdTVUZETVVJc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEhrMFFrRkJlVFJDTEVOQlFVTXNRMEZCUXp0SFFVTXZOVUk3UlVGRFJDeFJRVUZSTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRla0lzVDBGQlR5eExRVUZMTEV0QlFVc3NTVUZCU1N4RFFVRkRPMGRCUTNaQ08wVkJRMFFzVjBGQlZ5eEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMGxCUXpWQ0xFbEJRVWtzVDBGQlR5eExRVUZMTEV0QlFVc3NVVUZCVVN4RlFVRkZPMDFCUXpkQ0xFOUJRVThzU1VGQlNTeERRVUZETzB0QlEySXNUVUZCVFR0TlFVTk1MRWxCUVVrc1dVRkJXU3hIUVVGSExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dE5RVU53UkN4SlFVRkpMRU5CUVVNc1JVRkJSU3haUVVGWkxFVkJRVVU3VVVGRGJrSXNUMEZCVHl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETzA5QlEycERMRTFCUVUwN1VVRkRUQ3hQUVVGUExFdEJRVXNzUTBGQlF6dFBRVU5rTzB0QlEwWTdSMEZEUmp0RlFVTkVMRk5CUVZNc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdEpRVU14UWl4UFFVRlBMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdSMEZEYmtNN1JVRkRSQ3hUUVVGVExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdTVUZETVVJc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMGRCUTNKRE8wVkJRMFFzWjBKQlFXZENMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRGFrTXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExEUkNRVUUwUWl4RFFVRkRMRU5CUVVNN1IwRkRiRVE3UlVGRFJDeFJRVUZSTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJUdEpRVU51UXl4SlFVRkpMRWRCUVVjc1MwRkJTeXhUUVVGVExFVkJRVVU3VFVGRGNrSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJRenRMUVVOdVJEdEpRVU5FTEU5QlFVOHNTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU03UjBGRE5VSTdSVUZEUkN4TlFVRk5MRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTzBsQlF6VkNMRTlCUVU4c1MwRkJTeXhKUVVGSkxFZEJRVWNzUTBGQlF6dEhRVU55UWp0RlFVTkVMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlFVVTdTVUZEYmtNc1QwRkJUeXhMUVVGTExFdEJRVXNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGRCUXpsQ08wTkJRMFlzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdlMXh1SUNBbmFYTldZV3gxWlNjNklHWjFibU4wYVc5dUlDaDJZV3gxWlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIyWVd4MVpTQWhQVDBnSnljN1hHNGdJSDBzWEc0Z0lDZHBjMFZ0WVdsc0p6b2dablZ1WTNScGIyNGdLSFpoYkhWbEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhaaGJIVmxMbTFoZEdOb0tDOWVLQ2dvVzJFdGVsMThYRnhrZkZzaEkxeGNKQ1VtSjF4Y0tseGNLMXhjTFZ4Y0x6MWNYRDljWEY1ZllIdGNYSHg5ZmwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLeWhjWEM0b1cyRXRlbDE4WEZ4a2ZGc2hJMXhjSkNVbUoxeGNLbHhjSzF4Y0xWeGNMejFjWEQ5Y1hGNWZZSHRjWEh4OWZsMThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS3lrcUtYd29LRnhjZURJeUtTZ29LQ2hjWEhneU1IeGNYSGd3T1NrcUtGeGNlREJrWEZ4NE1HRXBLVDhvWEZ4NE1qQjhYRng0TURrcEt5ay9LQ2hiWEZ4NE1ERXRYRng0TURoY1hIZ3dZbHhjZURCalhGeDRNR1V0WEZ4NE1XWmNYSGczWmwxOFhGeDRNakY4VzF4Y2VESXpMVnhjZURWaVhYeGJYRng0TldRdFhGeDROMlZkZkZ0Y1hIVXdNRUV3TFZ4Y2RVUTNSa1pjWEhWR09UQXdMVnhjZFVaRVEwWmNYSFZHUkVZd0xWeGNkVVpHUlVaZEtYd29YRnhjWENoYlhGeDRNREV0WEZ4NE1EbGNYSGd3WWx4Y2VEQmpYRng0TUdRdFhGeDROMlpkZkZ0Y1hIVXdNRUV3TFZ4Y2RVUTNSa1pjWEhWR09UQXdMVnhjZFVaRVEwWmNYSFZHUkVZd0xWeGNkVVpHUlVaZEtTa3BLU29vS0NoY1hIZ3lNSHhjWEhnd09Ta3FLRnhjZURCa1hGeDRNR0VwS1Q4b1hGeDRNakI4WEZ4NE1Ea3BLeWsvS0Z4Y2VESXlLU2twUUNnb0tGdGhMWHBkZkZ4Y1pIeGJYRngxTURCQk1DMWNYSFZFTjBaR1hGeDFSamt3TUMxY1hIVkdSRU5HWEZ4MVJrUkdNQzFjWEhWR1JrVkdYU2w4S0NoYllTMTZYWHhjWEdSOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLRnRoTFhwZGZGeGNaSHd0ZkZ4Y0xueGZmSDU4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtpaGJZUzE2WFh4Y1hHUjhXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS1NsY1hDNHBLeWdvVzJFdGVsMThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwZkNnb1cyRXRlbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtGdGhMWHBkZkZ4Y1pId3RmRnhjTG54ZmZINThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS2loYllTMTZYWHhiWEZ4MU1EQkJNQzFjWEhWRU4wWkdYRngxUmprd01DMWNYSFZHUkVOR1hGeDFSa1JHTUMxY1hIVkdSa1ZHWFNrcEtTUXZhU2s3WEc0Z0lIMHNYRzRnSUNkcGMxUnlkV1VuT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVZ1BUMDlJSFJ5ZFdVN1hHNGdJSDBzWEc0Z0lDZHBjMDUxYldWeWFXTW5PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXBJSHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuYm5WdFltVnlKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFpoY2lCdFlYUmphRkpsYzNWc2RITWdQU0IyWVd4MVpTNXRZWFJqYUNndld5MHJYVDhvWEZ4a0tsc3VYU2svWEZ4a0t5OHBPMXh1SUNBZ0lDQWdhV1lnS0NFaElHMWhkR05vVW1WemRXeDBjeWtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYldGMFkyaFNaWE4xYkhSeld6QmRJRDA5SUhaaGJIVmxPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZTeGNiaUFnSjJselFXeHdhR0VuT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWJXRjBZMmdvTDE1YllTMTZRUzFhWFNza0x5azdYRzRnSUgwc1hHNGdJQ2RwYzFkdmNtUnpKem9nWm5WdVkzUnBiMjRnS0haaGJIVmxLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsTG0xaGRHTm9LQzllVzJFdGVrRXRXbHhjYzEwckpDOHBPMXh1SUNCOUxGeHVJQ0FuYVhOVGNHVmphV0ZzVjI5eVpITW5PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1V1YldGMFkyZ29MMTViWVMxNlFTMWFYRnh6WEZ4MU1EQkRNQzFjWEhVd01UZEdYU3NrTHlrN1hHNGdJSDBzWEc0Z0lHbHpUR1Z1WjNSb09pQm1kVzVqZEdsdmJpQW9kbUZzZFdVc0lHMXBiaXdnYldGNEtTQjdYRzRnSUNBZ2FXWWdLRzFoZUNBaFBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWJHVnVaM1JvSUQ0OUlHMXBiaUFtSmlCMllXeDFaUzVzWlc1bmRHZ2dQRDBnYldGNE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWJHVnVaM1JvSUQ0OUlHMXBianRjYmlBZ2ZTeGNiaUFnWlhGMVlXeHpPaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXNJR1Z4YkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIyWVd4MVpTQTlQU0JsY1d3N1hHNGdJSDBzWEc0Z0lHVnhkV0ZzYzBacFpXeGtPaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXNJR1pwWld4a0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhaaGJIVmxJRDA5UFNCMGFHbHpXMlpwWld4a1hUdGNiaUFnZlZ4dWZUdGNiaUpkZlE9PSJdfQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NwZWNzL0VsZW1lbnQtc3BlYy5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3BlY3MvRm9ybXN5LXNwZWMuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NwZWNzL1N1Ym1pdC1zcGVjLmpzIiwiL1VzZXJzL2NocmlzdGlhbmFsZm9uaS9Eb2N1bWVudHMvZGV2L2Zvcm1zeS1yZWFjdC9zcGVjcy9WYWxpZGF0aW9uLXNwZWMuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy9NaXhpbi5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3JjL21haW4uanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy91dGlscy5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3JjL3ZhbGlkYXRpb25SdWxlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDOztBQUV6QyxRQUFRLENBQUMsU0FBUyxFQUFFLFdBQVc7O0FBRS9CLEVBQUUsRUFBRSxDQUFDLGlFQUFpRSxFQUFFLFlBQVk7O0lBRWhGLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsV0FBVztNQUN6RCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxD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QUFLLENBQUM7T0FDZDtLQUNGO0dBQ0Y7RUFDRCxTQUFTLEVBQUUsVUFBVSxLQUFLLEVBQUU7SUFDMUIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0dBQ25DO0VBQ0QsU0FBUyxFQUFFLFVBQVUsS0FBSyxFQUFFO0lBQzFCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztHQUNyQztFQUNELGdCQUFnQixFQUFFLFVBQVUsS0FBSyxFQUFFO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0dBQ2xEO0VBQ0QsUUFBUSxFQUFFLFVBQVUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7SUFDbkMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO01BQ3JCLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUM7S0FDbkQ7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO0dBQzVCO0VBQ0QsTUFBTSxFQUFFLFVBQVUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUM1QixPQUFPLEtBQUssSUFBSSxHQUFHLENBQUM7R0FDckI7RUFDRCxXQUFXLEVBQUUsVUFBVSxLQUFLLEVBQUUsS0FBSyxFQUFFO0lBQ25DLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztHQUM3QjtBQUNILENBQUMsQ0FBQzs7QUFFRiIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJ2YXIgRm9ybXN5ID0gcmVxdWlyZSgnLi8uLi9zcmMvbWFpbi5qcycpO1xuXG5kZXNjcmliZSgnRWxlbWVudCcsIGZ1bmN0aW9uKCkge1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHBhc3NlZCBhbmQgc2V0VmFsdWUoKSB2YWx1ZSB3aGVuIHVzaW5nIGdldFZhbHVlKCknLCBmdW5jdGlvbiAoKSB7XG4gICAgXG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgZXhwZWN0KGlucHV0LmdldERPTU5vZGUoKS52YWx1ZSkudG9CZSgnZm9vJyk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnZm9vYmFyJ319KTtcbiAgICBleHBlY3QoaW5wdXQuZ2V0RE9NTm9kZSgpLnZhbHVlKS50b0JlKCdmb29iYXInKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBiYWNrIHRvIHByaXN0aW5lIHZhbHVlIHdoZW4gcnVubmluZyByZXNldCcsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgcmVzZXQgPSBudWxsO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmVzZXQgPSB0aGlzLnJlc2V0VmFsdWU7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJ2Zvb2Jhcid9fSk7XG4gICAgcmVzZXQoKTtcbiAgICBleHBlY3QoaW5wdXQuZ2V0RE9NTm9kZSgpLnZhbHVlKS50b0JlKCdmb28nKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiBlcnJvciBtZXNzYWdlIHBhc3NlZCB3aGVuIGNhbGxpbmcgZ2V0RXJyb3JNZXNzYWdlKCknLCBmdW5jdGlvbiAoKSB7XG4gICAgXG4gICAgdmFyIGdldEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICBnZXRFcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZTtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc0VtYWlsXCIsIHZhbGlkYXRpb25FcnJvcjogXCJIYXMgdG8gYmUgZW1haWxcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIGV4cGVjdChnZXRFcnJvck1lc3NhZ2UoKSkudG9CZSgnSGFzIHRvIGJlIGVtYWlsJyk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gc2VydmVyIGVycm9yIG1lc3NhZ2Ugd2hlbiBjYWxsaW5nIGdldEVycm9yTWVzc2FnZSgpJywgZnVuY3Rpb24gKGRvbmUpIHtcbiAgICBcbiAgICBqYXNtaW5lLkFqYXguaW5zdGFsbCgpO1xuXG4gICAgdmFyIGdldEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICBnZXRFcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZTtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCJ9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNFbWFpbFwiLCB2YWxpZGF0aW9uRXJyb3I6IFwiSGFzIHRvIGJlIGVtYWlsXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuXG4gICAgamFzbWluZS5BamF4LnJlcXVlc3RzLm1vc3RSZWNlbnQoKS5yZXNwb25kV2l0aCh7XG4gICAgICBzdGF0dXM6IDUwMCxcbiAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICByZXNwb25zZVRleHQ6ICd7XCJmb29cIjogXCJiYXJcIn0nXG4gICAgfSlcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZXhwZWN0KGdldEVycm9yTWVzc2FnZSgpKS50b0JlKCdiYXInKTtcbiAgICAgIGphc21pbmUuQWpheC51bmluc3RhbGwoKTtcbiAgICAgIGRvbmUoKTtcbiAgICB9LCAwKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIHdoZW4gY2FsbGluZyBpc1ZhbGlkKCkgZGVwZW5kaW5nIG9uIHZhbGlkIHN0YXRlJywgZnVuY3Rpb24gKCkge1xuICAgIFxuICAgIHZhciBpc1ZhbGlkID0gbnVsbDtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlzVmFsaWQgPSB0aGlzLmlzVmFsaWQ7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wifSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCIsIHZhbGlkYXRpb25zOiBcImlzRW1haWxcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIGV4cGVjdChpc1ZhbGlkKCkpLnRvQmUoZmFsc2UpO1xuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJ2Zvb0Bmb28uY29tJ319KTtcbiAgICBleHBlY3QoaXNWYWxpZCgpKS50b0JlKHRydWUpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2Ugd2hlbiBjYWxsaW5nIGlzUmVxdWlyZWQoKSBkZXBlbmRpbmcgb24gcGFzc2VkIHJlcXVpcmVkIGF0dHJpYnV0ZScsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgaXNSZXF1aXJlZHMgPSBbXTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlzUmVxdWlyZWRzLnB1c2godGhpcy5pc1JlcXVpcmVkKTtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCJ9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIn0pLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgcmVxdWlyZWQ6IHRydWV9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICBleHBlY3QoaXNSZXF1aXJlZHNbMF0oKSkudG9CZShmYWxzZSk7XG4gICAgZXhwZWN0KGlzUmVxdWlyZWRzWzFdKCkpLnRvQmUodHJ1ZSk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSB3aGVuIGNhbGxpbmcgc2hvd1JlcXVpcmVkKCkgZGVwZW5kaW5nIG9uIGlucHV0IGJlaW5nIGVtcHR5IGFuZCByZXF1aXJlZCBpcyBwYXNzZWQsIG9yIG5vdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgc2hvd1JlcXVpcmVkcyA9IFtdO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2hvd1JlcXVpcmVkcy5wdXNoKHRoaXMuc2hvd1JlcXVpcmVkKTtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCJ9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIkFcIiwgdmFsdWU6IFwiZm9vXCJ9KSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJCXCIsIHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZX0pLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIkNcIiwgdmFsdWU6IFwiXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICBleHBlY3Qoc2hvd1JlcXVpcmVkc1swXSgpKS50b0JlKGZhbHNlKTtcbiAgICBleHBlY3Qoc2hvd1JlcXVpcmVkc1sxXSgpKS50b0JlKHRydWUpO1xuICAgIGV4cGVjdChzaG93UmVxdWlyZWRzWzJdKCkpLnRvQmUoZmFsc2UpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2Ugd2hlbiBjYWxsaW5nIHNob3dFcnJvcigpIGRlcGVuZGluZyBvbiB2YWx1ZSBpcyBpbnZhbGlkIG9yIGEgc2VydmVyIGVycm9yIGhhcyBhcnJpdmVkLCBvciBub3QnLCBmdW5jdGlvbiAoZG9uZSkge1xuXG4gICAgdmFyIHNob3dFcnJvciA9IG51bGw7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICBzaG93RXJyb3IgPSB0aGlzLnNob3dFcnJvcjtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCJ9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNFbWFpbFwiLCB2YWxpZGF0aW9uRXJyb3I6IFwiVGhpcyBpcyBub3QgYW4gZW1haWxcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIGV4cGVjdChzaG93RXJyb3IoKSkudG9CZSh0cnVlKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJ2Zvb0Bmb28uY29tJ319KTtcbiAgICBleHBlY3Qoc2hvd0Vycm9yKCkpLnRvQmUoZmFsc2UpO1xuXG4gICAgamFzbWluZS5BamF4Lmluc3RhbGwoKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTsgICAgXG4gICAgamFzbWluZS5BamF4LnJlcXVlc3RzLm1vc3RSZWNlbnQoKS5yZXNwb25kV2l0aCh7XG4gICAgICBzdGF0dXM6IDUwMCxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgcmVzcG9uc2VUZXh0OiAne1wiZm9vXCI6IFwiRW1haWwgYWxyZWFkeSBleGlzdHNcIn0nXG4gICAgfSk7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBleHBlY3Qoc2hvd0Vycm9yKCkpLnRvQmUodHJ1ZSk7XG4gICAgICBqYXNtaW5lLkFqYXgudW5pbnN0YWxsKCk7XG4gICAgICBkb25lKCk7XG4gICAgfSwgMCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2Ugd2hlbiBjYWxsaW5nIGlzUHJpc3RpbmUoKSBkZXBlbmRpbmcgb24gaW5wdXQgaGFzIGJlZW4gXCJ0b3VjaGVkXCIgb3Igbm90JywgZnVuY3Rpb24gKCkge1xuICAgIFxuICAgIHZhciBpc1ByaXN0aW5lID0gbnVsbDtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlzUHJpc3RpbmUgPSB0aGlzLmlzUHJpc3RpbmU7XG4gICAgICB9LFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wifSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJBXCIsIHZhbHVlOiBcImZvb1wifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgZXhwZWN0KGlzUHJpc3RpbmUoKSkudG9CZSh0cnVlKTtcbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdmb28nfX0pO1xuICAgIGV4cGVjdChpc1ByaXN0aW5lKCkpLnRvQmUoZmFsc2UpO1xuICAgIFxuICB9KTtcblxuaXQoJ3Nob3VsZCBhbGxvdyBhbiB1bmRlZmluZWQgdmFsdWUgdG8gYmUgdXBkYXRlZCB0byBhIHZhbHVlJywgZnVuY3Rpb24gKGRvbmUpIHtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4ge3ZhbHVlOiB1bmRlZmluZWR9O1xuICAgICAgfSxcbiAgICAgIGNoYW5nZVZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHZhbHVlOiAnZm9vJ1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wifSwgXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiQVwiLCB2YWx1ZTogdGhpcy5zdGF0ZS52YWx1ZX0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpXG4gICAgKTtcblxuICAgIGZvcm0uY2hhbmdlVmFsdWUoKTtcbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGV4cGVjdChpbnB1dC5nZXRET01Ob2RlKCkudmFsdWUpLnRvQmUoJ2ZvbycpO1xuICAgICAgZG9uZSgpO1xuICAgIH0sIDApO1xuICB9KTsgIFxuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBkeW5hbWljYWxseSBjaGFuZ2UgdmFsaWRhdGlvbnMnLCBmdW5jdGlvbiAoZG9uZSkge1xuXG4gICAgdmFyIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCl9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB7dmFsdWU6ICdmb29AYmFyLmNvbScsIHZhbGlkYXRpb25zOiAnaXNFbWFpbCd9O1xuICAgICAgfSxcbiAgICAgIGNoYW5nZVZhbGlkYXRpb25zOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHZhbGlkYXRpb25zOiAnZXF1YWxzOmZvbydcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgc2V0SW52YWxpZDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zb2xlLmxvZygnUnVubmluZyBpdCEnKTtcbiAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wiLCBvbkludmFsaWQ6IHRoaXMuc2V0SW52YWxpZH0sIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIkFcIiwgdmFsaWRhdGlvbnM6IHRoaXMuc3RhdGUudmFsaWRhdGlvbnMsIHZhbHVlOiB0aGlzLnN0YXRlLnZhbHVlfSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbClcbiAgICApO1xuXG4gICAgZm9ybS5jaGFuZ2VWYWxpZGF0aW9ucygpO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZXhwZWN0KGlzSW52YWxpZCkudG9CZSh0cnVlKTtcbiAgICAgIGRvbmUoKTtcbiAgICB9LCAwKTtcbiAgfSk7ICBcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdGVzdCBhIHZhbHVlcyB2YWxpZGl0eScsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIkFcIiwgdmFsaWRhdGlvbnM6IFwiaXNFbWFpbFwifSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZENvbXBvbmVudFdpdGhUeXBlKGZvcm0sIFRlc3RJbnB1dCk7XG4gICAgZXhwZWN0KGlucHV0LmlzVmFsaWRWYWx1ZSgnZm9vQGJhci5jb20nKSkudG9CZSh0cnVlKTtcbiAgICBleHBlY3QoaW5wdXQuaXNWYWxpZFZhbHVlKCdmb29AYmFyJykpLnRvQmUoZmFsc2UpO1xuXG4gIH0pOyBcblxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y0dWamN5OUZiR1Z0Wlc1MExYTndaV011YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTlWYzJWeWN5OWphSEpwYzNScFlXNWhiR1p2Ym1rdlJHOWpkVzFsYm5SekwyUmxkaTltYjNKdGMza3RjbVZoWTNRdmMzQmxZM012Uld4bGJXVnVkQzF6Y0dWakxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEVsQlFVa3NUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPenRCUVVWNlF5eFJRVUZSTEVOQlFVTXNVMEZCVXl4RlFVRkZMRmRCUVZjN08wRkJSUzlDTEVWQlFVVXNSVUZCUlN4RFFVRkRMR2xGUVVGcFJTeEZRVUZGTEZsQlFWazdPMGxCUldoR0xFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UFFVTnVRenROUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVjBGQldTeERRVUZGTEVOQlFVRTdUMEZEY0VVN1MwRkRSaXhEUVVGRExFTkJRVU03U1VGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeEpRVUZETEVWQlFVRTdVVUZEV0N4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVc3NRMEZCUlN4RFFVRkJPMDFCUTNaQ0xFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xFbEJRVWtzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1VzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkROME1zVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUlN4SlFVRkpMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZET3p0QlFVVndSQ3hIUVVGSExFTkJRVU1zUTBGQlF6czdRVUZGVEN4RlFVRkZMRVZCUVVVc1EwRkJReXh6UkVGQmMwUXNSVUZCUlN4WlFVRlpPenRKUVVWeVJTeEpRVUZKTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRha0lzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VFVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dE5RVU4wUWl4cFFrRkJhVUlzUlVGQlJTeFpRVUZaTzFGQlF6ZENMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETzA5QlEzcENPMDFCUTBRc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVOdVF6dE5RVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1QwRkRjRVU3UzBGRFJpeERRVUZETEVOQlFVTTdTVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4SlFVRkRMRVZCUVVFN1VVRkRXQ3h2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVzc1EwRkJSU3hEUVVGQk8wMUJRM1pDTEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEVsQlFVa3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrVXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTTVSQ3hMUVVGTExFVkJRVVVzUTBGQlF6dEJRVU5hTEVsQlFVa3NUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03TzBGQlJXcEVMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMRzFGUVVGdFJTeEZRVUZGTEZsQlFWazdPMGxCUld4R0xFbEJRVWtzWlVGQlpTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTXpRaXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHROUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8wMUJRM1JDTEdsQ1FVRnBRaXhGUVVGRkxGbEJRVms3VVVGRE4wSXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU03VDBGRGVFTTdUVUZEUkN4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VVVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMDlCUTI1RE8wMUJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0UFFVTndSVHRMUVVOR0xFTkJRVU1zUTBGQlF6dEpRVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdUVUZEY2tNc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVsQlFVTXNSVUZCUVR0UlFVTllMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1YwRkJRU3hGUVVGWExFTkJRVU1zVTBGQlFTeEZRVUZUTEVOQlFVTXNaVUZCUVN4RlFVRmxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVVXNRMEZCUVR0TlFVTXZSU3hEUVVGQk8wRkJRM0JDTEV0QlFVc3NRMEZCUXpzN1FVRkZUaXhKUVVGSkxFMUJRVTBzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPenRCUVVWMFJDeEhRVUZITEVOQlFVTXNRMEZCUXpzN1FVRkZUQ3hGUVVGRkxFVkJRVVVzUTBGQlF5eHRSVUZCYlVVc1JVRkJSU3hWUVVGVkxFbEJRVWtzUlVGQlJUczdRVUZGTVVZc1NVRkJTU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPenRKUVVWMlFpeEpRVUZKTEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRNMElzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VFVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dE5RVU4wUWl4cFFrRkJhVUlzUlVGQlJTeFpRVUZaTzFGQlF6ZENMR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETzA5QlEzaERPMDFCUTBRc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVOdVF6dE5RVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1QwRkRjRVU3UzBGRFJpeERRVUZETEVOQlFVTTdTVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1IwRkJRU3hGUVVGSExFTkJRVU1zVVVGQlV5eERRVUZCTEVWQlFVRTdVVUZEZUVJc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhYUVVGQkxFVkJRVmNzUTBGQlF5eFRRVUZCTEVWQlFWTXNRMEZCUXl4bFFVRkJMRVZCUVdVc1EwRkJReXhwUWtGQmFVSXNRMEZCUlN4RFFVRkJPMDFCUXk5RkxFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRCUVVWT0xFbEJRVWtzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN08wbEJSWGhFTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEZkQlFWY3NRMEZCUXp0TlFVTTNReXhOUVVGTkxFVkJRVVVzUjBGQlJ6dE5RVU5ZTEZkQlFWY3NSVUZCUlN4clFrRkJhMEk3VFVGREwwSXNXVUZCV1N4RlFVRkZMR2RDUVVGblFqdEJRVU53UXl4TFFVRkxMRU5CUVVNN08wbEJSVVlzVlVGQlZTeERRVUZETEZsQlFWazdUVUZEY2tJc1RVRkJUU3hEUVVGRExHVkJRV1VzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wMUJRM1JETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03VFVGRGVrSXNTVUZCU1N4RlFVRkZMRU5CUVVNN1FVRkRZaXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdPMEZCUlZZc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4RlFVRkZMRU5CUVVNc05rVkJRVFpGTEVWQlFVVXNXVUZCV1RzN1NVRkZOVVlzU1VGQlNTeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRPMGxCUTI1Q0xFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNhVUpCUVdsQ0xFVkJRVVVzV1VGQldUdFJRVU0zUWl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF6dFBRVU40UWp0TlFVTkVMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1QwRkRia003VFVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGRkJRVk1zUTBGQlFTeEZRVUZCTzFGQlEzaENMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1YwRkJRU3hGUVVGWExFTkJRVU1zVTBGQlV5eERRVUZGTEVOQlFVRTdUVUZETjBNc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMGxCUlVZc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRemxDTEVsQlFVa3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrVXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjJSU3hKUVVGSkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6czdRVUZGYWtNc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4RlFVRkZMRU5CUVVNc09FWkJRVGhHTEVWQlFVVXNXVUZCV1RzN1NVRkZOMGNzU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTNKQ0xFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNhVUpCUVdsQ0xFVkJRVVVzV1VGQldUdFJRVU0zUWl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UFFVTnVRenROUVVORUxGZEJRVmNzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlR0UlFVTTFRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VDBGRGJrTTdUVUZEUkN4TlFVRk5MRVZCUVVVc1dVRkJXVHRSUVVOc1FpeFBRVUZQTEc5Q1FVRkJMRTlCUVUwc1JVRkJRU3hEUVVGQkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRExFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVVXNTVUZCU1N4RFFVRkRMRmRCUVZrc1EwRkJSU3hEUVVGQk8wOUJRM0JGTzB0QlEwWXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRanROUVVOeVF5eHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExFZEJRVUVzUlVGQlJ5eERRVUZETEZGQlFWTXNRMEZCUVN4RlFVRkJPMUZCUTNoQ0xHOUNRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkJMRU5CUVVNc1NVRkJRU3hGUVVGSkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRkxFTkJRVUVzUlVGQlFUdFJRVU51UXl4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRkZCUVVFc1JVRkJRU3hEUVVGRkxFTkJRVUU3VFVGRGVFSXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM3BETEVsQlFVa3NUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE96dEJRVVY0UXl4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRlRDeEZRVUZGTEVWQlFVVXNRMEZCUXl4MVNFRkJkVWdzUlVGQlJTeFpRVUZaT3p0SlFVVjBTU3hKUVVGSkxHRkJRV0VzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEZGtJc1NVRkJTU3dyUWtGQkswSXNlVUpCUVVFN1RVRkRha01zVFVGQlRTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJRenROUVVOMFFpeHBRa0ZCYVVJc1JVRkJSU3haUVVGWk8xRkJRemRDTEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzA5QlEzWkRPMDFCUTBRc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVOdVF6dE5RVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1QwRkRjRVU3UzBGRFJpeERRVUZETEVOQlFVTTdTVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1IwRkJRU3hGUVVGSExFTkJRVU1zVVVGQlV5eERRVUZCTEVWQlFVRTdVVUZEZUVJc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhIUVVGQkxFVkJRVWNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVVc1EwRkJRU3hGUVVGQk8xRkJRMnBETEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUlVGQlFTeEZRVUZGTEVOQlFVTXNVVUZCUVN4RlFVRkJMRU5CUVVVc1EwRkJRU3hGUVVGQk8xRkJReTlDTEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUlVGQlJTeERRVUZGTEVOQlFVRTdUVUZEYkVJc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMGxCUlVZc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEzWkRMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU14UXl4SlFVRkpMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZGTTBNc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4RlFVRkZMRU5CUVVNc01FaEJRVEJJTEVWQlFVVXNWVUZCVlN4SlFVRkpMRVZCUVVVN08wbEJSVGRKTEVsQlFVa3NVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOeVFpeEpRVUZKTEN0Q1FVRXJRaXg1UWtGQlFUdE5RVU5xUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzAxQlEzUkNMR2xDUVVGcFFpeEZRVUZGTEZsQlFWazdVVUZETjBJc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTTdUMEZETlVJN1RVRkRSQ3hYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJRMjVETzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJReXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlpMRU5CUVVVc1EwRkJRVHRQUVVOd1JUdExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhIUVVGQkxFVkJRVWNzUTBGQlF5eFJRVUZUTEVOQlFVRXNSVUZCUVR0UlFVTjRRaXh2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExGZEJRVUVzUlVGQlZ5eERRVUZETEZOQlFVRXNSVUZCVXl4RFFVRkRMR1ZCUVVFc1JVRkJaU3hEUVVGRExITkNRVUZ6UWl4RFFVRkZMRU5CUVVFN1RVRkRjRVlzUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wRkJSVTRzU1VGQlNTeE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdPMGxCUlM5Q0xFbEJRVWtzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1VzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4yUlN4SlFVRkpMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenM3U1VGRmFFTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEpRVU4yUWl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVNM1F5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eFhRVUZYTEVOQlFVTTdUVUZETjBNc1RVRkJUU3hGUVVGRkxFZEJRVWM3VFVGRFdDeFpRVUZaTEVWQlFVVXNhMEpCUVd0Q08wMUJRMmhETEZsQlFWa3NSVUZCUlN4cFEwRkJhVU03UzBGRGFFUXNRMEZCUXl4RFFVRkRPMGxCUTBnc1ZVRkJWU3hEUVVGRExGbEJRVms3VFVGRGNrSXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMDFCUXk5Q0xFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1RVRkRla0lzU1VGQlNTeEZRVUZGTEVOQlFVTTdTMEZEVWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMVlzUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlV3c1JVRkJSU3hGUVVGRkxFTkJRVU1zYjBkQlFXOUhMRVZCUVVVc1dVRkJXVHM3U1VGRmJrZ3NTVUZCU1N4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRM1JDTEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzAxQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdUVUZEZEVJc2FVSkJRV2xDTEVWQlFVVXNXVUZCV1R0UlFVTTNRaXhWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXp0UFFVTTVRanROUVVORUxGZEJRVmNzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlR0UlFVTTFRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VDBGRGJrTTdUVUZEUkN4TlFVRk5MRVZCUVVVc1dVRkJXVHRSUVVOc1FpeFBRVUZQTEc5Q1FVRkJMRTlCUVUwc1JVRkJRU3hEUVVGQkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRExFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVVXNTVUZCU1N4RFFVRkRMRmRCUVZrc1EwRkJSU3hEUVVGQk8wOUJRM0JGTzB0QlEwWXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRanROUVVOeVF5eHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExFZEJRVUVzUlVGQlJ5eERRVUZETEZGQlFWTXNRMEZCUVN4RlFVRkJPMUZCUTNoQ0xHOUNRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkJMRU5CUVVNc1NVRkJRU3hGUVVGSkxFTkJRVU1zUjBGQlFTeEZRVUZITEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRkxFTkJRVUU3VFVGRGNrSXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNUVUZCVFN4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTJoRExFbEJRVWtzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1VzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU12UkN4SlFVRkpMRTFCUVUwc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenM3UVVGRmNrTXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeERRVUZETERCRVFVRXdSQ3hGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGTzBsQlF6TkZMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVY3NRMEZCUlN4RFFVRkJPMDlCUTNoRE8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N3NFFrRkJPRUlzZDBKQlFVRTdUVUZEYUVNc1pVRkJaU3hGUVVGRkxGbEJRVms3VVVGRE0wSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFBRVU16UWp0TlFVTkVMRmRCUVZjc1JVRkJSU3haUVVGWk8xRkJRM1pDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1ZVRkRXaXhMUVVGTExFVkJRVVVzUzBGQlN6dFRRVU5pTEVOQlFVTXNRMEZCUXp0UFFVTktPMDFCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VVVGRGJFSTdWVUZEUlN4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEVkQlFVRXNSVUZCUnl4RFFVRkRMRkZCUVZNc1EwRkJRU3hGUVVGQk8xbEJRM2hDTEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRk5MRU5CUVVVc1EwRkJRVHRWUVVOc1F5eERRVUZCTzFWQlEyUTdUMEZEU0R0TFFVTkdMRU5CUVVNc1EwRkJRenRKUVVOSUxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMEk3VFVGRGNrTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFbEJRVVVzUTBGQlFUdEJRVU5xUWl4TFFVRkxMRU5CUVVNN08wbEJSVVlzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMGxCUTI1Q0xFbEJRVWtzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1VzVlVGQlZTeERRVUZETEZsQlFWazdUVUZEY2tJc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdUVUZETjBNc1NVRkJTU3hGUVVGRkxFTkJRVU03UzBGRFVpeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTFZc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4RlFVRkZMRU5CUVVNc2EwUkJRV3RFTEVWQlFVVXNWVUZCVlN4SlFVRkpMRVZCUVVVN08wbEJSWEpGTEVsQlFVa3NVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJRenRKUVVOMFFpeEpRVUZKTEN0Q1FVRXJRaXg1UWtGQlFUdE5RVU5xUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzAxQlEzUkNMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTEU5QlFVOHNiMEpCUVVFc1QwRkJUU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGSExFTkJRVVVzUTBGQlFUdFBRVU40UXp0TFFVTkdMRU5CUVVNc1EwRkJRenRKUVVOSUxFbEJRVWtzT0VKQlFUaENMSGRDUVVGQk8wMUJRMmhETEdWQlFXVXNSVUZCUlN4WlFVRlpPMUZCUXpOQ0xFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNZVUZCWVN4RlFVRkZMRmRCUVZjc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFBRVU4yUkR0TlFVTkVMR2xDUVVGcFFpeEZRVUZGTEZsQlFWazdVVUZETjBJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dFZRVU5hTEZkQlFWY3NSVUZCUlN4WlFVRlpPMU5CUXpGQ0xFTkJRVU1zUTBGQlF6dFBRVU5LTzAxQlEwUXNWVUZCVlN4RlFVRkZMRmxCUVZrN1VVRkRkRUlzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRSUVVNelFpeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRPMDlCUTJ4Q08wMUJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJN1ZVRkRSU3h2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZETEZOQlFVRXNSVUZCVXl4RFFVRkZMRWxCUVVrc1EwRkJReXhWUVVGWkxFTkJRVUVzUlVGQlFUdFpRVU53UkN4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGZEJRVUVzUlVGQlZ5eERRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTkxFTkJRVVVzUTBGQlFUdFZRVU4yUlN4RFFVRkJPMVZCUTJRN1QwRkRTRHRMUVVOR0xFTkJRVU1zUTBGQlF6dEpRVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdUVUZEY2tNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVsQlFVVXNRMEZCUVR0QlFVTnFRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTTdTVUZEZWtJc1ZVRkJWU3hEUVVGRExGbEJRVms3VFVGRGNrSXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTTNRaXhKUVVGSkxFVkJRVVVzUTBGQlF6dExRVU5TTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRWaXhIUVVGSExFTkJRVU1zUTBGQlF6czdRVUZGVEN4RlFVRkZMRVZCUVVVc1EwRkJReXd3UTBGQk1FTXNSVUZCUlN4WlFVRlpPenRKUVVWNlJDeEpRVUZKTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1NVRkRkRUlzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VFVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dE5RVU4wUWl4TlFVRk5MRVZCUVVVc1dVRkJXVHRSUVVOc1FpeFBRVUZQTEc5Q1FVRkJMRTlCUVUwc1JVRkJRU3hEUVVGQkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSeXhEUVVGRkxFTkJRVUU3VDBGRGVFTTdTMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRTQ3hKUVVGSkxEaENRVUU0UWl4M1FrRkJRVHROUVVOb1F5eE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRanRWUVVORkxHOUNRVUZETEZkQlFWY3NSVUZCUVN4SlFVRkRMRVZCUVVFN1dVRkRXQ3h2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFZEJRVUVzUlVGQlJ5eERRVUZETEZkQlFVRXNSVUZCVnl4RFFVRkRMRk5CUVZNc1EwRkJSU3hEUVVGQk8xVkJReTlDTEVOQlFVRTdWVUZEWkR0UFFVTklPMHRCUTBZc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhSUVVGUkxFVkJRVUVzU1VGQlJTeERRVUZCTzBGQlEycENMRXRCUVVzc1EwRkJRenM3U1VGRlJpeEpRVUZKTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8wbEJRM0pGTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRM3BFTEVsQlFVa3NUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhaUVVGWkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03TzBGQlJYUkVMRWRCUVVjc1EwRkJReXhEUVVGRE96dERRVVZLTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkluWmhjaUJHYjNKdGMza2dQU0J5WlhGMWFYSmxLQ2N1THk0dUwzTnlZeTl0WVdsdUxtcHpKeWs3WEc1Y2JtUmxjMk55YVdKbEtDZEZiR1Z0Wlc1MEp5d2dablZ1WTNScGIyNG9LU0I3WEc1Y2JpQWdhWFFvSjNOb2IzVnNaQ0J5WlhSMWNtNGdjR0Z6YzJWa0lHRnVaQ0J6WlhSV1lXeDFaU2dwSUhaaGJIVmxJSGRvWlc0Z2RYTnBibWNnWjJWMFZtRnNkV1VvS1Njc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQmNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lIVndaR0YwWlZaaGJIVmxPaUJtZFc1amRHbHZiaUFvWlhabGJuUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaGxkbVZ1ZEM1MFlYSm5aWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG5Wd1pHRjBaVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbVp2YjF3aUx6NWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSFpoY2lCcGJuQjFkQ0E5SUZSbGMzUlZkR2xzY3k1bWFXNWtVbVZ1WkdWeVpXUkVUMDFEYjIxd2IyNWxiblJYYVhSb1ZHRm5LR1p2Y20wc0lDZEpUbEJWVkNjcE8xeHVJQ0FnSUdWNGNHVmpkQ2hwYm5CMWRDNW5aWFJFVDAxT2IyUmxLQ2t1ZG1Gc2RXVXBMblJ2UW1Vb0oyWnZieWNwTzF4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9hVzV3ZFhRc0lIdDBZWEpuWlhRNklIdDJZV3gxWlRvZ0oyWnZiMkpoY2lkOWZTazdYRzRnSUNBZ1pYaHdaV04wS0dsdWNIVjBMbWRsZEVSUFRVNXZaR1VvS1M1MllXeDFaU2t1ZEc5Q1pTZ25abTl2WW1GeUp5azdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQnpaWFFnWW1GamF5QjBieUJ3Y21semRHbHVaU0IyWVd4MVpTQjNhR1Z1SUhKMWJtNXBibWNnY21WelpYUW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnWEc0Z0lDQWdkbUZ5SUhKbGMyVjBJRDBnYm5Wc2JEdGNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lHTnZiWEJ2Ym1WdWRFUnBaRTF2ZFc1ME9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGMyVjBJRDBnZEdocGN5NXlaWE5sZEZaaGJIVmxPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSFZ3WkdGMFpWWmhiSFZsT2lCbWRXNWpkR2x2YmlBb1pYWmxiblFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxuVndaR0YwWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNBZ0lDQThWR1Z6ZEVsdWNIVjBJRzVoYldVOVhDSm1iMjljSWlCMllXeDFaVDFjSW1admIxd2lMejVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhaaGNpQnBibkIxZENBOUlGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JFVDAxRGIyMXdiMjVsYm5SWGFYUm9WR0ZuS0dadmNtMHNJQ2RKVGxCVlZDY3BPMXh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNWphR0Z1WjJVb2FXNXdkWFFzSUh0MFlYSm5aWFE2SUh0MllXeDFaVG9nSjJadmIySmhjaWQ5ZlNrN1hHNGdJQ0FnY21WelpYUW9LVHRjYmlBZ0lDQmxlSEJsWTNRb2FXNXdkWFF1WjJWMFJFOU5UbTlrWlNncExuWmhiSFZsS1M1MGIwSmxLQ2RtYjI4bktUdGNibHh1SUNCOUtUdGNibHh1SUNCcGRDZ25jMmh2ZFd4a0lISmxkSFZ5YmlCbGNuSnZjaUJ0WlhOellXZGxJSEJoYzNObFpDQjNhR1Z1SUdOaGJHeHBibWNnWjJWMFJYSnliM0pOWlhOellXZGxLQ2tuTENCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ1hHNGdJQ0FnZG1GeUlHZGxkRVZ5Y205eVRXVnpjMkZuWlNBOUlHNTFiR3c3WEc0Z0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lHMXBlR2x1Y3pvZ1cwWnZjbTF6ZVM1TmFYaHBibDBzWEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblJFYVdSTmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQm5aWFJGY25KdmNrMWxjM05oWjJVZ1BTQjBhR2x6TG1kbGRFVnljbTl5VFdWemMyRm5aVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0IxY0dSaGRHVldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tHVjJaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFZtRnNkV1VvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmU0J2YmtOb1lXNW5aVDE3ZEdocGN5NTFjR1JoZEdWV1lXeDFaWDB2UGx4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENoY2JpQWdJQ0FnSUR4R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBZ0lDQWdQRlJsYzNSSmJuQjFkQ0J1WVcxbFBWd2labTl2WENJZ2RtRnNkV1U5WENKbWIyOWNJaUIyWVd4cFpHRjBhVzl1Y3oxY0ltbHpSVzFoYVd4Y0lpQjJZV3hwWkdGMGFXOXVSWEp5YjNJOVhDSklZWE1nZEc4Z1ltVWdaVzFoYVd4Y0lpOCtYRzRnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JsZUhCbFkzUW9aMlYwUlhKeWIzSk5aWE56WVdkbEtDa3BMblJ2UW1Vb0owaGhjeUIwYnlCaVpTQmxiV0ZwYkNjcE8xeHVYRzRnSUgwcE8xeHVYRzRnSUdsMEtDZHphRzkxYkdRZ2NtVjBkWEp1SUhObGNuWmxjaUJsY25KdmNpQnRaWE56WVdkbElIZG9aVzRnWTJGc2JHbHVaeUJuWlhSRmNuSnZjazFsYzNOaFoyVW9LU2NzSUdaMWJtTjBhVzl1SUNoa2IyNWxLU0I3WEc0Z0lDQWdYRzRnSUNBZ2FtRnpiV2x1WlM1QmFtRjRMbWx1YzNSaGJHd29LVHRjYmx4dUlDQWdJSFpoY2lCblpYUkZjbkp2Y2sxbGMzTmhaMlVnUFNCdWRXeHNPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdZMjl0Y0c5dVpXNTBSR2xrVFc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ1oyVjBSWEp5YjNKTlpYTnpZV2RsSUQwZ2RHaHBjeTVuWlhSRmNuSnZjazFsYzNOaFoyVTdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdkWEJrWVhSbFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMGdiMjVEYUdGdVoyVTllM1JvYVhNdWRYQmtZWFJsVm1Gc2RXVjlMejVjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvWEc0Z0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wZ2RYSnNQVndpTDNWelpYSnpYQ0krWEc0Z0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSW1admIxd2lJSFpoYkhWbFBWd2labTl2WENJZ2RtRnNhV1JoZEdsdmJuTTlYQ0pwYzBWdFlXbHNYQ0lnZG1Gc2FXUmhkR2x2YmtWeWNtOXlQVndpU0dGeklIUnZJR0psSUdWdFlXbHNYQ0l2UGx4dUlDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBcE8xeHVYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVVMmx0ZFd4aGRHVXVjM1ZpYldsMEtHWnZjbTB1WjJWMFJFOU5UbTlrWlNncEtUdGNibHh1SUNBZ0lHcGhjMjFwYm1VdVFXcGhlQzV5WlhGMVpYTjBjeTV0YjNOMFVtVmpaVzUwS0NrdWNtVnpjRzl1WkZkcGRHZ29lMXh1SUNBZ0lDQWdjM1JoZEhWek9pQTFNREFzWEc0Z0lDQWdJQ0JqYjI1MFpXNTBWSGx3WlRvZ0oyRndjR3hwWTJGMGFXOXVMMnB6YjI0bkxGeHVJQ0FnSUNBZ2NtVnpjRzl1YzJWVVpYaDBPaUFuZTF3aVptOXZYQ0k2SUZ3aVltRnlYQ0o5SjF4dUlDQWdJSDBwWEc1Y2JpQWdJQ0J6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lHVjRjR1ZqZENoblpYUkZjbkp2Y2sxbGMzTmhaMlVvS1NrdWRHOUNaU2duWW1GeUp5azdYRzRnSUNBZ0lDQnFZWE50YVc1bExrRnFZWGd1ZFc1cGJuTjBZV3hzS0NrN1hHNGdJQ0FnSUNCa2IyNWxLQ2s3WEc0Z0lDQWdmU3dnTUNrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCeVpYUjFjbTRnZEhKMVpTQnZjaUJtWVd4elpTQjNhR1Z1SUdOaGJHeHBibWNnYVhOV1lXeHBaQ2dwSUdSbGNHVnVaR2x1WnlCdmJpQjJZV3hwWkNCemRHRjBaU2NzSUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCY2JpQWdJQ0IyWVhJZ2FYTldZV3hwWkNBOUlHNTFiR3c3WEc0Z0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lHMXBlR2x1Y3pvZ1cwWnZjbTF6ZVM1TmFYaHBibDBzWEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblJFYVdSTmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnBjMVpoYkdsa0lEMGdkR2hwY3k1cGMxWmhiR2xrTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhWd1pHRjBaVlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNobGRtVnVkQzUwWVhKblpYUXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMblZ3WkdGMFpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJSFZ5YkQxY0lpOTFjMlZ5YzF3aVBseHVJQ0FnSUNBZ0lDQThWR1Z6ZEVsdWNIVjBJRzVoYldVOVhDSm1iMjljSWlCMllXeDFaVDFjSW1admIxd2lJSFpoYkdsa1lYUnBiMjV6UFZ3aWFYTkZiV0ZwYkZ3aUx6NWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmx4dUlDQWdJR1Y0Y0dWamRDaHBjMVpoYkdsa0tDa3BMblJ2UW1Vb1ptRnNjMlVwTzF4dUlDQWdJSFpoY2lCcGJuQjFkQ0E5SUZSbGMzUlZkR2xzY3k1bWFXNWtVbVZ1WkdWeVpXUkVUMDFEYjIxd2IyNWxiblJYYVhSb1ZHRm5LR1p2Y20wc0lDZEpUbEJWVkNjcE8xeHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1amFHRnVaMlVvYVc1d2RYUXNJSHQwWVhKblpYUTZJSHQyWVd4MVpUb2dKMlp2YjBCbWIyOHVZMjl0SjMxOUtUdGNiaUFnSUNCbGVIQmxZM1FvYVhOV1lXeHBaQ2dwS1M1MGIwSmxLSFJ5ZFdVcE8xeHVYRzRnSUgwcE8xeHVYRzRnSUdsMEtDZHphRzkxYkdRZ2NtVjBkWEp1SUhSeWRXVWdiM0lnWm1Gc2MyVWdkMmhsYmlCallXeHNhVzVuSUdselVtVnhkV2x5WldRb0tTQmtaWEJsYm1ScGJtY2diMjRnY0dGemMyVmtJSEpsY1hWcGNtVmtJR0YwZEhKcFluVjBaU2NzSUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCY2JpQWdJQ0IyWVhJZ2FYTlNaWEYxYVhKbFpITWdQU0JiWFR0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUdOdmJYQnZibVZ1ZEVScFpFMXZkVzUwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2x6VW1WeGRXbHlaV1J6TG5CMWMyZ29kR2hwY3k1cGMxSmxjWFZwY21Wa0tUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQjFjR1JoZEdWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUR4cGJuQjFkQ0IyWVd4MVpUMTdkR2hwY3k1blpYUldZV3gxWlNncGZTQnZia05vWVc1blpUMTdkR2hwY3k1MWNHUmhkR1ZXWVd4MVpYMHZQbHh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2hjYmlBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCMWNtdzlYQ0l2ZFhObGNuTmNJajVjYmlBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpWm05dlhDSWdkbUZzZFdVOVhDSm1iMjljSWk4K1hHNGdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpSUhaaGJIVmxQVndpWm05dlhDSWdjbVZ4ZFdseVpXUXZQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWlhod1pXTjBLR2x6VW1WeGRXbHlaV1J6V3pCZEtDa3BMblJ2UW1Vb1ptRnNjMlVwTzF4dUlDQWdJR1Y0Y0dWamRDaHBjMUpsY1hWcGNtVmtjMXN4WFNncEtTNTBiMEpsS0hSeWRXVXBPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2R6YUc5MWJHUWdjbVYwZFhKdUlIUnlkV1VnYjNJZ1ptRnNjMlVnZDJobGJpQmpZV3hzYVc1bklITm9iM2RTWlhGMWFYSmxaQ2dwSUdSbGNHVnVaR2x1WnlCdmJpQnBibkIxZENCaVpXbHVaeUJsYlhCMGVTQmhibVFnY21WeGRXbHlaV1FnYVhNZ2NHRnpjMlZrTENCdmNpQnViM1FuTENCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ1hHNGdJQ0FnZG1GeUlITm9iM2RTWlhGMWFYSmxaSE1nUFNCYlhUdGNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lHTnZiWEJ2Ym1WdWRFUnBaRTF2ZFc1ME9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhOb2IzZFNaWEYxYVhKbFpITXVjSFZ6YUNoMGFHbHpMbk5vYjNkU1pYRjFhWEpsWkNrN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2RYQmtZWFJsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtHVjJaVzUwTG5SaGNtZGxkQzUyWVd4MVpTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUE4YVc1d2RYUWdkbUZzZFdVOWUzUm9hWE11WjJWMFZtRnNkV1VvS1gwZ2IyNURhR0Z1WjJVOWUzUm9hWE11ZFhCa1lYUmxWbUZzZFdWOUx6NWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNiaUFnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9YRzRnSUNBZ0lDQThSbTl5YlhONUxrWnZjbTBnZFhKc1BWd2lMM1Z6WlhKelhDSStYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJa0ZjSWlCMllXeDFaVDFjSW1admIxd2lMejVjYmlBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpUWx3aUlIWmhiSFZsUFZ3aVhDSWdjbVZ4ZFdseVpXUXZQbHh1SUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0pEWENJZ2RtRnNkV1U5WENKY0lpOCtYRzRnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JsZUhCbFkzUW9jMmh2ZDFKbGNYVnBjbVZrYzFzd1hTZ3BLUzUwYjBKbEtHWmhiSE5sS1R0Y2JpQWdJQ0JsZUhCbFkzUW9jMmh2ZDFKbGNYVnBjbVZrYzFzeFhTZ3BLUzUwYjBKbEtIUnlkV1VwTzF4dUlDQWdJR1Y0Y0dWamRDaHphRzkzVW1WeGRXbHlaV1J6V3pKZEtDa3BMblJ2UW1Vb1ptRnNjMlVwTzF4dVhHNGdJSDBwTzF4dVhHNGdJR2wwS0NkemFHOTFiR1FnY21WMGRYSnVJSFJ5ZFdVZ2IzSWdabUZzYzJVZ2QyaGxiaUJqWVd4c2FXNW5JSE5vYjNkRmNuSnZjaWdwSUdSbGNHVnVaR2x1WnlCdmJpQjJZV3gxWlNCcGN5QnBiblpoYkdsa0lHOXlJR0VnYzJWeWRtVnlJR1Z5Y205eUlHaGhjeUJoY25KcGRtVmtMQ0J2Y2lCdWIzUW5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1WEc0Z0lDQWdkbUZ5SUhOb2IzZEZjbkp2Y2lBOUlHNTFiR3c3WEc0Z0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lHMXBlR2x1Y3pvZ1cwWnZjbTF6ZVM1TmFYaHBibDBzWEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblJFYVdSTmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnphRzkzUlhKeWIzSWdQU0IwYUdsekxuTm9iM2RGY25KdmNqdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQjFjR1JoZEdWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUR4cGJuQjFkQ0IyWVd4MVpUMTdkR2hwY3k1blpYUldZV3gxWlNncGZTQnZia05vWVc1blpUMTdkR2hwY3k1MWNHUmhkR1ZXWVd4MVpYMHZQbHh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2hjYmlBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCMWNtdzlYQ0l2ZFhObGNuTmNJajVjYmlBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpWm05dlhDSWdkbUZzZFdVOVhDSm1iMjljSWlCMllXeHBaR0YwYVc5dWN6MWNJbWx6UlcxaGFXeGNJaUIyWVd4cFpHRjBhVzl1UlhKeWIzSTlYQ0pVYUdseklHbHpJRzV2ZENCaGJpQmxiV0ZwYkZ3aUx6NWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmx4dUlDQWdJR1Y0Y0dWamRDaHphRzkzUlhKeWIzSW9LU2t1ZEc5Q1pTaDBjblZsS1R0Y2JseHVJQ0FnSUhaaGNpQnBibkIxZENBOUlGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JFVDAxRGIyMXdiMjVsYm5SWGFYUm9WR0ZuS0dadmNtMHNJQ2RKVGxCVlZDY3BPMXh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNWphR0Z1WjJVb2FXNXdkWFFzSUh0MFlYSm5aWFE2SUh0MllXeDFaVG9nSjJadmIwQm1iMjh1WTI5dEozMTlLVHRjYmlBZ0lDQmxlSEJsWTNRb2MyaHZkMFZ5Y205eUtDa3BMblJ2UW1Vb1ptRnNjMlVwTzF4dVhHNGdJQ0FnYW1GemJXbHVaUzVCYW1GNExtbHVjM1JoYkd3b0tUdGNiaUFnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdWMzVmliV2wwS0dadmNtMHVaMlYwUkU5TlRtOWtaU2dwS1RzZ0lDQWdYRzRnSUNBZ2FtRnpiV2x1WlM1QmFtRjRMbkpsY1hWbGMzUnpMbTF2YzNSU1pXTmxiblFvS1M1eVpYTndiMjVrVjJsMGFDaDdYRzRnSUNBZ0lDQnpkR0YwZFhNNklEVXdNQ3hjYmlBZ0lDQWdJSEpsYzNCdmJuTmxWSGx3WlRvZ0oyRndjR3hwWTJGMGFXOXVMMnB6YjI0bkxGeHVJQ0FnSUNBZ2NtVnpjRzl1YzJWVVpYaDBPaUFuZTF3aVptOXZYQ0k2SUZ3aVJXMWhhV3dnWVd4eVpXRmtlU0JsZUdsemRITmNJbjBuWEc0Z0lDQWdmU2s3WEc0Z0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNCbGVIQmxZM1FvYzJodmQwVnljbTl5S0NrcExuUnZRbVVvZEhKMVpTazdYRzRnSUNBZ0lDQnFZWE50YVc1bExrRnFZWGd1ZFc1cGJuTjBZV3hzS0NrN1hHNGdJQ0FnSUNCa2IyNWxLQ2s3WEc0Z0lDQWdmU3dnTUNrN1hHNGdJSDBwTzF4dVhHNGdJR2wwS0NkemFHOTFiR1FnY21WMGRYSnVJSFJ5ZFdVZ2IzSWdabUZzYzJVZ2QyaGxiaUJqWVd4c2FXNW5JR2x6VUhKcGMzUnBibVVvS1NCa1pYQmxibVJwYm1jZ2IyNGdhVzV3ZFhRZ2FHRnpJR0psWlc0Z1hDSjBiM1ZqYUdWa1hDSWdiM0lnYm05MEp5d2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJRnh1SUNBZ0lIWmhjaUJwYzFCeWFYTjBhVzVsSUQwZ2JuVnNiRHRjYmlBZ0lDQjJZWElnVkdWemRFbHVjSFYwSUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ2JXbDRhVzV6T2lCYlJtOXliWE41TGsxcGVHbHVYU3hjYmlBZ0lDQWdJR052YlhCdmJtVnVkRVJwWkUxdmRXNTBPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbHpVSEpwYzNScGJtVWdQU0IwYUdsekxtbHpVSEpwYzNScGJtVTdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdkWEJrWVhSbFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMGdiMjVEYUdGdVoyVTllM1JvYVhNdWRYQmtZWFJsVm1Gc2RXVjlMejVjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvWEc0Z0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wZ2RYSnNQVndpTDNWelpYSnpYQ0krWEc0Z0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSWtGY0lpQjJZV3gxWlQxY0ltWnZiMXdpTHo1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHVjRjR1ZqZENocGMxQnlhWE4wYVc1bEtDa3BMblJ2UW1Vb2RISjFaU2s3WEc0Z0lDQWdkbUZ5SUdsdWNIVjBJRDBnVkdWemRGVjBhV3h6TG1acGJtUlNaVzVrWlhKbFpFUlBUVU52YlhCdmJtVnVkRmRwZEdoVVlXY29abTl5YlN3Z0owbE9VRlZVSnlrN1hHNGdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG1Ob1lXNW5aU2hwYm5CMWRDd2dlM1JoY21kbGREb2dlM1poYkhWbE9pQW5abTl2SjMxOUtUdGNiaUFnSUNCbGVIQmxZM1FvYVhOUWNtbHpkR2x1WlNncEtTNTBiMEpsS0daaGJITmxLVHRjYmlBZ0lDQmNiaUFnZlNrN1hHNWNibWwwS0NkemFHOTFiR1FnWVd4c2IzY2dZVzRnZFc1a1pXWnBibVZrSUhaaGJIVmxJSFJ2SUdKbElIVndaR0YwWldRZ2RHOGdZU0IyWVd4MVpTY3NJR1oxYm1OMGFXOXVJQ2hrYjI1bEtTQjdYRzRnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlGUmxjM1JHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdaMlYwU1c1cGRHbGhiRk4wWVhSbE9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3ZG1Gc2RXVTZJSFZ1WkdWbWFXNWxaSDA3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnWTJoaGJtZGxWbUZzZFdVNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJQ2RtYjI4blhHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNBZ0lEeEdiM0p0YzNrdVJtOXliU0IxY213OVhDSXZkWE5sY25OY0lqNWNiaUFnSUNBZ0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSWtGY0lpQjJZV3gxWlQxN2RHaHBjeTV6ZEdGMFpTNTJZV3gxWlgwdlBseHVJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRlJsYzNSR2IzSnRMejVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdabTl5YlM1amFHRnVaMlZXWVd4MVpTZ3BPMXh1SUNBZ0lIWmhjaUJwYm5CMWRDQTlJRlJsYzNSVmRHbHNjeTVtYVc1a1VtVnVaR1Z5WldSRVQwMURiMjF3YjI1bGJuUlhhWFJvVkdGbktHWnZjbTBzSUNkSlRsQlZWQ2NwTzF4dUlDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ1pYaHdaV04wS0dsdWNIVjBMbWRsZEVSUFRVNXZaR1VvS1M1MllXeDFaU2t1ZEc5Q1pTZ25abTl2SnlrN1hHNGdJQ0FnSUNCa2IyNWxLQ2s3WEc0Z0lDQWdmU3dnTUNrN1hHNGdJSDBwT3lBZ1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCaVpTQmhZbXhsSUhSdklHUjVibUZ0YVdOaGJHeDVJR05vWVc1blpTQjJZV3hwWkdGMGFXOXVjeWNzSUdaMWJtTjBhVzl1SUNoa2IyNWxLU0I3WEc1Y2JpQWdJQ0IyWVhJZ2FYTkpiblpoYkdsa0lEMGdabUZzYzJVN1hHNGdJQ0FnZG1GeUlGUmxjM1JKYm5CMWRDQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJRzFwZUdsdWN6b2dXMFp2Y20xemVTNU5hWGhwYmwwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUZSbGMzUkdiM0p0SUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ1oyVjBTVzVwZEdsaGJGTjBZWFJsT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdkbUZzZFdVNklDZG1iMjlBWW1GeUxtTnZiU2NzSUhaaGJHbGtZWFJwYjI1ek9pQW5hWE5GYldGcGJDZDlPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR05vWVc1blpWWmhiR2xrWVhScGIyNXpPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNBZ0lIWmhiR2xrWVhScGIyNXpPaUFuWlhGMVlXeHpPbVp2YnlkY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjMlYwU1c1MllXeHBaRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExteHZaeWduVW5WdWJtbHVaeUJwZENFbktUdGNiaUFnSUNBZ0lDQWdhWE5KYm5aaGJHbGtJRDBnZEhKMVpUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnSUNBOFJtOXliWE41TGtadmNtMGdkWEpzUFZ3aUwzVnpaWEp6WENJZ2IyNUpiblpoYkdsa1BYdDBhR2x6TG5ObGRFbHVkbUZzYVdSOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpUVZ3aUlIWmhiR2xrWVhScGIyNXpQWHQwYUdsekxuTjBZWFJsTG5aaGJHbGtZWFJwYjI1emZTQjJZV3gxWlQxN2RHaHBjeTV6ZEdGMFpTNTJZV3gxWlgwdlBseHVJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRlJsYzNSR2IzSnRMejVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdabTl5YlM1amFHRnVaMlZXWVd4cFpHRjBhVzl1Y3lncE8xeHVJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdaWGh3WldOMEtHbHpTVzUyWVd4cFpDa3VkRzlDWlNoMGNuVmxLVHRjYmlBZ0lDQWdJR1J2Ym1Vb0tUdGNiaUFnSUNCOUxDQXdLVHRjYmlBZ2ZTazdJQ0JjYmx4dUlDQnBkQ2duYzJodmRXeGtJR0psSUdGaWJHVWdkRzhnZEdWemRDQmhJSFpoYkhWbGN5QjJZV3hwWkdsMGVTY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUhaaGNpQnBjMGx1ZG1Gc2FXUWdQU0JtWVd4elpUdGNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5THo1Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRVp2Y20wZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnSUNBOFJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKQlhDSWdkbUZzYVdSaGRHbHZibk05WENKcGMwVnRZV2xzWENJdlBseHVJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRlJsYzNSR2IzSnRMejVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdkbUZ5SUdsdWNIVjBJRDBnVkdWemRGVjBhV3h6TG1acGJtUlNaVzVrWlhKbFpFTnZiWEJ2Ym1WdWRGZHBkR2hVZVhCbEtHWnZjbTBzSUZSbGMzUkpibkIxZENrN1hHNGdJQ0FnWlhod1pXTjBLR2x1Y0hWMExtbHpWbUZzYVdSV1lXeDFaU2duWm05dlFHSmhjaTVqYjIwbktTa3VkRzlDWlNoMGNuVmxLVHRjYmlBZ0lDQmxlSEJsWTNRb2FXNXdkWFF1YVhOV1lXeHBaRlpoYkhWbEtDZG1iMjlBWW1GeUp5a3BMblJ2UW1Vb1ptRnNjMlVwTzF4dVhHNGdJSDBwT3lCY2JseHVmU2s3WEc0aVhYMD0iLCJ2YXIgRm9ybXN5ID0gcmVxdWlyZSgnLi8uLi9zcmMvbWFpbi5qcycpO1xuXG5kZXNjcmliZSgnRm9ybXN5JywgZnVuY3Rpb24gKCkge1xuXG4gIGRlc2NyaWJlKCdTZXR0aW5nIHVwIGEgZm9ybScsIGZ1bmN0aW9uICgpIHtcblxuICAgIGl0KCdzaG91bGQgcmVuZGVyIGEgZm9ybSBpbnRvIHRoZSBkb2N1bWVudCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwgbnVsbCkpO1xuICAgICAgZXhwZWN0KGZvcm0uZ2V0RE9NTm9kZSgpLnRhZ05hbWUpLnRvRXF1YWwoJ0ZPUk0nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc2V0IGEgY2xhc3MgbmFtZSBpZiBwYXNzZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtjbGFzc05hbWU6IFwiZm9vXCJ9KSk7XG4gICAgICBleHBlY3QoZm9ybS5nZXRET01Ob2RlKCkuY2xhc3NOYW1lKS50b0VxdWFsKCdmb28nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgZm9yIG51bGwvdW5kZWZpbmVkIGNoaWxkcmVuJywgZnVuY3Rpb24gKGRvbmUpIHtcbiAgICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgIGNoYW5nZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLmNoYW5nZVZhbHVlfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBtb2RlbCA9IG51bGw7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgb25TdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICAgICAgICBtb2RlbCA9IGZvcm1Nb2RlbDtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblN1Ym1pdDogIHRoaXMub25TdWJtaXR9LCBcbiAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImgxXCIsIG51bGwsIFwiVGVzdFwiKSwgXG4gICAgICAgICAgICAgICBudWxsLCBcbiAgICAgICAgICAgICAgIHVuZGVmaW5lZCwgXG4gICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJuYW1lXCIsIHZhbHVlOiAgJ2ZvbycgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpKTtcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICAgICAgZXhwZWN0KG1vZGVsKS50b0VxdWFsKHtuYW1lOiAnZm9vJ30pO1xuICAgICAgICBkb25lKCk7XG4gICAgICB9LCAxMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFsbG93IGZvciBpbnB1dHMgYmVpbmcgYWRkZWQgZHluYW1pY2FsbHknLCBmdW5jdGlvbiAoZG9uZSkge1xuXG4gICAgICB2YXIgaW5wdXRzID0gW107XG4gICAgICB2YXIgZm9yY2VVcGRhdGUgPSBudWxsO1xuICAgICAgdmFyIG1vZGVsID0gbnVsbDtcbiAgICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICAgIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZvcmNlVXBkYXRlID0gdGhpcy5mb3JjZVVwZGF0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB9LFxuICAgICAgICBvblN1Ym1pdDogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgICAgICAgIG1vZGVsID0gZm9ybU1vZGVsO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblN1Ym1pdDogdGhpcy5vblN1Ym1pdH0sIFxuICAgICAgICAgICAgICBpbnB1dHNcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpIFxuICAgICAgKTtcblxuICAgICAgLy8gV2FpdCBiZWZvcmUgYWRkaW5nIHRoZSBpbnB1dFxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgaW5wdXRzLnB1c2goVGVzdElucHV0KHtcbiAgICAgICAgICBuYW1lOiAndGVzdCdcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGZvcmNlVXBkYXRlKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgIC8vIFdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcCwgYXMgdGhhdCBkb2VzIHRoZSBmb3JtXG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICAgICAgICAgIGV4cGVjdChtb2RlbC50ZXN0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgIH0pO1xuXG4gICAgICB9LCAxMCk7XG5cbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgZHluYW1pY2FsbHkgYWRkZWQgaW5wdXRzIHRvIHVwZGF0ZSB0aGUgZm9ybS1tb2RlbCcsIGZ1bmN0aW9uIChkb25lKSB7XG5cbiAgICAgIHZhciBpbnB1dHMgPSBbXTtcbiAgICAgIHZhciBmb3JjZVVwZGF0ZSA9IG51bGw7XG4gICAgICB2YXIgbW9kZWwgPSBudWxsO1xuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgY2hhbmdlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMuY2hhbmdlVmFsdWV9KVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmb3JjZVVwZGF0ZSA9IHRoaXMuZm9yY2VVcGRhdGUuYmluZCh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25TdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICAgICAgICBtb2RlbCA9IGZvcm1Nb2RlbDtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuICggXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25TdWJtaXQ6IHRoaXMub25TdWJtaXR9LCBcbiAgICAgICAgICAgICAgaW5wdXRzXG4gICAgICAgICAgICApKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKSBcbiAgICAgICk7XG5cbiAgICAgIC8vIFdhaXQgYmVmb3JlIGFkZGluZyB0aGUgaW5wdXRcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgIGlucHV0cy5wdXNoKFRlc3RJbnB1dCh7XG4gICAgICAgICAgbmFtZTogJ3Rlc3QnXG4gICAgICAgIH0pKTtcblxuICAgICAgICBmb3JjZVVwZGF0ZShmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAvLyBXYWl0IGZvciBuZXh0IGV2ZW50IGxvb3AsIGFzIHRoYXQgZG9lcyB0aGUgZm9ybVxuICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKSwge3RhcmdldDoge3ZhbHVlOiAnZm9vJ319KTtcbiAgICAgICAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgICAgICAgICAgZXhwZWN0KG1vZGVsLnRlc3QpLnRvQmUoJ2ZvbycpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgIH0pO1xuXG4gICAgICB9LCAxMCk7XG5cbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgYSBkeW5hbWljYWxseSB1cGRhdGVkIGlucHV0IHRvIHVwZGF0ZSB0aGUgZm9ybS1tb2RlbCcsIGZ1bmN0aW9uIChkb25lKSB7XG5cbiAgICAgIHZhciBmb3JjZVVwZGF0ZSA9IG51bGw7XG4gICAgICB2YXIgbW9kZWwgPSBudWxsO1xuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgY2hhbmdlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMuY2hhbmdlVmFsdWV9KVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdmFyIGlucHV0O1xuICAgICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICAgIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZvcmNlVXBkYXRlID0gdGhpcy5mb3JjZVVwZGF0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB9LFxuICAgICAgICBvblN1Ym1pdDogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgICAgICAgIG1vZGVsID0gZm9ybU1vZGVsO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpbnB1dCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJ0ZXN0XCIsIHZhbHVlOiAgdGhpcy5wcm9wcy52YWx1ZX0pO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblN1Ym1pdDogdGhpcy5vblN1Ym1pdH0sIFxuICAgICAgICAgICAgICBpbnB1dFxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIHt2YWx1ZTogXCJmb29cIn0pKTtcblxuICAgICAgLy8gV2FpdCBiZWZvcmUgY2hhbmdpbmcgdGhlIGlucHV0XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9ybS5zZXRQcm9wcyh7dmFsdWU6ICdiYXInfSk7XG5cbiAgICAgICAgZm9yY2VVcGRhdGUoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIFdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcCwgYXMgdGhhdCBkb2VzIHRoZSBmb3JtXG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICAgICAgICAgIGV4cGVjdChtb2RlbC50ZXN0KS50b0JlKCdiYXInKTtcbiAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICB9LCAwKTtcblxuICAgICAgICB9KTtcblxuICAgICAgfSwgMTApO1xuXG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgndmFsaWRhdGlvbnMnLCBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBDaGVja1ZhbGlkLCBvblN1Ym1pdCwgT3RoZXJDaGVja1ZhbGlkO1xuICAgICAgdmFyIGlzVmFsaWQ7XG5cbiAgICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgIGNoYW5nZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiAgdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogIHRoaXMuY2hhbmdlVmFsdWV9KVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlucHV0czogW10sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIGJ1aWx0SW5wdXRzID0gW107XG4gICAgICAgICAgdmFyIGlucHV0cyA9IHRoaXMucHJvcHMuaW5wdXRzO1xuICAgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGlucHV0ID0gaW5wdXRzW2ldO1xuICAgICAgICAgICAgYnVpbHRJbnB1dHMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwgUmVhY3QuX19zcHJlYWQoe30sICAgaW5wdXQgLCB7a2V5OiAgaW5wdXQubmFtZX0pKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtcbiAgICAgICAgICAgIG9uU3VibWl0OiAgZnVuY3Rpb24oYXJnMSkgeyBvblN1Ym1pdChhcmcxKTsgfSwgXG4gICAgICAgICAgICBvblZhbGlkOiAgZnVuY3Rpb24oKSB7IGlzVmFsaWQgPSB0cnVlOyB9LCBcbiAgICAgICAgICAgIG9uSW52YWxpZDogIGZ1bmN0aW9uKCkgeyBpc1ZhbGlkID0gZmFsc2U7IH19LCBcbiAgICAgICAgICAgICBidWlsdElucHV0cyBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgaXNWYWxpZCA9IHRydWU7XG4gICAgICAgIENoZWNrVmFsaWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnQ2hlY2tWYWxpZCcpO1xuICAgICAgICBGb3Jtc3kuYWRkVmFsaWRhdGlvblJ1bGUoJ0NoZWNrVmFsaWQnLCBDaGVja1ZhbGlkKTtcbiAgICAgICAgT3RoZXJDaGVja1ZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ0NoZWNrVmFsaWQnKTtcbiAgICAgICAgRm9ybXN5LmFkZFZhbGlkYXRpb25SdWxlKCdPdGhlckNoZWNrVmFsaWQnLCBPdGhlckNoZWNrVmFsaWQpO1xuICAgICAgICBvblN1Ym1pdCA9IGphc21pbmUuY3JlYXRlU3B5KCdvblN1Ym1pdCcpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgcnVuIHdoZW4gdGhlIGlucHV0IGNoYW5nZXMnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIHtpbnB1dHM6ICBbe25hbWU6ICdvbmUnLCB2YWxpZGF0aW9uczogJ0NoZWNrVmFsaWQnLCB2YWx1ZTogJ2Zvbyd9XSB9KSk7XG4gICAgICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdpbnB1dCcpO1xuICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LmdldERPTU5vZGUoKSwge3RhcmdldDoge3ZhbHVlOiAnYmFyJ319KTtcbiAgICAgICAgZXhwZWN0KENoZWNrVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdiYXInKTtcbiAgICAgICAgZXhwZWN0KE90aGVyQ2hlY2tWYWxpZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGFsbG93IHRoZSB2YWxpZGF0aW9uIHRvIGJlIGNoYW5nZWQnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIHtpbnB1dHM6ICBbe25hbWU6ICdvbmUnLCB2YWxpZGF0aW9uczogJ0NoZWNrVmFsaWQnLCB2YWx1ZTogJ2Zvbyd9XSB9KSk7XG4gICAgICAgIGZvcm0uc2V0UHJvcHMoe2lucHV0czogW3tuYW1lOiAnb25lJywgdmFsaWRhdGlvbnM6ICdPdGhlckNoZWNrVmFsaWQnLCB2YWx1ZTogJ2Zvbyd9XSB9KTtcbiAgICAgICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ2lucHV0Jyk7XG4gICAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQuZ2V0RE9NTm9kZSgpLCB7dGFyZ2V0OiB7dmFsdWU6ICdiYXInfX0pO1xuICAgICAgICBleHBlY3QoT3RoZXJDaGVja1ZhbGlkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnYmFyJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBpbnZhbGlkYXRlIGEgZm9ybSBpZiBkeW5hbWljYWxseSBpbnNlcnRlZCBpbnB1dCBpcyBpbnZhbGlkJywgZnVuY3Rpb24oZG9uZSkge1xuICAgICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwge2lucHV0czogIFt7bmFtZTogJ29uZScsIHZhbGlkYXRpb25zOiAnaXNFbWFpbCcsIHZhbHVlOiAnZm9vQGJhci5jb20nfV0gfSkpO1xuICAgICAgICBleHBlY3QoaXNWYWxpZCkudG9FcXVhbCh0cnVlKTtcbiAgICAgICAgZm9ybS5zZXRQcm9wcyh7aW5wdXRzOiBbXG4gICAgICAgICAge25hbWU6ICdvbmUnLCB2YWxpZGF0aW9uczogJ2lzRW1haWwnLCB2YWx1ZTogJ2Zvb0BiYXIuY29tJ30sXG4gICAgICAgICAge25hbWU6ICd0d28nLCB2YWxpZGF0aW9uczogJ2lzRW1haWwnLCB2YWx1ZTogJ2Zvb0BiYXInfSxcbiAgICAgICAgXX0sIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBleHBlY3QoaXNWYWxpZCkudG9FcXVhbChmYWxzZSk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYSBmb3JtIHdoZW4gcmVtb3ZpbmcgYW4gaW52YWxpZCBpbnB1dCcsIGZ1bmN0aW9uKGRvbmUpIHtcbiAgICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIHtpbnB1dHM6ICBbXG4gICAgICAgICAge25hbWU6ICdvbmUnLCB2YWxpZGF0aW9uczogJ2lzRW1haWwnLCB2YWx1ZTogJ2Zvb0BiYXIuY29tJ30sXG4gICAgICAgICAge25hbWU6ICd0d28nLCB2YWxpZGF0aW9uczogJ2lzRW1haWwnLCB2YWx1ZTogJ2Zvb0BiYXInfSxcbiAgICAgICAgXSB9KSk7XG4gICAgICAgIGV4cGVjdChpc1ZhbGlkKS50b0VxdWFsKGZhbHNlKTtcbiAgICAgICAgZm9ybS5zZXRQcm9wcyh7aW5wdXRzOiBbe25hbWU6ICdvbmUnLCB2YWxpZGF0aW9uczogJ2lzRW1haWwnLCB2YWx1ZTogJ2Zvb0BiYXIuY29tJ31dfSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGV4cGVjdChpc1ZhbGlkKS50b0VxdWFsKHRydWUpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgncnVucyBtdWx0aXBsZSB2YWxpZGF0aW9ucycsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwge2lucHV0czogIFt7bmFtZTogJ29uZScsIHZhbGlkYXRpb25zOiAnQ2hlY2tWYWxpZCxPdGhlckNoZWNrVmFsaWQnLCB2YWx1ZTogJ2Zvbyd9XSB9KSk7XG4gICAgICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdpbnB1dCcpO1xuICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LmdldERPTU5vZGUoKSwge3RhcmdldDoge3ZhbHVlOiAnYmFyJ319KTtcbiAgICAgICAgZXhwZWN0KENoZWNrVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdiYXInKTtcbiAgICAgICAgZXhwZWN0KE90aGVyQ2hlY2tWYWxpZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2JhcicpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCB0cmlnZ2VyIG9uQ2hhbmdlIHdoZW4gZm9ybSBpcyBtb3VudGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGhhc0NoYW5nZWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnb25DaGFuZ2UnKTtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGhhc0NoYW5nZWQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkNoYW5nZTogdGhpcy5vbkNoYW5nZX0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKSk7XG4gICAgICBleHBlY3QoaGFzQ2hhbmdlZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdHJpZ2dlciBvbkNoYW5nZSB3aGVuIGZvcm0gZWxlbWVudCBpcyBjaGFuZ2VkJywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGhhc0NoYW5nZWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnb25DaGFuZ2UnKTtcbiAgICAgIHZhciBNeUlucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIk15SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2V9KVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGhhc0NoYW5nZWQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkNoYW5nZTogdGhpcy5vbkNoYW5nZX0sIFxuICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE15SW5wdXQsIHtuYW1lOiBcImZvb1wifSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKSk7XG4gICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpLCB7dGFyZ2V0OiB7dmFsdWU6ICdiYXInfX0pO1xuICAgICAgZXhwZWN0KGhhc0NoYW5nZWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdHJpZ2dlciBvbkNoYW5nZSB3aGVuIG5ldyBpbnB1dCBpcyBhZGRlZCB0byBmb3JtJywgZnVuY3Rpb24gKGRvbmUpIHtcbiAgICAgIHZhciBoYXNDaGFuZ2VkID0gamFzbWluZS5jcmVhdGVTcHkoJ29uQ2hhbmdlJyk7XG4gICAgICB2YXIgaW5wdXRzID0gW107XG4gICAgICB2YXIgZm9yY2VVcGRhdGUgPSBudWxsO1xuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgY2hhbmdlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMuY2hhbmdlVmFsdWV9KVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmb3JjZVVwZGF0ZSA9IHRoaXMuZm9yY2VVcGRhdGUuYmluZCh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBoYXNDaGFuZ2VkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiAoIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlfSwgXG4gICAgICAgICAgICAgIGlucHV0c1xuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkgXG4gICAgICApO1xuXG4gICAgICAvLyBXYWl0IGJlZm9yZSBhZGRpbmcgdGhlIGlucHV0XG4gICAgICBpbnB1dHMucHVzaChUZXN0SW5wdXQoe1xuICAgICAgICBuYW1lOiAndGVzdCdcbiAgICAgIH0pKTtcblxuICAgICAgZm9yY2VVcGRhdGUoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgIC8vIFdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcCwgYXMgdGhhdCBkb2VzIHRoZSBmb3JtXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGV4cGVjdChoYXNDaGFuZ2VkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgfSk7XG5cbiAgICB9KTtcblxuICB9KTtcblxuICBkZXNjcmliZSgnVXBkYXRlIGEgZm9ybScsIGZ1bmN0aW9uICgpIHtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgZWxlbWVudHMgdG8gY2hlY2sgaWYgdGhlIGZvcm0gaXMgZGlzYWJsZWQnLCBmdW5jdGlvbiAoZG9uZSkge1xuXG4gICAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHtkaXNhYmxlZDogdHJ1ZX07XG4gICAgICAgIH0sXG4gICAgICAgIGVuYWJsZUZvcm06IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSwgZGlzYWJsZWQ6IHRoaXMuc3RhdGUuZGlzYWJsZWR9LCBcbiAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wifSlcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpIFxuICAgICAgKTtcblxuICAgICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZENvbXBvbmVudFdpdGhUeXBlKGZvcm0sIFRlc3RJbnB1dCk7XG4gICAgICBleHBlY3QoaW5wdXQuaXNGb3JtRGlzYWJsZWQoKSkudG9CZSh0cnVlKTtcbiAgICAgIGZvcm0uZW5hYmxlRm9ybSgpO1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGV4cGVjdChpbnB1dC5pc0Zvcm1EaXNhYmxlZCgpKS50b0JlKGZhbHNlKTtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSwgMCk7XG5cbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYmUgcG9zc2libGUgdG8gcGFzcyBlcnJvciBzdGF0ZSBvZiBlbGVtZW50cyBieSBjaGFuZ2luZyBhbiBlcnJvcnMgYXR0cmlidXRlJywgZnVuY3Rpb24gKGRvbmUpIHtcblxuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKX0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yczoge1xuICAgICAgICAgICAgICBmb286ICdiYXInXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICAgICAgICBpZiAodmFsdWVzLmZvbykge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcnM6IHt9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcnM6IHtmb286ICdiYXInfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSwgdmFsaWRhdGlvbkVycm9yczogdGhpcy5zdGF0ZS52YWxpZGF0aW9uRXJyb3JzfSwgXG4gICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIn0pXG4gICAgICAgICAgICApKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKSBcbiAgICAgICk7XG5cbiAgICAgIC8vIFdhaXQgZm9yIHVwZGF0ZVxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRDb21wb25lbnRXaXRoVHlwZShmb3JtLCBUZXN0SW5wdXQpO1xuICAgICAgICBleHBlY3QoaW5wdXQuZ2V0RXJyb3JNZXNzYWdlKCkpLnRvQmUoJ2JhcicpO1xuICAgICAgICBpbnB1dC5zZXRWYWx1ZSgnZ290VmFsdWUnKTtcblxuICAgICAgICAvLyBXYWl0IGZvciB1cGRhdGVcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZXhwZWN0KGlucHV0LmdldEVycm9yTWVzc2FnZSgpKS50b0JlKG51bGwpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9LCAwKTtcblxuICAgIH0pO1xuXG5cbiAgICBpdCgnc2hvdWxkIHRyaWdnZXIgYW4gb25WYWxpZFN1Ym1pdCB3aGVuIHN1Ym1pdHRpbmcgYSB2YWxpZCBmb3JtJywgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgIHZhciBpc0NhbGxlZCA9IGZhbHNlO1xuICAgICAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICAgICAgb25WYWxpZFN1Ym1pdDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaXNDYWxsZWQgPSB0cnVlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gKCBcbiAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uVmFsaWRTdWJtaXQ6IHRoaXMub25WYWxpZFN1Ym1pdH0sIFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNFbWFpbFwiLCB2YWx1ZTogXCJmb29AYmFyLmNvbVwifSlcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBcbiAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKSBcbiAgICAgICAgKTtcblxuICAgICAgICB2YXIgVGVzdEZvcm0gPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkQ29tcG9uZW50V2l0aFR5cGUoZm9ybSwgVGVzdEZvcm0pO1xuICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KFRlc3RGb3JtLmdldERPTU5vZGUoKSk7ICBcbiAgICAgICAgZXhwZWN0KGlzQ2FsbGVkKS50b0JlKHRydWUpO1xuXG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRyaWdnZXIgYW4gb25JbnZhbGlkU3VibWl0IHdoZW4gc3VibWl0dGluZyBhbiBpbnZhbGlkIGZvcm0nLCBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgdmFyIGlzQ2FsbGVkID0gZmFsc2U7XG4gICAgICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCl9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgICBvbkludmFsaWRTdWJtaXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlzQ2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICggXG4gICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkludmFsaWRTdWJtaXQ6IHRoaXMub25JbnZhbGlkU3VibWl0fSwgXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc0VtYWlsXCIsIHZhbHVlOiBcImZvb0BiYXJcIn0pXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggXG4gICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkgXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIFRlc3RGb3JtID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZENvbXBvbmVudFdpdGhUeXBlKGZvcm0sIFRlc3RGb3JtKTtcbiAgICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChUZXN0Rm9ybS5nZXRET01Ob2RlKCkpOyAgXG4gICAgICAgIGV4cGVjdChpc0NhbGxlZCkudG9CZSh0cnVlKTtcblxuICAgIH0pO1xuXG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwidmFsdWUgPT09IGZhbHNlXCIsIGZ1bmN0aW9uKCkge1xuICAgIHZhciBvblN1Ym1pdDtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgY2hhbmdlVmFsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGUudGFyZ2V0W3RoaXMucHJvcHMudHlwZSA9PT0gXCJjaGVja2JveFwiID8gXCJjaGVja2VkXCIgOiBcInZhbHVlXCJdKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dHlwZTogIHRoaXMucHJvcHMudHlwZSwgdmFsdWU6ICB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiAgdGhpcy5jaGFuZ2VWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblN1Ym1pdDogIGZ1bmN0aW9uKGFyZzEpIHsgb25TdWJtaXQoYXJnMSk7IH19LCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6ICB0aGlzLnByb3BzLnZhbHVlLCB0eXBlOiBcImNoZWNrYm94XCJ9KSwgXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHt0eXBlOiBcInN1Ym1pdFwifSwgXCJTYXZlXCIpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHtcbiAgICAgIG9uU3VibWl0ID0gamFzbWluZS5jcmVhdGVTcHkoXCJvblN1Ym1pdFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNhbGwgb25TdWJtaXQgY29ycmVjdGx5XCIsIGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIHt2YWx1ZTogIGZhbHNlIH0pKTtcbiAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgICAgZXhwZWN0KG9uU3VibWl0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7Zm9vOiBmYWxzZX0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWxsb3cgZHluYW1pYyBjaGFuZ2VzIHRvIGZhbHNlXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIHt2YWx1ZTogIHRydWUgfSkpO1xuICAgICAgZm9ybS5zZXRQcm9wcyh7dmFsdWU6IGZhbHNlfSk7XG4gICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICAgIGV4cGVjdChvblN1Ym1pdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoe2ZvbzogZmFsc2V9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjR1ZqY3k5R2IzSnRjM2t0YzNCbFl5NXFjeUlzSW5OdmRYSmpaWE1pT2xzaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y0dWamN5OUdiM0p0YzNrdGMzQmxZeTVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeEpRVUZKTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXpzN1FVRkZla01zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4WlFVRlpPenRCUVVVdlFpeEZRVUZGTEZGQlFWRXNRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeFpRVUZaT3p0SlFVVjRReXhGUVVGRkxFTkJRVU1zZDBOQlFYZERMRVZCUVVVc1dVRkJXVHROUVVOMlJDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFbEJRV1VzUTBGQlFTeERRVUZETEVOQlFVTTdUVUZEZEVVc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEZUVRc1MwRkJTeXhEUVVGRExFTkJRVU03TzBsQlJVZ3NSVUZCUlN4RFFVRkRMRzFEUVVGdFF5eEZRVUZGTEZsQlFWazdUVUZEYkVRc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRaXhGUVVGRkxHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1UwRkJRU3hGUVVGVExFTkJRVU1zUzBGQlRTeERRVUZqTEVOQlFVRXNRMEZCUXl4RFFVRkRPMDFCUTNSR0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNwRUxFdEJRVXNzUTBGQlF5eERRVUZET3p0SlFVVklMRVZCUVVVc1EwRkJReXd3UTBGQk1FTXNSVUZCUlN4VlFVRlZMRWxCUVVrc1JVRkJSVHROUVVNM1JDeEpRVUZKTEN0Q1FVRXJRaXg1UWtGQlFUdFJRVU5xUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzFGQlEzUkNMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFZRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1UwRkRia003VVVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0VlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMU5CUTNCRk8wRkJRMVFzVDBGQlR5eERRVUZETEVOQlFVTTdPMDFCUlVnc1NVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETzAxQlEycENMRWxCUVVrc09FSkJRVGhDTEhkQ1FVRkJPMUZCUTJoRExGRkJRVkVzUlVGQlJTeFZRVUZWTEZOQlFWTXNSVUZCUlR0VlFVTTNRaXhMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETzFOQlEyNUNPMUZCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VlVGRGJFSTdXVUZEUlN4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlJ5eERRVUZCTEVWQlFVRTdZMEZEZEVNc2IwSkJRVUVzU1VGQlJ5eEZRVUZCTEVsQlFVTXNSVUZCUVN4TlFVRlRMRU5CUVVFc1JVRkJRVHRqUVVOYUxFTkJRVU1zU1VGQlNTeEZRVUZCTEVOQlFVVTdZMEZEVUN4RFFVRkRMRk5CUVZNc1JVRkJRU3hEUVVGRk8yTkJRMklzYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eE5RVUZCTEVWQlFVMHNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hEUVVGRExFMUJRVThzUTBGQlFTeERRVUZITEVOQlFVRTdXVUZETjBJc1EwRkJRVHRaUVVOa08xTkJRMGc3UVVGRFZDeFBRVUZQTEVOQlFVTXNRMEZCUXpzN1RVRkZTQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRWxCUVVVc1EwRkJRU3hEUVVGRExFTkJRVU03VFVGRGNrUXNWVUZCVlN4RFFVRkRMRmxCUVZrN1VVRkRja0lzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETjBNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzSkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8wOUJRMUlzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTmlMRXRCUVVzc1EwRkJReXhEUVVGRE96dEJRVVZRTEVsQlFVa3NSVUZCUlN4RFFVRkRMR2xFUVVGcFJDeEZRVUZGTEZWQlFWVXNTVUZCU1N4RlFVRkZPenROUVVWd1JTeEpRVUZKTEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1RVRkRhRUlzU1VGQlNTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRPMDFCUTNaQ0xFbEJRVWtzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXp0TlFVTnFRaXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHRSUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM1JDTEUxQlFVMHNSVUZCUlN4WlFVRlpPMVZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNTMEZCU1N4RlFVRkJMRWxCUVVVc1EwRkJRVHRUUVVOa08wOUJRMFlzUTBGQlF5eERRVUZETzAxQlEwZ3NTVUZCU1N3NFFrRkJPRUlzZDBKQlFVRTdVVUZEYUVNc2EwSkJRV3RDTEVWQlFVVXNXVUZCV1R0VlFVTTVRaXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRE0wTTdVVUZEUkN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hUUVVGVExFVkJRVVU3VlVGRE4wSXNTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJRenRUUVVOdVFqdFJRVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMVZCUTJ4Q08xbEJRMFVzYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVlN4RFFVRkJMRVZCUVVFN1kwRkRia01zVFVGQlR6dFpRVU5KTEVOQlFVRXNSVUZCUlR0VFFVTnVRanRQUVVOR0xFTkJRVU1zUTBGQlF6dE5RVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdVVUZEY2tNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVsQlFVVXNRMEZCUVR0QlFVTnVRaXhQUVVGUExFTkJRVU03UVVGRFVqczdRVUZGUVN4TlFVRk5MRlZCUVZVc1EwRkJReXhaUVVGWk96dFJRVVZ5UWl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF6dFZRVU53UWl4SlFVRkpMRVZCUVVVc1RVRkJUVHRCUVVOMFFpeFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWYUxGRkJRVkVzVjBGQlZ5eERRVUZETEZsQlFWazdRVUZEYUVNN08xVkJSVlVzVlVGQlZTeERRVUZETEZsQlFWazdXVUZEY2tJc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRE4wTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTnFReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEJRVU51UWl4WFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJXaENMRk5CUVZNc1EwRkJReXhEUVVGRE96dEJRVVZZTEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenM3UVVGRllpeExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZVQ3hKUVVGSkxFVkJRVVVzUTBGQlF5eG5SVUZCWjBVc1JVRkJSU3hWUVVGVkxFbEJRVWtzUlVGQlJUczdUVUZGYmtZc1NVRkJTU3hOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETzAxQlEyaENMRWxCUVVrc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dE5RVU4yUWl4SlFVRkpMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU03VFVGRGFrSXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdVVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVTjBRaXhYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdWVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xTkJRMjVETzFGQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1ZVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJReXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlpMRU5CUVVVc1EwRkJRVHRUUVVOd1JUdFBRVU5HTEVOQlFVTXNRMEZCUXp0TlFVTklMRWxCUVVrc09FSkJRVGhDTEhkQ1FVRkJPMUZCUTJoRExHdENRVUZyUWl4RlFVRkZMRmxCUVZrN1ZVRkRPVUlzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlF6TkRPMUZCUTBRc1VVRkJVU3hGUVVGRkxGVkJRVlVzVTBGQlV5eEZRVUZGTzFWQlF6ZENMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU03VTBGRGJrSTdVVUZEUkN4TlFVRk5MRVZCUVVVc1dVRkJXVHRWUVVOc1FqdFpRVU5GTEc5Q1FVRkRMRmRCUVZjc1JVRkJRU3hEUVVGQkxFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZVc1EwRkJRU3hGUVVGQk8yTkJRMjVETEUxQlFVODdXVUZEU1N4RFFVRkJMRVZCUVVVN1UwRkRia0k3VDBGRFJpeERRVUZETEVOQlFVTTdUVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMUZCUTNKRExHOUNRVUZETEZGQlFWRXNSVUZCUVN4SlFVRkZMRU5CUVVFN1FVRkRia0lzVDBGQlR5eERRVUZETzBGQlExSTdPMEZCUlVFc1RVRkJUU3hWUVVGVkxFTkJRVU1zV1VGQldUczdVVUZGY2tJc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTTdWVUZEY0VJc1NVRkJTU3hGUVVGRkxFMUJRVTA3UVVGRGRFSXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenM3UVVGRldpeFJRVUZSTEZkQlFWY3NRMEZCUXl4WlFVRlpPMEZCUTJoRE96dFZRVVZWTEZWQlFWVXNRMEZCUXl4WlFVRlpPMWxCUTNKQ0xGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6bEhMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRemRETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUXk5Q0xFbEJRVWtzUlVGQlJTeERRVUZETzBGQlEyNUNMRmRCUVZjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6czdRVUZGYUVJc1UwRkJVeXhEUVVGRExFTkJRVU03TzBGQlJWZ3NUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE96dEJRVVZpTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWUUxFbEJRVWtzUlVGQlJTeERRVUZETEcxRlFVRnRSU3hGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGT3p0TlFVVjBSaXhKUVVGSkxGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdUVUZEZGtJc1NVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETzAxQlEycENMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMUZCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRkRUlzVjBGQlZ5eEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMVZCUXpWQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFRRVU51UXp0UlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xVkJRMnhDTEU5QlFVOHNiMEpCUVVFc1QwRkJUU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVU1zUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1YwRkJXU3hEUVVGRkxFTkJRVUU3VTBGRGNFVTdRVUZEVkN4UFFVRlBMRU5CUVVNc1EwRkJRenM3VFVGRlNDeEpRVUZKTEV0QlFVc3NRMEZCUXp0TlFVTldMRWxCUVVrc09FSkJRVGhDTEhkQ1FVRkJPMUZCUTJoRExHdENRVUZyUWl4RlFVRkZMRmxCUVZrN1ZVRkRPVUlzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlF6TkRPMUZCUTBRc1VVRkJVU3hGUVVGRkxGVkJRVlVzVTBGQlV5eEZRVUZGTzFWQlF6ZENMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU03VTBGRGJrSTdVVUZEUkN4TlFVRk5MRVZCUVVVc1dVRkJXVHRCUVVNMVFpeFZRVUZWTEV0QlFVc3NSMEZCUnl4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRTFCUVVFc1JVRkJUU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVVVzUTBGQlFTeERRVUZITEVOQlFVRXNRMEZCUXpzN1ZVRkZOMFE3V1VGRFJTeHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlZMRU5CUVVFc1JVRkJRVHRqUVVOdVF5eExRVUZOTzFsQlEwc3NRMEZCUVN4RlFVRkZPMU5CUTI1Q08wOUJRMFlzUTBGQlF5eERRVUZETzBGQlExUXNUVUZCVFN4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhMUVVGTExFTkJRVVVzUTBGQlFTeERRVUZETEVOQlFVTTdRVUZEZGtVN08wMUJSVTBzVlVGQlZTeERRVUZETEZsQlFWazdRVUZETjBJc1VVRkJVU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJYUkRMRkZCUVZFc1YwRkJWeXhEUVVGRExGbEJRVms3TzFWQlJYUkNMRlZCUVZVc1EwRkJReXhaUVVGWk8xbEJRM0pDTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUXpkRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlF5OUNMRWxCUVVrc1JVRkJSU3hEUVVGRE8wRkJRMjVDTEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenM3UVVGRmFFSXNVMEZCVXl4RFFVRkRMRU5CUVVNN08wRkJSVmdzVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPenRCUVVWaUxFdEJRVXNzUTBGQlF5eERRVUZET3p0SlFVVklMRkZCUVZFc1EwRkJReXhoUVVGaExFVkJRVVVzVjBGQlZ6dE5RVU5xUXl4SlFVRkpMRlZCUVZVc1JVRkJSU3hSUVVGUkxFVkJRVVVzWlVGQlpTeERRVUZETzBGQlEyaEVMRTFCUVUwc1NVRkJTU3hQUVVGUExFTkJRVU03TzAxQlJWb3NTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdVVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVTjBRaXhYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdWVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xTkJRMjVETzFGQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1ZVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGQkxFTkJRVVVzUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVVVzUTBGQlFTeERRVUZITEVOQlFVRTdVMEZEZWtVN1FVRkRWQ3hQUVVGUExFTkJRVU1zUTBGQlF6czdUVUZGU0N4SlFVRkpMRGhDUVVFNFFpeDNRa0ZCUVR0UlFVTm9ReXhsUVVGbExFVkJRVVVzVjBGQlZ6dFZRVU14UWl4UFFVRlBPMWxCUTB3c1RVRkJUU3hGUVVGRkxFVkJRVVU3VjBGRFdDeERRVUZETzFOQlEwZzdVVUZEUkN4TlFVRk5MRVZCUVVVc1dVRkJXVHRWUVVOc1FpeEpRVUZKTEZkQlFWY3NSMEZCUnl4RlFVRkZMRU5CUVVNN1ZVRkRja0lzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03VlVGREwwSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRGNFTXNTVUZCU1N4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzUkNMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zYjBKQlFVTXNVMEZCVXl4RlFVRkJMR2RDUVVGQkxFZEJRVUVzUTBGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJRU3hIUVVGQkxFVkJRVWNzUTBGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVVc1EwRkJRU3hEUVVGQkxFTkJRVWNzUTBGQlFTeERRVUZETEVOQlFVTTdWMEZEYWtVN1ZVRkRSQ3hKUVVGSkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdWVUZEYWtJc1QwRkJUeXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVR0WlFVTnFRaXhSUVVGQkxFVkJRVkVzU1VGQlN5eERRVUZETEZOQlFWTXNTVUZCU1N4RlFVRkZMRVZCUVVVc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUVN4RFFVRkZPMWxCUTJ4RUxFOUJRVUVzUlVGQlR5eExRVUZOTEVOQlFVTXNWMEZCVnl4RlFVRkZMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZCTEVOQlFVVTdXVUZET1VNc1UwRkJRU3hGUVVGVExFZEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVVVzUTBGQlJTeERRVUZCTEVWQlFVRTdXVUZEYUVRc1EwRkJReXhaUVVGaE8xVkJRMGdzUTBGQlFTeERRVUZETzFOQlEyaENPMEZCUTFRc1QwRkJUeXhEUVVGRExFTkJRVU03TzAxQlJVZ3NWVUZCVlN4RFFVRkRMRmRCUVZjN1VVRkRjRUlzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTm1MRlZCUVZVc1IwRkJSeXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpkRExFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhaUVVGWkxFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEYmtRc1pVRkJaU3hIUVVGSExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRiRVFzVFVGQlRTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExHbENRVUZwUWl4RlFVRkZMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRemRFTEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlEycEVMRTlCUVU4c1EwRkJReXhEUVVGRE96dE5RVVZJTEVWQlFVVXNRMEZCUXl4dFEwRkJiVU1zUlVGQlJTeFhRVUZYTzFGQlEycEVMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXh2UWtGQlF5eFJRVUZSTEVWQlFVRXNRMEZCUVN4RFFVRkRMRTFCUVVFc1JVRkJUU3hEUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1YwRkJWeXhGUVVGRkxGbEJRVmtzUlVGQlJTeExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRVZCUVVjc1EwRkJSU3hEUVVGQkxFTkJRVU1zUTBGQlF6dFJRVU42U0N4SlFVRkpMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zSzBKQlFTdENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzSkZMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVFVXNUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJReTlETEUxQlFVMHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenRCUVVOMlJDeFBRVUZQTEVOQlFVTXNRMEZCUXpzN1RVRkZTQ3hGUVVGRkxFTkJRVU1zTWtOQlFUSkRMRVZCUVVVc1YwRkJWenRSUVVONlJDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFTkJRVUVzUTBGQlF5eE5RVUZCTEVWQlFVMHNRMEZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEZkQlFWY3NSVUZCUlN4WlFVRlpMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEZRVUZITEVOQlFVVXNRMEZCUVN4RFFVRkRMRU5CUVVNN1VVRkRla2dzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4WFFVRlhMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzaEdMRWxCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY2tVc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40UlN4TlFVRk5MRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRE5VUXNUMEZCVHl4RFFVRkRMRU5CUVVNN08wMUJSVWdzUlVGQlJTeERRVUZETEcxRlFVRnRSU3hGUVVGRkxGTkJRVk1zU1VGQlNTeEZRVUZGTzFGQlEzSkdMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXh2UWtGQlF5eFJRVUZSTEVWQlFVRXNRMEZCUVN4RFFVRkRMRTFCUVVFc1JVRkJUU3hEUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1YwRkJWeXhGUVVGRkxGTkJRVk1zUlVGQlJTeExRVUZMTEVWQlFVVXNZVUZCWVN4RFFVRkRMRVZCUVVjc1EwRkJSU3hEUVVGQkxFTkJRVU1zUTBGQlF6dFJRVU01U0N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpsQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVN1ZVRkRja0lzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRmRCUVZjc1JVRkJSU3hUUVVGVExFVkJRVVVzUzBGQlN5eEZRVUZGTEdGQlFXRXNRMEZCUXp0VlFVTXpSQ3hEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNWMEZCVnl4RlFVRkZMRk5CUVZNc1JVRkJSU3hMUVVGTExFVkJRVVVzVTBGQlV5eERRVUZETzFOQlEzaEVMRU5CUVVNc1JVRkJSU3hYUVVGWE8xVkJRMklzVlVGQlZTeERRVUZETEZkQlFWYzdXVUZEY0VJc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVNdlFpeEpRVUZKTEVWQlFVVXNRMEZCUXp0WFFVTlNMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRFVDeERRVUZETEVOQlFVTTdRVUZEV0N4UFFVRlBMRU5CUVVNc1EwRkJRenM3VFVGRlNDeEZRVUZGTEVOQlFVTXNkVVJCUVhWRUxFVkJRVVVzVTBGQlV5eEpRVUZKTEVWQlFVVTdVVUZEZWtVc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExHOUNRVUZETEZGQlFWRXNSVUZCUVN4RFFVRkJMRU5CUVVNc1RVRkJRU3hGUVVGTkxFTkJRVVVzUTBGQlF6dFZRVU42UkN4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVVzVjBGQlZ5eEZRVUZGTEZOQlFWTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1lVRkJZU3hEUVVGRE8xVkJRek5FTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hYUVVGWExFVkJRVVVzVTBGQlV5eEZRVUZGTEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNN1ZVRkRkRVFzUTBGQlFTeERRVUZITEVOQlFVRXNRMEZCUXl4RFFVRkRPMUZCUTFJc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNdlFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRmRCUVZjc1JVRkJSU3hUUVVGVExFVkJRVVVzUzBGQlN5eEZRVUZGTEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWE8xVkJRMmhITEZWQlFWVXNRMEZCUXl4WFFVRlhPMWxCUTNCQ0xFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRE9VSXNTVUZCU1N4RlFVRkZMRU5CUVVNN1YwRkRVaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFOQlExQXNRMEZCUXl4RFFVRkRPMEZCUTFnc1QwRkJUeXhEUVVGRExFTkJRVU03TzAxQlJVZ3NSVUZCUlN4RFFVRkRMREpDUVVFeVFpeEZRVUZGTEZkQlFWYzdVVUZEZWtNc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExHOUNRVUZETEZGQlFWRXNSVUZCUVN4RFFVRkJMRU5CUVVNc1RVRkJRU3hGUVVGTkxFTkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hYUVVGWExFVkJRVVVzTkVKQlFUUkNMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEZRVUZITEVOQlFVVXNRMEZCUVN4RFFVRkRMRU5CUVVNN1VVRkRla2tzU1VGQlNTeExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOeVJTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoRkxFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdUMEZEY2tRc1EwRkJReXhEUVVGRE8wRkJRMVFzUzBGQlN5eERRVUZETEVOQlFVTTdPMGxCUlVnc1JVRkJSU3hEUVVGRExHdEVRVUZyUkN4RlFVRkZMRmxCUVZrN1RVRkRha1VzU1VGQlNTeFZRVUZWTEVkQlFVY3NUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dE5RVU12UXl4SlFVRkpMRGhDUVVFNFFpeDNRa0ZCUVR0UlFVTm9ReXhSUVVGUkxFVkJRVVVzV1VGQldUdFZRVU53UWl4VlFVRlZMRVZCUVVVc1EwRkJRenRUUVVOa08xRkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdWVUZEYkVJc1QwRkJUeXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZWTEVOQlFXTXNRMEZCUVN4RFFVRkRPMU5CUXpkRU8wOUJRMFlzUTBGQlF5eERRVUZETzAxQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRzlDUVVGRExGRkJRVkVzUlVGQlFTeEpRVUZGTEVOQlFVRXNRMEZCUXl4RFFVRkRPMDFCUTNKRUxFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNRMEZCUXp0QlFVTm9SQ3hMUVVGTExFTkJRVU1zUTBGQlF6czdTVUZGU0N4RlFVRkZMRU5CUVVNc2MwUkJRWE5FTEVWQlFVVXNXVUZCV1R0TlFVTnlSU3hKUVVGSkxGVkJRVlVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wMUJReTlETEVsQlFVa3NOa0pCUVRaQ0xIVkNRVUZCTzFGQlF5OUNMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZEZEVJc1VVRkJVU3hGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFWQlEzcENMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRUUVVOdVF6dFJRVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMVZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVXl4RFFVRkZMRU5CUVVFN1UwRkRha1U3VDBGRFJpeERRVUZETEVOQlFVTTdUVUZEU0N4SlFVRkpMRGhDUVVFNFFpeDNRa0ZCUVR0UlFVTm9ReXhSUVVGUkxFVkJRVVVzV1VGQldUdFZRVU53UWl4VlFVRlZMRVZCUVVVc1EwRkJRenRUUVVOa08xRkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdWVUZEYkVJN1dVRkRSU3h2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZWTEVOQlFVRXNSVUZCUVR0alFVTndReXh2UWtGQlF5eFBRVUZQTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlJTeERRVUZCTzFsQlExUXNRMEZCUVR0WlFVTmtPMU5CUTBnN1QwRkRSaXhEUVVGRExFTkJRVU03VFVGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFbEJRVVVzUTBGQlFTeERRVUZETEVOQlFVTTdUVUZEY2tRc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VFVGRE9VY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1FVRkROVU1zUzBGQlN5eERRVUZETEVOQlFVTTdPMGxCUlVnc1JVRkJSU3hEUVVGRExIbEVRVUY1UkN4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRk8wMUJRelZGTEVsQlFVa3NWVUZCVlN4SFFVRkhMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdUVUZETDBNc1NVRkJTU3hOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETzAxQlEyaENMRWxCUVVrc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dE5RVU4yUWl4SlFVRkpMQ3RDUVVFclFpeDVRa0ZCUVR0UlFVTnFReXhOUVVGTkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTNSQ0xGZEJRVmNzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlR0VlFVTTFRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VTBGRGJrTTdVVUZEUkN4TlFVRk5MRVZCUVVVc1dVRkJXVHRWUVVOc1FpeFBRVUZQTEc5Q1FVRkJMRTlCUVUwc1JVRkJRU3hEUVVGQkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRExFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVVXNTVUZCU1N4RFFVRkRMRmRCUVZrc1EwRkJSU3hEUVVGQk8xTkJRM0JGTzA5QlEwWXNRMEZCUXl4RFFVRkRPMDFCUTBnc1NVRkJTU3c0UWtGQk9FSXNkMEpCUVVFN1VVRkRhRU1zYTBKQlFXdENMRVZCUVVVc1dVRkJXVHRWUVVNNVFpeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVMEZETTBNN1VVRkRSQ3hSUVVGUkxFVkJRVVVzV1VGQldUdFZRVU53UWl4VlFVRlZMRVZCUVVVc1EwRkJRenRUUVVOa08xRkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdWVUZEYkVJN1dVRkRSU3h2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZWTEVOQlFVRXNSVUZCUVR0alFVTnVReXhOUVVGUE8xbEJRMGtzUTBGQlFTeEZRVUZGTzFOQlEyNUNPMDlCUTBZc1EwRkJReXhEUVVGRE8wMUJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdFJRVU55UXl4dlFrRkJReXhSUVVGUkxFVkJRVUVzU1VGQlJTeERRVUZCTzBGQlEyNUNMRTlCUVU4c1EwRkJRenRCUVVOU096dE5RVVZOTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRE8xRkJRM0JDTEVsQlFVa3NSVUZCUlN4TlFVRk5PMEZCUTNCQ0xFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdPMEZCUlZZc1RVRkJUU3hYUVVGWExFTkJRVU1zV1VGQldUdEJRVU01UWpzN1VVRkZVU3hWUVVGVkxFTkJRVU1zV1VGQldUdFZRVU55UWl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenRWUVVOMFF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0QlFVTnFRaXhUUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdPMEZCUldRc1QwRkJUeXhEUVVGRExFTkJRVU03TzBGQlJWUXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wRkJSVkFzUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlV3c1JVRkJSU3hSUVVGUkxFTkJRVU1zWlVGQlpTeEZRVUZGTEZsQlFWazdPMEZCUlhoRExFbEJRVWtzUlVGQlJTeERRVUZETEhkRVFVRjNSQ3hGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGT3p0TlFVVXpSU3hKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHRSUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM1JDTEUxQlFVMHNSVUZCUlN4WlFVRlpPMVZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkhMRU5CUVVVc1EwRkJRVHRUUVVONFF6dFBRVU5HTEVOQlFVTXNRMEZCUXp0TlFVTklMRWxCUVVrc09FSkJRVGhDTEhkQ1FVRkJPMUZCUTJoRExHVkJRV1VzUlVGQlJTeFpRVUZaTzFWQlF6TkNMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVMEZEZWtJN1VVRkRSQ3hWUVVGVkxFVkJRVVVzV1VGQldUdFZRVU4wUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8xbEJRMW9zVVVGQlVTeEZRVUZGTEV0QlFVczdWMEZEYUVJc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0VlFVTnNRanRaUVVORkxHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVlN4RFFVRkJMRVZCUVVFN1kwRkRia1VzYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eExRVUZMTEVOQlFVVXNRMEZCUVR0WlFVTllMRU5CUVVFc1JVRkJSVHRUUVVOdVFqdFBRVU5HTEVOQlFVTXNRMEZCUXp0TlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1VVRkRja01zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRWxCUVVVc1EwRkJRVHRCUVVOdVFpeFBRVUZQTEVOQlFVTTdPMDFCUlVZc1NVRkJTU3hMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETERaQ1FVRTJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0TlFVTnlSU3hOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzAxQlF6RkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dE5RVU5zUWl4VlFVRlZMRU5CUVVNc1dVRkJXVHRSUVVOeVFpeE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUXpORExFbEJRVWtzUlVGQlJTeERRVUZETzBGQlEyWXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE96dEJRVVZhTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWUUxFbEJRVWtzUlVGQlJTeERRVUZETEc5R1FVRnZSaXhGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGT3p0TlFVVjJSeXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHRSUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM1JDTEUxQlFVMHNSVUZCUlN4WlFVRlpPMVZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkhMRU5CUVVVc1EwRkJRU3hEUVVGRE8xTkJRM3BETzA5QlEwWXNRMEZCUXl4RFFVRkRPMDFCUTBnc1NVRkJTU3c0UWtGQk9FSXNkMEpCUVVFN1VVRkRhRU1zWlVGQlpTeEZRVUZGTEZsQlFWazdWVUZETTBJc1QwRkJUenRaUVVOTUxHZENRVUZuUWl4RlFVRkZPMk5CUTJoQ0xFZEJRVWNzUlVGQlJTeExRVUZMTzJGQlExZzdWMEZEUml4RFFVRkRPMU5CUTBnN1VVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeE5RVUZOTEVWQlFVVTdWVUZETVVJc1NVRkJTU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eEZRVUZGTzFsQlEyUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenRqUVVOYUxHZENRVUZuUWl4RlFVRkZMRVZCUVVVN1lVRkRja0lzUTBGQlF5eERRVUZETzFkQlEwb3NUVUZCVFR0WlFVTk1MRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03WTBGRFdpeG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeExRVUZMTEVOQlFVTTdZVUZETDBJc1EwRkJReXhEUVVGRE8xZEJRMG83VTBGRFJqdFJRVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMVZCUTJ4Q08xbEJRMFVzYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkRMRU5CUVVNc1owSkJRVUVzUlVGQlowSXNRMEZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHZENRVUZyUWl4RFFVRkJMRVZCUVVFN1kwRkRia1lzYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eExRVUZMTEVOQlFVVXNRMEZCUVR0WlFVTllMRU5CUVVFc1JVRkJSVHRUUVVOdVFqdFBRVU5HTEVOQlFVTXNRMEZCUXp0TlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1VVRkRja01zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRWxCUVVVc1EwRkJRVHRCUVVOdVFpeFBRVUZQTEVOQlFVTTdRVUZEVWpzN1RVRkZUU3hWUVVGVkxFTkJRVU1zV1VGQldUdFJRVU55UWl4SlFVRkpMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zTmtKQlFUWkNMRU5CUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzSkZMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGNFUXNVVUZCVVN4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlEyNURPenRSUVVWUkxGVkJRVlVzUTBGQlF5eFpRVUZaTzFWQlEzSkNMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VlVGRE0wTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1UwRkRVaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyUXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE96dEJRVVZhTEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTFBN08wRkJSVUVzU1VGQlNTeEZRVUZGTEVOQlFVTXNPRVJCUVRoRUxFVkJRVVVzV1VGQldUczdVVUZGTTBVc1NVRkJTU3hSUVVGUkxFZEJRVWNzUzBGQlN5eERRVUZETzFGQlEzSkNMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMVZCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1ZVRkRkRUlzVFVGQlRTeEZRVUZGTEZsQlFWazdXVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVY3NRMEZCUlN4RFFVRkJMRU5CUVVNN1YwRkRla003VTBGRFJpeERRVUZETEVOQlFVTTdVVUZEU0N4SlFVRkpMRGhDUVVFNFFpeDNRa0ZCUVR0VlFVTm9ReXhoUVVGaExFVkJRVVVzV1VGQldUdFpRVU42UWl4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRE8xZEJRMnBDTzFWQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1dVRkRiRUk3WTBGRFJTeHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExHRkJRVUVzUlVGQllTeERRVUZGTEVsQlFVa3NRMEZCUXl4aFFVRmxMRU5CUVVFc1JVRkJRVHRuUWtGRE9VTXNiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhYUVVGQkxFVkJRVmNzUTBGQlF5eFRRVUZCTEVWQlFWTXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhoUVVGaExFTkJRVVVzUTBGQlFUdGpRVU55UkN4RFFVRkJMRVZCUVVVN1YwRkRia0k3VTBGRFJpeERRVUZETEVOQlFVTTdVVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMVZCUTNKRExHOUNRVUZETEZGQlFWRXNSVUZCUVN4SlFVRkZMRU5CUVVFN1FVRkRja0lzVTBGQlV5eERRVUZET3p0UlFVVkdMRWxCUVVrc1VVRkJVU3hIUVVGSExGTkJRVk1zUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdVVUZEZGtVc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRGVrUXNVVUZCVVN4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPenRCUVVWd1F5eExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZVQ3hKUVVGSkxFVkJRVVVzUTBGQlF5eHRSVUZCYlVVc1JVRkJSU3haUVVGWk96dFJRVVZvUml4SlFVRkpMRkZCUVZFc1IwRkJSeXhMUVVGTExFTkJRVU03VVVGRGNrSXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdWVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0VlFVTjBRaXhOUVVGTkxFVkJRVVVzV1VGQldUdFpRVU5zUWl4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJ5eERRVUZGTEVOQlFVRXNRMEZCUXp0WFFVTjZRenRUUVVOR0xFTkJRVU1zUTBGQlF6dFJRVU5JTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFWQlEyaERMR1ZCUVdVc1JVRkJSU3haUVVGWk8xbEJRek5DTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNN1YwRkRha0k3VlVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0WlFVTnNRanRqUVVORkxHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1pVRkJRU3hGUVVGbExFTkJRVVVzU1VGQlNTeERRVUZETEdWQlFXbENMRU5CUVVFc1JVRkJRVHRuUWtGRGJFUXNiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhYUVVGQkxFVkJRVmNzUTBGQlF5eFRRVUZCTEVWQlFWTXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhUUVVGVExFTkJRVVVzUTBGQlFUdGpRVU5xUkN4RFFVRkJMRVZCUVVVN1YwRkRia0k3VTBGRFJpeERRVUZETEVOQlFVTTdVVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMVZCUTNKRExHOUNRVUZETEZGQlFWRXNSVUZCUVN4SlFVRkZMRU5CUVVFN1FVRkRja0lzVTBGQlV5eERRVUZET3p0UlFVVkdMRWxCUVVrc1VVRkJVU3hIUVVGSExGTkJRVk1zUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdVVUZEZGtVc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRGVrUXNVVUZCVVN4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPenRCUVVWd1F5eExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZVQ3hIUVVGSExFTkJRVU1zUTBGQlF6czdSVUZGU0N4UlFVRlJMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVXNWMEZCVnp0SlFVTnlReXhKUVVGSkxGRkJRVkVzUTBGQlF6dEpRVU5pTEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzAxQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdUVUZEZEVJc1pVRkJaU3hGUVVGRkxGZEJRVmM3VVVGRE1VSXNUMEZCVHp0VlFVTk1MRWxCUVVrc1JVRkJSU3hOUVVGTk8xTkJRMklzUTBGQlF6dFBRVU5JTzAxQlEwUXNWMEZCVnl4RlFVRkZMRmRCUVZjN1VVRkRkRUlzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4TFFVRkxMRlZCUVZVc1IwRkJSeXhUUVVGVExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0UFFVTXZSVHROUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkJMRU5CUVVVc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJRU3hEUVVGRkxFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRkxFTkJRVVVzUTBGQlFUdFBRVU5xUnp0QlFVTlFMRXRCUVVzc1EwRkJReXhEUVVGRE96dEpRVVZJTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzAxQlEyaERMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTzFWQlEwVXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFTkJRVUVzUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4RFFVRkRMRk5CUVZNc1NVRkJTU3hGUVVGRkxFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJSeXhEUVVGQkxFVkJRVUU3V1VGRE0wUXNiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhGUVVGQkxFTkJRVVVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVFc1EwRkJSeXhEUVVGQkxFVkJRVUU3V1VGRGJrVXNiMEpCUVVFc1VVRkJUeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4UlFVRlRMRU5CUVVFc1JVRkJRU3hOUVVGaExFTkJRVUU3VlVGRGRrSXNRMEZCUVR0VlFVTmtPMDlCUTBnN1FVRkRVQ3hMUVVGTExFTkJRVU1zUTBGQlF6czdTVUZGU0N4VlFVRlZMRU5CUVVNc1YwRkJWenROUVVOd1FpeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dEJRVU12UXl4TFFVRkxMRU5CUVVNc1EwRkJRenM3U1VGRlNDeEZRVUZGTEVOQlFVTXNaME5CUVdkRExFVkJRVVVzVjBGQlZ6dE5RVU01UXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hEUVVGRExFMUJRVThzUTBGQlJTeERRVUZCTEVOQlFVTXNRMEZCUXp0TlFVTnlSU3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF6dE5RVU0zUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXhSQ3hMUVVGTExFTkJRVU1zUTBGQlF6czdTVUZGU0N4RlFVRkZMRU5CUVVNc2RVTkJRWFZETEVWQlFVVXNWMEZCVnp0TlFVTnlSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeERRVUZETEV0QlFVMHNRMEZCUlN4RFFVRkJMRU5CUVVNc1EwRkJRenROUVVOd1JTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdUVUZET1VJc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU03VFVGRE4wTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY2tRc1EwRkJReXhEUVVGRE8wZEJRMG9zUTBGQlF5eERRVUZETzBOQlEwb3NRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpZG1GeUlFWnZjbTF6ZVNBOUlISmxjWFZwY21Vb0p5NHZMaTR2YzNKakwyMWhhVzR1YW5NbktUdGNibHh1WkdWelkzSnBZbVVvSjBadmNtMXplU2NzSUdaMWJtTjBhVzl1SUNncElIdGNibHh1SUNCa1pYTmpjbWxpWlNnblUyVjBkR2x1WnlCMWNDQmhJR1p2Y20wbkxDQm1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0JwZENnbmMyaHZkV3hrSUhKbGJtUmxjaUJoSUdadmNtMGdhVzUwYnlCMGFHVWdaRzlqZFcxbGJuUW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9JRHhHYjNKdGMza3VSbTl5YlQ0OEwwWnZjbTF6ZVM1R2IzSnRQaWs3WEc0Z0lDQWdJQ0JsZUhCbFkzUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3VkR0ZuVG1GdFpTa3VkRzlGY1hWaGJDZ25SazlTVFNjcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2FYUW9KM05vYjNWc1pDQnpaWFFnWVNCamJHRnpjeUJ1WVcxbElHbG1JSEJoYzNObFpDY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDZ2dQRVp2Y20xemVTNUdiM0p0SUdOc1lYTnpUbUZ0WlQxY0ltWnZiMXdpUGp3dlJtOXliWE41TGtadmNtMCtLVHRjYmlBZ0lDQWdJR1Y0Y0dWamRDaG1iM0p0TG1kbGRFUlBUVTV2WkdVb0tTNWpiR0Z6YzA1aGJXVXBMblJ2UlhGMVlXd29KMlp2YnljcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2FYUW9KM05vYjNWc1pDQmhiR3h2ZHlCbWIzSWdiblZzYkM5MWJtUmxabWx1WldRZ1kyaHBiR1J5Wlc0bkxDQm1kVzVqZEdsdmJpQW9aRzl1WlNrZ2UxeHVJQ0FnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUNBZ2JXbDRhVzV6T2lCYlJtOXliWE41TGsxcGVHbHVYU3hjYmlBZ0lDQWdJQ0FnWTJoaGJtZGxWbUZzZFdVNklHWjFibU4wYVc5dUlDaGxkbVZ1ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyVjBWbUZzZFdVb1pYWmxiblF1ZEdGeVoyVjBMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmU0J2YmtOb1lXNW5aVDE3ZEdocGN5NWphR0Z1WjJWV1lXeDFaWDB2UGx4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdkbUZ5SUcxdlpHVnNJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lIWmhjaUJVWlhOMFJtOXliU0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUNBZ2IyNVRkV0p0YVhRNklHWjFibU4wYVc5dUlDaG1iM0p0VFc5a1pXd3BJSHRjYmlBZ0lDQWdJQ0FnSUNCdGIyUmxiQ0E5SUdadmNtMU5iMlJsYkR0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCdmJsTjFZbTFwZEQxN0lIUm9hWE11YjI1VGRXSnRhWFFnZlQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEdneFBsUmxjM1E4TDJneFBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCN0lHNTFiR3dnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I3SUhWdVpHVm1hVzVsWkNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDBuYm1GdFpTY2dkbUZzZFdVOWV5QW5abTl2SnlCOUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb1BGUmxjM1JHYjNKdEx6NHBPMXh1SUNBZ0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE8xeHVJQ0FnSUNBZ0lDQmxlSEJsWTNRb2JXOWtaV3dwTG5SdlJYRjFZV3dvZTI1aGJXVTZJQ2RtYjI4bmZTazdYRzRnSUNBZ0lDQWdJR1J2Ym1Vb0tUdGNiaUFnSUNBZ0lIMHNJREV3S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUdsMEtDZHphRzkxYkdRZ1lXeHNiM2NnWm05eUlHbHVjSFYwY3lCaVpXbHVaeUJoWkdSbFpDQmtlVzVoYldsallXeHNlU2NzSUdaMWJtTjBhVzl1SUNoa2IyNWxLU0I3WEc1Y2JpQWdJQ0FnSUhaaGNpQnBibkIxZEhNZ1BTQmJYVHRjYmlBZ0lDQWdJSFpoY2lCbWIzSmpaVlZ3WkdGMFpTQTlJRzUxYkd3N1hHNGdJQ0FnSUNCMllYSWdiVzlrWld3Z1BTQnVkV3hzTzF4dUlDQWdJQ0FnZG1GeUlGUmxjM1JKYm5CMWRDQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUR4a2FYWXZQbHh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhaaGNpQlVaWE4wUm05eWJTQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJQ0FnWTI5dGNHOXVaVzUwVjJsc2JFMXZkVzUwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWm05eVkyVlZjR1JoZEdVZ1BTQjBhR2x6TG1admNtTmxWWEJrWVhSbExtSnBibVFvZEdocGN5azdYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUc5dVUzVmliV2wwT2lCbWRXNWpkR2x2YmlBb1ptOXliVTF2WkdWc0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYlc5a1pXd2dQU0JtYjNKdFRXOWtaV3c3WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFvSUZ4dUlDQWdJQ0FnSUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUc5dVUzVmliV2wwUFh0MGFHbHpMbTl1VTNWaWJXbDBmVDRnWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHRwYm5CMWRITjlYRzRnSUNBZ0lDQWdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLQ0JjYmlBZ0lDQWdJQ0FnUEZSbGMzUkdiM0p0THo0Z1hHNGdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQXZMeUJYWVdsMElHSmxabTl5WlNCaFpHUnBibWNnZEdobElHbHVjSFYwWEc0Z0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNibHh1SUNBZ0lDQWdJQ0JwYm5CMWRITXVjSFZ6YUNoVVpYTjBTVzV3ZFhRb2UxeHVJQ0FnSUNBZ0lDQWdJRzVoYldVNklDZDBaWE4wSjF4dUlDQWdJQ0FnSUNCOUtTazdYRzVjYmlBZ0lDQWdJQ0FnWm05eVkyVlZjR1JoZEdVb1puVnVZM1JwYjI0Z0tDa2dlMXh1WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdWMkZwZENCbWIzSWdibVY0ZENCbGRtVnVkQ0JzYjI5d0xDQmhjeUIwYUdGMElHUnZaWE1nZEdobElHWnZjbTFjYmlBZ0lDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWlhod1pXTjBLRzF2WkdWc0xuUmxjM1FwTG5SdlFtVkVaV1pwYm1Wa0tDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCa2IyNWxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZTd2dNQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSDBzSURFd0tUdGNibHh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdhWFFvSjNOb2IzVnNaQ0JoYkd4dmR5QmtlVzVoYldsallXeHNlU0JoWkdSbFpDQnBibkIxZEhNZ2RHOGdkWEJrWVhSbElIUm9aU0JtYjNKdExXMXZaR1ZzSnl3Z1puVnVZM1JwYjI0Z0tHUnZibVVwSUh0Y2JseHVJQ0FnSUNBZ2RtRnlJR2x1Y0hWMGN5QTlJRnRkTzF4dUlDQWdJQ0FnZG1GeUlHWnZjbU5sVlhCa1lYUmxJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lIWmhjaUJ0YjJSbGJDQTlJRzUxYkd3N1hHNGdJQ0FnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdJQ0JqYUdGdVoyVldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tHVjJaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNobGRtVnVkQzUwWVhKblpYUXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxtTm9ZVzVuWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2RtRnlJRlJsYzNSR2IzSnRJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnSUNCamIyMXdiMjVsYm5SWGFXeHNUVzkxYm5RNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCbWIzSmpaVlZ3WkdGMFpTQTlJSFJvYVhNdVptOXlZMlZWY0dSaGRHVXVZbWx1WkNoMGFHbHpLVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2IyNVRkV0p0YVhRNklHWjFibU4wYVc5dUlDaG1iM0p0VFc5a1pXd3BJSHRjYmlBZ0lDQWdJQ0FnSUNCdGIyUmxiQ0E5SUdadmNtMU5iMlJsYkR0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNnZ1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wZ2IyNVRkV0p0YVhROWUzUm9hWE11YjI1VGRXSnRhWFI5UGlCY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTJsdWNIVjBjMzFjYmlBZ0lDQWdJQ0FnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvSUZ4dUlDQWdJQ0FnSUNBOFZHVnpkRVp2Y20wdlBpQmNiaUFnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJQzh2SUZkaGFYUWdZbVZtYjNKbElHRmtaR2x1WnlCMGFHVWdhVzV3ZFhSY2JpQWdJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1WEc0Z0lDQWdJQ0FnSUdsdWNIVjBjeTV3ZFhOb0tGUmxjM1JKYm5CMWRDaDdYRzRnSUNBZ0lDQWdJQ0FnYm1GdFpUb2dKM1JsYzNRblhHNGdJQ0FnSUNBZ0lIMHBLVHRjYmx4dUlDQWdJQ0FnSUNCbWIzSmpaVlZ3WkdGMFpTaG1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJYWVdsMElHWnZjaUJ1WlhoMElHVjJaVzUwSUd4dmIzQXNJR0Z6SUhSb1lYUWdaRzlsY3lCMGFHVWdabTl5YlZ4dUlDQWdJQ0FnSUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaFVaWE4wVlhScGJITXVabWx1WkZKbGJtUmxjbVZrUkU5TlEyOXRjRzl1Wlc1MFYybDBhRlJoWnlobWIzSnRMQ0FuU1U1UVZWUW5LU3dnZTNSaGNtZGxkRG9nZTNaaGJIVmxPaUFuWm05dkozMTlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWlhod1pXTjBLRzF2WkdWc0xuUmxjM1FwTG5SdlFtVW9KMlp2YnljcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUgwc0lEQXBPMXh1WEc0Z0lDQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQjlMQ0F4TUNrN1hHNWNiaUFnSUNCOUtUdGNibHh1SUNBZ0lHbDBLQ2R6YUc5MWJHUWdZV3hzYjNjZ1lTQmtlVzVoYldsallXeHNlU0IxY0dSaGRHVmtJR2x1Y0hWMElIUnZJSFZ3WkdGMFpTQjBhR1VnWm05eWJTMXRiMlJsYkNjc0lHWjFibU4wYVc5dUlDaGtiMjVsS1NCN1hHNWNiaUFnSUNBZ0lIWmhjaUJtYjNKalpWVndaR0YwWlNBOUlHNTFiR3c3WEc0Z0lDQWdJQ0IyWVhJZ2JXOWtaV3dnUFNCdWRXeHNPMXh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUNBZ1kyaGhibWRsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTVqYUdGdVoyVldZV3gxWlgwdlBseHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJQ0FnZG1GeUlHbHVjSFYwTzF4dUlDQWdJQ0FnZG1GeUlGUmxjM1JHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0JqYjIxd2IyNWxiblJYYVd4c1RXOTFiblE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0JtYjNKalpWVndaR0YwWlNBOUlIUm9hWE11Wm05eVkyVlZjR1JoZEdVdVltbHVaQ2gwYUdsektUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnYjI1VGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNobWIzSnRUVzlrWld3cElIdGNiaUFnSUNBZ0lDQWdJQ0J0YjJSbGJDQTlJR1p2Y20xTmIyUmxiRHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYVc1d2RYUWdQU0E4VkdWemRFbHVjSFYwSUc1aGJXVTlKM1JsYzNRbklIWmhiSFZsUFhzZ2RHaHBjeTV3Y205d2N5NTJZV3gxWlNCOUlDOCtPMXh1WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCdmJsTjFZbTFwZEQxN2RHaHBjeTV2YmxOMVltMXBkSDArWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHRwYm5CMWRIMWNiaUFnSUNBZ0lDQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9QRlJsYzNSR2IzSnRJSFpoYkhWbFBTZG1iMjhuTHo0cE8xeHVYRzRnSUNBZ0lDQXZMeUJYWVdsMElHSmxabTl5WlNCamFHRnVaMmx1WnlCMGFHVWdhVzV3ZFhSY2JpQWdJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0JtYjNKdExuTmxkRkJ5YjNCektIdDJZV3gxWlRvZ0oySmhjaWQ5S1R0Y2JseHVJQ0FnSUNBZ0lDQm1iM0pqWlZWd1pHRjBaU2htZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnVjJGcGRDQm1iM0lnYm1WNGRDQmxkbVZ1ZENCc2IyOXdMQ0JoY3lCMGFHRjBJR1J2WlhNZ2RHaGxJR1p2Y20xY2JpQWdJQ0FnSUNBZ0lDQnpaWFJVYVcxbGIzVjBLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYaHdaV04wS0cxdlpHVnNMblJsYzNRcExuUnZRbVVvSjJKaGNpY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHOXVaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lIMHNJREFwTzF4dVhHNGdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0I5TENBeE1DazdYRzVjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR1JsYzJOeWFXSmxLQ2QyWVd4cFpHRjBhVzl1Y3ljc0lHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdkbUZ5SUVOb1pXTnJWbUZzYVdRc0lHOXVVM1ZpYldsMExDQlBkR2hsY2tOb1pXTnJWbUZzYVdRN1hHNGdJQ0FnSUNCMllYSWdhWE5XWVd4cFpEdGNibHh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUNBZ1kyaGhibWRsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN0lIUm9hWE11WjJWMFZtRnNkV1VvS1NCOUlHOXVRMmhoYm1kbFBYc2dkR2hwY3k1amFHRnVaMlZXWVd4MVpTQjlJQzgrWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQjJZWElnVkdWemRFWnZjbTBnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNBZ0lHZGxkRVJsWm1GMWJIUlFjbTl3Y3pvZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVjSFYwY3pvZ1cxMHNYRzRnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnlJR0oxYVd4MFNXNXdkWFJ6SUQwZ1cxMDdYRzRnSUNBZ0lDQWdJQ0FnZG1GeUlHbHVjSFYwY3lBOUlIUm9hWE11Y0hKdmNITXVhVzV3ZFhSek8xeHVJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJR2s5TURzZ2FTQThJR2x1Y0hWMGN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdsdWNIVjBJRDBnYVc1d2RYUnpXMmxkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZblZwYkhSSmJuQjFkSE11Y0hWemFDZzhWR1Z6ZEVsdWNIVjBJSHNnTGk0dWFXNXdkWFFnZlNCclpYazlleUJwYm5CMWRDNXVZVzFsSUgwZ0x6NHBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQjJZWElnWDNSb2FYTWdQU0IwYUdsek8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQThSbTl5YlhONUxrWnZjbTFjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVVM1ZpYldsMElDQTlJSHNnWm5WdVkzUnBiMjRvWVhKbk1Ta2dleUJ2YmxOMVltMXBkQ2hoY21jeEtUc2dmU0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZibFpoYkdsa0lDQWdQU0I3SUdaMWJtTjBhVzl1S0NrZ2V5QnBjMVpoYkdsa0lEMGdkSEoxWlRzZ2ZTQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJrbHVkbUZzYVdRZ1BTQjdJR1oxYm1OMGFXOXVLQ2tnZXlCcGMxWmhiR2xrSUQwZ1ptRnNjMlU3SUgwZ2ZTQStYRzRnSUNBZ0lDQWdJQ0FnSUNCN0lHSjFhV3gwU1c1d2RYUnpJSDFjYmlBZ0lDQWdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lHSmxabTl5WlVWaFkyZ29ablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0FnSUdselZtRnNhV1FnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0JEYUdWamExWmhiR2xrSUQwZ2FtRnpiV2x1WlM1amNtVmhkR1ZUY0hrb0owTm9aV05yVm1Gc2FXUW5LVHRjYmlBZ0lDQWdJQ0FnUm05eWJYTjVMbUZrWkZaaGJHbGtZWFJwYjI1U2RXeGxLQ2REYUdWamExWmhiR2xrSnl3Z1EyaGxZMnRXWVd4cFpDazdYRzRnSUNBZ0lDQWdJRTkwYUdWeVEyaGxZMnRXWVd4cFpDQTlJR3BoYzIxcGJtVXVZM0psWVhSbFUzQjVLQ2REYUdWamExWmhiR2xrSnlrN1hHNGdJQ0FnSUNBZ0lFWnZjbTF6ZVM1aFpHUldZV3hwWkdGMGFXOXVVblZzWlNnblQzUm9aWEpEYUdWamExWmhiR2xrSnl3Z1QzUm9aWEpEYUdWamExWmhiR2xrS1R0Y2JpQWdJQ0FnSUNBZ2IyNVRkV0p0YVhRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTZ25iMjVUZFdKdGFYUW5LVHRjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCcGRDZ25jMmh2ZFd4a0lISjFiaUIzYUdWdUlIUm9aU0JwYm5CMWRDQmphR0Z1WjJWekp5d2dablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDZzhWR1Z6ZEVadmNtMGdhVzV3ZFhSelBYc2dXM3R1WVcxbE9pQW5iMjVsSnl3Z2RtRnNhV1JoZEdsdmJuTTZJQ2REYUdWamExWmhiR2xrSnl3Z2RtRnNkV1U2SUNkbWIyOG5mVjBnZlM4K0tUdGNiaUFnSUNBZ0lDQWdkbUZ5SUdsdWNIVjBJRDBnVkdWemRGVjBhV3h6TG1acGJtUlNaVzVrWlhKbFpFUlBUVU52YlhCdmJtVnVkRmRwZEdoVVlXY29abTl5YlN3Z0oybHVjSFYwSnlrN1hHNGdJQ0FnSUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNWphR0Z1WjJVb2FXNXdkWFF1WjJWMFJFOU5UbTlrWlNncExDQjdkR0Z5WjJWME9pQjdkbUZzZFdVNklDZGlZWEluZlgwcE8xeHVJQ0FnSUNBZ0lDQmxlSEJsWTNRb1EyaGxZMnRXWVd4cFpDa3VkRzlJWVhabFFtVmxia05oYkd4bFpGZHBkR2dvSjJKaGNpY3BPMXh1SUNBZ0lDQWdJQ0JsZUhCbFkzUW9UM1JvWlhKRGFHVmphMVpoYkdsa0tTNXViM1F1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lHbDBLQ2R6YUc5MWJHUWdZV3hzYjNjZ2RHaGxJSFpoYkdsa1lYUnBiMjRnZEc4Z1ltVWdZMmhoYm1kbFpDY3NJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9QRlJsYzNSR2IzSnRJR2x1Y0hWMGN6MTdJRnQ3Ym1GdFpUb2dKMjl1WlNjc0lIWmhiR2xrWVhScGIyNXpPaUFuUTJobFkydFdZV3hwWkNjc0lIWmhiSFZsT2lBblptOXZKMzFkSUgwdlBpazdYRzRnSUNBZ0lDQWdJR1p2Y20wdWMyVjBVSEp2Y0hNb2UybHVjSFYwY3pvZ1czdHVZVzFsT2lBbmIyNWxKeXdnZG1Gc2FXUmhkR2x2Ym5NNklDZFBkR2hsY2tOb1pXTnJWbUZzYVdRbkxDQjJZV3gxWlRvZ0oyWnZieWQ5WFNCOUtUdGNiaUFnSUNBZ0lDQWdkbUZ5SUdsdWNIVjBJRDBnVkdWemRGVjBhV3h6TG1acGJtUlNaVzVrWlhKbFpFUlBUVU52YlhCdmJtVnVkRmRwZEdoVVlXY29abTl5YlN3Z0oybHVjSFYwSnlrN1hHNGdJQ0FnSUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNWphR0Z1WjJVb2FXNXdkWFF1WjJWMFJFOU5UbTlrWlNncExDQjdkR0Z5WjJWME9pQjdkbUZzZFdVNklDZGlZWEluZlgwcE8xeHVJQ0FnSUNBZ0lDQmxlSEJsWTNRb1QzUm9aWEpEYUdWamExWmhiR2xrS1M1MGIwaGhkbVZDWldWdVEyRnNiR1ZrVjJsMGFDZ25ZbUZ5SnlrN1hHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdhWFFvSjNOb2IzVnNaQ0JwYm5aaGJHbGtZWFJsSUdFZ1ptOXliU0JwWmlCa2VXNWhiV2xqWVd4c2VTQnBibk5sY25SbFpDQnBibkIxZENCcGN5QnBiblpoYkdsa0p5d2dablZ1WTNScGIyNG9aRzl1WlNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvUEZSbGMzUkdiM0p0SUdsdWNIVjBjejE3SUZ0N2JtRnRaVG9nSjI5dVpTY3NJSFpoYkdsa1lYUnBiMjV6T2lBbmFYTkZiV0ZwYkNjc0lIWmhiSFZsT2lBblptOXZRR0poY2k1amIyMG5mVjBnZlM4K0tUdGNiaUFnSUNBZ0lDQWdaWGh3WldOMEtHbHpWbUZzYVdRcExuUnZSWEYxWVd3b2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUdadmNtMHVjMlYwVUhKdmNITW9lMmx1Y0hWMGN6b2dXMXh1SUNBZ0lDQWdJQ0FnSUh0dVlXMWxPaUFuYjI1bEp5d2dkbUZzYVdSaGRHbHZibk02SUNkcGMwVnRZV2xzSnl3Z2RtRnNkV1U2SUNkbWIyOUFZbUZ5TG1OdmJTZDlMRnh1SUNBZ0lDQWdJQ0FnSUh0dVlXMWxPaUFuZEhkdkp5d2dkbUZzYVdSaGRHbHZibk02SUNkcGMwVnRZV2xzSnl3Z2RtRnNkV1U2SUNkbWIyOUFZbUZ5SjMwc1hHNGdJQ0FnSUNBZ0lGMTlMQ0JtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpaWFJVYVcxbGIzVjBLR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaWGh3WldOMEtHbHpWbUZzYVdRcExuUnZSWEYxWVd3b1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdaRzl1WlNncE8xeHVJQ0FnSUNBZ0lDQWdJSDBzSURBcE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCcGRDZ25jMmh2ZFd4a0lIWmhiR2xrWVhSbElHRWdabTl5YlNCM2FHVnVJSEpsYlc5MmFXNW5JR0Z1SUdsdWRtRnNhV1FnYVc1d2RYUW5MQ0JtZFc1amRHbHZiaWhrYjI1bEtTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENnOFZHVnpkRVp2Y20wZ2FXNXdkWFJ6UFhzZ1cxeHVJQ0FnSUNBZ0lDQWdJSHR1WVcxbE9pQW5iMjVsSnl3Z2RtRnNhV1JoZEdsdmJuTTZJQ2RwYzBWdFlXbHNKeXdnZG1Gc2RXVTZJQ2RtYjI5QVltRnlMbU52YlNkOUxGeHVJQ0FnSUNBZ0lDQWdJSHR1WVcxbE9pQW5kSGR2Snl3Z2RtRnNhV1JoZEdsdmJuTTZJQ2RwYzBWdFlXbHNKeXdnZG1Gc2RXVTZJQ2RtYjI5QVltRnlKMzBzWEc0Z0lDQWdJQ0FnSUYwZ2ZTQXZQaWs3WEc0Z0lDQWdJQ0FnSUdWNGNHVmpkQ2hwYzFaaGJHbGtLUzUwYjBWeGRXRnNLR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdabTl5YlM1elpYUlFjbTl3Y3loN2FXNXdkWFJ6T2lCYmUyNWhiV1U2SUNkdmJtVW5MQ0IyWVd4cFpHRjBhVzl1Y3pvZ0oybHpSVzFoYVd3bkxDQjJZV3gxWlRvZ0oyWnZiMEJpWVhJdVkyOXRKMzFkZlN3Z1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYzJWMFZHbHRaVzkxZENobWRXNWpkR2x2YmlncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdWNGNHVmpkQ2hwYzFaaGJHbGtLUzUwYjBWeGRXRnNLSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUgwc0lEQXBPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQnBkQ2duY25WdWN5QnRkV3gwYVhCc1pTQjJZV3hwWkdGMGFXOXVjeWNzSUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvUEZSbGMzUkdiM0p0SUdsdWNIVjBjejE3SUZ0N2JtRnRaVG9nSjI5dVpTY3NJSFpoYkdsa1lYUnBiMjV6T2lBblEyaGxZMnRXWVd4cFpDeFBkR2hsY2tOb1pXTnJWbUZzYVdRbkxDQjJZV3gxWlRvZ0oyWnZieWQ5WFNCOUx6NHBPMXh1SUNBZ0lDQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtSRTlOUTI5dGNHOXVaVzUwVjJsMGFGUmhaeWhtYjNKdExDQW5hVzV3ZFhRbktUdGNiaUFnSUNBZ0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaHBibkIxZEM1blpYUkVUMDFPYjJSbEtDa3NJSHQwWVhKblpYUTZJSHQyWVd4MVpUb2dKMkpoY2lkOWZTazdYRzRnSUNBZ0lDQWdJR1Y0Y0dWamRDaERhR1ZqYTFaaGJHbGtLUzUwYjBoaGRtVkNaV1Z1UTJGc2JHVmtWMmwwYUNnblltRnlKeWs3WEc0Z0lDQWdJQ0FnSUdWNGNHVmpkQ2hQZEdobGNrTm9aV05yVm1Gc2FXUXBMblJ2U0dGMlpVSmxaVzVEWVd4c1pXUlhhWFJvS0NkaVlYSW5LVHRjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnYVhRb0ozTm9iM1ZzWkNCdWIzUWdkSEpwWjJkbGNpQnZia05vWVc1blpTQjNhR1Z1SUdadmNtMGdhWE1nYlc5MWJuUmxaQ2NzSUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lIWmhjaUJvWVhORGFHRnVaMlZrSUQwZ2FtRnpiV2x1WlM1amNtVmhkR1ZUY0hrb0oyOXVRMmhoYm1kbEp5azdYRzRnSUNBZ0lDQjJZWElnVkdWemRFWnZjbTBnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNBZ0lHOXVRMmhoYm1kbE9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FHRnpRMmhoYm1kbFpDZ3BPMXh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdQRVp2Y20xemVTNUdiM0p0SUc5dVEyaGhibWRsUFh0MGFHbHpMbTl1UTJoaGJtZGxmVDQ4TDBadmNtMXplUzVHYjNKdFBqdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb1BGUmxjM1JHYjNKdEx6NHBPMXh1SUNBZ0lDQWdaWGh3WldOMEtHaGhjME5vWVc1blpXUXBMbTV2ZEM1MGIwaGhkbVZDWldWdVEyRnNiR1ZrS0NrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lIUnlhV2RuWlhJZ2IyNURhR0Z1WjJVZ2QyaGxiaUJtYjNKdElHVnNaVzFsYm5RZ2FYTWdZMmhoYm1kbFpDY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUhaaGNpQm9ZWE5EYUdGdVoyVmtJRDBnYW1GemJXbHVaUzVqY21WaGRHVlRjSGtvSjI5dVEyaGhibWRsSnlrN1hHNGdJQ0FnSUNCMllYSWdUWGxKYm5CMWRDQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTV2YmtOb1lXNW5aWDB2UGx4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIWmhjaUJVWlhOMFJtOXliU0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUNBZ2IyNURhR0Z1WjJVNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCb1lYTkRhR0Z1WjJWa0tDazdYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQWdJQ0FnSUNBOFJtOXliWE41TGtadmNtMGdiMjVEYUdGdVoyVTllM1JvYVhNdWIyNURhR0Z1WjJWOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFRYbEpibkIxZENCdVlXMWxQVndpWm05dlhDSXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENnOFZHVnpkRVp2Y20wdlBpazdYRzRnSUNBZ0lDQlVaWE4wVlhScGJITXVVMmx0ZFd4aGRHVXVZMmhoYm1kbEtGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JFVDAxRGIyMXdiMjVsYm5SWGFYUm9WR0ZuS0dadmNtMHNJQ2RKVGxCVlZDY3BMQ0I3ZEdGeVoyVjBPaUI3ZG1Gc2RXVTZJQ2RpWVhJbmZYMHBPMXh1SUNBZ0lDQWdaWGh3WldOMEtHaGhjME5vWVc1blpXUXBMblJ2U0dGMlpVSmxaVzVEWVd4c1pXUW9LVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR2wwS0NkemFHOTFiR1FnZEhKcFoyZGxjaUJ2YmtOb1lXNW5aU0IzYUdWdUlHNWxkeUJwYm5CMWRDQnBjeUJoWkdSbFpDQjBieUJtYjNKdEp5d2dablZ1WTNScGIyNGdLR1J2Ym1VcElIdGNiaUFnSUNBZ0lIWmhjaUJvWVhORGFHRnVaMlZrSUQwZ2FtRnpiV2x1WlM1amNtVmhkR1ZUY0hrb0oyOXVRMmhoYm1kbEp5azdYRzRnSUNBZ0lDQjJZWElnYVc1d2RYUnpJRDBnVzEwN1hHNGdJQ0FnSUNCMllYSWdabTl5WTJWVmNHUmhkR1VnUFNCdWRXeHNPMXh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUNBZ1kyaGhibWRsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTVqYUdGdVoyVldZV3gxWlgwdlBseHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSFpoY2lCVVpYTjBSbTl5YlNBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdZMjl0Y0c5dVpXNTBWMmxzYkUxdmRXNTBPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdabTl5WTJWVmNHUmhkR1VnUFNCMGFHbHpMbVp2Y21ObFZYQmtZWFJsTG1KcGJtUW9kR2hwY3lrN1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJRzl1UTJoaGJtZGxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhR0Z6UTJoaGJtZGxaQ2dwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnS0NCY2JpQWdJQ0FnSUNBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTV2YmtOb1lXNW5aWDArSUZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I3YVc1d2RYUnpmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDRwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2dnWEc0Z0lDQWdJQ0FnSUR4VVpYTjBSbTl5YlM4K0lGeHVJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lDQWdMeThnVjJGcGRDQmlaV1p2Y21VZ1lXUmthVzVuSUhSb1pTQnBibkIxZEZ4dUlDQWdJQ0FnYVc1d2RYUnpMbkIxYzJnb1ZHVnpkRWx1Y0hWMEtIdGNiaUFnSUNBZ0lDQWdibUZ0WlRvZ0ozUmxjM1FuWEc0Z0lDQWdJQ0I5S1NrN1hHNWNiaUFnSUNBZ0lHWnZjbU5sVlhCa1lYUmxLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJYWVdsMElHWnZjaUJ1WlhoMElHVjJaVzUwSUd4dmIzQXNJR0Z6SUhSb1lYUWdaRzlsY3lCMGFHVWdabTl5YlZ4dUlDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCbGVIQmxZM1FvYUdGelEyaGhibWRsWkNrdWRHOUlZWFpsUW1WbGJrTmhiR3hsWkNncE8xeHVJQ0FnSUNBZ0lDQWdJR1J2Ym1Vb0tUdGNiaUFnSUNBZ0lDQWdmU3dnTUNrN1hHNWNiaUFnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdmU2s3WEc1Y2JpQWdmU2s3WEc1Y2JpQWdaR1Z6WTNKcFltVW9KMVZ3WkdGMFpTQmhJR1p2Y20wbkxDQm1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0JwZENnbmMyaHZkV3hrSUdGc2JHOTNJR1ZzWlcxbGJuUnpJSFJ2SUdOb1pXTnJJR2xtSUhSb1pTQm1iM0p0SUdseklHUnBjMkZpYkdWa0p5d2dablZ1WTNScGIyNGdLR1J2Ym1VcElIdGNibHh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlM4K1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkdiM0p0SUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ0lDQm5aWFJKYm1sMGFXRnNVM1JoZEdVNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZTJScGMyRmliR1ZrT2lCMGNuVmxmVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ1pXNWhZbXhsUm05eWJUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaR2x6WVdKc1pXUTZJR1poYkhObFhHNGdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFvSUZ4dUlDQWdJQ0FnSUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUc5dVEyaGhibWRsUFh0MGFHbHpMbTl1UTJoaGJtZGxmU0JrYVhOaFlteGxaRDE3ZEdocGN5NXpkR0YwWlM1a2FYTmhZbXhsWkgwK0lGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaTgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0NCY2JpQWdJQ0FnSUNBZ1BGUmxjM1JHYjNKdEx6NGdYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtRMjl0Y0c5dVpXNTBWMmwwYUZSNWNHVW9abTl5YlN3Z1ZHVnpkRWx1Y0hWMEtUdGNiaUFnSUNBZ0lHVjRjR1ZqZENocGJuQjFkQzVwYzBadmNtMUVhWE5oWW14bFpDZ3BLUzUwYjBKbEtIUnlkV1VwTzF4dUlDQWdJQ0FnWm05eWJTNWxibUZpYkdWR2IzSnRLQ2s3WEc0Z0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdaWGh3WldOMEtHbHVjSFYwTG1selJtOXliVVJwYzJGaWJHVmtLQ2twTG5SdlFtVW9abUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQmtiMjVsS0NrN1hHNGdJQ0FnSUNCOUxDQXdLVHRjYmx4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnYVhRb0ozTm9iM1ZzWkNCaVpTQndiM056YVdKc1pTQjBieUJ3WVhOeklHVnljbTl5SUhOMFlYUmxJRzltSUdWc1pXMWxiblJ6SUdKNUlHTm9ZVzVuYVc1bklHRnVJR1Z5Y205eWN5QmhkSFJ5YVdKMWRHVW5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUx6NDdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZG1GeUlGUmxjM1JHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0JuWlhSSmJtbDBhV0ZzVTNSaGRHVTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2FXUmhkR2x2YmtWeWNtOXljem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjI4NklDZGlZWEluWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTZJR1oxYm1OMGFXOXVJQ2gyWVd4MVpYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9kbUZzZFdWekxtWnZieWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJHbGtZWFJwYjI1RmNuSnZjbk02SUh0OVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiR2xrWVhScGIyNUZjbkp2Y25NNklIdG1iMjg2SUNkaVlYSW5mVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnS0NCY2JpQWdJQ0FnSUNBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTV2YmtOb1lXNW5aWDBnZG1Gc2FXUmhkR2x2YmtWeWNtOXljejE3ZEdocGN5NXpkR0YwWlM1MllXeHBaR0YwYVc5dVJYSnliM0p6ZlQ0Z1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSW1admIxd2lMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvSUZ4dUlDQWdJQ0FnSUNBOFZHVnpkRVp2Y20wdlBpQmNiaUFnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJQzh2SUZkaGFYUWdabTl5SUhWd1pHRjBaVnh1SUNBZ0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJwYm5CMWRDQTlJRlJsYzNSVmRHbHNjeTVtYVc1a1VtVnVaR1Z5WldSRGIyMXdiMjVsYm5SWGFYUm9WSGx3WlNobWIzSnRMQ0JVWlhOMFNXNXdkWFFwTzF4dUlDQWdJQ0FnSUNCbGVIQmxZM1FvYVc1d2RYUXVaMlYwUlhKeWIzSk5aWE56WVdkbEtDa3BMblJ2UW1Vb0oySmhjaWNwTzF4dUlDQWdJQ0FnSUNCcGJuQjFkQzV6WlhSV1lXeDFaU2duWjI5MFZtRnNkV1VuS1R0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJYWVdsMElHWnZjaUIxY0dSaGRHVmNiaUFnSUNBZ0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdaWGh3WldOMEtHbHVjSFYwTG1kbGRFVnljbTl5VFdWemMyRm5aU2dwS1M1MGIwSmxLRzUxYkd3cE8xeHVJQ0FnSUNBZ0lDQWdJR1J2Ym1Vb0tUdGNiaUFnSUNBZ0lDQWdmU3dnTUNrN1hHNGdJQ0FnSUNCOUxDQXdLVHRjYmx4dUlDQWdJSDBwTzF4dVhHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lIUnlhV2RuWlhJZ1lXNGdiMjVXWVd4cFpGTjFZbTFwZENCM2FHVnVJSE4xWW0xcGRIUnBibWNnWVNCMllXeHBaQ0JtYjNKdEp5d2dablZ1WTNScGIyNGdLQ2tnZTF4dVhHNGdJQ0FnSUNBZ0lIWmhjaUJwYzBOaGJHeGxaQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5THo0N1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2RtRnlJRlJsYzNSR2IzSnRJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnSUNBZ0lHOXVWbUZzYVdSVGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdselEyRnNiR1ZrSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZ2dYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeEdiM0p0YzNrdVJtOXliU0J2YmxaaGJHbGtVM1ZpYldsMFBYdDBhR2x6TG05dVZtRnNhV1JUZFdKdGFYUjlQaUJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0ptYjI5Y0lpQjJZV3hwWkdGMGFXOXVjejFjSW1selJXMWhhV3hjSWlCMllXeDFaVDFjSW1admIwQmlZWEl1WTI5dFhDSXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGlrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLQ0JjYmlBZ0lDQWdJQ0FnSUNBOFZHVnpkRVp2Y20wdlBpQmNiaUFnSUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnSUNCMllYSWdWR1Z6ZEVadmNtMGdQU0JVWlhOMFZYUnBiSE11Wm1sdVpGSmxibVJsY21Wa1EyOXRjRzl1Wlc1MFYybDBhRlI1Y0dVb1ptOXliU3dnVkdWemRFWnZjbTBwTzF4dUlDQWdJQ0FnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdWMzVmliV2wwS0ZSbGMzUkdiM0p0TG1kbGRFUlBUVTV2WkdVb0tTazdJQ0JjYmlBZ0lDQWdJQ0FnWlhod1pXTjBLR2x6UTJGc2JHVmtLUzUwYjBKbEtIUnlkV1VwTzF4dVhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lIUnlhV2RuWlhJZ1lXNGdiMjVKYm5aaGJHbGtVM1ZpYldsMElIZG9aVzRnYzNWaWJXbDBkR2x1WnlCaGJpQnBiblpoYkdsa0lHWnZjbTBuTENCbWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQWdJQ0FnZG1GeUlHbHpRMkZzYkdWa0lEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMHZQanRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0IyWVhJZ1ZHVnpkRVp2Y20wZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQWdJQ0FnYjI1SmJuWmhiR2xrVTNWaWJXbDBPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwYzBOaGJHeGxaQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb0lGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFJtOXliWE41TGtadmNtMGdiMjVKYm5aaGJHbGtVM1ZpYldsMFBYdDBhR2x6TG05dVNXNTJZV3hwWkZOMVltMXBkSDArSUZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSW1admIxd2lJSFpoYkdsa1lYUnBiMjV6UFZ3aWFYTkZiV0ZwYkZ3aUlIWmhiSFZsUFZ3aVptOXZRR0poY2x3aUx6NWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDRwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDZ2dYRzRnSUNBZ0lDQWdJQ0FnUEZSbGMzUkdiM0p0THo0Z1hHNGdJQ0FnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJQ0FnZG1GeUlGUmxjM1JHYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVOdmJYQnZibVZ1ZEZkcGRHaFVlWEJsS0dadmNtMHNJRlJsYzNSR2IzSnRLVHRjYmlBZ0lDQWdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG5OMVltMXBkQ2hVWlhOMFJtOXliUzVuWlhSRVQwMU9iMlJsS0NrcE95QWdYRzRnSUNBZ0lDQWdJR1Y0Y0dWamRDaHBjME5oYkd4bFpDa3VkRzlDWlNoMGNuVmxLVHRjYmx4dUlDQWdJSDBwTzF4dVhHNGdJSDBwTzF4dVhHNGdJR1JsYzJOeWFXSmxLRndpZG1Gc2RXVWdQVDA5SUdaaGJITmxYQ0lzSUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUhaaGNpQnZibE4xWW0xcGREdGNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lHZGxkRVJsWm1GMWJIUlFjbTl3Y3pvZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJQ0FnZEhsd1pUb2dYQ0owWlhoMFhDSXNYRzRnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnWTJoaGJtZGxWbUZzZFdVNklHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtHVXVkR0Z5WjJWMFczUm9hWE11Y0hKdmNITXVkSGx3WlNBOVBUMGdYQ0pqYUdWamEySnZlRndpSUQ4Z1hDSmphR1ZqYTJWa1hDSWdPaUJjSW5aaGJIVmxYQ0pkS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMGVYQmxQWHNnZEdocGN5NXdjbTl3Y3k1MGVYQmxJSDBnZG1Gc2RXVTlleUIwYUdsekxtZGxkRlpoYkhWbEtDa2dmU0J2YmtOb1lXNW5aVDE3SUhSb2FYTXVZMmhoYm1kbFZtRnNkV1VnZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCMllYSWdWR1Z6ZEVadmNtMGdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ0lDQThSbTl5YlhONUxrWnZjbTBnYjI1VGRXSnRhWFE5ZXlCbWRXNWpkR2x2YmloaGNtY3hLU0I3SUc5dVUzVmliV2wwS0dGeVp6RXBPeUI5SUgwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0ptYjI5Y0lpQjJZV3gxWlQxN0lIUm9hWE11Y0hKdmNITXVkbUZzZFdVZ2ZTQjBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lpQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BHSjFkSFJ2YmlCMGVYQmxQVndpYzNWaWJXbDBYQ0krVTJGMlpUd3ZZblYwZEc5dVBseHVJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQmlaV1p2Y21WRllXTm9LR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnYjI1VGRXSnRhWFFnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNoY0ltOXVVM1ZpYldsMFhDSXBPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdhWFFvWENKemFHOTFiR1FnWTJGc2JDQnZibE4xWW0xcGRDQmpiM0p5WldOMGJIbGNJaXdnWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9QRlJsYzNSR2IzSnRJSFpoYkhWbFBYc2dabUZzYzJVZ2ZTOCtLVHRjYmlBZ0lDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1SUNBZ0lDQWdaWGh3WldOMEtHOXVVM1ZpYldsMEtTNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa1YybDBhQ2g3Wm05dk9pQm1ZV3h6WlgwcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2FYUW9YQ0p6YUc5MWJHUWdZV3hzYjNjZ1pIbHVZVzFwWXlCamFHRnVaMlZ6SUhSdklHWmhiSE5sWENJc0lHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0R4VVpYTjBSbTl5YlNCMllXeDFaVDE3SUhSeWRXVWdmUzgrS1R0Y2JpQWdJQ0FnSUdadmNtMHVjMlYwVUhKdmNITW9lM1poYkhWbE9pQm1ZV3h6WlgwcE8xeHVJQ0FnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExuTjFZbTFwZENobWIzSnRMbWRsZEVSUFRVNXZaR1VvS1NrN1hHNGdJQ0FnSUNCbGVIQmxZM1FvYjI1VGRXSnRhWFFwTG5SdlNHRjJaVUpsWlc1RFlXeHNaV1JYYVhSb0tIdG1iMjg2SUdaaGJITmxmU2s3WEc0Z0lDQWdmU2s3WEc0Z0lIMHBPMXh1ZlNrN1hHNGlYWDA9IiwidmFyIEZvcm1zeSA9IHJlcXVpcmUoJy4vLi4vc3JjL21haW4uanMnKTtcblxuZGVzY3JpYmUoJ0FqYXgnLCBmdW5jdGlvbigpIHtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBqYXNtaW5lLkFqYXguaW5zdGFsbCgpO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIGphc21pbmUuQWpheC51bmluc3RhbGwoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwb3N0IHRvIGEgZ2l2ZW4gdXJsIGlmIHBhc3NlZCcsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCJ9XG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICBleHBlY3QoamFzbWluZS5BamF4LnJlcXVlc3RzLm1vc3RSZWNlbnQoKS51cmwpLnRvQmUoJy91c2VycycpO1xuICAgIGV4cGVjdChqYXNtaW5lLkFqYXgucmVxdWVzdHMubW9zdFJlY2VudCgpLm1ldGhvZCkudG9CZSgnUE9TVCcpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcHV0IHRvIGEgZ2l2ZW4gdXJsIGlmIHBhc3NlZCBhIG1ldGhvZCBhdHRyaWJ1dGUnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wiLCBtZXRob2Q6IFwiUFVUXCJ9XG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICBleHBlY3QoamFzbWluZS5BamF4LnJlcXVlc3RzLm1vc3RSZWNlbnQoKS51cmwpLnRvQmUoJy91c2VycycpO1xuICAgIGV4cGVjdChqYXNtaW5lLkFqYXgucmVxdWVzdHMubW9zdFJlY2VudCgpLm1ldGhvZCkudG9CZSgnUFVUJyk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXNzIHgtd3d3LWZvcm0tdXJsZW5jb2RlZCBhcyBjb250ZW50VHlwZSB3aGVuIHVybGVuY29kZWQgaXMgc2V0IGFzIGNvbnRlbnRUeXBlJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIiwgY29udGVudFR5cGU6IFwidXJsZW5jb2RlZFwifVxuICAgICAgKVxuICAgICk7XG4gICAgXG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG4gICAgZXhwZWN0KGphc21pbmUuQWpheC5yZXF1ZXN0cy5tb3N0UmVjZW50KCkuY29udGVudFR5cGUoKSkudG9CZSgnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBydW4gYW4gb25TdWNjZXNzIGhhbmRsZXIsIGlmIHBhc3NlZCBhbmQgYWpheCBpcyBzdWNjZXNzZnVsbC4gRmlyc3QgYXJndW1lbnQgaXMgZGF0YSBmcm9tIHNlcnZlcicsIGZ1bmN0aW9uIChkb25lKSB7XG4gXG4gICAgdmFyIG9uU3VjY2VzcyA9IGphc21pbmUuY3JlYXRlU3B5KFwic3VjY2Vzc1wiKTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wiLCBvblN1Y2Nlc3M6IG9uU3VjY2Vzc31cbiAgICAgIClcbiAgICApO1xuICAgIFxuICAgIGphc21pbmUuQWpheC5zdHViUmVxdWVzdCgnL3VzZXJzJykuYW5kUmV0dXJuKHtcbiAgICAgIHN0YXR1czogMjAwLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIHJlc3BvbnNlVGV4dDogJ3t9J1xuICAgIH0pO1xuXG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG5cbiAgICAvLyBTaW5jZSBhamF4IGlzIHJldHVybmVkIGFzIGEgcHJvbWlzZSAoYXN5bmMpLCBtb3ZlIGFzc2VydGlvblxuICAgIC8vIHRvIGVuZCBvZiBldmVudCBsb29wXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBleHBlY3Qob25TdWNjZXNzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7fSk7XG4gICAgICBkb25lKCk7XG4gICAgfSwgMCk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgZG8gYWpheCByZXF1ZXN0IGlmIG9uU3VibWl0IGhhbmRsZXIgaXMgcGFzc2VkLCBidXQgcGFzcyB0aGUgbW9kZWwgYXMgZmlyc3QgYXJndW1lbnQgdG8gb25TdWJtaXQgaGFuZGxlcicsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25TdWJtaXQ6IG9uU3VibWl0fSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiYmFyXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcblxuICAgIGV4cGVjdChqYXNtaW5lLkFqYXgucmVxdWVzdHMuY291bnQoKSkudG9CZSgwKTtcblxuICAgIGZ1bmN0aW9uIG9uU3VibWl0IChkYXRhKSB7XG4gICAgICBleHBlY3QoZGF0YSkudG9FcXVhbCh7XG4gICAgICAgIGZvbzogJ2JhcidcbiAgICAgIH0pO1xuICAgIH1cblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHRyaWdnZXIgYW4gb25TdWJtaXR0ZWQgaGFuZGxlciwgaWYgcGFzc2VkIGFuZCB0aGUgc3VibWl0IGhhcyByZXNwb25kZWQgd2l0aCBTVUNDRVNTJywgZnVuY3Rpb24gKGRvbmUpIHtcbiAgICBcbiAgICB2YXIgb25TdWJtaXR0ZWQgPSBqYXNtaW5lLmNyZWF0ZVNweShcInN1Ym1pdHRlZFwiKTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wiLCBvblN1Ym1pdHRlZDogb25TdWJtaXR0ZWR9XG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICBqYXNtaW5lLkFqYXguc3R1YlJlcXVlc3QoJy91c2VycycpLmFuZFJldHVybih7XG4gICAgICBzdGF0dXM6IDIwMCxcbiAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICByZXNwb25zZVRleHQ6ICd7fSdcbiAgICB9KTtcblxuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuXG4gICAgLy8gU2luY2UgYWpheCBpcyByZXR1cm5lZCBhcyBhIHByb21pc2UgKGFzeW5jKSwgbW92ZSBhc3NlcnRpb25cbiAgICAvLyB0byBlbmQgb2YgZXZlbnQgbG9vcFxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZXhwZWN0KG9uU3VibWl0dGVkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBkb25lKCk7XG4gICAgfSwgMCk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0cmlnZ2VyIGFuIG9uU3VibWl0dGVkIGhhbmRsZXIsIGlmIHBhc3NlZCBhbmQgdGhlIHN1Ym1pdCBoYXMgcmVzcG9uZGVkIHdpdGggRVJST1InLCBmdW5jdGlvbiAoZG9uZSkge1xuICAgIFxuICAgIHZhciBvblN1Ym1pdHRlZCA9IGphc21pbmUuY3JlYXRlU3B5KFwic3VibWl0dGVkXCIpO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCIsIG9uU3VibWl0dGVkOiBvblN1Ym1pdHRlZH1cbiAgICAgIClcbiAgICApO1xuICAgIFxuICAgIGphc21pbmUuQWpheC5zdHViUmVxdWVzdCgnL3VzZXJzJykuYW5kUmV0dXJuKHtcbiAgICAgIHN0YXR1czogNTAwLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIHJlc3BvbnNlVGV4dDogJ3t9J1xuICAgIH0pO1xuXG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG5cbiAgICAvLyBTaW5jZSBhamF4IGlzIHJldHVybmVkIGFzIGEgcHJvbWlzZSAoYXN5bmMpLCBtb3ZlIGFzc2VydGlvblxuICAgIC8vIHRvIGVuZCBvZiBldmVudCBsb29wXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBleHBlY3Qob25TdWJtaXR0ZWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGRvbmUoKTtcbiAgICB9LCAwKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHRyaWdnZXIgYW4gb25FcnJvciBoYW5kbGVyLCBpZiBwYXNzZWQgYW5kIHRoZSBzdWJtaXQgaGFzIHJlc3BvbmRlZCB3aXRoIEVSUk9SJywgZnVuY3Rpb24gKGRvbmUpIHtcbiAgICBcbiAgICB2YXIgb25FcnJvciA9IGphc21pbmUuY3JlYXRlU3B5KFwiZXJyb3JcIik7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIiwgb25FcnJvcjogb25FcnJvcn1cbiAgICAgIClcbiAgICApO1xuICAgIFxuICAgIC8vIERvIG5vdCByZXR1cm4gYW55IGVycm9yIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0c1xuICAgIGphc21pbmUuQWpheC5zdHViUmVxdWVzdCgnL3VzZXJzJykuYW5kUmV0dXJuKHtcbiAgICAgIHN0YXR1czogNTAwLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIHJlc3BvbnNlVGV4dDogJ3t9J1xuICAgIH0pO1xuXG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG5cbiAgICAvLyBTaW5jZSBhamF4IGlzIHJldHVybmVkIGFzIGEgcHJvbWlzZSAoYXN5bmMpLCBtb3ZlIGFzc2VydGlvblxuICAgIC8vIHRvIGVuZCBvZiBldmVudCBsb29wXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBleHBlY3Qob25FcnJvcikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe30pO1xuICAgICAgZG9uZSgpO1xuICAgIH0sIDApO1xuXG4gIH0pO1xuXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjR1ZqY3k5VGRXSnRhWFF0YzNCbFl5NXFjeUlzSW5OdmRYSmpaWE1pT2xzaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y0dWamN5OVRkV0p0YVhRdGMzQmxZeTVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeEpRVUZKTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXpzN1FVRkZla01zVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4WFFVRlhPenRGUVVVeFFpeFZRVUZWTEVOQlFVTXNXVUZCV1R0SlFVTnlRaXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMEZCUXpOQ0xFZEJRVWNzUTBGQlF5eERRVUZET3p0RlFVVklMRk5CUVZNc1EwRkJReXhaUVVGWk8wbEJRM0JDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03UVVGRE4wSXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNjME5CUVhORExFVkJRVVVzV1VGQldUczdTVUZGY2tRc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRanROUVVOeVF5eHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExFZEJRVUVzUlVGQlJ5eERRVUZETEZGQlFWTXNRMEZCUVR0TlFVTmFMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEYkVVc1NVRkJTU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE96dEJRVVZ1UlN4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRlRDeEZRVUZGTEVWQlFVVXNRMEZCUXl4M1JFRkJkMFFzUlVGQlJTeFpRVUZaT3p0SlFVVjJSU3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRmRCUVZjc1JVRkJRU3hEUVVGQkxFTkJRVU1zUjBGQlFTeEZRVUZITEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVNc1RVRkJRU3hGUVVGTkxFTkJRVU1zUzBGQlRTeERRVUZCTzAxQlEzcENMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEYkVVc1NVRkJTU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE96dEJRVVZzUlN4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRlRDeEZRVUZGTEVWQlFVVXNRMEZCUXl4M1JrRkJkMFlzUlVGQlJTeFpRVUZaT3p0SlFVVjJSeXhKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRmRCUVZjc1JVRkJRU3hEUVVGQkxFTkJRVU1zUjBGQlFTeEZRVUZITEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVNc1YwRkJRU3hGUVVGWExFTkJRVU1zV1VGQllTeERRVUZCTzAxQlEzSkRMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMnBFTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEcxRFFVRnRReXhEUVVGRExFTkJRVU03TzBGQlJYWkhMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMSGRIUVVGM1J5eEZRVUZGTEZWQlFWVXNTVUZCU1N4RlFVRkZPenRKUVVVelNDeEpRVUZKTEZOQlFWTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBsQlF6ZERMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhIUVVGQkxFVkJRVWNzUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUXl4VFFVRkJMRVZCUVZNc1EwRkJSU3hUUVVGWExFTkJRVUU3VFVGRGJFTXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMDFCUXpORExFMUJRVTBzUlVGQlJTeEhRVUZITzAxQlExZ3NWMEZCVnl4RlFVRkZMR3RDUVVGclFqdE5RVU12UWl4WlFVRlpMRVZCUVVVc1NVRkJTVHRCUVVONFFpeExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZVQ3hKUVVGSkxGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEycEVPMEZCUTBFN08wbEJSVWtzVlVGQlZTeERRVUZETEZsQlFWazdUVUZEY2tJc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzAxQlF6TkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8wRkJRMklzUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWV0xFZEJRVWNzUTBGQlF5eERRVUZET3p0QlFVVk1MRVZCUVVVc1JVRkJSU3hEUVVGRExHOUlRVUZ2U0N4RlFVRkZMRmxCUVZrN08wbEJSVzVKTEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzAxQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdUVUZEZEVJc1RVRkJUU3hGUVVGRkxGbEJRVms3VVVGRGJFSXNUMEZCVHl4dlFrRkJRU3hQUVVGTkxFVkJRVUVzUTBGQlFTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVWNzUTBGQlJTeERRVUZCTzA5QlEzaERPMHRCUTBZc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRkZCUVZVc1EwRkJRU3hGUVVGQk8xRkJReTlDTEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlN5eERRVUZGTEVOQlFVRTdUVUZEZGtJc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMEZCUlU0c1NVRkJTU3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF6czdRVUZGYWtRc1NVRkJTU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN08wbEJSVGxETEZOQlFWTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1JVRkJSVHROUVVOMlFpeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRE8xRkJRMjVDTEVkQlFVY3NSVUZCUlN4TFFVRkxPMDlCUTFnc1EwRkJReXhEUVVGRE8wRkJRMVFzUzBGQlN6czdRVUZGVEN4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRlRDeEZRVUZGTEVWQlFVVXNRMEZCUXl3MFJrRkJORVlzUlVGQlJTeFZRVUZWTEVsQlFVa3NSVUZCUlRzN1NVRkZMMGNzU1VGQlNTeFhRVUZYTEVkQlFVY3NUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dEpRVU5xUkN4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1IwRkJRU3hGUVVGSExFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVTXNWMEZCUVN4RlFVRlhMRU5CUVVVc1YwRkJZU3hEUVVGQk8wMUJRM1JETEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0TlFVTXpReXhOUVVGTkxFVkJRVVVzUjBGQlJ6dE5RVU5ZTEZkQlFWY3NSVUZCUlN4clFrRkJhMEk3VFVGREwwSXNXVUZCV1N4RlFVRkZMRWxCUVVrN1FVRkRlRUlzUzBGQlN5eERRVUZETEVOQlFVTTdPMEZCUlZBc1NVRkJTU3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU5xUkR0QlFVTkJPenRKUVVWSkxGVkJRVlVzUTBGQlF5eFpRVUZaTzAxQlEzSkNMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRE8wMUJRM1pETEVsQlFVa3NSVUZCUlN4RFFVRkRPMEZCUTJJc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVldMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMREJHUVVFd1JpeEZRVUZGTEZWQlFWVXNTVUZCU1N4RlFVRkZPenRKUVVVM1J5eEpRVUZKTEZkQlFWY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzBsQlEycEVMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhIUVVGQkxFVkJRVWNzUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUXl4WFFVRkJMRVZCUVZjc1EwRkJSU3hYUVVGaExFTkJRVUU3VFVGRGRFTXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMDFCUXpORExFMUJRVTBzUlVGQlJTeEhRVUZITzAxQlExZ3NWMEZCVnl4RlFVRkZMR3RDUVVGclFqdE5RVU12UWl4WlFVRlpMRVZCUVVVc1NVRkJTVHRCUVVONFFpeExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZVQ3hKUVVGSkxGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEycEVPMEZCUTBFN08wbEJSVWtzVlVGQlZTeERRVUZETEZsQlFWazdUVUZEY2tJc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03VFVGRGRrTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1FVRkRZaXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdPMEZCUlZZc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4RlFVRkZMRU5CUVVNc2MwWkJRWE5HTEVWQlFVVXNWVUZCVlN4SlFVRkpMRVZCUVVVN08wbEJSWHBITEVsQlFVa3NUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEZWtNc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRanROUVVOeVF5eHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExFZEJRVUVzUlVGQlJ5eERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkRMRTlCUVVFc1JVRkJUeXhEUVVGRkxFOUJRVk1zUTBGQlFUdE5RVU01UWl4RFFVRkJPMEZCUTNCQ0xFdEJRVXNzUTBGQlF6dEJRVU5PT3p0SlFVVkpMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenROUVVNelF5eE5RVUZOTEVWQlFVVXNSMEZCUnp0TlFVTllMRmRCUVZjc1JVRkJSU3hyUWtGQmEwSTdUVUZETDBJc1dVRkJXU3hGUVVGRkxFbEJRVWs3UVVGRGVFSXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wRkJSVkFzU1VGQlNTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTnFSRHRCUVVOQk96dEpRVVZKTEZWQlFWVXNRMEZCUXl4WlFVRlpPMDFCUTNKQ0xFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0TlFVTjZReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEJRVU5pTEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenM3UVVGRlZpeEhRVUZITEVOQlFVTXNRMEZCUXpzN1EwRkZTaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMllYSWdSbTl5YlhONUlEMGdjbVZ4ZFdseVpTZ25MaTh1TGk5emNtTXZiV0ZwYmk1cWN5Y3BPMXh1WEc1a1pYTmpjbWxpWlNnblFXcGhlQ2NzSUdaMWJtTjBhVzl1S0NrZ2UxeHVYRzRnSUdKbFptOXlaVVZoWTJnb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lHcGhjMjFwYm1VdVFXcGhlQzVwYm5OMFlXeHNLQ2s3WEc0Z0lIMHBPMXh1WEc0Z0lHRm1kR1Z5UldGamFDaG1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdhbUZ6YldsdVpTNUJhbUY0TG5WdWFXNXpkR0ZzYkNncE8xeHVJQ0I5S1R0Y2JseHVJQ0JwZENnbmMyaHZkV3hrSUhCdmMzUWdkRzhnWVNCbmFYWmxiaUIxY213Z2FXWWdjR0Z6YzJWa0p5d2dablZ1WTNScGIyNGdLQ2tnZTF4dVhHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJSFZ5YkQxY0lpOTFjMlZ5YzF3aVBseHVJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQXBPMXh1SUNBZ0lGeHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1emRXSnRhWFFvWm05eWJTNW5aWFJFVDAxT2IyUmxLQ2twTzF4dUlDQWdJR1Y0Y0dWamRDaHFZWE50YVc1bExrRnFZWGd1Y21WeGRXVnpkSE11Ylc5emRGSmxZMlZ1ZENncExuVnliQ2t1ZEc5Q1pTZ25MM1Z6WlhKekp5azdYRzRnSUNBZ1pYaHdaV04wS0dwaGMyMXBibVV1UVdwaGVDNXlaWEYxWlhOMGN5NXRiM04wVW1WalpXNTBLQ2t1YldWMGFHOWtLUzUwYjBKbEtDZFFUMU5VSnlrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCd2RYUWdkRzhnWVNCbmFYWmxiaUIxY213Z2FXWWdjR0Z6YzJWa0lHRWdiV1YwYUc5a0lHRjBkSEpwWW5WMFpTY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDaGNiaUFnSUNBZ0lEeEdiM0p0YzNrdVJtOXliU0IxY213OVhDSXZkWE5sY25OY0lpQnRaWFJvYjJROVhDSlFWVlJjSWo1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNiaUFnSUNCY2JpQWdJQ0JVWlhOMFZYUnBiSE11VTJsdGRXeGhkR1V1YzNWaWJXbDBLR1p2Y20wdVoyVjBSRTlOVG05a1pTZ3BLVHRjYmlBZ0lDQmxlSEJsWTNRb2FtRnpiV2x1WlM1QmFtRjRMbkpsY1hWbGMzUnpMbTF2YzNSU1pXTmxiblFvS1M1MWNtd3BMblJ2UW1Vb0p5OTFjMlZ5Y3ljcE8xeHVJQ0FnSUdWNGNHVmpkQ2hxWVhOdGFXNWxMa0ZxWVhndWNtVnhkV1Z6ZEhNdWJXOXpkRkpsWTJWdWRDZ3BMbTFsZEdodlpDa3VkRzlDWlNnblVGVlVKeWs3WEc1Y2JpQWdmU2s3WEc1Y2JpQWdhWFFvSjNOb2IzVnNaQ0J3WVhOeklIZ3RkM2QzTFdadmNtMHRkWEpzWlc1amIyUmxaQ0JoY3lCamIyNTBaVzUwVkhsd1pTQjNhR1Z1SUhWeWJHVnVZMjlrWldRZ2FYTWdjMlYwSUdGeklHTnZiblJsYm5SVWVYQmxKeXdnWm5WdVkzUnBiMjRnS0NrZ2UxeHVYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUhWeWJEMWNJaTkxYzJWeWMxd2lJR052Ym5SbGJuUlVlWEJsUFZ3aWRYSnNaVzVqYjJSbFpGd2lQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dUlDQWdJRnh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE8xeHVJQ0FnSUdWNGNHVmpkQ2hxWVhOdGFXNWxMa0ZxWVhndWNtVnhkV1Z6ZEhNdWJXOXpkRkpsWTJWdWRDZ3BMbU52Ym5SbGJuUlVlWEJsS0NrcExuUnZRbVVvSjJGd2NHeHBZMkYwYVc5dUwzZ3RkM2QzTFdadmNtMHRkWEpzWlc1amIyUmxaQ2NwTzF4dVhHNGdJSDBwTzF4dVhHNGdJR2wwS0NkemFHOTFiR1FnY25WdUlHRnVJRzl1VTNWalkyVnpjeUJvWVc1a2JHVnlMQ0JwWmlCd1lYTnpaV1FnWVc1a0lHRnFZWGdnYVhNZ2MzVmpZMlZ6YzJaMWJHd3VJRVpwY25OMElHRnlaM1Z0Wlc1MElHbHpJR1JoZEdFZ1puSnZiU0J6WlhKMlpYSW5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1SUZ4dUlDQWdJSFpoY2lCdmJsTjFZMk5sYzNNZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTaGNJbk4xWTJObGMzTmNJaWs3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElIVnliRDFjSWk5MWMyVnljMXdpSUc5dVUzVmpZMlZ6Y3oxN2IyNVRkV05qWlhOemZUNWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmlBZ0lDQmNiaUFnSUNCcVlYTnRhVzVsTGtGcVlYZ3VjM1IxWWxKbGNYVmxjM1FvSnk5MWMyVnljeWNwTG1GdVpGSmxkSFZ5YmloN1hHNGdJQ0FnSUNCemRHRjBkWE02SURJd01DeGNiaUFnSUNBZ0lHTnZiblJsYm5SVWVYQmxPaUFuWVhCd2JHbGpZWFJwYjI0dmFuTnZiaWNzWEc0Z0lDQWdJQ0J5WlhOd2IyNXpaVlJsZUhRNklDZDdmU2RjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1WEc0Z0lDQWdMeThnVTJsdVkyVWdZV3BoZUNCcGN5QnlaWFIxY201bFpDQmhjeUJoSUhCeWIyMXBjMlVnS0dGemVXNWpLU3dnYlc5MlpTQmhjM05sY25ScGIyNWNiaUFnSUNBdkx5QjBieUJsYm1RZ2IyWWdaWFpsYm5RZ2JHOXZjRnh1SUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnWlhod1pXTjBLRzl1VTNWalkyVnpjeWt1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaRmRwZEdnb2UzMHBPMXh1SUNBZ0lDQWdaRzl1WlNncE8xeHVJQ0FnSUgwc0lEQXBPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2R6YUc5MWJHUWdibTkwSUdSdklHRnFZWGdnY21WeGRXVnpkQ0JwWmlCdmJsTjFZbTFwZENCb1lXNWtiR1Z5SUdseklIQmhjM05sWkN3Z1luVjBJSEJoYzNNZ2RHaGxJRzF2WkdWc0lHRnpJR1pwY25OMElHRnlaM1Z0Wlc1MElIUnZJRzl1VTNWaWJXbDBJR2hoYm1Sc1pYSW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnWEc0Z0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lHMXBlR2x1Y3pvZ1cwWnZjbTF6ZVM1TmFYaHBibDBzWEc0Z0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUR4cGJuQjFkQ0IyWVd4MVpUMTdkR2hwY3k1blpYUldZV3gxWlNncGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUc5dVUzVmliV2wwUFh0dmJsTjFZbTFwZEgwK1hHNGdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpSUhaaGJIVmxQVndpWW1GeVhDSXZQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG5OMVltMXBkQ2htYjNKdExtZGxkRVJQVFU1dlpHVW9LU2s3WEc1Y2JpQWdJQ0JsZUhCbFkzUW9hbUZ6YldsdVpTNUJhbUY0TG5KbGNYVmxjM1J6TG1OdmRXNTBLQ2twTG5SdlFtVW9NQ2s3WEc1Y2JpQWdJQ0JtZFc1amRHbHZiaUJ2YmxOMVltMXBkQ0FvWkdGMFlTa2dlMXh1SUNBZ0lDQWdaWGh3WldOMEtHUmhkR0VwTG5SdlJYRjFZV3dvZTF4dUlDQWdJQ0FnSUNCbWIyODZJQ2RpWVhJblhHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCMGNtbG5aMlZ5SUdGdUlHOXVVM1ZpYldsMGRHVmtJR2hoYm1Sc1pYSXNJR2xtSUhCaGMzTmxaQ0JoYm1RZ2RHaGxJSE4xWW0xcGRDQm9ZWE1nY21WemNHOXVaR1ZrSUhkcGRHZ2dVMVZEUTBWVFV5Y3NJR1oxYm1OMGFXOXVJQ2hrYjI1bEtTQjdYRzRnSUNBZ1hHNGdJQ0FnZG1GeUlHOXVVM1ZpYldsMGRHVmtJRDBnYW1GemJXbHVaUzVqY21WaGRHVlRjSGtvWENKemRXSnRhWFIwWldSY0lpazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUhWeWJEMWNJaTkxYzJWeWMxd2lJRzl1VTNWaWJXbDBkR1ZrUFh0dmJsTjFZbTFwZEhSbFpIMCtYRzRnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ2s3WEc0Z0lDQWdYRzRnSUNBZ2FtRnpiV2x1WlM1QmFtRjRMbk4wZFdKU1pYRjFaWE4wS0NjdmRYTmxjbk1uS1M1aGJtUlNaWFIxY200b2UxeHVJQ0FnSUNBZ2MzUmhkSFZ6T2lBeU1EQXNYRzRnSUNBZ0lDQmpiMjUwWlc1MFZIbHdaVG9nSjJGd2NHeHBZMkYwYVc5dUwycHpiMjRuTEZ4dUlDQWdJQ0FnY21WemNHOXVjMlZVWlhoME9pQW5lMzBuWEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0JVWlhOMFZYUnBiSE11VTJsdGRXeGhkR1V1YzNWaWJXbDBLR1p2Y20wdVoyVjBSRTlOVG05a1pTZ3BLVHRjYmx4dUlDQWdJQzh2SUZOcGJtTmxJR0ZxWVhnZ2FYTWdjbVYwZFhKdVpXUWdZWE1nWVNCd2NtOXRhWE5sSUNoaGMzbHVZeWtzSUcxdmRtVWdZWE56WlhKMGFXOXVYRzRnSUNBZ0x5OGdkRzhnWlc1a0lHOW1JR1YyWlc1MElHeHZiM0JjYmlBZ0lDQnpaWFJVYVcxbGIzVjBLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUdWNGNHVmpkQ2h2YmxOMVltMXBkSFJsWkNrdWRHOUlZWFpsUW1WbGJrTmhiR3hsWkNncE8xeHVJQ0FnSUNBZ1pHOXVaU2dwTzF4dUlDQWdJSDBzSURBcE8xeHVYRzRnSUgwcE8xeHVYRzRnSUdsMEtDZHphRzkxYkdRZ2RISnBaMmRsY2lCaGJpQnZibE4xWW0xcGRIUmxaQ0JvWVc1a2JHVnlMQ0JwWmlCd1lYTnpaV1FnWVc1a0lIUm9aU0J6ZFdKdGFYUWdhR0Z6SUhKbGMzQnZibVJsWkNCM2FYUm9JRVZTVWs5U0p5d2dablZ1WTNScGIyNGdLR1J2Ym1VcElIdGNiaUFnSUNCY2JpQWdJQ0IyWVhJZ2IyNVRkV0p0YVhSMFpXUWdQU0JxWVhOdGFXNWxMbU55WldGMFpWTndlU2hjSW5OMVltMXBkSFJsWkZ3aUtUdGNiaUFnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9YRzRnSUNBZ0lDQThSbTl5YlhONUxrWnZjbTBnZFhKc1BWd2lMM1Z6WlhKelhDSWdiMjVUZFdKdGFYUjBaV1E5ZTI5dVUzVmliV2wwZEdWa2ZUNWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmlBZ0lDQmNiaUFnSUNCcVlYTnRhVzVsTGtGcVlYZ3VjM1IxWWxKbGNYVmxjM1FvSnk5MWMyVnljeWNwTG1GdVpGSmxkSFZ5YmloN1hHNGdJQ0FnSUNCemRHRjBkWE02SURVd01DeGNiaUFnSUNBZ0lHTnZiblJsYm5SVWVYQmxPaUFuWVhCd2JHbGpZWFJwYjI0dmFuTnZiaWNzWEc0Z0lDQWdJQ0J5WlhOd2IyNXpaVlJsZUhRNklDZDdmU2RjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1WEc0Z0lDQWdMeThnVTJsdVkyVWdZV3BoZUNCcGN5QnlaWFIxY201bFpDQmhjeUJoSUhCeWIyMXBjMlVnS0dGemVXNWpLU3dnYlc5MlpTQmhjM05sY25ScGIyNWNiaUFnSUNBdkx5QjBieUJsYm1RZ2IyWWdaWFpsYm5RZ2JHOXZjRnh1SUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnWlhod1pXTjBLRzl1VTNWaWJXbDBkR1ZrS1M1MGIwaGhkbVZDWldWdVEyRnNiR1ZrS0NrN1hHNGdJQ0FnSUNCa2IyNWxLQ2s3WEc0Z0lDQWdmU3dnTUNrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCMGNtbG5aMlZ5SUdGdUlHOXVSWEp5YjNJZ2FHRnVaR3hsY2l3Z2FXWWdjR0Z6YzJWa0lHRnVaQ0IwYUdVZ2MzVmliV2wwSUdoaGN5QnlaWE53YjI1a1pXUWdkMmwwYUNCRlVsSlBVaWNzSUdaMWJtTjBhVzl1SUNoa2IyNWxLU0I3WEc0Z0lDQWdYRzRnSUNBZ2RtRnlJRzl1UlhKeWIzSWdQU0JxWVhOdGFXNWxMbU55WldGMFpWTndlU2hjSW1WeWNtOXlYQ0lwTzF4dUlDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENoY2JpQWdJQ0FnSUR4R2IzSnRjM2t1Um05eWJTQjFjbXc5WENJdmRYTmxjbk5jSWlCdmJrVnljbTl5UFh0dmJrVnljbTl5ZlQ1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNiaUFnSUNCY2JpQWdJQ0F2THlCRWJ5QnViM1FnY21WMGRYSnVJR0Z1ZVNCbGNuSnZjaUJpWldOaGRYTmxJSFJvWlhKbElHRnlaU0J1YnlCcGJuQjFkSE5jYmlBZ0lDQnFZWE50YVc1bExrRnFZWGd1YzNSMVlsSmxjWFZsYzNRb0p5OTFjMlZ5Y3ljcExtRnVaRkpsZEhWeWJpaDdYRzRnSUNBZ0lDQnpkR0YwZFhNNklEVXdNQ3hjYmlBZ0lDQWdJR052Ym5SbGJuUlVlWEJsT2lBbllYQndiR2xqWVhScGIyNHZhbk52Ymljc1hHNGdJQ0FnSUNCeVpYTndiMjV6WlZSbGVIUTZJQ2Q3ZlNkY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1emRXSnRhWFFvWm05eWJTNW5aWFJFVDAxT2IyUmxLQ2twTzF4dVhHNGdJQ0FnTHk4Z1UybHVZMlVnWVdwaGVDQnBjeUJ5WlhSMWNtNWxaQ0JoY3lCaElIQnliMjFwYzJVZ0tHRnplVzVqS1N3Z2JXOTJaU0JoYzNObGNuUnBiMjVjYmlBZ0lDQXZMeUIwYnlCbGJtUWdiMllnWlhabGJuUWdiRzl2Y0Z4dUlDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ1pYaHdaV04wS0c5dVJYSnliM0lwTG5SdlNHRjJaVUpsWlc1RFlXeHNaV1JYYVhSb0tIdDlLVHRjYmlBZ0lDQWdJR1J2Ym1Vb0tUdGNiaUFnSUNCOUxDQXdLVHRjYmx4dUlDQjlLVHRjYmx4dWZTazdYRzRpWFgwPSIsInZhciBGb3Jtc3kgPSByZXF1aXJlKCcuLy4uL3NyYy9tYWluLmpzJyk7XG5cbmRlc2NyaWJlKCdWYWxpZGF0aW9uJywgZnVuY3Rpb24oKSB7XG5cbiAgaXQoJ3Nob3VsZCB0cmlnZ2VyIGFuIG9uVmFsaWQgaGFuZGxlciwgaWYgcGFzc2VkLCB3aGVuIGZvcm0gaXMgdmFsaWQnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgb25WYWxpZCA9IGphc21pbmUuY3JlYXRlU3B5KCd2YWxpZCcpO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25WYWxpZDogb25WYWxpZH0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHJlcXVpcmVkOiB0cnVlfSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnZm9vJ319KTtcbiAgICBleHBlY3Qob25WYWxpZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdHJpZ2dlciBhbiBvbkludmFsaWQgaGFuZGxlciwgaWYgcGFzc2VkLCB3aGVuIGZvcm0gaXMgaW52YWxpZCcsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBvbkludmFsaWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnaW52YWxpZCcpO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25WYWxpZDogb25JbnZhbGlkfSwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICcnfX0pO1xuICAgIGV4cGVjdChvbkludmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnUlVMRTogaXNFbWFpbCcsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ3ZhbGlkJyk7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgaXNWYWxpZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNFbWFpbFwifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnZm9vQGZvby5jb20nfX0pO1xuICAgIGV4cGVjdChpc1ZhbGlkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgfSk7XG5cbiAgaXQoJ1JVTEU6IGlzTnVtZXJpYycsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ3ZhbGlkJyk7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgaXNWYWxpZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNOdW1lcmljXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBleHBlY3QoaXNWYWxpZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICcxMjMnfX0pO1xuICAgIGV4cGVjdChpc1ZhbGlkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgfSk7XG5cbiAgaXQoJ1JVTEU6IGlzTnVtZXJpYyAoYWN0dWFsIG51bWJlciknLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgaXNWYWxpZCA9IGphc21pbmUuY3JlYXRlU3B5KCd2YWxpZCcpO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKE51bWJlcihldmVudC50YXJnZXQudmFsdWUpKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgaXNWYWxpZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNOdW1lcmljXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBleHBlY3QoaXNWYWxpZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICcxMjMnfX0pO1xuICAgIGV4cGVjdChpc1ZhbGlkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgfSk7XG5cbiAgaXQoJ1JVTEU6IGlzTnVtZXJpYyAoc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgZmxvYXQpJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGlzVmFsaWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgndmFsaWQnKTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICBpc1ZhbGlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc051bWVyaWNcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIGV4cGVjdChpc1ZhbGlkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJzEuNSd9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnUlVMRTogaXNOdW1lcmljIGlzIGZhbHNlIChzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gaW52YWxpZCBmbG9hdCknLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgaXNWYWxpZCA9IGphc21pbmUuY3JlYXRlU3B5KCd2YWxpZCcpO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgIGlzVmFsaWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwgbnVsbCwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCIsIHZhbGlkYXRpb25zOiBcImlzTnVtZXJpY1wifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnMS4nfX0pO1xuICAgIGV4cGVjdChpc1ZhbGlkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gIH0pO1xuXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjR1ZqY3k5V1lXeHBaR0YwYVc5dUxYTndaV011YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTlWYzJWeWN5OWphSEpwYzNScFlXNWhiR1p2Ym1rdlJHOWpkVzFsYm5SekwyUmxkaTltYjNKdGMza3RjbVZoWTNRdmMzQmxZM012Vm1Gc2FXUmhkR2x2YmkxemNHVmpMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFbEJRVWtzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZET3p0QlFVVjZReXhSUVVGUkxFTkJRVU1zV1VGQldTeEZRVUZGTEZkQlFWYzdPMEZCUld4RExFVkJRVVVzUlVGQlJTeERRVUZETEd0RlFVRnJSU3hGUVVGRkxGbEJRVms3TzBsQlJXcEdMRWxCUVVrc1QwRkJUeXhIUVVGSExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRla01zU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VFVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dE5RVU4wUWl4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VVVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMDlCUTI1RE8wMUJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0UFFVTndSVHRMUVVOR0xFTkJRVU1zUTBGQlF6dEpRVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdUVUZEY2tNc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4UFFVRkJMRVZCUVU4c1EwRkJSU3hQUVVGVExFTkJRVUVzUlVGQlFUdFJRVU0zUWl4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExGRkJRVUVzUlVGQlFTeERRVUZGTEVOQlFVRTdUVUZEV2l4RFFVRkJPMEZCUTNCQ0xFdEJRVXNzUTBGQlF6czdTVUZGUml4SlFVRkpMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zSzBKQlFTdENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzSkZMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRMMFFzU1VGQlNTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNRMEZCUXpzN1FVRkZka01zUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlV3c1JVRkJSU3hGUVVGRkxFTkJRVU1zYzBWQlFYTkZMRVZCUVVVc1dVRkJXVHM3U1VGRmNrWXNTVUZCU1N4VFFVRlRMRWRCUVVjc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVTTNReXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHROUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8wMUJRM1JDTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRSUVVNMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdUMEZEYmtNN1RVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFJRVU5zUWl4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZETEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVVc1NVRkJTU3hEUVVGRExGZEJRVmtzUTBGQlJTeERRVUZCTzA5QlEzQkZPMHRCUTBZc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEU5QlFVRXNSVUZCVHl4RFFVRkZMRk5CUVZjc1EwRkJRU3hGUVVGQk8xRkJReTlDTEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlN5eERRVUZGTEVOQlFVRTdUVUZEZGtJc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMGxCUlVZc1NVRkJTU3hMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETEN0Q1FVRXJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTnlSU3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRelZFTEVsQlFVa3NUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN08wRkJSWHBETEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWTUxFVkJRVVVzUlVGQlJTeERRVUZETEdWQlFXVXNSVUZCUlN4WlFVRlpPenRKUVVVNVFpeEpRVUZKTEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzcERMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzVjBGQlZ5eEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFBRVU51UXp0TlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRk8xVkJRMnhDTEU5QlFVOHNSVUZCUlN4RFFVRkRPMU5CUTFnN1VVRkRSQ3hQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNTVUZCUXl4RlFVRkJPMUZCUTFnc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhYUVVGQkxFVkJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVVXNRMEZCUVR0TlFVTTNReXhEUVVGQk8wRkJRM0JDTEV0QlFVc3NRMEZCUXpzN1NVRkZSaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNKRkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNRMEZCUXp0SlFVTjJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1pGTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN08wRkJSWFpETEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWTUxFVkJRVVVzUlVGQlJTeERRVUZETEdsQ1FVRnBRaXhGUVVGRkxGbEJRVms3TzBsQlJXaERMRWxCUVVrc1QwRkJUeXhIUVVGSExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRla01zU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VFVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dE5RVU4wUWl4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VVVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMDlCUTI1RE8wMUJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdWVUZEYkVJc1QwRkJUeXhGUVVGRkxFTkJRVU03VTBGRFdEdFJRVU5FTEU5QlFVOHNiMEpCUVVFc1QwRkJUU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVU1zUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1YwRkJXU3hEUVVGRkxFTkJRVUU3VDBGRGNFVTdTMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRTQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRmRCUVZjc1JVRkJRU3hKUVVGRExFVkJRVUU3VVVGRFdDeHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEZkQlFVRXNSVUZCVnl4RFFVRkRMRmRCUVZjc1EwRkJSU3hEUVVGQk8wMUJReTlETEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEVsQlFVa3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrVXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRE8wbEJRM1pETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETDBRc1NVRkJTU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUTBGQlF6czdRVUZGZGtNc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4RlFVRkZMRU5CUVVNc2FVTkJRV2xETEVWQlFVVXNXVUZCV1RzN1NVRkZhRVFzU1VGQlNTeFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU42UXl4SlFVRkpMQ3RDUVVFclFpeDVRa0ZCUVR0TlFVTnFReXhOUVVGTkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMDFCUTNSQ0xGZEJRVmNzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlR0UlFVTTFRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdUMEZETTBNN1RVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFJRVU5zUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdFZRVU5zUWl4UFFVRlBMRVZCUVVVc1EwRkJRenRUUVVOWU8xRkJRMFFzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJReXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlpMRU5CUVVVc1EwRkJRVHRQUVVOd1JUdExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNWMEZCVnl4RlFVRkJMRWxCUVVNc1JVRkJRVHRSUVVOWUxHOUNRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkJMRU5CUVVNc1NVRkJRU3hGUVVGSkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zVjBGQlFTeEZRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkZMRU5CUVVFN1RVRkRMME1zUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wbEJSVVlzU1VGQlNTeExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOeVJTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1NVRkRka01zVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU12UkN4SlFVRkpMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRE96dEJRVVYyUXl4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRlRDeEZRVUZGTEVWQlFVVXNRMEZCUXl4dlJFRkJiMFFzUlVGQlJTeFpRVUZaT3p0SlFVVnVSU3hKUVVGSkxFOUJRVThzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM3BETEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzAxQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdUVUZEZEVJc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVOdVF6dE5RVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q0xFbEJRVWtzU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPMVZCUTJ4Q0xFOUJRVThzUlVGQlJTeERRVUZETzFOQlExZzdVVUZEUkN4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZETEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVVc1NVRkJTU3hEUVVGRExGZEJRVmtzUTBGQlJTeERRVUZCTzA5QlEzQkZPMHRCUTBZc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhYUVVGWExFVkJRVUVzU1VGQlF5eEZRVUZCTzFGQlExZ3NiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4WFFVRkJMRVZCUVZjc1EwRkJReXhYUVVGWExFTkJRVVVzUTBGQlFUdE5RVU12UXl4RFFVRkJPMEZCUTNCQ0xFdEJRVXNzUTBGQlF6czdTVUZGUml4SlFVRkpMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zSzBKQlFTdENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzSkZMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUTBGQlF6dEpRVU4yUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXk5RUxFbEJRVWtzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdPMEZCUlhaRExFZEJRVWNzUTBGQlF5eERRVUZET3p0QlFVVk1MRVZCUVVVc1JVRkJSU3hEUVVGRExITkZRVUZ6UlN4RlFVRkZMRmxCUVZrN08wbEJSWEpHTEVsQlFVa3NUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEZWtNc1NVRkJTU3dyUWtGQkswSXNlVUpCUVVFN1RVRkRha01zVFVGQlRTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJRenROUVVOMFFpeFhRVUZYTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1VVRkROVUlzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzA5QlEyNURPMDFCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VVVGRGJFSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVU3VlVGRGJFSXNUMEZCVHl4RlFVRkZMRU5CUVVNN1UwRkRXRHRSUVVORUxFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1QwRkRjRVU3UzBGRFJpeERRVUZETEVOQlFVTTdTVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4SlFVRkRMRVZCUVVFN1VVRkRXQ3h2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExGZEJRVUVzUlVGQlZ5eERRVUZETEZkQlFWY3NRMEZCUlN4RFFVRkJPMDFCUXk5RExFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xFbEJRVWtzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1VzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RFFVRkRPMGxCUTNaRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE9VUXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03TzBGQlJUTkRMRWRCUVVjc1EwRkJReXhEUVVGRE96dERRVVZLTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkluWmhjaUJHYjNKdGMza2dQU0J5WlhGMWFYSmxLQ2N1THk0dUwzTnlZeTl0WVdsdUxtcHpKeWs3WEc1Y2JtUmxjMk55YVdKbEtDZFdZV3hwWkdGMGFXOXVKeXdnWm5WdVkzUnBiMjRvS1NCN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCMGNtbG5aMlZ5SUdGdUlHOXVWbUZzYVdRZ2FHRnVaR3hsY2l3Z2FXWWdjR0Z6YzJWa0xDQjNhR1Z1SUdadmNtMGdhWE1nZG1Gc2FXUW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCMllYSWdiMjVXWVd4cFpDQTlJR3BoYzIxcGJtVXVZM0psWVhSbFUzQjVLQ2QyWVd4cFpDY3BPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdkWEJrWVhSbFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMGdiMjVEYUdGdVoyVTllM1JvYVhNdWRYQmtZWFJsVm1Gc2RXVjlMejVjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvWEc0Z0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wZ2IyNVdZV3hwWkQxN2IyNVdZV3hwWkgwK1hHNGdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpSUhKbGNYVnBjbVZrTHo1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNibHh1SUNBZ0lIWmhjaUJwYm5CMWRDQTlJRlJsYzNSVmRHbHNjeTVtYVc1a1VtVnVaR1Z5WldSRVQwMURiMjF3YjI1bGJuUlhhWFJvVkdGbktHWnZjbTBzSUNkSlRsQlZWQ2NwTzF4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9hVzV3ZFhRc0lIdDBZWEpuWlhRNklIdDJZV3gxWlRvZ0oyWnZieWQ5ZlNrN1hHNGdJQ0FnWlhod1pXTjBLRzl1Vm1Gc2FXUXBMblJ2U0dGMlpVSmxaVzVEWVd4c1pXUW9LVHRjYmx4dUlDQjlLVHRjYmx4dUlDQnBkQ2duYzJodmRXeGtJSFJ5YVdkblpYSWdZVzRnYjI1SmJuWmhiR2xrSUdoaGJtUnNaWElzSUdsbUlIQmhjM05sWkN3Z2QyaGxiaUJtYjNKdElHbHpJR2x1ZG1Gc2FXUW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCMllYSWdiMjVKYm5aaGJHbGtJRDBnYW1GemJXbHVaUzVqY21WaGRHVlRjSGtvSjJsdWRtRnNhV1FuS1R0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUhWd1pHRjBaVlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNobGRtVnVkQzUwWVhKblpYUXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMblZ3WkdGMFpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJRzl1Vm1Gc2FXUTllMjl1U1c1MllXeHBaSDArWEc0Z0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSW1admIxd2lJSFpoYkhWbFBWd2labTl2WENJdlBseHVJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdkbUZ5SUdsdWNIVjBJRDBnVkdWemRGVjBhV3h6TG1acGJtUlNaVzVrWlhKbFpFUlBUVU52YlhCdmJtVnVkRmRwZEdoVVlXY29abTl5YlN3Z0owbE9VRlZVSnlrN1hHNGdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG1Ob1lXNW5aU2hwYm5CMWRDd2dlM1JoY21kbGREb2dlM1poYkhWbE9pQW5KMzE5S1R0Y2JpQWdJQ0JsZUhCbFkzUW9iMjVKYm5aaGJHbGtLUzUwYjBoaGRtVkNaV1Z1UTJGc2JHVmtLQ2s3WEc1Y2JpQWdmU2s3WEc1Y2JpQWdhWFFvSjFKVlRFVTZJR2x6UlcxaGFXd25MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCMllYSWdhWE5XWVd4cFpDQTlJR3BoYzIxcGJtVXVZM0psWVhSbFUzQjVLQ2QyWVd4cFpDY3BPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdkWEJrWVhSbFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtbHpWbUZzYVdRb0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdselZtRnNhV1FvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxuVndaR0YwWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNBZ0lDQThWR1Z6ZEVsdWNIVjBJRzVoYldVOVhDSm1iMjljSWlCMllXeDFaVDFjSW1admIxd2lJSFpoYkdsa1lYUnBiMjV6UFZ3aWFYTkZiV0ZwYkZ3aUx6NWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSFpoY2lCcGJuQjFkQ0E5SUZSbGMzUlZkR2xzY3k1bWFXNWtVbVZ1WkdWeVpXUkVUMDFEYjIxd2IyNWxiblJYYVhSb1ZHRm5LR1p2Y20wc0lDZEpUbEJWVkNjcE8xeHVJQ0FnSUdWNGNHVmpkQ2hwYzFaaGJHbGtLUzV1YjNRdWRHOUlZWFpsUW1WbGJrTmhiR3hsWkNncE8xeHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1amFHRnVaMlVvYVc1d2RYUXNJSHQwWVhKblpYUTZJSHQyWVd4MVpUb2dKMlp2YjBCbWIyOHVZMjl0SjMxOUtUdGNiaUFnSUNCbGVIQmxZM1FvYVhOV1lXeHBaQ2t1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dVhHNGdJSDBwTzF4dVhHNGdJR2wwS0NkU1ZVeEZPaUJwYzA1MWJXVnlhV01uTENCbWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQjJZWElnYVhOV1lXeHBaQ0E5SUdwaGMyMXBibVV1WTNKbFlYUmxVM0I1S0NkMllXeHBaQ2NwTzF4dUlDQWdJSFpoY2lCVVpYTjBTVzV3ZFhRZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQnRhWGhwYm5NNklGdEdiM0p0YzNrdVRXbDRhVzVkTEZ4dUlDQWdJQ0FnZFhCa1lYUmxWbUZzZFdVNklHWjFibU4wYVc5dUlDaGxkbVZ1ZENrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGWmhiSFZsS0dWMlpXNTBMblJoY21kbGRDNTJZV3gxWlNrN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbWx6Vm1Gc2FXUW9LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbHpWbUZzYVdRb0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMblZ3WkdGMFpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0ptYjI5Y0lpQjJZV3gxWlQxY0ltWnZiMXdpSUhaaGJHbGtZWFJwYjI1elBWd2lhWE5PZFcxbGNtbGpYQ0l2UGx4dUlDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBcE8xeHVYRzRnSUNBZ2RtRnlJR2x1Y0hWMElEMGdWR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVSUFRVTnZiWEJ2Ym1WdWRGZHBkR2hVWVdjb1ptOXliU3dnSjBsT1VGVlVKeWs3WEc0Z0lDQWdaWGh3WldOMEtHbHpWbUZzYVdRcExtNXZkQzUwYjBoaGRtVkNaV1Z1UTJGc2JHVmtLQ2s3WEc0Z0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaHBibkIxZEN3Z2UzUmhjbWRsZERvZ2UzWmhiSFZsT2lBbk1USXpKMzE5S1R0Y2JpQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VkRzlJWVhabFFtVmxia05oYkd4bFpDZ3BPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2RTVlV4Rk9pQnBjMDUxYldWeWFXTWdLR0ZqZEhWaGJDQnVkVzFpWlhJcEp5d2dablZ1WTNScGIyNGdLQ2tnZTF4dVhHNGdJQ0FnZG1GeUlHbHpWbUZzYVdRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTZ25kbUZzYVdRbktUdGNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lIVndaR0YwWlZaaGJIVmxPaUJtZFc1amRHbHZiaUFvWlhabGJuUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaE9kVzFpWlhJb1pYWmxiblF1ZEdGeVoyVjBMblpoYkhWbEtTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1selZtRnNhV1FvS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6Vm1Gc2FXUW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG5Wd1pHRjBaVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbVp2YjF3aUlIWmhiR2xrWVhScGIyNXpQVndpYVhOT2RXMWxjbWxqWENJdlBseHVJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdkbUZ5SUdsdWNIVjBJRDBnVkdWemRGVjBhV3h6TG1acGJtUlNaVzVrWlhKbFpFUlBUVU52YlhCdmJtVnVkRmRwZEdoVVlXY29abTl5YlN3Z0owbE9VRlZVSnlrN1hHNGdJQ0FnWlhod1pXTjBLR2x6Vm1Gc2FXUXBMbTV2ZEM1MGIwaGhkbVZDWldWdVEyRnNiR1ZrS0NrN1hHNGdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG1Ob1lXNW5aU2hwYm5CMWRDd2dlM1JoY21kbGREb2dlM1poYkhWbE9pQW5NVEl6SjMxOUtUdGNiaUFnSUNCbGVIQmxZM1FvYVhOV1lXeHBaQ2t1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dVhHNGdJSDBwTzF4dVhHNGdJR2wwS0NkU1ZVeEZPaUJwYzA1MWJXVnlhV01nS0hOMGNtbHVaeUJ5WlhCeVpYTmxiblJoZEdsdmJpQnZaaUJoSUdac2IyRjBLU2NzSUdaMWJtTjBhVzl1SUNncElIdGNibHh1SUNBZ0lIWmhjaUJwYzFaaGJHbGtJRDBnYW1GemJXbHVaUzVqY21WaGRHVlRjSGtvSjNaaGJHbGtKeWs3WEc0Z0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lHMXBlR2x1Y3pvZ1cwWnZjbTF6ZVM1TmFYaHBibDBzWEc0Z0lDQWdJQ0IxY0dSaGRHVldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tHVjJaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFZtRnNkV1VvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVhWE5XWVd4cFpDZ3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FYTldZV3hwWkNncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQThhVzV3ZFhRZ2RtRnNkV1U5ZTNSb2FYTXVaMlYwVm1Gc2RXVW9LWDBnYjI1RGFHRnVaMlU5ZTNSb2FYTXVkWEJrWVhSbFZtRnNkV1Y5THo1Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JpQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb1hHNGdJQ0FnSUNBOFJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJbVp2YjF3aUlIWmhiSFZsUFZ3aVptOXZYQ0lnZG1Gc2FXUmhkR2x2Ym5NOVhDSnBjMDUxYldWeWFXTmNJaTgrWEc0Z0lDQWdJQ0E4TDBadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNrN1hHNWNiaUFnSUNCMllYSWdhVzV3ZFhRZ1BTQlVaWE4wVlhScGJITXVabWx1WkZKbGJtUmxjbVZrUkU5TlEyOXRjRzl1Wlc1MFYybDBhRlJoWnlobWIzSnRMQ0FuU1U1UVZWUW5LVHRjYmlBZ0lDQmxlSEJsWTNRb2FYTldZV3hwWkNrdWJtOTBMblJ2U0dGMlpVSmxaVzVEWVd4c1pXUW9LVHRjYmlBZ0lDQlVaWE4wVlhScGJITXVVMmx0ZFd4aGRHVXVZMmhoYm1kbEtHbHVjSFYwTENCN2RHRnlaMlYwT2lCN2RtRnNkV1U2SUNjeExqVW5mWDBwTzF4dUlDQWdJR1Y0Y0dWamRDaHBjMVpoYkdsa0tTNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa0tDazdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KMUpWVEVVNklHbHpUblZ0WlhKcFl5QnBjeUJtWVd4elpTQW9jM1J5YVc1bklISmxjSEpsYzJWdWRHRjBhVzl1SUc5bUlHRnVJR2x1ZG1Gc2FXUWdabXh2WVhRcEp5d2dablZ1WTNScGIyNGdLQ2tnZTF4dVhHNGdJQ0FnZG1GeUlHbHpWbUZzYVdRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTZ25kbUZzYVdRbktUdGNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lIVndaR0YwWlZaaGJIVmxPaUJtZFc1amRHbHZiaUFvWlhabGJuUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaGxkbVZ1ZEM1MFlYSm5aWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1cGMxWmhiR2xrS0NrcElIdGNiaUFnSUNBZ0lDQWdJQ0JwYzFaaGJHbGtLQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUR4cGJuQjFkQ0IyWVd4MVpUMTdkR2hwY3k1blpYUldZV3gxWlNncGZTQnZia05vWVc1blpUMTdkR2hwY3k1MWNHUmhkR1ZXWVd4MVpYMHZQbHh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2hjYmlBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FnSUNBZ1BGUmxjM1JKYm5CMWRDQnVZVzFsUFZ3aVptOXZYQ0lnZG1Gc2RXVTlYQ0ptYjI5Y0lpQjJZV3hwWkdGMGFXOXVjejFjSW1selRuVnRaWEpwWTF3aUx6NWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSFpoY2lCcGJuQjFkQ0E5SUZSbGMzUlZkR2xzY3k1bWFXNWtVbVZ1WkdWeVpXUkVUMDFEYjIxd2IyNWxiblJYYVhSb1ZHRm5LR1p2Y20wc0lDZEpUbEJWVkNjcE8xeHVJQ0FnSUdWNGNHVmpkQ2hwYzFaaGJHbGtLUzV1YjNRdWRHOUlZWFpsUW1WbGJrTmhiR3hsWkNncE8xeHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1amFHRnVaMlVvYVc1d2RYUXNJSHQwWVhKblpYUTZJSHQyWVd4MVpUb2dKekV1SjMxOUtUdGNiaUFnSUNCbGVIQmxZM1FvYVhOV1lXeHBaQ2t1Ym05MExuUnZTR0YyWlVKbFpXNURZV3hzWldRb0tUdGNibHh1SUNCOUtUdGNibHh1ZlNrN1hHNGlYWDA9IiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIHZhciB2YWx1ZSA9ICd2YWx1ZScgaW4gdGhpcy5wcm9wcyA/IHRoaXMucHJvcHMudmFsdWUgOiAnJztcbiAgICByZXR1cm4ge1xuICAgICAgX3ZhbHVlOiB2YWx1ZSxcbiAgICAgIF9pc1ZhbGlkOiB0cnVlLFxuICAgICAgX2lzUHJpc3RpbmU6IHRydWUsXG4gICAgICBfcHJpc3RpbmVWYWx1ZTogdmFsdWVcbiAgICB9O1xuICB9LFxuICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBjb25maWd1cmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLnNldFZhbGlkYXRpb25zKHRoaXMucHJvcHMudmFsaWRhdGlvbnMsIHRoaXMucHJvcHMucmVxdWlyZWQpO1xuICAgICAgdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtKHRoaXMpO1xuICAgIH0uYmluZCh0aGlzKTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5uYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm0gSW5wdXQgcmVxdWlyZXMgYSBuYW1lIHByb3BlcnR5IHdoZW4gdXNlZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtKSB7XG4gICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRm9ybSBNaXhpbiByZXF1aXJlcyBjb21wb25lbnQgdG8gYmUgbmVzdGVkIGluIGEgRm9ybScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbmZpZ3VyZSgpO1xuICAgICAgfS5iaW5kKHRoaXMpLCAwKTtcbiAgICB9XG4gICAgY29uZmlndXJlKCk7XG5cbiAgfSxcblxuICAvLyBXZSBoYXZlIHRvIG1ha2UgdGhlIHZhbGlkYXRlIG1ldGhvZCBpcyBrZXB0IHdoZW4gbmV3IHByb3BzIGFyZSBhZGRlZFxuICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzOiBmdW5jdGlvbiAobmV4dFByb3BzKSB7XG4gICAgbmV4dFByb3BzLl9hdHRhY2hUb0Zvcm0gPSB0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm07XG4gICAgbmV4dFByb3BzLl9kZXRhY2hGcm9tRm9ybSA9IHRoaXMucHJvcHMuX2RldGFjaEZyb21Gb3JtO1xuICAgIG5leHRQcm9wcy5fdmFsaWRhdGUgPSB0aGlzLnByb3BzLl92YWxpZGF0ZTtcbiAgICB0aGlzLnNldFZhbGlkYXRpb25zKG5leHRQcm9wcy52YWxpZGF0aW9ucywgbmV4dFByb3BzLnJlcXVpcmVkKTtcbiAgfSxcblxuICBjb21wb25lbnREaWRVcGRhdGU6IGZ1bmN0aW9uIChwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuXG4gICAgdmFyIGlzVmFsdWVDaGFuZ2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgXG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLnByb3BzLnZhbHVlICE9PSBwcmV2UHJvcHMudmFsdWUgJiYgKFxuICAgICAgICAgIHRoaXMuc3RhdGUuX3ZhbHVlID09PSBwcmV2UHJvcHMudmFsdWUgfHxcblxuICAgICAgICAgIC8vIFNpbmNlIHVuZGVmaW5lZCBpcyBjb252ZXJ0ZWQgdG8gZW1wdHkgc3RyaW5nIHdlIGhhdmUgdG9cbiAgICAgICAgICAvLyBjaGVjayB0aGF0IHNwZWNpZmljYWxseVxuICAgICAgICAgICh0aGlzLnN0YXRlLl92YWx1ZSA9PT0gJycgJiYgcHJldlByb3BzLnZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICB9LmJpbmQodGhpcyk7XG5cblxuICAgIC8vIElmIHZhbGlkYXRpb25zIGhhcyBjaGFuZ2VkIG9yIHNvbWV0aGluZyBvdXRzaWRlIGNoYW5nZXMgXG4gICAgLy8gdGhlIHZhbHVlLCBzZXQgdGhlIHZhbHVlIGFnYWluIHJ1bm5pbmcgYSB2YWxpZGF0aW9uXG5cbiAgICBpZiAocHJldlByb3BzLnZhbGlkYXRpb25zICE9PSB0aGlzLnByb3BzLnZhbGlkYXRpb25zIHx8IGlzVmFsdWVDaGFuZ2VkKCkpIHtcbiAgICAgIHZhciB2YWx1ZSA9ICd2YWx1ZScgaW4gdGhpcy5wcm9wcyA/IHRoaXMucHJvcHMudmFsdWUgOiAnJztcbiAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfSxcblxuICAvLyBEZXRhY2ggaXQgd2hlbiBjb21wb25lbnQgdW5tb3VudHNcbiAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnByb3BzLl9kZXRhY2hGcm9tRm9ybSh0aGlzKTtcbiAgfSxcblxuICBzZXRWYWxpZGF0aW9uczogZnVuY3Rpb24gKHZhbGlkYXRpb25zLCByZXF1aXJlZCkge1xuXG4gICAgLy8gQWRkIHZhbGlkYXRpb25zIHRvIHRoZSBzdG9yZSBpdHNlbGYgYXMgdGhlIHByb3BzIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkXG4gICAgdGhpcy5fdmFsaWRhdGlvbnMgPSB2YWxpZGF0aW9ucyB8fCAnJztcblxuICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbnMgPSB2YWxpZGF0aW9ucyA/IHZhbGlkYXRpb25zICsgJywnIDogJyc7XG4gICAgICB0aGlzLl92YWxpZGF0aW9ucyArPSAnaXNWYWx1ZSc7XG4gICAgfVxuXG4gIH0sXG5cbiAgLy8gV2UgdmFsaWRhdGUgYWZ0ZXIgdGhlIHZhbHVlIGhhcyBiZWVuIHNldFxuICBzZXRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBfdmFsdWU6IHZhbHVlLFxuICAgICAgX2lzUHJpc3RpbmU6IGZhbHNlXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5wcm9wcy5fdmFsaWRhdGUodGhpcyk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcbiAgcmVzZXRWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgX3ZhbHVlOiB0aGlzLnN0YXRlLl9wcmlzdGluZVZhbHVlLFxuICAgICAgX2lzUHJpc3RpbmU6IHRydWVcbiAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLnByb3BzLl92YWxpZGF0ZSh0aGlzKTtcbiAgICB9KTtcbiAgfSxcbiAgZ2V0VmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5fdmFsdWU7XG4gIH0sXG4gIGhhc1ZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX3ZhbHVlICE9PSAnJztcbiAgfSxcbiAgZ2V0RXJyb3JNZXNzYWdlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpIHx8IHRoaXMuc2hvd1JlcXVpcmVkKCkgPyBudWxsIDogdGhpcy5zdGF0ZS5fc2VydmVyRXJyb3IgfHwgdGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3I7XG4gIH0sXG4gIGlzRm9ybURpc2FibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuX2lzRm9ybURpc2FibGVkKCk7XG4gIH0sXG4gIGlzVmFsaWQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5faXNWYWxpZDtcbiAgfSxcbiAgaXNQcmlzdGluZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLl9pc1ByaXN0aW5lO1xuICB9LFxuICBpc1JlcXVpcmVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5wcm9wcy5yZXF1aXJlZDtcbiAgfSxcbiAgc2hvd1JlcXVpcmVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZXF1aXJlZCgpICYmIHRoaXMuc3RhdGUuX3ZhbHVlID09PSAnJztcbiAgfSxcbiAgc2hvd0Vycm9yOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICF0aGlzLnNob3dSZXF1aXJlZCgpICYmICF0aGlzLnN0YXRlLl9pc1ZhbGlkO1xuICB9LFxuICBpc1ZhbGlkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLl9pc1ZhbGlkVmFsdWUuY2FsbChudWxsLCB0aGlzLCB2YWx1ZSk7XG4gIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdlRXbDRhVzR1YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTlWYzJWeWN5OWphSEpwYzNScFlXNWhiR1p2Ym1rdlJHOWpkVzFsYm5SekwyUmxkaTltYjNKdGMza3RjbVZoWTNRdmMzSmpMMDFwZUdsdUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWRCUVVjN1JVRkRaaXhsUVVGbExFVkJRVVVzV1VGQldUdEpRVU16UWl4SlFVRkpMRXRCUVVzc1IwRkJSeXhQUVVGUExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZETVVRc1QwRkJUenROUVVOTUxFMUJRVTBzUlVGQlJTeExRVUZMTzAxQlEySXNVVUZCVVN4RlFVRkZMRWxCUVVrN1RVRkRaQ3hYUVVGWExFVkJRVVVzU1VGQlNUdE5RVU5xUWl4alFVRmpMRVZCUVVVc1MwRkJTenRMUVVOMFFpeERRVUZETzBkQlEwZzdRVUZEU0N4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEZsQlFWazdPMGxCUlRsQ0xFbEJRVWtzVTBGQlV5eEhRVUZITEZsQlFWazdUVUZETVVJc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMDFCUTJwRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRM0pETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03TzBsQlJXSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTzAxQlEzQkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zSzBOQlFTdERMRU5CUVVNc1EwRkJRenRCUVVOMlJTeExRVUZMT3p0SlFVVkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdGQlFXRXNSVUZCUlR0TlFVTTNRaXhQUVVGUExGVkJRVlVzUTBGQlF5eFpRVUZaTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNUMEZCVHp0UlFVTTVRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4aFFVRmhMRVZCUVVVN1ZVRkROMElzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4elJFRkJjMFFzUTBGQlF5eERRVUZETzFOQlEzcEZPMUZCUTBRc1UwRkJVeXhGUVVGRkxFTkJRVU03VDBGRFlpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5zUWp0QlFVTk1MRWxCUVVrc1UwRkJVeXhGUVVGRkxFTkJRVU03TzBGQlJXaENMRWRCUVVjN1FVRkRTRHM3UlVGRlJTeDVRa0ZCZVVJc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdEpRVU01UXl4VFFVRlRMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRPMGxCUTI1RUxGTkJRVk1zUTBGQlF5eGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU03U1VGRGRrUXNVMEZCVXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXp0SlFVTXpReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEZOQlFWTXNRMEZCUXl4WFFVRlhMRVZCUVVVc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEyNUZMRWRCUVVjN08wRkJSVWdzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJTeFRRVUZUTEVWQlFVVTdPMEZCUlhSRUxFbEJRVWtzU1VGQlNTeGpRVUZqTEVkQlFVY3NXVUZCV1RzN1RVRkZMMEk3VVVGRFJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1MwRkJTeXhUUVVGVExFTkJRVU1zUzBGQlN6dEJRVU0xUXl4VlFVRlZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeExRVUZMTEZOQlFWTXNRMEZCUXl4TFFVRkxPMEZCUXk5RE8wRkJRMEU3TzFkQlJWY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFdEJRVXNzUlVGQlJTeEpRVUZKTEZOQlFWTXNRMEZCUXl4TFFVRkxMRXRCUVVzc1UwRkJVeXhEUVVGRE8xTkJRelZFTzBGQlExUXNVVUZCVVRzN1FVRkZVaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTJwQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0SlFVVkpMRWxCUVVrc1UwRkJVeXhEUVVGRExGZEJRVmNzUzBGQlN5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1NVRkJTU3hqUVVGakxFVkJRVVVzUlVGQlJUdE5RVU40UlN4SlFVRkpMRXRCUVVzc1IwRkJSeXhQUVVGUExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdUVUZETVVRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0TFFVTjBRanRCUVVOTUxFZEJRVWM3UVVGRFNEczdSVUZGUlN4dlFrRkJiMElzUlVGQlJTeFpRVUZaTzBsQlEyaERMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNKRExFZEJRVWM3TzBGQlJVZ3NSVUZCUlN4alFVRmpMRVZCUVVVc1ZVRkJWU3hYUVVGWExFVkJRVVVzVVVGQlVTeEZRVUZGTzBGQlEyNUVPenRCUVVWQkxFbEJRVWtzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4WFFVRlhMRWxCUVVrc1JVRkJSU3hEUVVGRE96dEpRVVYwUXl4SlFVRkpMRkZCUVZFc1JVRkJSVHROUVVOYUxFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NWMEZCVnl4SFFVRkhMRmRCUVZjc1IwRkJSeXhIUVVGSExFZEJRVWNzUlVGQlJTeERRVUZETzAxQlEzcEVMRWxCUVVrc1EwRkJReXhaUVVGWkxFbEJRVWtzVTBGQlV5eERRVUZETzBGQlEzSkRMRXRCUVVzN08wRkJSVXdzUjBGQlJ6dEJRVU5JT3p0RlFVVkZMRkZCUVZFc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdEpRVU42UWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8wMUJRMW9zVFVGQlRTeEZRVUZGTEV0QlFVczdUVUZEWWl4WFFVRlhMRVZCUVVVc1MwRkJTenRMUVVOdVFpeEZRVUZGTEZsQlFWazdUVUZEWWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTTFRaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGRCUTJZN1JVRkRSQ3hWUVVGVkxFVkJRVVVzV1VGQldUdEpRVU4wUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8wMUJRMW9zVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1kwRkJZenROUVVOcVF5eFhRVUZYTEVWQlFVVXNTVUZCU1R0TFFVTnNRaXhGUVVGRkxGbEJRVms3VFVGRFlpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU0xUWl4RFFVRkRMRU5CUVVNN1IwRkRTanRGUVVORUxGRkJRVkVzUlVGQlJTeFpRVUZaTzBsQlEzQkNMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdSMEZETVVJN1JVRkRSQ3hSUVVGUkxFVkJRVVVzV1VGQldUdEpRVU53UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeExRVUZMTEVWQlFVVXNRMEZCUXp0SFFVTnFRenRGUVVORUxHVkJRV1VzUlVGQlJTeFpRVUZaTzBsQlF6TkNMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1IwRkJSeXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WlFVRlpMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTTdSMEZETjBjN1JVRkRSQ3hqUVVGakxFVkJRVVVzV1VGQldUdEpRVU14UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTTdSMEZEY2tNN1JVRkRSQ3hQUVVGUExFVkJRVVVzV1VGQldUdEpRVU51UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETzBkQlF6VkNPMFZCUTBRc1ZVRkJWU3hGUVVGRkxGbEJRVms3U1VGRGRFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF6dEhRVU12UWp0RlFVTkVMRlZCUVZVc1JVRkJSU3haUVVGWk8wbEJRM1JDTEU5QlFVOHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETzBkQlF6bENPMFZCUTBRc1dVRkJXU3hGUVVGRkxGbEJRVms3U1VGRGVFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRXRCUVVzc1JVRkJSU3hEUVVGRE8wZEJRM1JFTzBWQlEwUXNVMEZCVXl4RlFVRkZMRmxCUVZrN1NVRkRja0lzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRPMGRCUTNKRU8wVkJRMFFzV1VGQldTeEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMGxCUXpkQ0xFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1IwRkRla1E3UTBGRFJpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCN1hHNGdJR2RsZEVsdWFYUnBZV3hUZEdGMFpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSFpoY2lCMllXeDFaU0E5SUNkMllXeDFaU2NnYVc0Z2RHaHBjeTV3Y205d2N5QS9JSFJvYVhNdWNISnZjSE11ZG1Gc2RXVWdPaUFuSnp0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdYM1poYkhWbE9pQjJZV3gxWlN4Y2JpQWdJQ0FnSUY5cGMxWmhiR2xrT2lCMGNuVmxMRnh1SUNBZ0lDQWdYMmx6VUhKcGMzUnBibVU2SUhSeWRXVXNYRzRnSUNBZ0lDQmZjSEpwYzNScGJtVldZV3gxWlRvZ2RtRnNkV1ZjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JqYjIxd2IyNWxiblJYYVd4c1RXOTFiblE2SUdaMWJtTjBhVzl1SUNncElIdGNibHh1SUNBZ0lIWmhjaUJqYjI1bWFXZDFjbVVnUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGWmhiR2xrWVhScGIyNXpLSFJvYVhNdWNISnZjSE11ZG1Gc2FXUmhkR2x2Ym5Nc0lIUm9hWE11Y0hKdmNITXVjbVZ4ZFdseVpXUXBPMXh1SUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTVmWVhSMFlXTm9WRzlHYjNKdEtIUm9hWE1wTzF4dUlDQWdJSDB1WW1sdVpDaDBhR2x6S1R0Y2JseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1d2NtOXdjeTV1WVcxbEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0owWnZjbTBnU1c1d2RYUWdjbVZ4ZFdseVpYTWdZU0J1WVcxbElIQnliM0JsY25SNUlIZG9aVzRnZFhObFpDY3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2doZEdocGN5NXdjbTl3Y3k1ZllYUjBZV05vVkc5R2IzSnRLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doZEdocGN5NXBjMDF2ZFc1MFpXUW9LU2tnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lYUm9hWE11Y0hKdmNITXVYMkYwZEdGamFGUnZSbTl5YlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25SbTl5YlNCTmFYaHBiaUJ5WlhGMWFYSmxjeUJqYjIxd2IyNWxiblFnZEc4Z1ltVWdibVZ6ZEdWa0lHbHVJR0VnUm05eWJTY3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJtWnBaM1Z5WlNncE8xeHVJQ0FnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBMQ0F3S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1Wm1sbmRYSmxLQ2s3WEc1Y2JpQWdmU3hjYmx4dUlDQXZMeUJYWlNCb1lYWmxJSFJ2SUcxaGEyVWdkR2hsSUhaaGJHbGtZWFJsSUcxbGRHaHZaQ0JwY3lCclpYQjBJSGRvWlc0Z2JtVjNJSEJ5YjNCeklHRnlaU0JoWkdSbFpGeHVJQ0JqYjIxd2IyNWxiblJYYVd4c1VtVmpaV2wyWlZCeWIzQnpPaUJtZFc1amRHbHZiaUFvYm1WNGRGQnliM0J6S1NCN1hHNGdJQ0FnYm1WNGRGQnliM0J6TGw5aGRIUmhZMmhVYjBadmNtMGdQU0IwYUdsekxuQnliM0J6TGw5aGRIUmhZMmhVYjBadmNtMDdYRzRnSUNBZ2JtVjRkRkJ5YjNCekxsOWtaWFJoWTJoR2NtOXRSbTl5YlNBOUlIUm9hWE11Y0hKdmNITXVYMlJsZEdGamFFWnliMjFHYjNKdE8xeHVJQ0FnSUc1bGVIUlFjbTl3Y3k1ZmRtRnNhV1JoZEdVZ1BTQjBhR2x6TG5CeWIzQnpMbDkyWVd4cFpHRjBaVHRjYmlBZ0lDQjBhR2x6TG5ObGRGWmhiR2xrWVhScGIyNXpLRzVsZUhSUWNtOXdjeTUyWVd4cFpHRjBhVzl1Y3l3Z2JtVjRkRkJ5YjNCekxuSmxjWFZwY21Wa0tUdGNiaUFnZlN4Y2JseHVJQ0JqYjIxd2IyNWxiblJFYVdSVmNHUmhkR1U2SUdaMWJtTjBhVzl1SUNod2NtVjJVSEp2Y0hNc0lIQnlaWFpUZEdGMFpTa2dlMXh1WEc0Z0lDQWdkbUZ5SUdselZtRnNkV1ZEYUdGdVoyVmtJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ1hHNGdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ5YjNCekxuWmhiSFZsSUNFOVBTQndjbVYyVUhKdmNITXVkbUZzZFdVZ0ppWWdLRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdVgzWmhiSFZsSUQwOVBTQndjbVYyVUhKdmNITXVkbUZzZFdVZ2ZIeGNibHh1SUNBZ0lDQWdJQ0FnSUM4dklGTnBibU5sSUhWdVpHVm1hVzVsWkNCcGN5QmpiMjUyWlhKMFpXUWdkRzhnWlcxd2RIa2djM1J5YVc1bklIZGxJR2hoZG1VZ2RHOWNiaUFnSUNBZ0lDQWdJQ0F2THlCamFHVmpheUIwYUdGMElITndaV05wWm1sallXeHNlVnh1SUNBZ0lDQWdJQ0FnSUNoMGFHbHpMbk4wWVhSbExsOTJZV3gxWlNBOVBUMGdKeWNnSmlZZ2NISmxkbEJ5YjNCekxuWmhiSFZsSUQwOVBTQjFibVJsWm1sdVpXUXBYRzRnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrN1hHNWNibHh1SUNBZ0lDOHZJRWxtSUhaaGJHbGtZWFJwYjI1eklHaGhjeUJqYUdGdVoyVmtJRzl5SUhOdmJXVjBhR2x1WnlCdmRYUnphV1JsSUdOb1lXNW5aWE1nWEc0Z0lDQWdMeThnZEdobElIWmhiSFZsTENCelpYUWdkR2hsSUhaaGJIVmxJR0ZuWVdsdUlISjFibTVwYm1jZ1lTQjJZV3hwWkdGMGFXOXVYRzVjYmlBZ0lDQnBaaUFvY0hKbGRsQnliM0J6TG5aaGJHbGtZWFJwYjI1eklDRTlQU0IwYUdsekxuQnliM0J6TG5aaGJHbGtZWFJwYjI1eklIeDhJR2x6Vm1Gc2RXVkRhR0Z1WjJWa0tDa3BJSHRjYmlBZ0lDQWdJSFpoY2lCMllXeDFaU0E5SUNkMllXeDFaU2NnYVc0Z2RHaHBjeTV3Y205d2N5QS9JSFJvYVhNdWNISnZjSE11ZG1Gc2RXVWdPaUFuSnp0Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9kbUZzZFdVcE8xeHVJQ0FnSUgxY2JpQWdmU3hjYmx4dUlDQXZMeUJFWlhSaFkyZ2dhWFFnZDJobGJpQmpiMjF3YjI1bGJuUWdkVzV0YjNWdWRITmNiaUFnWTI5dGNHOXVaVzUwVjJsc2JGVnViVzkxYm5RNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQjBhR2x6TG5CeWIzQnpMbDlrWlhSaFkyaEdjbTl0Um05eWJTaDBhR2x6S1R0Y2JpQWdmU3hjYmx4dUlDQnpaWFJXWVd4cFpHRjBhVzl1Y3pvZ1puVnVZM1JwYjI0Z0tIWmhiR2xrWVhScGIyNXpMQ0J5WlhGMWFYSmxaQ2tnZTF4dVhHNGdJQ0FnTHk4Z1FXUmtJSFpoYkdsa1lYUnBiMjV6SUhSdklIUm9aU0J6ZEc5eVpTQnBkSE5sYkdZZ1lYTWdkR2hsSUhCeWIzQnpJRzlpYW1WamRDQmpZVzRnYm05MElHSmxJRzF2WkdsbWFXVmtYRzRnSUNBZ2RHaHBjeTVmZG1Gc2FXUmhkR2x2Ym5NZ1BTQjJZV3hwWkdGMGFXOXVjeUI4ZkNBbkp6dGNibHh1SUNBZ0lHbG1JQ2h5WlhGMWFYSmxaQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NWZkbUZzYVdSaGRHbHZibk1nUFNCMllXeHBaR0YwYVc5dWN5QS9JSFpoYkdsa1lYUnBiMjV6SUNzZ0p5d25JRG9nSnljN1hHNGdJQ0FnSUNCMGFHbHpMbDkyWVd4cFpHRjBhVzl1Y3lBclBTQW5hWE5XWVd4MVpTYzdYRzRnSUNBZ2ZWeHVYRzRnSUgwc1hHNWNiaUFnTHk4Z1YyVWdkbUZzYVdSaGRHVWdZV1owWlhJZ2RHaGxJSFpoYkhWbElHaGhjeUJpWldWdUlITmxkRnh1SUNCelpYUldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tIWmhiSFZsS1NCN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQmZkbUZzZFdVNklIWmhiSFZsTEZ4dUlDQWdJQ0FnWDJselVISnBjM1JwYm1VNklHWmhiSE5sWEc0Z0lDQWdmU3dnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NWZkbUZzYVdSaGRHVW9kR2hwY3lrN1hHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnZlN4Y2JpQWdjbVZ6WlhSV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdYM1poYkhWbE9pQjBhR2x6TG5OMFlYUmxMbDl3Y21semRHbHVaVlpoYkhWbExGeHVJQ0FnSUNBZ1gybHpVSEpwYzNScGJtVTZJSFJ5ZFdWY2JpQWdJQ0I5TENCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG5CeWIzQnpMbDkyWVd4cFpHRjBaU2gwYUdsektUdGNiaUFnSUNCOUtUdGNiaUFnZlN4Y2JpQWdaMlYwVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emRHRjBaUzVmZG1Gc2RXVTdYRzRnSUgwc1hHNGdJR2hoYzFaaGJIVmxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzUmhkR1V1WDNaaGJIVmxJQ0U5UFNBbkp6dGNiaUFnZlN4Y2JpQWdaMlYwUlhKeWIzSk5aWE56WVdkbE9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOV1lXeHBaQ2dwSUh4OElIUm9hWE11YzJodmQxSmxjWFZwY21Wa0tDa2dQeUJ1ZFd4c0lEb2dkR2hwY3k1emRHRjBaUzVmYzJWeWRtVnlSWEp5YjNJZ2ZId2dkR2hwY3k1d2NtOXdjeTUyWVd4cFpHRjBhVzl1UlhKeWIzSTdYRzRnSUgwc1hHNGdJR2x6Um05eWJVUnBjMkZpYkdWa09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y0hKdmNITXVYMmx6Um05eWJVUnBjMkZpYkdWa0tDazdYRzRnSUgwc1hHNGdJR2x6Vm1Gc2FXUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emRHRjBaUzVmYVhOV1lXeHBaRHRjYmlBZ2ZTeGNiaUFnYVhOUWNtbHpkR2x1WlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhSbExsOXBjMUJ5YVhOMGFXNWxPMXh1SUNCOUxGeHVJQ0JwYzFKbGNYVnBjbVZrT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUNFaGRHaHBjeTV3Y205d2N5NXlaWEYxYVhKbFpEdGNiaUFnZlN4Y2JpQWdjMmh2ZDFKbGNYVnBjbVZrT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhWE5TWlhGMWFYSmxaQ2dwSUNZbUlIUm9hWE11YzNSaGRHVXVYM1poYkhWbElEMDlQU0FuSnp0Y2JpQWdmU3hjYmlBZ2MyaHZkMFZ5Y205eU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlDRjBhR2x6TG5Ob2IzZFNaWEYxYVhKbFpDZ3BJQ1ltSUNGMGFHbHpMbk4wWVhSbExsOXBjMVpoYkdsa08xeHVJQ0I5TEZ4dUlDQnBjMVpoYkdsa1ZtRnNkV1U2SUdaMWJtTjBhVzl1SUNoMllXeDFaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5CeWIzQnpMbDlwYzFaaGJHbGtWbUZzZFdVdVkyRnNiQ2h1ZFd4c0xDQjBhR2x6TENCMllXeDFaU2s3WEc0Z0lIMWNibjA3WEc0aVhYMD0iLCJ2YXIgUmVhY3QgPSBnbG9iYWwuUmVhY3QgfHwgcmVxdWlyZSgncmVhY3QnKTtcbnZhciBGb3Jtc3kgPSB7fTtcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuL3ZhbGlkYXRpb25SdWxlcy5qcycpO1xudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscy5qcycpO1xudmFyIE1peGluID0gcmVxdWlyZSgnLi9NaXhpbi5qcycpO1xudmFyIG9wdGlvbnMgPSB7fTtcblxuRm9ybXN5Lk1peGluID0gTWl4aW47XG5cbkZvcm1zeS5kZWZhdWx0cyA9IGZ1bmN0aW9uIChwYXNzZWRPcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBwYXNzZWRPcHRpb25zO1xufTtcblxuRm9ybXN5LmFkZFZhbGlkYXRpb25SdWxlID0gZnVuY3Rpb24gKG5hbWUsIGZ1bmMpIHtcbiAgdmFsaWRhdGlvblJ1bGVzW25hbWVdID0gZnVuYztcbn07XG5cbkZvcm1zeS5Gb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIkZvcm1cIixcbiAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IHRydWUsXG4gICAgICBpc1N1Ym1pdHRpbmc6IGZhbHNlLFxuICAgICAgY2FuQ2hhbmdlOiBmYWxzZVxuICAgIH07XG4gIH0sXG4gIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBoZWFkZXJzOiB7fSxcbiAgICAgIG9uU3VjY2VzczogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkVycm9yOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uU3VibWl0OiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uVmFsaWRTdWJtaXQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25JbnZhbGlkU3VibWl0OiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uVmFsaWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25JbnZhbGlkOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAoKSB7fVxuICAgIH07XG4gIH0sXG5cbiAgLy8gQWRkIGEgbWFwIHRvIHN0b3JlIHRoZSBpbnB1dHMgb2YgdGhlIGZvcm0sIGEgbW9kZWwgdG8gc3RvcmVcbiAgLy8gdGhlIHZhbHVlcyBvZiB0aGUgZm9ybSBhbmQgcmVnaXN0ZXIgY2hpbGQgaW5wdXRzXG4gIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuaW5wdXRzID0ge307XG4gICAgdGhpcy5tb2RlbCA9IHt9O1xuICAgIHRoaXMucmVnaXN0ZXJJbnB1dHModGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gIH0sXG5cbiAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVcGRhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgaW5wdXRLZXlzID0gT2JqZWN0LmtleXModGhpcy5pbnB1dHMpO1xuXG4gICAgLy8gVGhlIHVwZGF0ZWQgY2hpbGRyZW4gYXJyYXkgaXMgbm90IGF2YWlsYWJsZSBoZXJlIGZvciBzb21lIHJlYXNvbixcbiAgICAvLyB3ZSBuZWVkIHRvIHdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcFxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXG4gICAgICAvLyBUaGUgY29tcG9uZW50IG1pZ2h0IGhhdmUgYmVlbiB1bm1vdW50ZWQgb24gYW5cbiAgICAgIC8vIHVwZGF0ZVxuICAgICAgaWYgKHRoaXMuaXNNb3VudGVkKCkpIHtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVySW5wdXRzKHRoaXMucHJvcHMuY2hpbGRyZW4pO1xuXG4gICAgICAgaWYgKHRoaXMucHJvcHMudmFsaWRhdGlvbkVycm9ycykge1xuICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWxpZGF0aW9uRXJyb3JzKHRoaXMucHJvcHMudmFsaWRhdGlvbkVycm9ycyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbmV3SW5wdXRLZXlzID0gT2JqZWN0LmtleXModGhpcy5pbnB1dHMpO1xuICAgICAgICBpZiAodXRpbHMuYXJyYXlzRGlmZmVyKGlucHV0S2V5cywgbmV3SW5wdXRLZXlzKSkge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGVGb3JtKCk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfS5iaW5kKHRoaXMpLCAwKTtcbiAgfSxcblxuICAvLyBVcGRhdGUgbW9kZWwsIHN1Ym1pdCB0byB1cmwgcHJvcCBhbmQgc2VuZCB0aGUgbW9kZWxcbiAgc3VibWl0OiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gVHJpZ2dlciBmb3JtIGFzIG5vdCBwcmlzdGluZS5cbiAgICAvLyBJZiBhbnkgaW5wdXRzIGhhdmUgbm90IGJlZW4gdG91Y2hlZCB5ZXQgdGhpcyB3aWxsIG1ha2UgdGhlbSBkaXJ0eVxuICAgIC8vIHNvIHZhbGlkYXRpb24gYmVjb21lcyB2aXNpYmxlIChpZiBiYXNlZCBvbiBpc1ByaXN0aW5lKVxuICAgIHRoaXMuc2V0Rm9ybVByaXN0aW5lKGZhbHNlKTtcblxuICAgIC8vIFRvIHN1cHBvcnQgdXNlIGNhc2VzIHdoZXJlIG5vIGFzeW5jIG9yIHJlcXVlc3Qgb3BlcmF0aW9uIGlzIG5lZWRlZC5cbiAgICAvLyBUaGUgXCJvblN1Ym1pdFwiIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIHRoZSBtb2RlbCBlLmcuIHtmaWVsZE5hbWU6IFwibXlWYWx1ZVwifSxcbiAgICAvLyBpZiB3YW50aW5nIHRvIHJlc2V0IHRoZSBlbnRpcmUgZm9ybSB0byBvcmlnaW5hbCBzdGF0ZSwgdGhlIHNlY29uZCBwYXJhbSBpcyBhIGNhbGxiYWNrIGZvciB0aGlzLlxuICAgIGlmICghdGhpcy5wcm9wcy51cmwpIHtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwoKTtcbiAgICAgIHZhciBtb2RlbCA9IHRoaXMubWFwTW9kZWwoKTtcbiAgICAgIHRoaXMucHJvcHMub25TdWJtaXQobW9kZWwsIHRoaXMucmVzZXRNb2RlbCwgdGhpcy51cGRhdGVJbnB1dHNXaXRoRXJyb3IpO1xuICAgICAgdGhpcy5zdGF0ZS5pc1ZhbGlkID8gdGhpcy5wcm9wcy5vblZhbGlkU3VibWl0KG1vZGVsLCB0aGlzLnJlc2V0TW9kZWwpIDogdGhpcy5wcm9wcy5vbkludmFsaWRTdWJtaXQobW9kZWwsIHRoaXMucmVzZXRNb2RlbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVNb2RlbCgpO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNTdWJtaXR0aW5nOiB0cnVlXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3BzLm9uU3VibWl0KHRoaXMubWFwTW9kZWwoKSwgdGhpcy5yZXNldE1vZGVsLCB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcik7XG5cbiAgICB2YXIgaGVhZGVycyA9IChPYmplY3Qua2V5cyh0aGlzLnByb3BzLmhlYWRlcnMpLmxlbmd0aCAmJiB0aGlzLnByb3BzLmhlYWRlcnMpIHx8IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcblxuICAgIHZhciBtZXRob2QgPSB0aGlzLnByb3BzLm1ldGhvZCAmJiB1dGlscy5hamF4W3RoaXMucHJvcHMubWV0aG9kLnRvTG93ZXJDYXNlKCldID8gdGhpcy5wcm9wcy5tZXRob2QudG9Mb3dlckNhc2UoKSA6ICdwb3N0JztcbiAgICB1dGlscy5hamF4W21ldGhvZF0odGhpcy5wcm9wcy51cmwsIHRoaXMubWFwTW9kZWwoKSwgdGhpcy5wcm9wcy5jb250ZW50VHlwZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlIHx8ICdqc29uJywgaGVhZGVycylcbiAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uU3VjY2VzcyhyZXNwb25zZSk7XG4gICAgICAgIHRoaXMucHJvcHMub25TdWJtaXR0ZWQoKTtcbiAgICAgIH0uYmluZCh0aGlzKSlcbiAgICAgIC5jYXRjaCh0aGlzLmZhaWxTdWJtaXQpO1xuICB9LFxuXG4gIG1hcE1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubWFwcGluZyA/IHRoaXMucHJvcHMubWFwcGluZyh0aGlzLm1vZGVsKSA6IHRoaXMubW9kZWw7XG4gIH0sXG5cbiAgLy8gR29lcyB0aHJvdWdoIGFsbCByZWdpc3RlcmVkIGNvbXBvbmVudHMgYW5kXG4gIC8vIHVwZGF0ZXMgdGhlIG1vZGVsIHZhbHVlc1xuICB1cGRhdGVNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG4gICAgICB0aGlzLm1vZGVsW25hbWVdID0gY29tcG9uZW50LnN0YXRlLl92YWx1ZTtcbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIC8vIFJlc2V0IGVhY2gga2V5IGluIHRoZSBtb2RlbCB0byB0aGUgb3JpZ2luYWwgLyBpbml0aWFsIHZhbHVlXG4gIHJlc2V0TW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgdGhpcy5pbnB1dHNbbmFtZV0ucmVzZXRWYWx1ZSgpO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcbiAgfSxcblxuICBzZXRJbnB1dFZhbGlkYXRpb25FcnJvcnM6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG4gICAgICB2YXIgYXJncyA9IFt7XG4gICAgICAgIF9pc1ZhbGlkOiAhKG5hbWUgaW4gZXJyb3JzKSxcbiAgICAgICAgX3NlcnZlckVycm9yOiBlcnJvcnNbbmFtZV1cbiAgICAgIH1dO1xuICAgICAgY29tcG9uZW50LnNldFN0YXRlLmFwcGx5KGNvbXBvbmVudCwgYXJncyk7XG4gICAgfS5iaW5kKHRoaXMpKTsgICBcbiAgfSxcblxuICAvLyBHbyB0aHJvdWdoIGVycm9ycyBmcm9tIHNlcnZlciBhbmQgZ3JhYiB0aGUgY29tcG9uZW50c1xuICAvLyBzdG9yZWQgaW4gdGhlIGlucHV0cyBtYXAuIENoYW5nZSB0aGVpciBzdGF0ZSB0byBpbnZhbGlkXG4gIC8vIGFuZCBzZXQgdGhlIHNlcnZlckVycm9yIG1lc3NhZ2VcbiAgdXBkYXRlSW5wdXRzV2l0aEVycm9yOiBmdW5jdGlvbiAoZXJyb3JzKSB7XG4gICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lLCBpbmRleCkge1xuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMuaW5wdXRzW25hbWVdO1xuXG4gICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBhcmUgdHJ5aW5nIHRvIHVwZGF0ZSBhbiBpbnB1dCB0aGF0IGRvZXMgbm90IGV4aXN0cy4gVmVyaWZ5IGVycm9ycyBvYmplY3Qgd2l0aCBpbnB1dCBuYW1lcy4gJyArIEpTT04uc3RyaW5naWZ5KGVycm9ycykpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYXJncyA9IFt7XG4gICAgICAgIF9pc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgX3NlcnZlckVycm9yOiBlcnJvcnNbbmFtZV1cbiAgICAgIH1dO1xuICAgICAgY29tcG9uZW50LnNldFN0YXRlLmFwcGx5KGNvbXBvbmVudCwgYXJncyk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICBmYWlsU3VibWl0OiBmdW5jdGlvbiAoZXJyb3JzKSB7XG4gICAgdGhpcy51cGRhdGVJbnB1dHNXaXRoRXJyb3IoZXJyb3JzKTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGlzU3VibWl0dGluZzogZmFsc2VcbiAgICB9KTtcbiAgICB0aGlzLnByb3BzLm9uRXJyb3IoZXJyb3JzKTtcbiAgICB0aGlzLnByb3BzLm9uU3VibWl0dGVkKCk7XG4gIH0sXG5cbiAgLy8gVHJhdmVyc2UgdGhlIGNoaWxkcmVuIGFuZCBjaGlsZHJlbiBvZiBjaGlsZHJlbiB0byBmaW5kXG4gIC8vIGFsbCBpbnB1dHMgYnkgY2hlY2tpbmcgdGhlIG5hbWUgcHJvcC4gTWF5YmUgZG8gYSBiZXR0ZXJcbiAgLy8gY2hlY2sgaGVyZVxuICByZWdpc3RlcklucHV0czogZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG5cbiAgICAgIGlmIChjaGlsZCAmJiBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5uYW1lKSB7XG4gICAgICAgIGNoaWxkLnByb3BzLl9hdHRhY2hUb0Zvcm0gPSB0aGlzLmF0dGFjaFRvRm9ybTtcbiAgICAgICAgY2hpbGQucHJvcHMuX2RldGFjaEZyb21Gb3JtID0gdGhpcy5kZXRhY2hGcm9tRm9ybTtcbiAgICAgICAgY2hpbGQucHJvcHMuX3ZhbGlkYXRlID0gdGhpcy52YWxpZGF0ZTtcbiAgICAgICAgY2hpbGQucHJvcHMuX2lzRm9ybURpc2FibGVkID0gdGhpcy5pc0Zvcm1EaXNhYmxlZDtcbiAgICAgICAgY2hpbGQucHJvcHMuX2lzVmFsaWRWYWx1ZSA9IHRoaXMucnVuVmFsaWRhdGlvbjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHMoY2hpbGQucHJvcHMuY2hpbGRyZW4pO1xuICAgICAgfVxuXG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICBpc0Zvcm1EaXNhYmxlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRpc2FibGVkO1xuICB9LFxuXG4gIGdldEN1cnJlbnRWYWx1ZXM6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLnJlZHVjZShmdW5jdGlvbiAoZGF0YSwgbmFtZSkge1xuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMuaW5wdXRzW25hbWVdO1xuICAgICAgZGF0YVtuYW1lXSA9IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9LmJpbmQodGhpcyksIHt9KTtcbiAgfSxcblxuICBzZXRGb3JtUHJpc3RpbmU6IGZ1bmN0aW9uIChpc1ByaXN0aW5lKSB7XG4gICAgdmFyIGlucHV0cyA9IHRoaXMuaW5wdXRzO1xuICAgIHZhciBpbnB1dEtleXMgPSBPYmplY3Qua2V5cyhpbnB1dHMpO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggY29tcG9uZW50IGFuZCBzZXQgaXQgYXMgcHJpc3RpbmVcbiAgICAvLyBvciBcImRpcnR5XCIuXG4gICAgaW5wdXRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gaW5wdXRzW25hbWVdO1xuICAgICAgY29tcG9uZW50LnNldFN0YXRlKHtcbiAgICAgICAgX2lzUHJpc3RpbmU6IGlzUHJpc3RpbmVcbiAgICAgIH0pO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG5cbiAgLy8gVXNlIHRoZSBiaW5kZWQgdmFsdWVzIGFuZCB0aGUgYWN0dWFsIGlucHV0IHZhbHVlIHRvXG4gIC8vIHZhbGlkYXRlIHRoZSBpbnB1dCBhbmQgc2V0IGl0cyBzdGF0ZS4gVGhlbiBjaGVjayB0aGVcbiAgLy8gc3RhdGUgb2YgdGhlIGZvcm0gaXRzZWxmXG4gIHZhbGlkYXRlOiBmdW5jdGlvbiAoY29tcG9uZW50KSB7XG5cbiAgICAvLyBUcmlnZ2VyIG9uQ2hhbmdlXG4gICAgaWYgKHRoaXMuc3RhdGUuY2FuQ2hhbmdlKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMuZ2V0Q3VycmVudFZhbHVlcygpKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbXBvbmVudC5wcm9wcy5yZXF1aXJlZCAmJiAhY29tcG9uZW50Ll92YWxpZGF0aW9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJ1biB0aHJvdWdoIHRoZSB2YWxpZGF0aW9ucywgc3BsaXQgdGhlbSB1cCBhbmQgY2FsbFxuICAgIC8vIHRoZSB2YWxpZGF0b3IgSUYgdGhlcmUgaXMgYSB2YWx1ZSBvciBpdCBpcyByZXF1aXJlZFxuICAgIHZhciBpc1ZhbGlkID0gdGhpcy5ydW5WYWxpZGF0aW9uKGNvbXBvbmVudCk7XG5cbiAgICBjb21wb25lbnQuc2V0U3RhdGUoe1xuICAgICAgX2lzVmFsaWQ6IGlzVmFsaWQsXG4gICAgICBfc2VydmVyRXJyb3I6IG51bGxcbiAgICB9LCB0aGlzLnZhbGlkYXRlRm9ybSk7XG5cbiAgfSxcblxuICAvLyBDaGVja3MgdmFsaWRhdGlvbiBvbiBjdXJyZW50IHZhbHVlIG9yIGEgcGFzc2VkIHZhbHVlXG4gIHJ1blZhbGlkYXRpb246IGZ1bmN0aW9uIChjb21wb25lbnQsIHZhbHVlKSB7XG5cbiAgICB2YXIgaXNWYWxpZCA9IHRydWU7XG4gICAgXG4gICAgdmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID09PSAyID8gdmFsdWUgOiBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgIGlmIChjb21wb25lbnQuX3ZhbGlkYXRpb25zLmxlbmd0aCAmJiAoY29tcG9uZW50LnByb3BzLnJlcXVpcmVkIHx8IHZhbHVlICE9PSAnJykpIHtcbiAgICAgIGNvbXBvbmVudC5fdmFsaWRhdGlvbnMuc3BsaXQoL1xcLCg/IVtee1xcW10qW31cXF1dKS9nKS5mb3JFYWNoKGZ1bmN0aW9uICh2YWxpZGF0aW9uKSB7XG4gICAgICAgIHZhciBhcmdzID0gdmFsaWRhdGlvbi5zcGxpdCgnOicpO1xuICAgICAgICB2YXIgdmFsaWRhdGVNZXRob2QgPSBhcmdzLnNoaWZ0KCk7XG4gICAgICAgIGFyZ3MgPSBhcmdzLm1hcChmdW5jdGlvbiAoYXJnKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGFyZyk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFyZzsgLy8gSXQgaXMgYSBzdHJpbmcgaWYgaXQgY2FuIG5vdCBwYXJzZSBpdFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGFyZ3MgPSBbdmFsdWVdLmNvbmNhdChhcmdzKTtcbiAgICAgICAgaWYgKCF2YWxpZGF0aW9uUnVsZXNbdmFsaWRhdGVNZXRob2RdKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb3Jtc3kgZG9lcyBub3QgaGF2ZSB0aGUgdmFsaWRhdGlvbiBydWxlOiAnICsgdmFsaWRhdGVNZXRob2QpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsaWRhdGlvblJ1bGVzW3ZhbGlkYXRlTWV0aG9kXS5hcHBseSh0aGlzLmdldEN1cnJlbnRWYWx1ZXMoKSwgYXJncykpIHtcbiAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgfVxuICAgIHJldHVybiBpc1ZhbGlkO1xuICB9LFxuXG4gIC8vIFZhbGlkYXRlIHRoZSBmb3JtIGJ5IGdvaW5nIHRocm91Z2ggYWxsIGNoaWxkIGlucHV0IGNvbXBvbmVudHNcbiAgLy8gYW5kIGNoZWNrIHRoZWlyIHN0YXRlXG4gIHZhbGlkYXRlRm9ybTogZnVuY3Rpb24gKCkge1xuICAgIHZhciBhbGxJc1ZhbGlkID0gdHJ1ZTtcbiAgICB2YXIgaW5wdXRzID0gdGhpcy5pbnB1dHM7XG4gICAgdmFyIGlucHV0S2V5cyA9IE9iamVjdC5rZXlzKGlucHV0cyk7XG5cbiAgICAvLyBXZSBuZWVkIGEgY2FsbGJhY2sgYXMgd2UgYXJlIHZhbGlkYXRpbmcgYWxsIGlucHV0cyBhZ2Fpbi4gVGhpcyB3aWxsXG4gICAgLy8gcnVuIHdoZW4gdGhlIGxhc3QgY29tcG9uZW50IGhhcyBzZXQgaXRzIHN0YXRlXG4gICAgdmFyIG9uVmFsaWRhdGlvbkNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgaW5wdXRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgaWYgKCFpbnB1dHNbbmFtZV0uc3RhdGUuX2lzVmFsaWQpIHtcbiAgICAgICAgICBhbGxJc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKSk7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBpc1ZhbGlkOiBhbGxJc1ZhbGlkXG4gICAgICB9KTtcblxuICAgICAgaWYgKGFsbElzVmFsaWQpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblZhbGlkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLm9uSW52YWxpZCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBUZWxsIHRoZSBmb3JtIHRoYXQgaXQgY2FuIHN0YXJ0IHRvIHRyaWdnZXIgY2hhbmdlIGV2ZW50c1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNhbkNoYW5nZTogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICB9LmJpbmQodGhpcyk7XG5cbiAgICAvLyBSdW4gdmFsaWRhdGlvbiBhZ2FpbiBpbiBjYXNlIGFmZmVjdGVkIGJ5IG90aGVyIGlucHV0cy4gVGhlXG4gICAgLy8gbGFzdCBjb21wb25lbnQgdmFsaWRhdGVkIHdpbGwgcnVuIHRoZSBvblZhbGlkYXRpb25Db21wbGV0ZSBjYWxsYmFja1xuICAgIGlucHV0S2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lLCBpbmRleCkge1xuICAgICAgdmFyIGNvbXBvbmVudCA9IGlucHV0c1tuYW1lXTtcbiAgICAgIHZhciBpc1ZhbGlkID0gdGhpcy5ydW5WYWxpZGF0aW9uKGNvbXBvbmVudCk7XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUoe1xuICAgICAgICBfaXNWYWxpZDogaXNWYWxpZCxcbiAgICAgICAgX3NlcnZlckVycm9yOiBudWxsXG4gICAgICB9LCBpbmRleCA9PT0gaW5wdXRLZXlzLmxlbmd0aCAtIDEgPyBvblZhbGlkYXRpb25Db21wbGV0ZSA6IG51bGwpO1xuICAgIH0uYmluZCh0aGlzKSk7XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgbm8gaW5wdXRzLCBzZXQgc3RhdGUgd2hlcmUgZm9ybSBpcyByZWFkeSB0byB0cmlnZ2VyXG4gICAgLy8gY2hhbmdlIGV2ZW50LiBOZXcgaW5wdXRzIG1pZ2h0IGJlIGFkZGVkIGxhdGVyXG4gICAgaWYgKCFpbnB1dEtleXMubGVuZ3RoICYmIHRoaXMuaXNNb3VudGVkKCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBjYW5DaGFuZ2U6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcblxuICAvLyBNZXRob2QgcHV0IG9uIGVhY2ggaW5wdXQgY29tcG9uZW50IHRvIHJlZ2lzdGVyXG4gIC8vIGl0c2VsZiB0byB0aGUgZm9ybVxuICBhdHRhY2hUb0Zvcm06IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcbiAgICB0aGlzLmlucHV0c1tjb21wb25lbnQucHJvcHMubmFtZV0gPSBjb21wb25lbnQ7XG4gICAgdGhpcy5tb2RlbFtjb21wb25lbnQucHJvcHMubmFtZV0gPSBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgIHRoaXMudmFsaWRhdGUoY29tcG9uZW50KTtcbiAgfSxcblxuICAvLyBNZXRob2QgcHV0IG9uIGVhY2ggaW5wdXQgY29tcG9uZW50IHRvIHVucmVnaXN0ZXJcbiAgLy8gaXRzZWxmIGZyb20gdGhlIGZvcm1cbiAgZGV0YWNoRnJvbUZvcm06IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcbiAgICBkZWxldGUgdGhpcy5pbnB1dHNbY29tcG9uZW50LnByb3BzLm5hbWVdO1xuICAgIGRlbGV0ZSB0aGlzLm1vZGVsW2NvbXBvbmVudC5wcm9wcy5uYW1lXTtcbiAgfSxcbiAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG5cbiAgICByZXR1cm4gUmVhY3QuRE9NLmZvcm0oe1xuICAgICAgICBvblN1Ym1pdDogdGhpcy5zdWJtaXQsXG4gICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWVcbiAgICAgIH0sXG4gICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgKTtcblxuICB9XG59KTtcblxuaWYgKCFnbG9iYWwuZXhwb3J0cyAmJiAhZ2xvYmFsLm1vZHVsZSAmJiAoIWdsb2JhbC5kZWZpbmUgfHwgIWdsb2JhbC5kZWZpbmUuYW1kKSkge1xuICBnbG9iYWwuRm9ybXN5ID0gRm9ybXN5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEZvcm1zeTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12YldGcGJpNXFjeUlzSW5OdmRYSmpaWE1pT2xzaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdmJXRnBiaTVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeEpRVUZKTEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNc1MwRkJTeXhKUVVGSkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTTNReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTTdRVUZEYUVJc1NVRkJTU3hsUVVGbExFZEJRVWNzVDBGQlR5eERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU03UVVGRGRFUXNTVUZCU1N4TFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzBGQlEyeERMRWxCUVVrc1MwRkJTeXhIUVVGSExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0QlFVTnNReXhKUVVGSkxFOUJRVThzUjBGQlJ5eEZRVUZGTEVOQlFVTTdPMEZCUldwQ0xFMUJRVTBzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPenRCUVVWeVFpeE5RVUZOTEVOQlFVTXNVVUZCVVN4SFFVRkhMRlZCUVZVc1lVRkJZU3hGUVVGRk8wVkJRM3BETEU5QlFVOHNSMEZCUnl4aFFVRmhMRU5CUVVNN1FVRkRNVUlzUTBGQlF5eERRVUZET3p0QlFVVkdMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4VlFVRlZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVU3UlVGREwwTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6dEJRVU12UWl4RFFVRkRMRU5CUVVNN08wRkJSVVlzYVVOQlFXbERMRzlDUVVGQk8wVkJReTlDTEdWQlFXVXNSVUZCUlN4WlFVRlpPMGxCUXpOQ0xFOUJRVTg3VFVGRFRDeFBRVUZQTEVWQlFVVXNTVUZCU1R0TlFVTmlMRmxCUVZrc1JVRkJSU3hMUVVGTE8wMUJRMjVDTEZOQlFWTXNSVUZCUlN4TFFVRkxPMHRCUTJwQ0xFTkJRVU03UjBGRFNEdEZRVU5FTEdWQlFXVXNSVUZCUlN4WlFVRlpPMGxCUXpOQ0xFOUJRVTg3VFVGRFRDeFBRVUZQTEVWQlFVVXNSVUZCUlR0TlFVTllMRk5CUVZNc1JVRkJSU3haUVVGWkxFVkJRVVU3VFVGRGVrSXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSVHROUVVOMlFpeFJRVUZSTEVWQlFVVXNXVUZCV1N4RlFVRkZPMDFCUTNoQ0xHRkJRV0VzUlVGQlJTeFpRVUZaTEVWQlFVVTdUVUZETjBJc1pVRkJaU3hGUVVGRkxGbEJRVmtzUlVGQlJUdE5RVU12UWl4WFFVRlhMRVZCUVVVc1dVRkJXU3hGUVVGRk8wMUJRek5DTEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUVVVN1RVRkRka0lzVTBGQlV5eEZRVUZGTEZsQlFWa3NSVUZCUlR0TlFVTjZRaXhSUVVGUkxFVkJRVVVzV1VGQldTeEZRVUZGTzB0QlEzcENMRU5CUVVNN1FVRkRUaXhIUVVGSE8wRkJRMGc3UVVGRFFUczdSVUZGUlN4clFrRkJhMElzUlVGQlJTeFpRVUZaTzBsQlF6bENMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEycENMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEyaENMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVNM1F5eEhRVUZIT3p0RlFVVkVMR2xDUVVGcFFpeEZRVUZGTEZsQlFWazdTVUZETjBJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzBGQlEzaENMRWRCUVVjN08wVkJSVVFzYlVKQlFXMUNMRVZCUVVVc1dVRkJXVHRCUVVOdVF5eEpRVUZKTEVsQlFVa3NVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUXpkRE8wRkJRMEU3TzBGQlJVRXNTVUZCU1N4VlFVRlZMRU5CUVVNc1dVRkJXVHRCUVVNelFqdEJRVU5CT3p0QlFVVkJMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVTdPMEZCUlRWQ0xGRkJRVkVzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZET3p0UFFVVXhReXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVU3VlVGRE9VSXNTVUZCU1N4RFFVRkRMSGRDUVVGM1FpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0QlFVTnlSU3hUUVVGVE96dFJRVVZFTEVsQlFVa3NXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpWRExFbEJRVWtzUzBGQlN5eERRVUZETEZsQlFWa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1dVRkJXU3hEUVVGRExFVkJRVVU3VlVGREwwTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wRkJRemxDTEZOQlFWTTdPMEZCUlZRc1QwRkJUenM3UzBGRlJpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU55UWl4SFFVRkhPMEZCUTBnN08wVkJSVVVzVFVGQlRTeEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMEZCUXpOQ0xFbEJRVWtzUzBGQlN5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMEZCUXpOQ08wRkJRMEU3UVVGRFFUczdRVUZGUVN4SlFVRkpMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEYUVNN1FVRkRRVHRCUVVOQk96dEpRVVZKTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUlVGQlJUdE5RVU51UWl4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VFVGRGJrSXNTVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzAxQlF6VkNMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8wMUJRM2hGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenROUVVNelNDeFBRVUZQTzBGQlEySXNTMEZCU3pzN1NVRkZSQ3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdTVUZEYmtJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dE5RVU5hTEZsQlFWa3NSVUZCUlN4SlFVRkpPMEZCUTNoQ0xFdEJRVXNzUTBGQlF5eERRVUZET3p0QlFVVlFMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTTdPMEZCUlhSR0xFbEJRVWtzU1VGQlNTeFBRVUZQTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4TFFVRkxMRTlCUVU4c1EwRkJReXhQUVVGUExFbEJRVWtzUlVGQlJTeERRVUZET3p0SlFVVjBSeXhKUVVGSkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVkQlFVY3NUVUZCVFN4RFFVRkRPMGxCUTNwSUxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4SlFVRkpMRTlCUVU4c1EwRkJReXhYUVVGWExFbEJRVWtzVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXp0UFFVTnNTQ3hKUVVGSkxFTkJRVU1zVlVGQlZTeFJRVUZSTEVWQlFVVTdVVUZEZUVJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRMMElzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRQUVVNeFFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRQUVVOYUxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkRPVUlzUjBGQlJ6czdSVUZGUkN4UlFVRlJMRVZCUVVVc1dVRkJXVHRKUVVOd1FpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRPMEZCUXpWRkxFZEJRVWM3UVVGRFNEdEJRVU5CT3p0RlFVVkZMRmRCUVZjc1JVRkJSU3haUVVGWk8wbEJRM1pDTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRWxCUVVrc1JVRkJSVHROUVVNdlF5eEpRVUZKTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzAxQlEyeERMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03UzBGRE0wTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUWl4SFFVRkhPMEZCUTBnN08wVkJSVVVzVlVGQlZTeEZRVUZGTEZsQlFWazdTVUZEZEVJc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzU1VGQlNTeEZRVUZGTzAxQlF5OURMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1MwRkRhRU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOa0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0QlFVTjRRaXhIUVVGSE96dEZRVVZFTEhkQ1FVRjNRaXhGUVVGRkxGVkJRVlVzVFVGQlRTeEZRVUZGTzB0QlEzcERMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVTdUVUZEZGtRc1NVRkJTU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenROUVVOc1F5eEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRPMUZCUTFZc1VVRkJVU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEpRVUZKTEUxQlFVMHNRMEZCUXp0UlFVTXpRaXhaUVVGWkxFVkJRVVVzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXp0UFFVTXpRaXhEUVVGRExFTkJRVU03VFVGRFNDeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTMEZETTBNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRaXhIUVVGSE8wRkJRMGc3UVVGRFFUdEJRVU5CT3p0RlFVVkZMSEZDUVVGeFFpeEZRVUZGTEZWQlFWVXNUVUZCVFN4RlFVRkZPMGxCUTNaRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlR0QlFVTjJSQ3hOUVVGTkxFbEJRVWtzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03TzAxQlJXeERMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVU3VVVGRFpDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMR2xIUVVGcFJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU53U2l4UFFVRlBPenROUVVWRUxFbEJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTTdVVUZEVml4UlFVRlJMRVZCUVVVc1MwRkJTenRSUVVObUxGbEJRVmtzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRPMDlCUXpOQ0xFTkJRVU1zUTBGQlF6dE5RVU5JTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTXpReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJ4Q0xFZEJRVWM3TzBWQlJVUXNWVUZCVlN4RlFVRkZMRlZCUVZVc1RVRkJUU3hGUVVGRk8wbEJRelZDTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTnVReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzAxQlExb3NXVUZCV1N4RlFVRkZMRXRCUVVzN1MwRkRjRUlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZETTBJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0QlFVTTNRaXhIUVVGSE8wRkJRMGc3UVVGRFFUdEJRVU5CT3p0RlFVVkZMR05CUVdNc1JVRkJSU3hWUVVGVkxGRkJRVkVzUlVGQlJUdEJRVU4wUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHM3VFVGRmFFUXNTVUZCU1N4TFFVRkxMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzU1VGQlNTeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSVHRSUVVNMVF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETzFGQlF6bERMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeEhRVUZITEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNN1VVRkRiRVFzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU4wUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRPMUZCUTJ4RUxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU03UVVGRGRrUXNUMEZCVHpzN1RVRkZSQ3hKUVVGSkxFdEJRVXNzU1VGQlNTeExRVUZMTEVOQlFVTXNTMEZCU3l4SlFVRkpMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEZRVUZGTzFGQlEyaEVMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVOc1JDeFBRVUZQT3p0TFFVVkdMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVJc1IwRkJSenM3UlVGRlJDeGpRVUZqTEVWQlFVVXNXVUZCV1R0SlFVTXhRaXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRPMEZCUXk5Q0xFZEJRVWM3TzBWQlJVUXNaMEpCUVdkQ0xFVkJRVVVzV1VGQldUdEpRVU0xUWl4UFFVRlBMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVTdUVUZETTBRc1NVRkJTU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenROUVVOc1F5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdUVUZEY0VNc1QwRkJUeXhKUVVGSkxFTkJRVU03UzBGRFlpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU4wUWl4SFFVRkhPenRGUVVWRUxHVkJRV1VzUlVGQlJTeFZRVUZWTEZWQlFWVXNSVUZCUlR0SlFVTnlReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUXpkQ0xFbEJRVWtzU1VGQlNTeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU40UXp0QlFVTkJPenRKUVVWSkxGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRk8wMUJRM1pETEVsQlFVa3NVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dE5RVU0zUWl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRMnBDTEZkQlFWY3NSVUZCUlN4VlFVRlZPMDlCUTNoQ0xFTkJRVU1zUTBGQlF6dExRVU5LTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJFSXNSMEZCUnp0QlFVTklPMEZCUTBFN1FVRkRRVHM3UVVGRlFTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSVHRCUVVOcVF6czdTVUZGU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eEZRVUZGTzAxQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEYmtRc1MwRkJTenM3U1VGRlJDeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCV1N4RlFVRkZPMDFCUTNoRUxFOUJRVTg3UVVGRFlpeExRVUZMTzBGQlEwdzdRVUZEUVRzN1FVRkZRU3hKUVVGSkxFbEJRVWtzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03TzBsQlJUVkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU03VFVGRGFrSXNVVUZCVVN4RlFVRkZMRTlCUVU4N1RVRkRha0lzV1VGQldTeEZRVUZGTEVsQlFVazdRVUZEZUVJc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXpzN1FVRkZNVUlzUjBGQlJ6dEJRVU5JT3p0QlFVVkJMRVZCUVVVc1lVRkJZU3hGUVVGRkxGVkJRVlVzVTBGQlV5eEZRVUZGTEV0QlFVc3NSVUZCUlRzN1FVRkZOME1zU1VGQlNTeEpRVUZKTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNN08wbEJSVzVDTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGFFVXNTVUZCU1N4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFMUJRVTBzUzBGQlN5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1NVRkJTU3hMUVVGTExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVTdUVUZETDBVc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eExRVUZMTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4VlFVRlZMRVZCUVVVN1VVRkRhRVlzU1VGQlNTeEpRVUZKTEVkQlFVY3NWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4SlFVRkpMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZEYkVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4SFFVRkhMRVZCUVVVN1ZVRkROMElzU1VGQlNUdFpRVU5HTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFhRVU40UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMVlzVDBGQlR5eEhRVUZITEVOQlFVTTdWMEZEV2p0VFFVTkdMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU0xUWl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExHTkJRV01zUTBGQlF5eEZRVUZGTzFWQlEzQkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zTkVOQlFUUkRMRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU03VTBGRGFFWTdVVUZEUkN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkJSVHRWUVVONlJTeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRPMU5CUTJwQ08wOUJRMFlzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVObU8wbEJRMFFzVDBGQlR5eFBRVUZQTEVOQlFVTTdRVUZEYmtJc1IwRkJSenRCUVVOSU8wRkJRMEU3TzBWQlJVVXNXVUZCV1N4RlFVRkZMRmxCUVZrN1NVRkRlRUlzU1VGQlNTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRPMGxCUTNSQ0xFbEJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkROMElzU1VGQlNTeEpRVUZKTEZOQlFWTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEzaERPMEZCUTBFN08wbEJSVWtzU1VGQlNTeHZRa0ZCYjBJc1IwRkJSeXhaUVVGWk8wMUJRM0pETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFVkJRVVU3VVVGRGFFTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZPMVZCUTJoRExGVkJRVlVzUjBGQlJ5eExRVUZMTEVOQlFVTTdVMEZEY0VJN1FVRkRWQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN08wMUJSV1FzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTmFMRTlCUVU4c1JVRkJSU3hWUVVGVk8wRkJRek5DTEU5QlFVOHNRMEZCUXl4RFFVRkRPenROUVVWSUxFbEJRVWtzVlVGQlZTeEZRVUZGTzFGQlEyUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dFBRVU4wUWl4TlFVRk5PMUZCUTB3c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0QlFVTXZRaXhQUVVGUE8wRkJRMUE3TzAxQlJVMHNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenRSUVVOYUxGTkJRVk1zUlVGQlJTeEpRVUZKTzBGQlEzWkNMRTlCUVU4c1EwRkJReXhEUVVGRE96dEJRVVZVTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGFrSTdRVUZEUVRzN1NVRkZTU3hUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSVHROUVVOMlF5eEpRVUZKTEZOQlFWTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VFVGRE4wSXNTVUZCU1N4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0TlFVTTFReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETzFGQlEycENMRkZCUVZFc1JVRkJSU3hQUVVGUE8xRkJRMnBDTEZsQlFWa3NSVUZCUlN4SlFVRkpPMDlCUTI1Q0xFVkJRVVVzUzBGQlN5eExRVUZMTEZOQlFWTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhIUVVGSExHOUNRVUZ2UWl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRM1pGTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUWp0QlFVTkJPenRKUVVWSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzUlVGQlJUdE5RVU42UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRMW9zVTBGQlV5eEZRVUZGTEVsQlFVazdUMEZEYUVJc1EwRkJReXhEUVVGRE8wdEJRMG83UVVGRFRDeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3haUVVGWkxFVkJRVVVzVlVGQlZTeFRRVUZUTEVWQlFVVTdTVUZEYWtNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dEpRVU01UXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZETVVRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0QlFVTTNRaXhIUVVGSE8wRkJRMGc3UVVGRFFUczdSVUZGUlN4alFVRmpMRVZCUVVVc1ZVRkJWU3hUUVVGVExFVkJRVVU3U1VGRGJrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRla01zVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdSMEZEZWtNN1FVRkRTQ3hGUVVGRkxFMUJRVTBzUlVGQlJTeFpRVUZaT3p0SlFVVnNRaXhQUVVGUExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTJ4Q0xGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFR0UlFVTnlRaXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRPMDlCUTJoRE8wMUJRMFFzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJPMEZCUTNwQ0xFdEJRVXNzUTBGQlF6czdSMEZGU0R0QlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE96dEJRVVZJTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRk8wVkJReTlGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRE8wRkJRM3BDTEVOQlFVTTdPMEZCUlVRc1RVRkJUU3hEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1VtVmhZM1FnUFNCbmJHOWlZV3d1VW1WaFkzUWdmSHdnY21WeGRXbHlaU2duY21WaFkzUW5LVHRjYm5aaGNpQkdiM0p0YzNrZ1BTQjdmVHRjYm5aaGNpQjJZV3hwWkdGMGFXOXVVblZzWlhNZ1BTQnlaWEYxYVhKbEtDY3VMM1poYkdsa1lYUnBiMjVTZFd4bGN5NXFjeWNwTzF4dWRtRnlJSFYwYVd4eklEMGdjbVZ4ZFdseVpTZ25MaTkxZEdsc2N5NXFjeWNwTzF4dWRtRnlJRTFwZUdsdUlEMGdjbVZ4ZFdseVpTZ25MaTlOYVhocGJpNXFjeWNwTzF4dWRtRnlJRzl3ZEdsdmJuTWdQU0I3ZlR0Y2JseHVSbTl5YlhONUxrMXBlR2x1SUQwZ1RXbDRhVzQ3WEc1Y2JrWnZjbTF6ZVM1a1pXWmhkV3gwY3lBOUlHWjFibU4wYVc5dUlDaHdZWE56WldSUGNIUnBiMjV6S1NCN1hHNGdJRzl3ZEdsdmJuTWdQU0J3WVhOelpXUlBjSFJwYjI1ek8xeHVmVHRjYmx4dVJtOXliWE41TG1Ga1pGWmhiR2xrWVhScGIyNVNkV3hsSUQwZ1puVnVZM1JwYjI0Z0tHNWhiV1VzSUdaMWJtTXBJSHRjYmlBZ2RtRnNhV1JoZEdsdmJsSjFiR1Z6VzI1aGJXVmRJRDBnWm5WdVl6dGNibjA3WEc1Y2JrWnZjbTF6ZVM1R2IzSnRJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQm5aWFJKYm1sMGFXRnNVM1JoZEdVNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2FYTldZV3hwWkRvZ2RISjFaU3hjYmlBZ0lDQWdJR2x6VTNWaWJXbDBkR2x1WnpvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0JqWVc1RGFHRnVaMlU2SUdaaGJITmxYRzRnSUNBZ2ZUdGNiaUFnZlN4Y2JpQWdaMlYwUkdWbVlYVnNkRkJ5YjNCek9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lHaGxZV1JsY25NNklIdDlMRnh1SUNBZ0lDQWdiMjVUZFdOalpYTnpPaUJtZFc1amRHbHZiaUFvS1NCN2ZTeGNiaUFnSUNBZ0lHOXVSWEp5YjNJNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1VGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNncElIdDlMRnh1SUNBZ0lDQWdiMjVXWVd4cFpGTjFZbTFwZERvZ1puVnVZM1JwYjI0Z0tDa2dlMzBzWEc0Z0lDQWdJQ0J2YmtsdWRtRnNhV1JUZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNVRkV0p0YVhSMFpXUTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNVdZV3hwWkRvZ1puVnVZM1JwYjI0Z0tDa2dlMzBzWEc0Z0lDQWdJQ0J2YmtsdWRtRnNhV1E2SUdaMWJtTjBhVzl1SUNncElIdDlMRnh1SUNBZ0lDQWdiMjVEYUdGdVoyVTZJR1oxYm1OMGFXOXVJQ2dwSUh0OVhHNGdJQ0FnZlR0Y2JpQWdmU3hjYmx4dUlDQXZMeUJCWkdRZ1lTQnRZWEFnZEc4Z2MzUnZjbVVnZEdobElHbHVjSFYwY3lCdlppQjBhR1VnWm05eWJTd2dZU0J0YjJSbGJDQjBieUJ6ZEc5eVpWeHVJQ0F2THlCMGFHVWdkbUZzZFdWeklHOW1JSFJvWlNCbWIzSnRJR0Z1WkNCeVpXZHBjM1JsY2lCamFHbHNaQ0JwYm5CMWRITmNiaUFnWTI5dGNHOXVaVzUwVjJsc2JFMXZkVzUwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2RHaHBjeTVwYm5CMWRITWdQU0I3ZlR0Y2JpQWdJQ0IwYUdsekxtMXZaR1ZzSUQwZ2UzMDdYRzRnSUNBZ2RHaHBjeTV5WldkcGMzUmxja2x1Y0hWMGN5aDBhR2x6TG5CeWIzQnpMbU5vYVd4a2NtVnVLVHRjYmlBZ2ZTeGNibHh1SUNCamIyMXdiMjVsYm5SRWFXUk5iM1Z1ZERvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lIUm9hWE11ZG1Gc2FXUmhkR1ZHYjNKdEtDazdYRzRnSUgwc1hHNWNiaUFnWTI5dGNHOXVaVzUwVjJsc2JGVndaR0YwWlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lIWmhjaUJwYm5CMWRFdGxlWE1nUFNCUFltcGxZM1F1YTJWNWN5aDBhR2x6TG1sdWNIVjBjeWs3WEc1Y2JpQWdJQ0F2THlCVWFHVWdkWEJrWVhSbFpDQmphR2xzWkhKbGJpQmhjbkpoZVNCcGN5QnViM1FnWVhaaGFXeGhZbXhsSUdobGNtVWdabTl5SUhOdmJXVWdjbVZoYzI5dUxGeHVJQ0FnSUM4dklIZGxJRzVsWldRZ2RHOGdkMkZwZENCbWIzSWdibVY0ZENCbGRtVnVkQ0JzYjI5d1hHNGdJQ0FnYzJWMFZHbHRaVzkxZENobWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQWdJQzh2SUZSb1pTQmpiMjF3YjI1bGJuUWdiV2xuYUhRZ2FHRjJaU0JpWldWdUlIVnViVzkxYm5SbFpDQnZiaUJoYmx4dUlDQWdJQ0FnTHk4Z2RYQmtZWFJsWEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTVwYzAxdmRXNTBaV1FvS1NrZ2UxeHVYRzRnSUNBZ0lDQWdJSFJvYVhNdWNtVm5hWE4wWlhKSmJuQjFkSE1vZEdocGN5NXdjbTl3Y3k1amFHbHNaSEpsYmlrN1hHNWNiaUFnSUNBZ0lDQnBaaUFvZEdocGN5NXdjbTl3Y3k1MllXeHBaR0YwYVc5dVJYSnliM0p6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUkpibkIxZEZaaGJHbGtZWFJwYjI1RmNuSnZjbk1vZEdocGN5NXdjbTl3Y3k1MllXeHBaR0YwYVc5dVJYSnliM0p6S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSFpoY2lCdVpYZEpibkIxZEV0bGVYTWdQU0JQWW1wbFkzUXVhMlY1Y3loMGFHbHpMbWx1Y0hWMGN5azdYRzRnSUNBZ0lDQWdJR2xtSUNoMWRHbHNjeTVoY25KaGVYTkVhV1ptWlhJb2FXNXdkWFJMWlhsekxDQnVaWGRKYm5CMWRFdGxlWE1wS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1MllXeHBaR0YwWlVadmNtMG9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCOVhHNWNiaUFnSUNCOUxtSnBibVFvZEdocGN5a3NJREFwTzF4dUlDQjlMRnh1WEc0Z0lDOHZJRlZ3WkdGMFpTQnRiMlJsYkN3Z2MzVmliV2wwSUhSdklIVnliQ0J3Y205d0lHRnVaQ0J6Wlc1a0lIUm9aU0J0YjJSbGJGeHVJQ0J6ZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lHVjJaVzUwTG5CeVpYWmxiblJFWldaaGRXeDBLQ2s3WEc1Y2JpQWdJQ0F2THlCVWNtbG5aMlZ5SUdadmNtMGdZWE1nYm05MElIQnlhWE4wYVc1bExseHVJQ0FnSUM4dklFbG1JR0Z1ZVNCcGJuQjFkSE1nYUdGMlpTQnViM1FnWW1WbGJpQjBiM1ZqYUdWa0lIbGxkQ0IwYUdseklIZHBiR3dnYldGclpTQjBhR1Z0SUdScGNuUjVYRzRnSUNBZ0x5OGdjMjhnZG1Gc2FXUmhkR2x2YmlCaVpXTnZiV1Z6SUhacGMybGliR1VnS0dsbUlHSmhjMlZrSUc5dUlHbHpVSEpwYzNScGJtVXBYRzRnSUNBZ2RHaHBjeTV6WlhSR2IzSnRVSEpwYzNScGJtVW9abUZzYzJVcE8xeHVYRzRnSUNBZ0x5OGdWRzhnYzNWd2NHOXlkQ0IxYzJVZ1kyRnpaWE1nZDJobGNtVWdibThnWVhONWJtTWdiM0lnY21WeGRXVnpkQ0J2Y0dWeVlYUnBiMjRnYVhNZ2JtVmxaR1ZrTGx4dUlDQWdJQzh2SUZSb1pTQmNJbTl1VTNWaWJXbDBYQ0lnWTJGc2JHSmhZMnNnYVhNZ1kyRnNiR1ZrSUhkcGRHZ2dkR2hsSUcxdlpHVnNJR1V1Wnk0Z2UyWnBaV3hrVG1GdFpUb2dYQ0p0ZVZaaGJIVmxYQ0o5TEZ4dUlDQWdJQzh2SUdsbUlIZGhiblJwYm1jZ2RHOGdjbVZ6WlhRZ2RHaGxJR1Z1ZEdseVpTQm1iM0p0SUhSdklHOXlhV2RwYm1Gc0lITjBZWFJsTENCMGFHVWdjMlZqYjI1a0lIQmhjbUZ0SUdseklHRWdZMkZzYkdKaFkyc2dabTl5SUhSb2FYTXVYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuQnliM0J6TG5WeWJDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZOYjJSbGJDZ3BPMXh1SUNBZ0lDQWdkbUZ5SUcxdlpHVnNJRDBnZEdocGN5NXRZWEJOYjJSbGJDZ3BPMXh1SUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTV2YmxOMVltMXBkQ2h0YjJSbGJDd2dkR2hwY3k1eVpYTmxkRTF2WkdWc0xDQjBhR2x6TG5Wd1pHRjBaVWx1Y0hWMGMxZHBkR2hGY25KdmNpazdYRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbWx6Vm1Gc2FXUWdQeUIwYUdsekxuQnliM0J6TG05dVZtRnNhV1JUZFdKdGFYUW9iVzlrWld3c0lIUm9hWE11Y21WelpYUk5iMlJsYkNrZ09pQjBhR2x6TG5CeWIzQnpMbTl1U1c1MllXeHBaRk4xWW0xcGRDaHRiMlJsYkN3Z2RHaHBjeTV5WlhObGRFMXZaR1ZzS1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TG5Wd1pHRjBaVTF2WkdWc0tDazdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0JwYzFOMVltMXBkSFJwYm1jNklIUnlkV1ZjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSFJvYVhNdWNISnZjSE11YjI1VGRXSnRhWFFvZEdocGN5NXRZWEJOYjJSbGJDZ3BMQ0IwYUdsekxuSmxjMlYwVFc5a1pXd3NJSFJvYVhNdWRYQmtZWFJsU1c1d2RYUnpWMmwwYUVWeWNtOXlLVHRjYmx4dUlDQWdJSFpoY2lCb1pXRmtaWEp6SUQwZ0tFOWlhbVZqZEM1clpYbHpLSFJvYVhNdWNISnZjSE11YUdWaFpHVnljeWt1YkdWdVozUm9JQ1ltSUhSb2FYTXVjSEp2Y0hNdWFHVmhaR1Z5Y3lrZ2ZId2diM0IwYVc5dWN5NW9aV0ZrWlhKeklIeDhJSHQ5TzF4dVhHNGdJQ0FnZG1GeUlHMWxkR2h2WkNBOUlIUm9hWE11Y0hKdmNITXViV1YwYUc5a0lDWW1JSFYwYVd4ekxtRnFZWGhiZEdocGN5NXdjbTl3Y3k1dFpYUm9iMlF1ZEc5TWIzZGxja05oYzJVb0tWMGdQeUIwYUdsekxuQnliM0J6TG0xbGRHaHZaQzUwYjB4dmQyVnlRMkZ6WlNncElEb2dKM0J2YzNRbk8xeHVJQ0FnSUhWMGFXeHpMbUZxWVhoYmJXVjBhRzlrWFNoMGFHbHpMbkJ5YjNCekxuVnliQ3dnZEdocGN5NXRZWEJOYjJSbGJDZ3BMQ0IwYUdsekxuQnliM0J6TG1OdmJuUmxiblJVZVhCbElIeDhJRzl3ZEdsdmJuTXVZMjl1ZEdWdWRGUjVjR1VnZkh3Z0oycHpiMjRuTENCb1pXRmtaWEp6S1Z4dUlDQWdJQ0FnTG5Sb1pXNG9ablZ1WTNScGIyNGdLSEpsYzNCdmJuTmxLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNVRkV05qWlhOektISmxjM0J2Ym5ObEtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTV2YmxOMVltMXBkSFJsWkNncE8xeHVJQ0FnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVnh1SUNBZ0lDQWdMbU5oZEdOb0tIUm9hWE11Wm1GcGJGTjFZbTFwZENrN1hHNGdJSDBzWEc1Y2JpQWdiV0Z3VFc5a1pXdzZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1d2NtOXdjeTV0WVhCd2FXNW5JRDhnZEdocGN5NXdjbTl3Y3k1dFlYQndhVzVuS0hSb2FYTXViVzlrWld3cElEb2dkR2hwY3k1dGIyUmxiRHRjYmlBZ2ZTeGNibHh1SUNBdkx5QkhiMlZ6SUhSb2NtOTFaMmdnWVd4c0lISmxaMmx6ZEdWeVpXUWdZMjl0Y0c5dVpXNTBjeUJoYm1SY2JpQWdMeThnZFhCa1lYUmxjeUIwYUdVZ2JXOWtaV3dnZG1Gc2RXVnpYRzRnSUhWd1pHRjBaVTF2WkdWc09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdUMkpxWldOMExtdGxlWE1vZEdocGN5NXBibkIxZEhNcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0Z0tHNWhiV1VwSUh0Y2JpQWdJQ0FnSUhaaGNpQmpiMjF3YjI1bGJuUWdQU0IwYUdsekxtbHVjSFYwYzF0dVlXMWxYVHRjYmlBZ0lDQWdJSFJvYVhNdWJXOWtaV3hiYm1GdFpWMGdQU0JqYjIxd2IyNWxiblF1YzNSaGRHVXVYM1poYkhWbE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektTazdYRzRnSUgwc1hHNWNiaUFnTHk4Z1VtVnpaWFFnWldGamFDQnJaWGtnYVc0Z2RHaGxJRzF2WkdWc0lIUnZJSFJvWlNCdmNtbG5hVzVoYkNBdklHbHVhWFJwWVd3Z2RtRnNkV1ZjYmlBZ2NtVnpaWFJOYjJSbGJEb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJRTlpYW1WamRDNXJaWGx6S0hSb2FYTXVhVzV3ZFhSektTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHVZVzFsS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbWx1Y0hWMGMxdHVZVzFsWFM1eVpYTmxkRlpoYkhWbEtDazdYRzRnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVHRjYmlBZ0lDQjBhR2x6TG5aaGJHbGtZWFJsUm05eWJTZ3BPMXh1SUNCOUxGeHVYRzRnSUhObGRFbHVjSFYwVm1Gc2FXUmhkR2x2YmtWeWNtOXljem9nWm5WdVkzUnBiMjRnS0dWeWNtOXljeWtnZTF4dUlDQWdJQ0JQWW1wbFkzUXVhMlY1Y3loMGFHbHpMbWx1Y0hWMGN5a3VabTl5UldGamFDaG1kVzVqZEdsdmJpQW9ibUZ0WlN3Z2FXNWtaWGdwSUh0Y2JpQWdJQ0FnSUhaaGNpQmpiMjF3YjI1bGJuUWdQU0IwYUdsekxtbHVjSFYwYzF0dVlXMWxYVHRjYmlBZ0lDQWdJSFpoY2lCaGNtZHpJRDBnVzN0Y2JpQWdJQ0FnSUNBZ1gybHpWbUZzYVdRNklDRW9ibUZ0WlNCcGJpQmxjbkp2Y25NcExGeHVJQ0FnSUNBZ0lDQmZjMlZ5ZG1WeVJYSnliM0k2SUdWeWNtOXljMXR1WVcxbFhWeHVJQ0FnSUNBZ2ZWMDdYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUXVjMlYwVTNSaGRHVXVZWEJ3Ykhrb1kyOXRjRzl1Wlc1MExDQmhjbWR6S1R0Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE95QWdJRnh1SUNCOUxGeHVYRzRnSUM4dklFZHZJSFJvY205MVoyZ2daWEp5YjNKeklHWnliMjBnYzJWeWRtVnlJR0Z1WkNCbmNtRmlJSFJvWlNCamIyMXdiMjVsYm5SelhHNGdJQzh2SUhOMGIzSmxaQ0JwYmlCMGFHVWdhVzV3ZFhSeklHMWhjQzRnUTJoaGJtZGxJSFJvWldseUlITjBZWFJsSUhSdklHbHVkbUZzYVdSY2JpQWdMeThnWVc1a0lITmxkQ0IwYUdVZ2MyVnlkbVZ5UlhKeWIzSWdiV1Z6YzJGblpWeHVJQ0IxY0dSaGRHVkpibkIxZEhOWGFYUm9SWEp5YjNJNklHWjFibU4wYVc5dUlDaGxjbkp2Y25NcElIdGNiaUFnSUNCUFltcGxZM1F1YTJWNWN5aGxjbkp2Y25NcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0Z0tHNWhiV1VzSUdsdVpHVjRLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1kyOXRjRzl1Wlc1MElEMGdkR2hwY3k1cGJuQjFkSE5iYm1GdFpWMDdYRzVjYmlBZ0lDQWdJR2xtSUNnaFkyOXRjRzl1Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25XVzkxSUdGeVpTQjBjbmxwYm1jZ2RHOGdkWEJrWVhSbElHRnVJR2x1Y0hWMElIUm9ZWFFnWkc5bGN5QnViM1FnWlhocGMzUnpMaUJXWlhKcFpua2daWEp5YjNKeklHOWlhbVZqZENCM2FYUm9JR2x1Y0hWMElHNWhiV1Z6TGlBbklDc2dTbE5QVGk1emRISnBibWRwWm5rb1pYSnliM0p6S1NrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lIWmhjaUJoY21keklEMGdXM3RjYmlBZ0lDQWdJQ0FnWDJselZtRnNhV1E2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0JmYzJWeWRtVnlSWEp5YjNJNklHVnljbTl5YzF0dVlXMWxYVnh1SUNBZ0lDQWdmVjA3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1YzJWMFUzUmhkR1V1WVhCd2JIa29ZMjl0Y0c5dVpXNTBMQ0JoY21kektUdGNiaUFnSUNCOUxtSnBibVFvZEdocGN5a3BPMXh1SUNCOUxGeHVYRzRnSUdaaGFXeFRkV0p0YVhRNklHWjFibU4wYVc5dUlDaGxjbkp2Y25NcElIdGNiaUFnSUNCMGFHbHpMblZ3WkdGMFpVbHVjSFYwYzFkcGRHaEZjbkp2Y2lobGNuSnZjbk1wTzF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ2FYTlRkV0p0YVhSMGFXNW5PaUJtWVd4elpWeHVJQ0FnSUgwcE8xeHVJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNUZjbkp2Y2lobGNuSnZjbk1wTzF4dUlDQWdJSFJvYVhNdWNISnZjSE11YjI1VGRXSnRhWFIwWldRb0tUdGNiaUFnZlN4Y2JseHVJQ0F2THlCVWNtRjJaWEp6WlNCMGFHVWdZMmhwYkdSeVpXNGdZVzVrSUdOb2FXeGtjbVZ1SUc5bUlHTm9hV3hrY21WdUlIUnZJR1pwYm1SY2JpQWdMeThnWVd4c0lHbHVjSFYwY3lCaWVTQmphR1ZqYTJsdVp5QjBhR1VnYm1GdFpTQndjbTl3TGlCTllYbGlaU0JrYnlCaElHSmxkSFJsY2x4dUlDQXZMeUJqYUdWamF5Qm9aWEpsWEc0Z0lISmxaMmx6ZEdWeVNXNXdkWFJ6T2lCbWRXNWpkR2x2YmlBb1kyaHBiR1J5Wlc0cElIdGNiaUFnSUNCU1pXRmpkQzVEYUdsc1pISmxiaTVtYjNKRllXTm9LR05vYVd4a2NtVnVMQ0JtZFc1amRHbHZiaUFvWTJocGJHUXBJSHRjYmx4dUlDQWdJQ0FnYVdZZ0tHTm9hV3hrSUNZbUlHTm9hV3hrTG5CeWIzQnpJQ1ltSUdOb2FXeGtMbkJ5YjNCekxtNWhiV1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyaHBiR1F1Y0hKdmNITXVYMkYwZEdGamFGUnZSbTl5YlNBOUlIUm9hWE11WVhSMFlXTm9WRzlHYjNKdE8xeHVJQ0FnSUNBZ0lDQmphR2xzWkM1d2NtOXdjeTVmWkdWMFlXTm9Sbkp2YlVadmNtMGdQU0IwYUdsekxtUmxkR0ZqYUVaeWIyMUdiM0p0TzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZkbUZzYVdSaGRHVWdQU0IwYUdsekxuWmhiR2xrWVhSbE8xeHVJQ0FnSUNBZ0lDQmphR2xzWkM1d2NtOXdjeTVmYVhOR2IzSnRSR2x6WVdKc1pXUWdQU0IwYUdsekxtbHpSbTl5YlVScGMyRmliR1ZrTzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZhWE5XWVd4cFpGWmhiSFZsSUQwZ2RHaHBjeTV5ZFc1V1lXeHBaR0YwYVc5dU8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvWTJocGJHUWdKaVlnWTJocGJHUXVjSEp2Y0hNZ0ppWWdZMmhwYkdRdWNISnZjSE11WTJocGJHUnlaVzRwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV5WldkcGMzUmxja2x1Y0hWMGN5aGphR2xzWkM1d2NtOXdjeTVqYUdsc1pISmxiaWs3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVJQ0I5TEZ4dVhHNGdJR2x6Um05eWJVUnBjMkZpYkdWa09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y0hKdmNITXVaR2x6WVdKc1pXUTdYRzRnSUgwc1hHNWNiaUFnWjJWMFEzVnljbVZ1ZEZaaGJIVmxjem9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJQWW1wbFkzUXVhMlY1Y3loMGFHbHpMbWx1Y0hWMGN5a3VjbVZrZFdObEtHWjFibU4wYVc5dUlDaGtZWFJoTENCdVlXMWxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1kyOXRjRzl1Wlc1MElEMGdkR2hwY3k1cGJuQjFkSE5iYm1GdFpWMDdYRzRnSUNBZ0lDQmtZWFJoVzI1aGJXVmRJRDBnWTI5dGNHOXVaVzUwTG5OMFlYUmxMbDkyWVd4MVpUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCa1lYUmhPMXh1SUNBZ0lIMHVZbWx1WkNoMGFHbHpLU3dnZTMwcE8xeHVJQ0I5TEZ4dVhHNGdJSE5sZEVadmNtMVFjbWx6ZEdsdVpUb2dablZ1WTNScGIyNGdLR2x6VUhKcGMzUnBibVVwSUh0Y2JpQWdJQ0IyWVhJZ2FXNXdkWFJ6SUQwZ2RHaHBjeTVwYm5CMWRITTdYRzRnSUNBZ2RtRnlJR2x1Y0hWMFMyVjVjeUE5SUU5aWFtVmpkQzVyWlhsektHbHVjSFYwY3lrN1hHNWNiaUFnSUNBdkx5QkpkR1Z5WVhSbElIUm9jbTkxWjJnZ1pXRmphQ0JqYjIxd2IyNWxiblFnWVc1a0lITmxkQ0JwZENCaGN5QndjbWx6ZEdsdVpWeHVJQ0FnSUM4dklHOXlJRndpWkdseWRIbGNJaTVjYmlBZ0lDQnBibkIxZEV0bGVYTXVabTl5UldGamFDaG1kVzVqZEdsdmJpQW9ibUZ0WlN3Z2FXNWtaWGdwSUh0Y2JpQWdJQ0FnSUhaaGNpQmpiMjF3YjI1bGJuUWdQU0JwYm5CMWRITmJibUZ0WlYwN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ0lDQmZhWE5RY21semRHbHVaVG9nYVhOUWNtbHpkR2x1WlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnZlN4Y2JseHVJQ0F2THlCVmMyVWdkR2hsSUdKcGJtUmxaQ0IyWVd4MVpYTWdZVzVrSUhSb1pTQmhZM1IxWVd3Z2FXNXdkWFFnZG1Gc2RXVWdkRzljYmlBZ0x5OGdkbUZzYVdSaGRHVWdkR2hsSUdsdWNIVjBJR0Z1WkNCelpYUWdhWFJ6SUhOMFlYUmxMaUJVYUdWdUlHTm9aV05ySUhSb1pWeHVJQ0F2THlCemRHRjBaU0J2WmlCMGFHVWdabTl5YlNCcGRITmxiR1pjYmlBZ2RtRnNhV1JoZEdVNklHWjFibU4wYVc5dUlDaGpiMjF3YjI1bGJuUXBJSHRjYmx4dUlDQWdJQzh2SUZSeWFXZG5aWElnYjI1RGFHRnVaMlZjYmlBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1allXNURhR0Z1WjJVcElIdGNiaUFnSUNBZ0lIUm9hWE11Y0hKdmNITXViMjVEYUdGdVoyVW9kR2hwY3k1blpYUkRkWEp5Wlc1MFZtRnNkV1Z6S0NrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDZ2hZMjl0Y0c5dVpXNTBMbkJ5YjNCekxuSmxjWFZwY21Wa0lDWW1JQ0ZqYjIxd2IyNWxiblF1WDNaaGJHbGtZWFJwYjI1ektTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1VuVnVJSFJvY205MVoyZ2dkR2hsSUhaaGJHbGtZWFJwYjI1ekxDQnpjR3hwZENCMGFHVnRJSFZ3SUdGdVpDQmpZV3hzWEc0Z0lDQWdMeThnZEdobElIWmhiR2xrWVhSdmNpQkpSaUIwYUdWeVpTQnBjeUJoSUhaaGJIVmxJRzl5SUdsMElHbHpJSEpsY1hWcGNtVmtYRzRnSUNBZ2RtRnlJR2x6Vm1Gc2FXUWdQU0IwYUdsekxuSjFibFpoYkdsa1lYUnBiMjRvWTI5dGNHOXVaVzUwS1R0Y2JseHVJQ0FnSUdOdmJYQnZibVZ1ZEM1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNCZmFYTldZV3hwWkRvZ2FYTldZV3hwWkN4Y2JpQWdJQ0FnSUY5elpYSjJaWEpGY25KdmNqb2diblZzYkZ4dUlDQWdJSDBzSUhSb2FYTXVkbUZzYVdSaGRHVkdiM0p0S1R0Y2JseHVJQ0I5TEZ4dVhHNGdJQzh2SUVOb1pXTnJjeUIyWVd4cFpHRjBhVzl1SUc5dUlHTjFjbkpsYm5RZ2RtRnNkV1VnYjNJZ1lTQndZWE56WldRZ2RtRnNkV1ZjYmlBZ2NuVnVWbUZzYVdSaGRHbHZiam9nWm5WdVkzUnBiMjRnS0dOdmJYQnZibVZ1ZEN3Z2RtRnNkV1VwSUh0Y2JseHVJQ0FnSUhaaGNpQnBjMVpoYkdsa0lEMGdkSEoxWlR0Y2JpQWdJQ0JjYmlBZ0lDQjJZV3gxWlNBOUlHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnZ1BUMDlJRElnUHlCMllXeDFaU0E2SUdOdmJYQnZibVZ1ZEM1emRHRjBaUzVmZG1Gc2RXVTdYRzRnSUNBZ2FXWWdLR052YlhCdmJtVnVkQzVmZG1Gc2FXUmhkR2x2Ym5NdWJHVnVaM1JvSUNZbUlDaGpiMjF3YjI1bGJuUXVjSEp2Y0hNdWNtVnhkV2x5WldRZ2ZId2dkbUZzZFdVZ0lUMDlJQ2NuS1NrZ2UxeHVJQ0FnSUNBZ1kyOXRjRzl1Wlc1MExsOTJZV3hwWkdGMGFXOXVjeTV6Y0d4cGRDZ3ZYRndzS0Q4aFcxNTdYRnhiWFNwYmZWeGNYVjBwTDJjcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0Z0tIWmhiR2xrWVhScGIyNHBJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlHRnlaM01nUFNCMllXeHBaR0YwYVc5dUxuTndiR2wwS0NjNkp5azdYRzRnSUNBZ0lDQWdJSFpoY2lCMllXeHBaR0YwWlUxbGRHaHZaQ0E5SUdGeVozTXVjMmhwWm5Rb0tUdGNiaUFnSUNBZ0lDQWdZWEpuY3lBOUlHRnlaM011YldGd0tHWjFibU4wYVc5dUlDaGhjbWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFcFRUMDR1Y0dGeWMyVW9ZWEpuS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlJR05oZEdOb0lDaGxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lYSm5PeUF2THlCSmRDQnBjeUJoSUhOMGNtbHVaeUJwWmlCcGRDQmpZVzRnYm05MElIQmhjbk5sSUdsMFhHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ1lYSm5jeUE5SUZ0MllXeDFaVjB1WTI5dVkyRjBLR0Z5WjNNcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVhaaGJHbGtZWFJwYjI1U2RXeGxjMXQyWVd4cFpHRjBaVTFsZEdodlpGMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjBadmNtMXplU0JrYjJWeklHNXZkQ0JvWVhabElIUm9aU0IyWVd4cFpHRjBhVzl1SUhKMWJHVTZJQ2NnS3lCMllXeHBaR0YwWlUxbGRHaHZaQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLQ0YyWVd4cFpHRjBhVzl1VW5Wc1pYTmJkbUZzYVdSaGRHVk5aWFJvYjJSZExtRndjR3g1S0hSb2FYTXVaMlYwUTNWeWNtVnVkRlpoYkhWbGN5Z3BMQ0JoY21kektTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdselZtRnNhV1FnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR2x6Vm1Gc2FXUTdYRzRnSUgwc1hHNWNiaUFnTHk4Z1ZtRnNhV1JoZEdVZ2RHaGxJR1p2Y20wZ1lua2daMjlwYm1jZ2RHaHliM1ZuYUNCaGJHd2dZMmhwYkdRZ2FXNXdkWFFnWTI5dGNHOXVaVzUwYzF4dUlDQXZMeUJoYm1RZ1kyaGxZMnNnZEdobGFYSWdjM1JoZEdWY2JpQWdkbUZzYVdSaGRHVkdiM0p0T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2RtRnlJR0ZzYkVselZtRnNhV1FnUFNCMGNuVmxPMXh1SUNBZ0lIWmhjaUJwYm5CMWRITWdQU0IwYUdsekxtbHVjSFYwY3p0Y2JpQWdJQ0IyWVhJZ2FXNXdkWFJMWlhseklEMGdUMkpxWldOMExtdGxlWE1vYVc1d2RYUnpLVHRjYmx4dUlDQWdJQzh2SUZkbElHNWxaV1FnWVNCallXeHNZbUZqYXlCaGN5QjNaU0JoY21VZ2RtRnNhV1JoZEdsdVp5QmhiR3dnYVc1d2RYUnpJR0ZuWVdsdUxpQlVhR2x6SUhkcGJHeGNiaUFnSUNBdkx5QnlkVzRnZDJobGJpQjBhR1VnYkdGemRDQmpiMjF3YjI1bGJuUWdhR0Z6SUhObGRDQnBkSE1nYzNSaGRHVmNiaUFnSUNCMllYSWdiMjVXWVd4cFpHRjBhVzl1UTI5dGNHeGxkR1VnUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQnBibkIxZEV0bGVYTXVabTl5UldGamFDaG1kVzVqZEdsdmJpQW9ibUZ0WlNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdsdWNIVjBjMXR1WVcxbFhTNXpkR0YwWlM1ZmFYTldZV3hwWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0ZzYkVselZtRnNhV1FnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNibHh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lHbHpWbUZzYVdRNklHRnNiRWx6Vm1Gc2FXUmNiaUFnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0JwWmlBb1lXeHNTWE5XWVd4cFpDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnliM0J6TG05dVZtRnNhV1FvS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNUpiblpoYkdsa0tDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQzh2SUZSbGJHd2dkR2hsSUdadmNtMGdkR2hoZENCcGRDQmpZVzRnYzNSaGNuUWdkRzhnZEhKcFoyZGxjaUJqYUdGdVoyVWdaWFpsYm5SelhHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnWTJGdVEyaGhibWRsT2lCMGNuVmxYRzRnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJSDB1WW1sdVpDaDBhR2x6S1R0Y2JseHVJQ0FnSUM4dklGSjFiaUIyWVd4cFpHRjBhVzl1SUdGbllXbHVJR2x1SUdOaGMyVWdZV1ptWldOMFpXUWdZbmtnYjNSb1pYSWdhVzV3ZFhSekxpQlVhR1ZjYmlBZ0lDQXZMeUJzWVhOMElHTnZiWEJ2Ym1WdWRDQjJZV3hwWkdGMFpXUWdkMmxzYkNCeWRXNGdkR2hsSUc5dVZtRnNhV1JoZEdsdmJrTnZiWEJzWlhSbElHTmhiR3hpWVdOclhHNGdJQ0FnYVc1d2RYUkxaWGx6TG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0c1aGJXVXNJR2x1WkdWNEtTQjdYRzRnSUNBZ0lDQjJZWElnWTI5dGNHOXVaVzUwSUQwZ2FXNXdkWFJ6VzI1aGJXVmRPMXh1SUNBZ0lDQWdkbUZ5SUdselZtRnNhV1FnUFNCMGFHbHpMbkoxYmxaaGJHbGtZWFJwYjI0b1kyOXRjRzl1Wlc1MEtUdGNiaUFnSUNBZ0lHTnZiWEJ2Ym1WdWRDNXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQWdJRjlwYzFaaGJHbGtPaUJwYzFaaGJHbGtMRnh1SUNBZ0lDQWdJQ0JmYzJWeWRtVnlSWEp5YjNJNklHNTFiR3hjYmlBZ0lDQWdJSDBzSUdsdVpHVjRJRDA5UFNCcGJuQjFkRXRsZVhNdWJHVnVaM1JvSUMwZ01TQS9JRzl1Vm1Gc2FXUmhkR2x2YmtOdmJYQnNaWFJsSURvZ2JuVnNiQ2s3WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JseHVJQ0FnSUM4dklFbG1JSFJvWlhKbElHRnlaU0J1YnlCcGJuQjFkSE1zSUhObGRDQnpkR0YwWlNCM2FHVnlaU0JtYjNKdElHbHpJSEpsWVdSNUlIUnZJSFJ5YVdkblpYSmNiaUFnSUNBdkx5QmphR0Z1WjJVZ1pYWmxiblF1SUU1bGR5QnBibkIxZEhNZ2JXbG5hSFFnWW1VZ1lXUmtaV1FnYkdGMFpYSmNiaUFnSUNCcFppQW9JV2x1Y0hWMFMyVjVjeTVzWlc1bmRHZ2dKaVlnZEdocGN5NXBjMDF2ZFc1MFpXUW9LU2tnZTF4dUlDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQWdJR05oYmtOb1lXNW5aVG9nZEhKMVpWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dVhHNGdJQzh2SUUxbGRHaHZaQ0J3ZFhRZ2IyNGdaV0ZqYUNCcGJuQjFkQ0JqYjIxd2IyNWxiblFnZEc4Z2NtVm5hWE4wWlhKY2JpQWdMeThnYVhSelpXeG1JSFJ2SUhSb1pTQm1iM0p0WEc0Z0lHRjBkR0ZqYUZSdlJtOXliVG9nWm5WdVkzUnBiMjRnS0dOdmJYQnZibVZ1ZENrZ2UxeHVJQ0FnSUhSb2FYTXVhVzV3ZFhSelcyTnZiWEJ2Ym1WdWRDNXdjbTl3Y3k1dVlXMWxYU0E5SUdOdmJYQnZibVZ1ZER0Y2JpQWdJQ0IwYUdsekxtMXZaR1ZzVzJOdmJYQnZibVZ1ZEM1d2NtOXdjeTV1WVcxbFhTQTlJR052YlhCdmJtVnVkQzV6ZEdGMFpTNWZkbUZzZFdVN1hHNGdJQ0FnZEdocGN5NTJZV3hwWkdGMFpTaGpiMjF3YjI1bGJuUXBPMXh1SUNCOUxGeHVYRzRnSUM4dklFMWxkR2h2WkNCd2RYUWdiMjRnWldGamFDQnBibkIxZENCamIyMXdiMjVsYm5RZ2RHOGdkVzV5WldkcGMzUmxjbHh1SUNBdkx5QnBkSE5sYkdZZ1puSnZiU0IwYUdVZ1ptOXliVnh1SUNCa1pYUmhZMmhHY205dFJtOXliVG9nWm5WdVkzUnBiMjRnS0dOdmJYQnZibVZ1ZENrZ2UxeHVJQ0FnSUdSbGJHVjBaU0IwYUdsekxtbHVjSFYwYzF0amIyMXdiMjVsYm5RdWNISnZjSE11Ym1GdFpWMDdYRzRnSUNBZ1pHVnNaWFJsSUhSb2FYTXViVzlrWld4YlkyOXRjRzl1Wlc1MExuQnliM0J6TG01aGJXVmRPMXh1SUNCOUxGeHVJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUhKbGRIVnliaUJTWldGamRDNUVUMDB1Wm05eWJTaDdYRzRnSUNBZ0lDQWdJRzl1VTNWaWJXbDBPaUIwYUdsekxuTjFZbTFwZEN4Y2JpQWdJQ0FnSUNBZ1kyeGhjM05PWVcxbE9pQjBhR2x6TG5CeWIzQnpMbU5zWVhOelRtRnRaVnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSFJvYVhNdWNISnZjSE11WTJocGJHUnlaVzVjYmlBZ0lDQXBPMXh1WEc0Z0lIMWNibjBwTzF4dVhHNXBaaUFvSVdkc2IySmhiQzVsZUhCdmNuUnpJQ1ltSUNGbmJHOWlZV3d1Ylc5a2RXeGxJQ1ltSUNnaFoyeHZZbUZzTG1SbFptbHVaU0I4ZkNBaFoyeHZZbUZzTG1SbFptbHVaUzVoYldRcEtTQjdYRzRnSUdkc2IySmhiQzVHYjNKdGMza2dQU0JHYjNKdGMzazdYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1JtOXliWE41TzF4dUlsMTkiLCJ2YXIgY3NyZlRva2VuU2VsZWN0b3IgPSB0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9XCJjc3JmLXRva2VuXCJdJykgOiBudWxsO1xuXG52YXIgdG9VUkxFbmNvZGVkID0gZnVuY3Rpb24gKGVsZW1lbnQsIGtleSwgbGlzdCkge1xuICB2YXIgbGlzdCA9IGxpc3QgfHwgW107XG4gIGlmICh0eXBlb2YgKGVsZW1lbnQpID09ICdvYmplY3QnKSB7XG4gICAgZm9yICh2YXIgaWR4IGluIGVsZW1lbnQpXG4gICAgICB0b1VSTEVuY29kZWQoZWxlbWVudFtpZHhdLCBrZXkgPyBrZXkgKyAnWycgKyBpZHggKyAnXScgOiBpZHgsIGxpc3QpO1xuICB9IGVsc2Uge1xuICAgIGxpc3QucHVzaChrZXkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoZWxlbWVudCkpO1xuICB9XG4gIHJldHVybiBsaXN0LmpvaW4oJyYnKTtcbn07XG5cbnZhciByZXF1ZXN0ID0gZnVuY3Rpb24gKG1ldGhvZCwgdXJsLCBkYXRhLCBjb250ZW50VHlwZSwgaGVhZGVycykge1xuXG4gIHZhciBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlID09PSAndXJsZW5jb2RlZCcgPyAnYXBwbGljYXRpb24vJyArIGNvbnRlbnRUeXBlLnJlcGxhY2UoJ3VybGVuY29kZWQnLCAneC13d3ctZm9ybS11cmxlbmNvZGVkJykgOiAnYXBwbGljYXRpb24vanNvbic7XG4gIGRhdGEgPSBjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiB0b1VSTEVuY29kZWQoZGF0YSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgeGhyLm9wZW4obWV0aG9kLCB1cmwsIHRydWUpO1xuICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywgY29udGVudFR5cGUpO1xuXG4gICAgICBpZiAoISFjc3JmVG9rZW5TZWxlY3RvciAmJiAhIWNzcmZUb2tlblNlbGVjdG9yLmNvbnRlbnQpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ1gtQ1NSRi1Ub2tlbicsIGNzcmZUb2tlblNlbGVjdG9yLmNvbnRlbnQpO1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgcGFzc2VkIGhlYWRlcnNcbiAgICAgIE9iamVjdC5rZXlzKGhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24gKGhlYWRlcikge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihoZWFkZXIsIGhlYWRlcnNbaGVhZGVyXSk7XG4gICAgICB9KTtcblxuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0geGhyLnJlc3BvbnNlVGV4dCA/IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHhoci5zZW5kKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFycmF5c0RpZmZlcjogZnVuY3Rpb24gKGFycmF5QSwgYXJyYXlCKSB7XG4gICAgdmFyIGlzRGlmZmVyZW50ID0gZmFsc2U7XG4gICAgaWYgKGFycmF5QS5sZW5ndGggIT09IGFycmF5Qi5sZW5ndGgpIHtcbiAgICAgIGlzRGlmZmVyZW50ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyYXlBLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIGlmIChpdGVtICE9PSBhcnJheUJbaW5kZXhdKSB7XG4gICAgICAgICAgaXNEaWZmZXJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlmZmVyZW50O1xuICB9LFxuICBhamF4OiB7XG4gICAgcG9zdDogcmVxdWVzdC5iaW5kKG51bGwsICdQT1NUJyksXG4gICAgcHV0OiByZXF1ZXN0LmJpbmQobnVsbCwgJ1BVVCcpXG4gIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdmRYUnBiSE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTlWYzJWeWN5OWphSEpwYzNScFlXNWhiR1p2Ym1rdlJHOWpkVzFsYm5SekwyUmxkaTltYjNKdGMza3RjbVZoWTNRdmMzSmpMM1YwYVd4ekxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEVsQlFVa3NhVUpCUVdsQ0xFZEJRVWNzVDBGQlR5eFJRVUZSTEVsQlFVa3NWMEZCVnl4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU03TzBGQlJXeElMRWxCUVVrc1dVRkJXU3hIUVVGSExGVkJRVlVzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SlFVRkpMRVZCUVVVN1JVRkRMME1zU1VGQlNTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRGUVVOMFFpeEpRVUZKTEZGQlFWRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1VVRkJVU3hGUVVGRk8wbEJRMmhETEV0QlFVc3NTVUZCU1N4SFFVRkhMRWxCUVVrc1QwRkJUenROUVVOeVFpeFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGRCUTNaRkxFMUJRVTA3U1VGRFRDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEhRVU53UkR0RlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTjRRaXhEUVVGRExFTkJRVU03TzBGQlJVWXNTVUZCU1N4UFFVRlBMRWRCUVVjc1ZVRkJWU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVGRk96dEZRVVV2UkN4SlFVRkpMRmRCUVZjc1IwRkJSeXhYUVVGWExFdEJRVXNzV1VGQldTeEhRVUZITEdOQlFXTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUlVGQlJTeDFRa0ZCZFVJc1EwRkJReXhIUVVGSExHdENRVUZyUWl4RFFVRkRPMEZCUTNCS0xFVkJRVVVzU1VGQlNTeEhRVUZITEZkQlFWY3NTMEZCU3l4clFrRkJhMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXpzN1JVRkZkRVlzVDBGQlR5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VlFVRlZMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVU3U1VGRE5VTXNTVUZCU1R0TlFVTkdMRWxCUVVrc1IwRkJSeXhIUVVGSExFbEJRVWtzWTBGQll5eEZRVUZGTEVOQlFVTTdUVUZETDBJc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wMUJRelZDTEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dEJRVU42UkN4TlFVRk5MRWRCUVVjc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4alFVRmpMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03TzAxQlJXeEVMRWxCUVVrc1EwRkJReXhEUVVGRExHbENRVUZwUWl4SlFVRkpMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4UFFVRlBMRVZCUVVVN1VVRkRkRVFzUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExHTkJRV01zUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU40UlN4UFFVRlBPMEZCUTFBN08wMUJSVTBzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeE5RVUZOTEVWQlFVVTdVVUZETjBNc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBSQ3hQUVVGUExFTkJRVU1zUTBGQlF6czdUVUZGU0N4SFFVRkhMRU5CUVVNc2EwSkJRV3RDTEVkQlFVY3NXVUZCV1R0QlFVTXpReXhSUVVGUkxFbEJRVWtzUjBGQlJ5eERRVUZETEZWQlFWVXNTMEZCU3l4RFFVRkRMRVZCUVVVN08xVkJSWGhDTEVsQlFVazdXVUZEUml4SlFVRkpMRkZCUVZFc1IwRkJSeXhIUVVGSExFTkJRVU1zV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0WlFVTjBSU3hKUVVGSkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEZRVUZGTzJOQlEzcERMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dGhRVU51UWl4TlFVRk5PMk5CUTB3c1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzJGQlEyeENPMWRCUTBZc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFpRVU5XTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMFFpeFhRVUZYT3p0VFFVVkdPMDlCUTBZc1EwRkJRenROUVVOR0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRhRUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0TlFVTldMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5ZTzBkQlEwWXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRE96dEJRVVZHTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWRCUVVjN1JVRkRaaXhaUVVGWkxFVkJRVVVzVlVGQlZTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZPMGxCUTNSRExFbEJRVWtzVjBGQlZ5eEhRVUZITEV0QlFVc3NRMEZCUXp0SlFVTjRRaXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSVHROUVVOdVF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRPMHRCUTNCQ0xFMUJRVTA3VFVGRFRDeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdFJRVU53UXl4SlFVRkpMRWxCUVVrc1MwRkJTeXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdWVUZETVVJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dFRRVU53UWp0UFFVTkdMRU5CUVVNc1EwRkJRenRMUVVOS08wbEJRMFFzVDBGQlR5eFhRVUZYTEVOQlFVTTdSMEZEY0VJN1JVRkRSQ3hKUVVGSkxFVkJRVVU3U1VGRFNpeEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETzBsQlEyaERMRWRCUVVjc1JVRkJSU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNN1IwRkRMMEk3UTBGRFJpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWRtRnlJR056Y21aVWIydGxibE5sYkdWamRHOXlJRDBnZEhsd1pXOW1JR1J2WTNWdFpXNTBJQ0U5SUNkMWJtUmxabWx1WldRbklEOGdaRzlqZFcxbGJuUXVjWFZsY25sVFpXeGxZM1J2Y2lnbmJXVjBZVnR1WVcxbFBWd2lZM055WmkxMGIydGxibHdpWFNjcElEb2diblZzYkR0Y2JseHVkbUZ5SUhSdlZWSk1SVzVqYjJSbFpDQTlJR1oxYm1OMGFXOXVJQ2hsYkdWdFpXNTBMQ0JyWlhrc0lHeHBjM1FwSUh0Y2JpQWdkbUZ5SUd4cGMzUWdQU0JzYVhOMElIeDhJRnRkTzF4dUlDQnBaaUFvZEhsd1pXOW1JQ2hsYkdWdFpXNTBLU0E5UFNBbmIySnFaV04wSnlrZ2UxeHVJQ0FnSUdadmNpQW9kbUZ5SUdsa2VDQnBiaUJsYkdWdFpXNTBLVnh1SUNBZ0lDQWdkRzlWVWt4RmJtTnZaR1ZrS0dWc1pXMWxiblJiYVdSNFhTd2dhMlY1SUQ4Z2EyVjVJQ3NnSjFzbklDc2dhV1I0SUNzZ0oxMG5JRG9nYVdSNExDQnNhWE4wS1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCc2FYTjBMbkIxYzJnb2EyVjVJQ3NnSnowbklDc2daVzVqYjJSbFZWSkpRMjl0Y0c5dVpXNTBLR1ZzWlcxbGJuUXBLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdiR2x6ZEM1cWIybHVLQ2NtSnlrN1hHNTlPMXh1WEc1MllYSWdjbVZ4ZFdWemRDQTlJR1oxYm1OMGFXOXVJQ2h0WlhSb2IyUXNJSFZ5YkN3Z1pHRjBZU3dnWTI5dWRHVnVkRlI1Y0dVc0lHaGxZV1JsY25NcElIdGNibHh1SUNCMllYSWdZMjl1ZEdWdWRGUjVjR1VnUFNCamIyNTBaVzUwVkhsd1pTQTlQVDBnSjNWeWJHVnVZMjlrWldRbklEOGdKMkZ3Y0d4cFkyRjBhVzl1THljZ0t5QmpiMjUwWlc1MFZIbHdaUzV5WlhCc1lXTmxLQ2QxY214bGJtTnZaR1ZrSnl3Z0ozZ3RkM2QzTFdadmNtMHRkWEpzWlc1amIyUmxaQ2NwSURvZ0oyRndjR3hwWTJGMGFXOXVMMnB6YjI0bk8xeHVJQ0JrWVhSaElEMGdZMjl1ZEdWdWRGUjVjR1VnUFQwOUlDZGhjSEJzYVdOaGRHbHZiaTlxYzI5dUp5QS9JRXBUVDA0dWMzUnlhVzVuYVdaNUtHUmhkR0VwSURvZ2RHOVZVa3hGYm1OdlpHVmtLR1JoZEdFcE8xeHVYRzRnSUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNobWRXNWpkR2x2YmlBb2NtVnpiMngyWlN3Z2NtVnFaV04wS1NCN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lIWmhjaUI0YUhJZ1BTQnVaWGNnV0UxTVNIUjBjRkpsY1hWbGMzUW9LVHRjYmlBZ0lDQWdJSGhvY2k1dmNHVnVLRzFsZEdodlpDd2dkWEpzTENCMGNuVmxLVHRjYmlBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0NkQlkyTmxjSFFuTENBbllYQndiR2xqWVhScGIyNHZhbk52YmljcE8xeHVJQ0FnSUNBZ2VHaHlMbk5sZEZKbGNYVmxjM1JJWldGa1pYSW9KME52Ym5SbGJuUXRWSGx3WlNjc0lHTnZiblJsYm5SVWVYQmxLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tDRWhZM055WmxSdmEyVnVVMlZzWldOMGIzSWdKaVlnSVNGamMzSm1WRzlyWlc1VFpXeGxZM1J2Y2k1amIyNTBaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIaG9jaTV6WlhSU1pYRjFaWE4wU0dWaFpHVnlLQ2RZTFVOVFVrWXRWRzlyWlc0bkxDQmpjM0ptVkc5clpXNVRaV3hsWTNSdmNpNWpiMjUwWlc1MEtUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdMeThnUVdSa0lIQmhjM05sWkNCb1pXRmtaWEp6WEc0Z0lDQWdJQ0JQWW1wbFkzUXVhMlY1Y3lob1pXRmtaWEp6S1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNob1pXRmtaWElwSUh0Y2JpQWdJQ0FnSUNBZ2VHaHlMbk5sZEZKbGNYVmxjM1JJWldGa1pYSW9hR1ZoWkdWeUxDQm9aV0ZrWlhKelcyaGxZV1JsY2wwcE8xeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSGhvY2k1dmJuSmxZV1I1YzNSaGRHVmphR0Z1WjJVZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDRhSEl1Y21WaFpIbFRkR0YwWlNBOVBUMGdOQ2tnZTF4dVhHNGdJQ0FnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCeVpYTndiMjV6WlNBOUlIaG9jaTV5WlhOd2IyNXpaVlJsZUhRZ1B5QktVMDlPTG5CaGNuTmxLSGhvY2k1eVpYTndiMjV6WlZSbGVIUXBJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDRhSEl1YzNSaGRIVnpJRDQ5SURJd01DQW1KaUI0YUhJdWMzUmhkSFZ6SUR3Z016QXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVW9jbVZ6Y0c5dWMyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WcVpXTjBLSEpsYzNCdmJuTmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5SUdOaGRHTm9JQ2hsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WldwbFkzUW9aU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0I0YUhJdWMyVnVaQ2hrWVhSaEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQnlaV3BsWTNRb1pTazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JuMDdYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTF4dUlDQmhjbkpoZVhORWFXWm1aWEk2SUdaMWJtTjBhVzl1SUNoaGNuSmhlVUVzSUdGeWNtRjVRaWtnZTF4dUlDQWdJSFpoY2lCcGMwUnBabVpsY21WdWRDQTlJR1poYkhObE8xeHVJQ0FnSUdsbUlDaGhjbkpoZVVFdWJHVnVaM1JvSUNFOVBTQmhjbkpoZVVJdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCcGMwUnBabVpsY21WdWRDQTlJSFJ5ZFdVN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR0Z5Y21GNVFTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHBkR1Z0TENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9hWFJsYlNBaFBUMGdZWEp5WVhsQ1cybHVaR1Y0WFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6UkdsbVptVnlaVzUwSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnBjMFJwWm1abGNtVnVkRHRjYmlBZ2ZTeGNiaUFnWVdwaGVEb2dlMXh1SUNBZ0lIQnZjM1E2SUhKbGNYVmxjM1F1WW1sdVpDaHVkV3hzTENBblVFOVRWQ2NwTEZ4dUlDQWdJSEIxZERvZ2NtVnhkV1Z6ZEM1aWFXNWtLRzUxYkd3c0lDZFFWVlFuS1Z4dUlDQjlYRzU5TzF4dUlsMTkiLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgJ2lzVmFsdWUnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09ICcnO1xuICB9LFxuICAnaXNFbWFpbCc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KFxcXFwoW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBkLVxceDdmXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSkqKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPyhcXHgyMikpKUAoKChbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpXFwuKSsoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkkL2kpO1xuICB9LFxuICAnaXNUcnVlJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0cnVlO1xuICB9LFxuICAnaXNOdW1lcmljJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbWF0Y2hSZXN1bHRzID0gdmFsdWUubWF0Y2goL1stK10/KFxcZCpbLl0pP1xcZCsvKTtcbiAgICAgIGlmICghISBtYXRjaFJlc3VsdHMpIHtcbiAgICAgICAgcmV0dXJuIG1hdGNoUmVzdWx0c1swXSA9PSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICdpc0FscGhhJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9eW2EtekEtWl0rJC8pO1xuICB9LFxuICAnaXNXb3Jkcyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpcXHNdKyQvKTtcbiAgfSxcbiAgJ2lzU3BlY2lhbFdvcmRzJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9eW2EtekEtWlxcc1xcdTAwQzAtXFx1MDE3Rl0rJC8pO1xuICB9LFxuICBpc0xlbmd0aDogZnVuY3Rpb24gKHZhbHVlLCBtaW4sIG1heCkge1xuICAgIGlmIChtYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSBtaW4gJiYgdmFsdWUubGVuZ3RoIDw9IG1heDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSBtaW47XG4gIH0sXG4gIGVxdWFsczogZnVuY3Rpb24gKHZhbHVlLCBlcWwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gZXFsO1xuICB9LFxuICBlcXVhbHNGaWVsZDogZnVuY3Rpb24gKHZhbHVlLCBmaWVsZCkge1xuICAgIHJldHVybiB2YWx1ZSA9PSB0aGlzW2ZpZWxkXTtcbiAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12ZG1Gc2FXUmhkR2x2YmxKMWJHVnpMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXZWWE5sY25NdlkyaHlhWE4wYVdGdVlXeG1iMjVwTDBSdlkzVnRaVzUwY3k5a1pYWXZabTl5YlhONUxYSmxZV04wTDNOeVl5OTJZV3hwWkdGMGFXOXVVblZzWlhNdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVFVGQlRTeERRVUZETEU5QlFVOHNSMEZCUnp0RlFVTm1MRk5CUVZNc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdEpRVU14UWl4UFFVRlBMRXRCUVVzc1MwRkJTeXhGUVVGRkxFTkJRVU03UjBGRGNrSTdSVUZEUkN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRE1VSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExIazBRa0ZCZVRSQ0xFTkJRVU1zUTBGQlF6dEhRVU12TlVJN1JVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdTVUZEZWtJc1QwRkJUeXhMUVVGTExFdEJRVXNzU1VGQlNTeERRVUZETzBkQlEzWkNPMFZCUTBRc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzBsQlF6VkNMRWxCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVTeEZRVUZGTzAxQlF6ZENMRTlCUVU4c1NVRkJTU3hEUVVGRE8wdEJRMklzVFVGQlRUdE5RVU5NTEVsQlFVa3NXVUZCV1N4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenROUVVOd1JDeEpRVUZKTEVOQlFVTXNSVUZCUlN4WlFVRlpMRVZCUVVVN1VVRkRia0lzVDBGQlR5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGRE8wOUJRMnBETEUxQlFVMDdVVUZEVEN4UFFVRlBMRXRCUVVzc1EwRkJRenRQUVVOa08wdEJRMFk3UjBGRFJqdEZRVU5FTEZOQlFWTXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRKUVVNeFFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UjBGRGJrTTdSVUZEUkN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRE1VSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzBkQlEzSkRPMFZCUTBRc1owSkJRV2RDTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRha01zVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVOQlFVTTdSMEZEYkVRN1JVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSVHRKUVVOdVF5eEpRVUZKTEVkQlFVY3NTMEZCU3l4VFFVRlRMRVZCUVVVN1RVRkRja0lzVDBGQlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXp0TFFVTnVSRHRKUVVORUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4SFFVRkhMRU5CUVVNN1IwRkROVUk3UlVGRFJDeE5RVUZOTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRk8wbEJRelZDTEU5QlFVOHNTMEZCU3l4SlFVRkpMRWRCUVVjc1EwRkJRenRIUVVOeVFqdEZRVU5FTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRGJrTXNUMEZCVHl4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBkQlF6ZENPME5CUTBZc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTF4dUlDQW5hWE5XWVd4MVpTYzZJR1oxYm1OMGFXOXVJQ2gyWVd4MVpTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0FoUFQwZ0p5YzdYRzRnSUgwc1hHNGdJQ2RwYzBWdFlXbHNKem9nWm5WdVkzUnBiMjRnS0haaGJIVmxLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsTG0xaGRHTm9LQzllS0Nnb1cyRXRlbDE4WEZ4a2ZGc2hJMXhjSkNVbUoxeGNLbHhjSzF4Y0xWeGNMejFjWEQ5Y1hGNWZZSHRjWEh4OWZsMThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS3loY1hDNG9XMkV0ZWwxOFhGeGtmRnNoSTF4Y0pDVW1KMXhjS2x4Y0sxeGNMVnhjTHoxY1hEOWNYRjVmWUh0Y1hIeDlmbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEt5a3FLWHdvS0Z4Y2VESXlLU2dvS0NoY1hIZ3lNSHhjWEhnd09Ta3FLRnhjZURCa1hGeDRNR0VwS1Q4b1hGeDRNakI4WEZ4NE1Ea3BLeWsvS0NoYlhGeDRNREV0WEZ4NE1EaGNYSGd3WWx4Y2VEQmpYRng0TUdVdFhGeDRNV1pjWEhnM1psMThYRng0TWpGOFcxeGNlREl6TFZ4Y2VEVmlYWHhiWEZ4NE5XUXRYRng0TjJWZGZGdGNYSFV3TUVFd0xWeGNkVVEzUmtaY1hIVkdPVEF3TFZ4Y2RVWkVRMFpjWEhWR1JFWXdMVnhjZFVaR1JVWmRLWHdvWEZ4Y1hDaGJYRng0TURFdFhGeDRNRGxjWEhnd1lseGNlREJqWEZ4NE1HUXRYRng0TjJaZGZGdGNYSFV3TUVFd0xWeGNkVVEzUmtaY1hIVkdPVEF3TFZ4Y2RVWkVRMFpjWEhWR1JFWXdMVnhjZFVaR1JVWmRLU2twS1Nvb0tDaGNYSGd5TUh4Y1hIZ3dPU2txS0Z4Y2VEQmtYRng0TUdFcEtUOG9YRng0TWpCOFhGeDRNRGtwS3lrL0tGeGNlREl5S1NrcFFDZ29LRnRoTFhwZGZGeGNaSHhiWEZ4MU1EQkJNQzFjWEhWRU4wWkdYRngxUmprd01DMWNYSFZHUkVOR1hGeDFSa1JHTUMxY1hIVkdSa1ZHWFNsOEtDaGJZUzE2WFh4Y1hHUjhXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS0Z0aExYcGRmRnhjWkh3dGZGeGNMbnhmZkg1OFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLaWhiWVMxNlhYeGNYR1I4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtTbGNYQzRwS3lnb1cyRXRlbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcGZDZ29XMkV0ZWwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLRnRoTFhwZGZGeGNaSHd0ZkZ4Y0xueGZmSDU4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtpaGJZUzE2WFh4YlhGeDFNREJCTUMxY1hIVkVOMFpHWEZ4MVJqa3dNQzFjWEhWR1JFTkdYRngxUmtSR01DMWNYSFZHUmtWR1hTa3BLU1F2YVNrN1hHNGdJSDBzWEc0Z0lDZHBjMVJ5ZFdVbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVWdQVDA5SUhSeWRXVTdYRzRnSUgwc1hHNGdJQ2RwYzA1MWJXVnlhV01uT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBbmJuVnRZbVZ5SnlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhaaGNpQnRZWFJqYUZKbGMzVnNkSE1nUFNCMllXeDFaUzV0WVhSamFDZ3ZXeTByWFQ4b1hGeGtLbHN1WFNrL1hGeGtLeThwTzF4dUlDQWdJQ0FnYVdZZ0tDRWhJRzFoZEdOb1VtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXRjBZMmhTWlhOMWJIUnpXekJkSUQwOUlIWmhiSFZsTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmU3hjYmlBZ0oybHpRV3h3YUdFbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViV0YwWTJnb0wxNWJZUzE2UVMxYVhTc2tMeWs3WEc0Z0lIMHNYRzRnSUNkcGMxZHZjbVJ6SnpvZ1puVnVZM1JwYjI0Z0tIWmhiSFZsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbExtMWhkR05vS0M5ZVcyRXRla0V0V2x4Y2MxMHJKQzhwTzF4dUlDQjlMRnh1SUNBbmFYTlRjR1ZqYVdGc1YyOXlaSE1uT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWJXRjBZMmdvTDE1YllTMTZRUzFhWEZ4elhGeDFNREJETUMxY1hIVXdNVGRHWFNza0x5azdYRzRnSUgwc1hHNGdJR2x6VEdWdVozUm9PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXNJRzFwYml3Z2JXRjRLU0I3WEc0Z0lDQWdhV1lnS0cxaGVDQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVXViR1Z1WjNSb0lENDlJRzFwYmlBbUppQjJZV3gxWlM1c1pXNW5kR2dnUEQwZ2JXRjRPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViR1Z1WjNSb0lENDlJRzFwYmp0Y2JpQWdmU3hjYmlBZ1pYRjFZV3h6T2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUdWeGJDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0E5UFNCbGNXdzdYRzRnSUgwc1hHNGdJR1Z4ZFdGc2MwWnBaV3hrT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUdacFpXeGtLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsSUQwOUlIUm9hWE5iWm1sbGJHUmRPMXh1SUNCOVhHNTlPMXh1SWwxOSJdfQ== diff --git a/specs/Element-spec.js b/specs/Element-spec.js index 763be76..7246225 100644 --- a/specs/Element-spec.js +++ b/specs/Element-spec.js @@ -26,7 +26,7 @@ describe('Element', function() { }); - it('should return true or false when calling hasValue() depending on value existance', function () { + it('should set back to pristine value when running reset', function () { var reset = null; var TestInput = React.createClass({ @@ -48,8 +48,9 @@ describe('Element', function() { ); var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT'); + TestUtils.Simulate.change(input, {target: {value: 'foobar'}}); reset(); - expect(input.getDOMNode().value).toBe(''); + expect(input.getDOMNode().value).toBe('foo'); }); @@ -306,7 +307,7 @@ it('should allow an undefined value to be updated to a value', function (done) { }, 0); }); -it('should be able to dynamically change validations', function (done) { + it('should be able to dynamically change validations', function (done) { var isInvalid = false; var TestInput = React.createClass({ @@ -347,4 +348,32 @@ it('should be able to dynamically change validations', function (done) { }, 0); }); + it('should be able to test a values validity', function () { + + var isInvalid = false; + var TestInput = React.createClass({ + mixins: [Formsy.Mixin], + render: function () { + return + } + }); + var TestForm = React.createClass({ + render: function () { + return ( + + + + ); + } + }); + var form = TestUtils.renderIntoDocument( + + ); + + var input = TestUtils.findRenderedComponentWithType(form, TestInput); + expect(input.isValidValue('foo@bar.com')).toBe(true); + expect(input.isValidValue('foo@bar')).toBe(false); + + }); + }); diff --git a/specs/Formsy-spec.js b/specs/Formsy-spec.js index 108ce84..90fbbe5 100755 --- a/specs/Formsy-spec.js +++ b/specs/Formsy-spec.js @@ -438,6 +438,120 @@ describe('Formsy', function () { }); + it('should be possible to pass error state of elements by changing an errors attribute', function (done) { + + var TestInput = React.createClass({ + mixins: [Formsy.Mixin], + render: function () { + return ; + } + }); + var TestForm = React.createClass({ + getInitialState: function () { + return { + validationErrors: { + foo: 'bar' + } + }; + }, + onChange: function (values) { + if (values.foo) { + this.setState({ + validationErrors: {} + }); + } else { + this.setState({ + validationErrors: {foo: 'bar'} + }); + } + }, + render: function () { + return ( + + + ); + } + }); + var form = TestUtils.renderIntoDocument( + + ); + + // Wait for update + setTimeout(function () { + var input = TestUtils.findRenderedComponentWithType(form, TestInput); + expect(input.getErrorMessage()).toBe('bar'); + input.setValue('gotValue'); + + // Wait for update + setTimeout(function () { + expect(input.getErrorMessage()).toBe(null); + done(); + }, 0); + }, 0); + + }); + + + it('should trigger an onValidSubmit when submitting a valid form', function () { + + var isCalled = false; + var TestInput = React.createClass({ + mixins: [Formsy.Mixin], + render: function () { + return ; + } + }); + var TestForm = React.createClass({ + onValidSubmit: function () { + isCalled = true; + }, + render: function () { + return ( + + + ); + } + }); + var form = TestUtils.renderIntoDocument( + + ); + + var TestForm = TestUtils.findRenderedComponentWithType(form, TestForm); + TestUtils.Simulate.submit(TestForm.getDOMNode()); + expect(isCalled).toBe(true); + + }); + + it('should trigger an onInvalidSubmit when submitting an invalid form', function () { + + var isCalled = false; + var TestInput = React.createClass({ + mixins: [Formsy.Mixin], + render: function () { + return ; + } + }); + var TestForm = React.createClass({ + onInvalidSubmit: function () { + isCalled = true; + }, + render: function () { + return ( + + + ); + } + }); + var form = TestUtils.renderIntoDocument( + + ); + + var TestForm = TestUtils.findRenderedComponentWithType(form, TestForm); + TestUtils.Simulate.submit(TestForm.getDOMNode()); + expect(isCalled).toBe(true); + + }); + }); describe("value === false", function() { diff --git a/src/Mixin.js b/src/Mixin.js index 48c8cd2..a394469 100644 --- a/src/Mixin.js +++ b/src/Mixin.js @@ -1,9 +1,11 @@ module.exports = { getInitialState: function () { + var value = 'value' in this.props ? this.props.value : ''; return { - _value: this.props.value !== undefined ? this.props.value : '', + _value: value, _isValid: true, - _isPristine: true + _isPristine: true, + _pristineValue: value }; }, componentWillMount: function () { @@ -59,7 +61,8 @@ module.exports = { // the value, set the value again running a validation if (prevProps.validations !== this.props.validations || isValueChanged()) { - this.setValue(this.props.value === undefined ? '' : this.props.value); + var value = 'value' in this.props ? this.props.value : ''; + this.setValue(value); } }, @@ -91,7 +94,7 @@ module.exports = { }, resetValue: function () { this.setState({ - _value: '', + _value: this.state._pristineValue, _isPristine: true }, function () { this.props._validate(this); @@ -123,5 +126,8 @@ module.exports = { }, showError: function () { return !this.showRequired() && !this.state._isValid; + }, + isValidValue: function (value) { + return this.props._isValidValue.call(null, this, value); } }; diff --git a/src/main.js b/src/main.js index aec26b2..96117d7 100644 --- a/src/main.js +++ b/src/main.js @@ -29,6 +29,8 @@ Formsy.Form = React.createClass({ onSuccess: function () {}, onError: function () {}, onSubmit: function () {}, + onValidSubmit: function () {}, + onInvalidSubmit: function () {}, onSubmitted: function () {}, onValid: function () {}, onInvalid: function () {}, @@ -61,6 +63,10 @@ Formsy.Form = React.createClass({ this.registerInputs(this.props.children); + if (this.props.validationErrors) { + this.setInputValidationErrors(this.props.validationErrors); + } + var newInputKeys = Object.keys(this.inputs); if (utils.arraysDiffer(inputKeys, newInputKeys)) { this.validateForm(); @@ -85,7 +91,9 @@ Formsy.Form = React.createClass({ // if wanting to reset the entire form to original state, the second param is a callback for this. if (!this.props.url) { this.updateModel(); - this.props.onSubmit(this.mapModel(), this.resetModel, this.updateInputsWithError); + var model = this.mapModel(); + this.props.onSubmit(model, this.resetModel, this.updateInputsWithError); + this.state.isValid ? this.props.onValidSubmit(model, this.resetModel) : this.props.onInvalidSubmit(model, this.resetModel); return; } @@ -128,6 +136,17 @@ Formsy.Form = React.createClass({ this.validateForm(); }, + setInputValidationErrors: function (errors) { + Object.keys(this.inputs).forEach(function (name, index) { + var component = this.inputs[name]; + var args = [{ + _isValid: !(name in errors), + _serverError: errors[name] + }]; + component.setState.apply(component, args); + }.bind(this)); + }, + // Go through errors from server and grab the components // stored in the inputs map. Change their state to invalid // and set the serverError message @@ -167,6 +186,7 @@ Formsy.Form = React.createClass({ child.props._detachFromForm = this.detachFromForm; child.props._validate = this.validate; child.props._isFormDisabled = this.isFormDisabled; + child.props._isValidValue = this.runValidation; } if (child && child.props && child.props.children) { @@ -227,10 +247,14 @@ Formsy.Form = React.createClass({ }, - runValidation: function (component) { + // Checks validation on current value or a passed value + runValidation: function (component, value) { + var isValid = true; - if (component._validations.length && (component.props.required || component.state._value !== '')) { - component._validations.split(',').forEach(function (validation) { + + value = arguments.length === 2 ? value : component.state._value; + if (component._validations.length && (component.props.required || value !== '')) { + component._validations.split(/\,(?![^{\[]*[}\]])/g).forEach(function (validation) { var args = validation.split(':'); var validateMethod = args.shift(); args = args.map(function (arg) { @@ -240,7 +264,7 @@ Formsy.Form = React.createClass({ return arg; // It is a string if it can not parse it } }); - args = [component.state._value].concat(args); + args = [value].concat(args); if (!validationRules[validateMethod]) { throw new Error('Formsy does not have the validation rule: ' + validateMethod); } diff --git a/src/validationRules.js b/src/validationRules.js index 61a121b..c0b62a5 100644 --- a/src/validationRules.js +++ b/src/validationRules.js @@ -39,6 +39,6 @@ module.exports = { return value == eql; }, equalsField: function (value, field) { - return value === this[field]; + return value == this[field]; } };