formsy-react/build/specs.js

2040 lines
455 KiB
JavaScript

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"./specs/Element-spec.js":[function(require,module,exports){
var Formsy = require('./../src/main.js');
describe('Element', function() {
it('should return passed and setValue() value when using getValue()', function () {
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "foo"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
expect(input.getDOMNode().value).toBe('foo');
TestUtils.Simulate.change(input, {target: {value: 'foobar'}});
expect(input.getDOMNode().value).toBe('foobar');
});
it('should set back to pristine value when running reset', function () {
var reset = null;
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
componentDidMount: function () {
reset = this.resetValue;
},
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "foo"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
TestUtils.Simulate.change(input, {target: {value: 'foobar'}});
reset();
expect(input.getDOMNode().value).toBe('foo');
});
it('should return error message passed when calling getErrorMessage()', function () {
var getErrorMessage = null;
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
componentDidMount: function () {
getErrorMessage = this.getErrorMessage;
},
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isEmail", validationError: "Has to be email"})
)
);
expect(getErrorMessage()).toBe('Has to be email');
});
it('should return server error message when calling getErrorMessage()', function (done) {
jasmine.Ajax.install();
var getErrorMessage = null;
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
componentDidMount: function () {
getErrorMessage = this.getErrorMessage;
},
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users"},
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isEmail", validationError: "Has to be email"})
)
);
var form = TestUtils.Simulate.submit(form.getDOMNode());
jasmine.Ajax.requests.mostRecent().respondWith({
status: 500,
contentType: 'application/json',
responseText: '{"foo": "bar"}'
})
setTimeout(function () {
expect(getErrorMessage()).toBe('bar');
jasmine.Ajax.uninstall();
done();
}, 0);
});
it('should return true or false when calling isValid() depending on valid state', function () {
var isValid = null;
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
componentDidMount: function () {
isValid = this.isValid;
},
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users"},
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isEmail"})
)
);
expect(isValid()).toBe(false);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
TestUtils.Simulate.change(input, {target: {value: 'foo@foo.com'}});
expect(isValid()).toBe(true);
});
it('should return true or false when calling isRequired() depending on passed required attribute', function () {
var isRequireds = [];
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
componentDidMount: function () {
isRequireds.push(this.isRequired);
},
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users"},
React.createElement(TestInput, {name: "foo", value: "foo"}),
React.createElement(TestInput, {name: "foo", value: "foo", required: true})
)
);
expect(isRequireds[0]()).toBe(false);
expect(isRequireds[1]()).toBe(true);
});
it('should return true or false when calling showRequired() depending on input being empty and required is passed, or not', function () {
var showRequireds = [];
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
componentDidMount: function () {
showRequireds.push(this.showRequired);
},
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users"},
React.createElement(TestInput, {name: "A", value: "foo"}),
React.createElement(TestInput, {name: "B", value: "", required: true}),
React.createElement(TestInput, {name: "C", value: ""})
)
);
expect(showRequireds[0]()).toBe(false);
expect(showRequireds[1]()).toBe(true);
expect(showRequireds[2]()).toBe(false);
});
it('should return true or false when calling showError() depending on value is invalid or a server error has arrived, or not', function (done) {
var showError = null;
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
componentDidMount: function () {
showError = this.showError;
},
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users"},
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isEmail", validationError: "This is not an email"})
)
);
expect(showError()).toBe(true);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
TestUtils.Simulate.change(input, {target: {value: 'foo@foo.com'}});
expect(showError()).toBe(false);
jasmine.Ajax.install();
TestUtils.Simulate.submit(form.getDOMNode());
jasmine.Ajax.requests.mostRecent().respondWith({
status: 500,
responseType: 'application/json',
responseText: '{"foo": "Email already exists"}'
});
setTimeout(function () {
expect(showError()).toBe(true);
jasmine.Ajax.uninstall();
done();
}, 0);
});
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",
mixins: [Formsy.Mixin],
componentDidMount: function () {
isPristine = this.isPristine;
},
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users"},
React.createElement(TestInput, {name: "A", value: "foo"})
)
);
expect(isPristine()).toBe(true);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
TestUtils.Simulate.change(input, {target: {value: 'foo'}});
expect(isPristine()).toBe(false);
});
it('should allow an undefined value to be updated to a value', 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 {value: undefined};
},
changeValue: function () {
this.setState({
value: 'foo'
});
},
render: function () {
return (
React.createElement(Formsy.Form, {url: "/users"},
React.createElement(TestInput, {name: "A", value: this.state.value})
)
);
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(TestForm, null)
);
form.changeValue();
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
setTimeout(function () {
expect(input.getDOMNode().value).toBe('foo');
done();
}, 0);
});
it('should be able to dynamically change validations', function (done) {
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",
getInitialState: function () {
return {value: 'foo@bar.com', validations: 'isEmail'};
},
changeValidations: function () {
this.setState({
validations: 'equals:foo'
});
},
setInvalid: function () {
isInvalid = true;
},
render: function () {
return (
React.createElement(Formsy.Form, {url: "/users", onInvalid: this.setInvalid},
React.createElement(TestInput, {name: "A", validations: this.state.validations, value: this.state.value})
)
);
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(TestForm, null)
);
form.changeValidations();
setTimeout(function () {
expect(isInvalid).toBe(true);
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);
});
});
},{"./../src/main.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/main.js"}],"./specs/Formsy-spec.js":[function(require,module,exports){
var Formsy = require('./../src/main.js');
describe('Formsy', function () {
describe('Setting up a form', function () {
it('should render a form into the document', function () {
var form = TestUtils.renderIntoDocument( React.createElement(Formsy.Form, null));
expect(form.getDOMNode().tagName).toEqual('FORM');
});
it('should set a class name if passed', function () {
var form = TestUtils.renderIntoDocument( React.createElement(Formsy.Form, {className: "foo"}));
expect(form.getDOMNode().className).toEqual('foo');
});
it('should allow for null/undefined children', function (done) {
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})
}
});
var model = null;
var TestForm = React.createClass({displayName: "TestForm",
onSubmit: function (formModel) {
model = formModel;
},
render: function () {
return (
React.createElement(Formsy.Form, {onSubmit: this.onSubmit},
React.createElement("h1", null, "Test"),
null,
undefined,
React.createElement(TestInput, {name: "name", value: 'foo' })
)
);
}
});
var form = TestUtils.renderIntoDocument(React.createElement(TestForm, null));
setTimeout(function () {
TestUtils.Simulate.submit(form.getDOMNode());
expect(model).toEqual({name: 'foo'});
done();
}, 10);
});
it('should allow for inputs being added dynamically', function (done) {
var inputs = [];
var forceUpdate = null;
var model = null;
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
render: function () {
return React.createElement("div", null)
}
});
var TestForm = React.createClass({displayName: "TestForm",
componentWillMount: function () {
forceUpdate = this.forceUpdate.bind(this);
},
onSubmit: function (formModel) {
model = formModel;
},
render: function () {
return (
React.createElement(Formsy.Form, {onSubmit: this.onSubmit},
inputs
));
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(TestForm, null)
);
// Wait before adding the input
setTimeout(function () {
inputs.push(TestInput({
name: 'test'
}));
forceUpdate(function () {
// Wait for next event loop, as that does the form
setTimeout(function () {
TestUtils.Simulate.submit(form.getDOMNode());
expect(model.test).toBeDefined();
done();
}, 0);
});
}, 10);
});
it('should allow dynamically added inputs to update the form-model', function (done) {
var inputs = [];
var forceUpdate = null;
var model = null;
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})
}
});
var TestForm = React.createClass({displayName: "TestForm",
componentWillMount: function () {
forceUpdate = this.forceUpdate.bind(this);
},
onSubmit: function (formModel) {
model = formModel;
},
render: function () {
return (
React.createElement(Formsy.Form, {onSubmit: this.onSubmit},
inputs
));
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(TestForm, null)
);
// Wait before adding the input
setTimeout(function () {
inputs.push(TestInput({
name: 'test'
}));
forceUpdate(function () {
// Wait for next event loop, as that does the form
setTimeout(function () {
TestUtils.Simulate.change(TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT'), {target: {value: 'foo'}});
TestUtils.Simulate.submit(form.getDOMNode());
expect(model.test).toBe('foo');
done();
}, 0);
});
}, 0);
});
it('should allow a dynamically updated input to update the form-model', function (done) {
var forceUpdate = null;
var model = null;
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})
}
});
var input;
var TestForm = React.createClass({displayName: "TestForm",
componentWillMount: function () {
forceUpdate = this.forceUpdate.bind(this);
},
onSubmit: function (formModel) {
model = formModel;
},
render: function () {
input = React.createElement(TestInput, {name: "test", value: this.props.value});
return (
React.createElement(Formsy.Form, {onSubmit: this.onSubmit},
input
));
}
});
var form = TestUtils.renderIntoDocument(React.createElement(TestForm, {value: "foo"}));
// Wait before changing the input
setTimeout(function () {
form.setProps({value: 'bar'});
forceUpdate(function () {
// Wait for next event loop, as that does the form
setTimeout(function () {
TestUtils.Simulate.submit(form.getDOMNode());
expect(model.test).toBe('bar');
done();
}, 0);
});
}, 10);
});
describe('validations', function() {
var CheckValid, onSubmit, OtherCheckValid;
var isValid;
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})
}
});
var TestForm = React.createClass({displayName: "TestForm",
getDefaultProps: function() {
return {
inputs: [],
};
},
render: function () {
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
);
}
});
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 () {
var hasChanged = jasmine.createSpy('onChange');
var TestForm = React.createClass({displayName: "TestForm",
onChange: function () {
hasChanged();
},
render: function () {
return React.createElement(Formsy.Form, {onChange: this.onChange});
}
});
var form = TestUtils.renderIntoDocument(React.createElement(TestForm, null));
expect(hasChanged).not.toHaveBeenCalled();
});
it('should trigger onChange when form element is changed', function () {
var hasChanged = jasmine.createSpy('onChange');
var MyInput = React.createClass({displayName: "MyInput",
mixins: [Formsy.Mixin],
onChange: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.onChange})
}
});
var TestForm = React.createClass({displayName: "TestForm",
onChange: function () {
hasChanged();
},
render: function () {
return (
React.createElement(Formsy.Form, {onChange: this.onChange},
React.createElement(MyInput, {name: "foo"})
)
);
}
});
var form = TestUtils.renderIntoDocument(React.createElement(TestForm, null));
TestUtils.Simulate.change(TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT'), {target: {value: 'bar'}});
expect(hasChanged).toHaveBeenCalled();
});
it('should trigger onChange when new input is added to form', function (done) {
var hasChanged = jasmine.createSpy('onChange');
var inputs = [];
var forceUpdate = null;
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})
}
});
var TestForm = React.createClass({displayName: "TestForm",
componentWillMount: function () {
forceUpdate = this.forceUpdate.bind(this);
},
onChange: function () {
hasChanged();
},
render: function () {
return (
React.createElement(Formsy.Form, {onChange: this.onChange},
inputs
));
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(TestForm, null)
);
// Wait before adding the input
inputs.push(TestInput({
name: 'test'
}));
forceUpdate(function () {
// Wait for next event loop, as that does the form
setTimeout(function () {
expect(hasChanged).toHaveBeenCalled();
done();
}, 0);
});
});
});
describe('Update a form', function () {
it('should allow elements to check if the form is disabled', 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 {disabled: true};
},
enableForm: function () {
this.setState({
disabled: false
});
},
render: function () {
return (
React.createElement(Formsy.Form, {onChange: this.onChange, disabled: this.state.disabled},
React.createElement(TestInput, {name: "foo"})
));
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(TestForm, null)
);
var input = TestUtils.findRenderedComponentWithType(form, TestInput);
expect(input.isFormDisabled()).toBe(true);
form.enableForm();
setTimeout(function () {
expect(input.isFormDisabled()).toBe(false);
done();
}, 0);
});
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});
});
});
});
},{"./../src/main.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/main.js"}],"./specs/Submit-spec.js":[function(require,module,exports){
var Formsy = require('./../src/main.js');
describe('Ajax', function() {
beforeEach(function () {
jasmine.Ajax.install();
});
afterEach(function () {
jasmine.Ajax.uninstall();
});
it('should post to a given url if passed', function () {
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users"}
)
);
TestUtils.Simulate.submit(form.getDOMNode());
expect(jasmine.Ajax.requests.mostRecent().url).toBe('/users');
expect(jasmine.Ajax.requests.mostRecent().method).toBe('POST');
});
it('should put to a given url if passed a method attribute', function () {
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users", method: "PUT"}
)
);
TestUtils.Simulate.submit(form.getDOMNode());
expect(jasmine.Ajax.requests.mostRecent().url).toBe('/users');
expect(jasmine.Ajax.requests.mostRecent().method).toBe('PUT');
});
it('should pass x-www-form-urlencoded as contentType when urlencoded is set as contentType', function () {
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users", contentType: "urlencoded"}
)
);
TestUtils.Simulate.submit(form.getDOMNode());
expect(jasmine.Ajax.requests.mostRecent().contentType()).toBe('application/x-www-form-urlencoded');
});
it('should run an onSuccess handler, if passed and ajax is successfull. First argument is data from server', function (done) {
var onSuccess = jasmine.createSpy("success");
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users", onSuccess: onSuccess}
)
);
jasmine.Ajax.stubRequest('/users').andReturn({
status: 200,
contentType: 'application/json',
responseText: '{}'
});
TestUtils.Simulate.submit(form.getDOMNode());
// Since ajax is returned as a promise (async), move assertion
// to end of event loop
setTimeout(function () {
expect(onSuccess).toHaveBeenCalledWith({});
done();
}, 0);
});
it('should not do ajax request if onSubmit handler is passed, but pass the model as first argument to onSubmit handler', function () {
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
render: function () {
return React.createElement("input", {value: this.getValue()})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {onSubmit: onSubmit},
React.createElement(TestInput, {name: "foo", value: "bar"})
)
);
TestUtils.Simulate.submit(form.getDOMNode());
expect(jasmine.Ajax.requests.count()).toBe(0);
function onSubmit (data) {
expect(data).toEqual({
foo: 'bar'
});
}
});
it('should trigger an onSubmitted handler, if passed and the submit has responded with SUCCESS', function (done) {
var onSubmitted = jasmine.createSpy("submitted");
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users", onSubmitted: onSubmitted}
)
);
jasmine.Ajax.stubRequest('/users').andReturn({
status: 200,
contentType: 'application/json',
responseText: '{}'
});
TestUtils.Simulate.submit(form.getDOMNode());
// Since ajax is returned as a promise (async), move assertion
// to end of event loop
setTimeout(function () {
expect(onSubmitted).toHaveBeenCalled();
done();
}, 0);
});
it('should trigger an onSubmitted handler, if passed and the submit has responded with ERROR', function (done) {
var onSubmitted = jasmine.createSpy("submitted");
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users", onSubmitted: onSubmitted}
)
);
jasmine.Ajax.stubRequest('/users').andReturn({
status: 500,
contentType: 'application/json',
responseText: '{}'
});
TestUtils.Simulate.submit(form.getDOMNode());
// Since ajax is returned as a promise (async), move assertion
// to end of event loop
setTimeout(function () {
expect(onSubmitted).toHaveBeenCalled();
done();
}, 0);
});
it('should trigger an onError handler, if passed and the submit has responded with ERROR', function (done) {
var onError = jasmine.createSpy("error");
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {url: "/users", onError: onError}
)
);
// Do not return any error because there are no inputs
jasmine.Ajax.stubRequest('/users').andReturn({
status: 500,
contentType: 'application/json',
responseText: '{}'
});
TestUtils.Simulate.submit(form.getDOMNode());
// Since ajax is returned as a promise (async), move assertion
// to end of event loop
setTimeout(function () {
expect(onError).toHaveBeenCalledWith({});
done();
}, 0);
});
});
},{"./../src/main.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/main.js"}],"./specs/Validation-spec.js":[function(require,module,exports){
var Formsy = require('./../src/main.js');
describe('Validation', function() {
it('should trigger an onValid handler, if passed, when form is valid', function () {
var onValid = jasmine.createSpy('valid');
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {onValid: onValid},
React.createElement(TestInput, {name: "foo", required: true})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
TestUtils.Simulate.change(input, {target: {value: 'foo'}});
expect(onValid).toHaveBeenCalled();
});
it('should trigger an onInvalid handler, if passed, when form is invalid', function () {
var onInvalid = jasmine.createSpy('invalid');
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, {onValid: onInvalid},
React.createElement(TestInput, {name: "foo", value: "foo"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
TestUtils.Simulate.change(input, {target: {value: ''}});
expect(onInvalid).toHaveBeenCalled();
});
it('should use provided validate function', function () {
var isValid = jasmine.createSpy('valid');
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
if (this.isValid()) {
isValid();
}
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
},
validate: function () {
return this.getValue() === "checkValidity";
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "checkInvalidity"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
TestUtils.Simulate.change(input, {target: {value: 'checkValidity'}});
expect(isValid).toHaveBeenCalled();
});
it('RULE: isEmail', function () {
var isValid = jasmine.createSpy('valid');
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
if (this.isValid()) {
isValid();
}
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isEmail"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
expect(isValid).not.toHaveBeenCalled();
TestUtils.Simulate.change(input, {target: {value: 'foo@foo.com'}});
expect(isValid).toHaveBeenCalled();
});
it('RULE: isNumeric', function () {
var isValid = jasmine.createSpy('valid');
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
if (this.isValid()) {
isValid();
}
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isNumeric"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
expect(isValid).not.toHaveBeenCalled();
TestUtils.Simulate.change(input, {target: {value: '123'}});
expect(isValid).toHaveBeenCalled();
});
it('RULE: isNumeric (actual number)', function () {
var isValid = jasmine.createSpy('valid');
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(Number(event.target.value));
},
render: function () {
if (this.isValid()) {
isValid();
}
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isNumeric"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
expect(isValid).not.toHaveBeenCalled();
TestUtils.Simulate.change(input, {target: {value: '123'}});
expect(isValid).toHaveBeenCalled();
});
it('RULE: isNumeric (string representation of a float)', function () {
var isValid = jasmine.createSpy('valid');
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
if (this.isValid()) {
isValid();
}
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isNumeric"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
expect(isValid).not.toHaveBeenCalled();
TestUtils.Simulate.change(input, {target: {value: '1.5'}});
expect(isValid).toHaveBeenCalled();
});
it('RULE: isNumeric is false (string representation of an invalid float)', function () {
var isValid = jasmine.createSpy('valid');
var TestInput = React.createClass({displayName: "TestInput",
mixins: [Formsy.Mixin],
updateValue: function (event) {
this.setValue(event.target.value);
},
render: function () {
if (this.isValid()) {
isValid();
}
return React.createElement("input", {value: this.getValue(), onChange: this.updateValue})
}
});
var form = TestUtils.renderIntoDocument(
React.createElement(Formsy.Form, null,
React.createElement(TestInput, {name: "foo", value: "foo", validations: "isNumeric"})
)
);
var input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT');
expect(isValid).not.toHaveBeenCalled();
TestUtils.Simulate.change(input, {target: {value: '1.'}});
expect(isValid).not.toHaveBeenCalled();
});
});
},{"./../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: value,
_isValid: true,
_isPristine: true,
_pristineValue: value
};
},
componentWillMount: function () {
var configure = function () {
this.setValidations(this.props.validations, this.props.required);
this.props._attachToForm(this);
}.bind(this);
if (!this.props.name) {
throw new Error('Form Input requires a name property when used');
}
if (!this.props._attachToForm) {
return setTimeout(function () {
if (!this.isMounted()) return;
if (!this.props._attachToForm) {
throw new Error('Form Mixin requires component to be nested in a Form');
}
configure();
}.bind(this), 0);
}
configure();
},
// We have to make the validate method is kept when new props are added
componentWillReceiveProps: function (nextProps) {
nextProps._attachToForm = this.props._attachToForm;
nextProps._detachFromForm = this.props._detachFromForm;
nextProps._validate = this.props._validate;
nextProps._isValidValue = this.props._isValidValue;
nextProps._isFormDisabled = this.props._isFormDisabled;
this.setValidations(nextProps.validations, nextProps.required);
},
componentDidUpdate: function (prevProps, prevState) {
var isValueChanged = function () {
return (
this.props.value !== prevProps.value && (
this.state._value === prevProps.value ||
// Since undefined is converted to empty string we have to
// check that specifically
(this.state._value === '' && prevProps.value === undefined)
)
);
}.bind(this);
// If validations has changed or something outside changes
// the value, set the value again running a validation
if (prevProps.validations !== this.props.validations || isValueChanged()) {
var value = 'value' in this.props ? this.props.value : '';
this.setValue(value);
}
},
// Detach it when component unmounts
componentWillUnmount: function () {
this.props._detachFromForm(this);
},
setValidations: function (validations, required) {
// Add validations to the store itself as the props object can not be modified
this._validations = validations || '';
if (required) {
this._validations = validations ? validations + ',' : '';
this._validations += 'isValue';
}
},
// We validate after the value has been set
setValue: function (value) {
this.setState({
_value: value,
_isPristine: false
}, function () {
this.props._validate(this);
}.bind(this));
},
resetValue: function () {
this.setState({
_value: this.state._pristineValue,
_isPristine: true
}, function () {
this.props._validate(this);
});
},
getValue: function () {
return this.state._value;
},
hasValue: function () {
return this.state._value !== '';
},
getErrorMessage: function () {
return this.isValid() || this.showRequired() ? null : this.state._serverError || this.props.validationError;
},
isFormDisabled: function () {
return this.props._isFormDisabled();
},
isValid: function () {
return this.state._isValid;
},
isPristine: function () {
return this.state._isPristine;
},
isRequired: function () {
return !!this.props.required;
},
showRequired: function () {
return this.isRequired() && this.state._value === '';
},
showError: function () {
return !this.showRequired() && !this.state._isValid;
},
isValidValue: function (value) {
return this.props._isValidValue.call(null, this, value);
}
};
},{}],"/Users/christianalfoni/Documents/dev/formsy-react/src/main.js":[function(require,module,exports){
(function (global){
var React = global.React || require('react');
var Formsy = {};
var validationRules = require('./validationRules.js');
var utils = require('./utils.js');
var Mixin = require('./Mixin.js');
var options = {};
Formsy.Mixin = Mixin;
Formsy.defaults = function (passedOptions) {
options = passedOptions;
};
Formsy.addValidationRule = function (name, func) {
validationRules[name] = func;
};
Formsy.Form = React.createClass({displayName: "Form",
getInitialState: function () {
return {
isValid: true,
isSubmitting: false,
canChange: false
};
},
getDefaultProps: function () {
return {
headers: {},
onSuccess: function () {},
onError: function () {},
onSubmit: function () {},
onValidSubmit: function () {},
onInvalidSubmit: function () {},
onSubmitted: function () {},
onValid: function () {},
onInvalid: function () {},
onChange: function () {}
};
},
// Add a map to store the inputs of the form, a model to store
// the values of the form and register child inputs
componentWillMount: function () {
this.inputs = {};
this.model = {};
this.registerInputs(this.props.children);
},
componentDidMount: function () {
this.validateForm();
},
componentWillUpdate: function () {
var inputKeys = Object.keys(this.inputs);
// The updated children array is not available here for some reason,
// we need to wait for next event loop
setTimeout(function () {
// The component might have been unmounted on an
// update
if (this.isMounted()) {
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();
}
}
}.bind(this), 0);
},
// Update model, submit to url prop and send the model
submit: function (event) {
event.preventDefault();
// Trigger form as not pristine.
// If any inputs have not been touched yet this will make them dirty
// so validation becomes visible (if based on isPristine)
this.setFormPristine(false);
// To support use cases where no async or request operation is needed.
// The "onSubmit" callback is called with the model e.g. {fieldName: "myValue"},
// if wanting to reset the entire form to original state, the second param is a callback for this.
if (!this.props.url) {
this.updateModel();
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;
}
this.updateModel();
this.setState({
isSubmitting: true
});
this.props.onSubmit(this.mapModel(), this.resetModel, this.updateInputsWithError);
var headers = (Object.keys(this.props.headers).length && this.props.headers) || options.headers || {};
var method = this.props.method && utils.ajax[this.props.method.toLowerCase()] ? this.props.method.toLowerCase() : 'post';
utils.ajax[method](this.props.url, this.mapModel(), this.props.contentType || options.contentType || 'json', headers)
.then(function (response) {
this.props.onSuccess(response);
this.props.onSubmitted();
}.bind(this))
.catch(this.failSubmit);
},
mapModel: function () {
return this.props.mapping ? this.props.mapping(this.model) : this.model;
},
// Goes through all registered components and
// updates the model values
updateModel: function () {
Object.keys(this.inputs).forEach(function (name) {
var component = this.inputs[name];
this.model[name] = component.state._value;
}.bind(this));
},
// Reset each key in the model to the original / initial value
resetModel: function () {
Object.keys(this.inputs).forEach(function (name) {
this.inputs[name].resetValue();
}.bind(this));
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
updateInputsWithError: function (errors) {
Object.keys(errors).forEach(function (name, index) {
var component = this.inputs[name];
if (!component) {
throw new Error('You are trying to update an input that does not exists. Verify errors object with input names. ' + JSON.stringify(errors));
}
var args = [{
_isValid: false,
_serverError: errors[name]
}];
component.setState.apply(component, args);
}.bind(this));
},
failSubmit: function (errors) {
this.updateInputsWithError(errors);
this.setState({
isSubmitting: false
});
this.props.onError(errors);
this.props.onSubmitted();
},
// Traverse the children and children of children to find
// all inputs by checking the name prop. Maybe do a better
// check here
registerInputs: function (children) {
React.Children.forEach(children, function (child) {
if (child && child.props && child.props.name) {
child.props._attachToForm = this.attachToForm;
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) {
this.registerInputs(child.props.children);
}
}.bind(this));
},
isFormDisabled: function () {
return this.props.disabled;
},
getCurrentValues: function () {
return Object.keys(this.inputs).reduce(function (data, name) {
var component = this.inputs[name];
data[name] = component.state._value;
return data;
}.bind(this), {});
},
setFormPristine: function (isPristine) {
var inputs = this.inputs;
var inputKeys = Object.keys(inputs);
// Iterate through each component and set it as pristine
// or "dirty".
inputKeys.forEach(function (name, index) {
var component = inputs[name];
component.setState({
_isPristine: isPristine
});
}.bind(this));
},
// Use the binded values and the actual input value to
// validate the input and set its state. Then check the
// state of the form itself
validate: function (component) {
// Trigger onChange
if (this.state.canChange) {
this.props.onChange(this.getCurrentValues());
}
var isValid = true;
if (component.validate && typeof component.validate === 'function') {
isValid = component.validate();
} else if (component.props.required || component._validations) {
isValid = this.runValidation(component);
}
// Run through the validations, split them up and call
// the validator IF there is a value or it is required
component.setState({
_isValid: isValid,
_serverError: null
}, this.validateForm);
},
// Checks validation on current value or a passed value
runValidation: function (component, value) {
var isValid = true;
value = arguments.length === 2 ? value : component.state._value;
if (component._validations.length) {
component._validations.split(/\,(?![^{\[]*[}\]])/g).forEach(function (validation) {
var args = validation.split(':');
var validateMethod = args.shift();
args = args.map(function (arg) {
try {
return JSON.parse(arg);
} catch (e) {
return arg; // It is a string if it can not parse it
}
});
args = [value].concat(args);
if (!validationRules[validateMethod]) {
throw new Error('Formsy does not have the validation rule: ' + validateMethod);
}
if (!validationRules[validateMethod].apply(this.getCurrentValues(), args)) {
isValid = false;
}
}.bind(this));
}
if (typeof component.validate === "function") {
// the component defines an explicit validate function
isValid = component.validate()
}
return isValid;
},
// Validate the form by going through all child input components
// and check their state
validateForm: function () {
var allIsValid = true;
var inputs = this.inputs;
var inputKeys = Object.keys(inputs);
// We need a callback as we are validating all inputs again. This will
// run when the last component has set its state
var onValidationComplete = function () {
inputKeys.forEach(function (name) {
if (!inputs[name].state._isValid) {
allIsValid = false;
}
}.bind(this));
this.setState({
isValid: allIsValid
});
if (allIsValid) {
this.props.onValid();
} else {
this.props.onInvalid();
}
// Tell the form that it can start to trigger change events
this.setState({
canChange: true
});
}.bind(this);
// Run validation again in case affected by other inputs. The
// last component validated will run the onValidationComplete callback
inputKeys.forEach(function (name, index) {
var component = inputs[name];
var isValid = this.runValidation(component);
component.setState({
_isValid: isValid,
_serverError: null
}, index === inputKeys.length - 1 ? onValidationComplete : null);
}.bind(this));
// If there are no inputs, set state where form is ready to trigger
// change event. New inputs might be added later
if (!inputKeys.length && this.isMounted()) {
this.setState({
canChange: true
});
}
},
// Method put on each input component to register
// itself to the form
attachToForm: function (component) {
this.inputs[component.props.name] = component;
this.model[component.props.name] = component.state._value;
this.validate(component);
},
// Method put on each input component to unregister
// itself from the form
detachFromForm: function (component) {
delete this.inputs[component.props.name];
delete this.model[component.props.name];
},
render: function () {
return React.DOM.form({
onSubmit: this.submit,
className: this.props.className
},
this.props.children
);
}
});
if (!global.exports && !global.module && (!global.define || !global.define.amd)) {
global.Formsy = Formsy;
}
module.exports = Formsy;
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"./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/utils.js":[function(require,module,exports){
var csrfTokenSelector = typeof document != 'undefined' ? document.querySelector('meta[name="csrf-token"]') : null;
var toURLEncoded = function (element, key, list) {
var list = list || [];
if (typeof (element) == 'object') {
for (var idx in element)
toURLEncoded(element[idx], key ? key + '[' + idx + ']' : idx, list);
} else {
list.push(key + '=' + encodeURIComponent(element));
}
return list.join('&');
};
var request = function (method, url, data, contentType, headers) {
var contentType = contentType === 'urlencoded' ? 'application/' + contentType.replace('urlencoded', 'x-www-form-urlencoded') : 'application/json';
data = contentType === 'application/json' ? JSON.stringify(data) : toURLEncoded(data);
return new Promise(function (resolve, reject) {
try {
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', contentType);
if (!!csrfTokenSelector && !!csrfTokenSelector.content) {
xhr.setRequestHeader('X-CSRF-Token', csrfTokenSelector.content);
}
// Add passed headers
Object.keys(headers).forEach(function (header) {
xhr.setRequestHeader(header, headers[header]);
});
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
try {
var response = xhr.responseText ? JSON.parse(xhr.responseText) : null;
if (xhr.status >= 200 && xhr.status < 300) {
resolve(response);
} else {
reject(response);
}
} catch (e) {
reject(e);
}
}
};
xhr.send(data);
} catch (e) {
reject(e);
}
});
};
module.exports = {
arraysDiffer: function (arrayA, arrayB) {
var isDifferent = false;
if (arrayA.length !== arrayB.length) {
isDifferent = true;
} else {
arrayA.forEach(function (item, index) {
if (item !== arrayB[index]) {
isDifferent = true;
}
});
}
return isDifferent;
},
ajax: {
post: request.bind(null, 'POST'),
put: request.bind(null, 'PUT')
}
};
},{}],"/Users/christianalfoni/Documents/dev/formsy-react/src/validationRules.js":[function(require,module,exports){
module.exports = {
'isValue': function (value) {
return value !== '';
},
'isEmail': function (value) {
return value.match(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i);
},
'isTrue': function (value) {
return value === true;
},
'isNumeric': function (value) {
if (typeof value === 'number') {
return true;
} else {
var matchResults = value.match(/[-+]?(\d*[.])?\d+/);
if (!! matchResults) {
return matchResults[0] == value;
} else {
return false;
}
}
},
'isAlpha': function (value) {
return value.match(/^[a-zA-Z]+$/);
},
'isWords': function (value) {
return value.match(/^[a-zA-Z\s]+$/);
},
'isSpecialWords': function (value) {
return value.match(/^[a-zA-Z\s\u00C0-\u017F]+$/);
},
isLength: function (value, min, max) {
if (max !== undefined) {
return value.length >= min && value.length <= max;
}
return value.length >= min;
},
equals: function (value, eql) {
return value == eql;
},
equalsField: function (value, 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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LFdBQVcsRUFBRSxVQUFVLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDbkMsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQzdCO0FBQ0gsQ0FBQyxDQUFDOztBQUVGIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInZhciBGb3Jtc3kgPSByZXF1aXJlKCcuLy4uL3NyYy9tYWluLmpzJyk7XG5cbmRlc2NyaWJlKCdFbGVtZW50JywgZnVuY3Rpb24oKSB7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gcGFzc2VkIGFuZCBzZXRWYWx1ZSgpIHZhbHVlIHdoZW4gdXNpbmcgZ2V0VmFsdWUoKScsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwgbnVsbCwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBleHBlY3QoaW5wdXQuZ2V0RE9NTm9kZSgpLnZhbHVlKS50b0JlKCdmb28nKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdmb29iYXInfX0pO1xuICAgIGV4cGVjdChpbnB1dC5nZXRET01Ob2RlKCkudmFsdWUpLnRvQmUoJ2Zvb2JhcicpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGJhY2sgdG8gcHJpc3RpbmUgdmFsdWUgd2hlbiBydW5uaW5nIHJlc2V0JywgZnVuY3Rpb24gKCkge1xuICAgIFxuICAgIHZhciByZXNldCA9IG51bGw7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXNldCA9IHRoaXMucmVzZXRWYWx1ZTtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnZm9vYmFyJ319KTtcbiAgICByZXNldCgpO1xuICAgIGV4cGVjdChpbnB1dC5nZXRET01Ob2RlKCkudmFsdWUpLnRvQmUoJ2ZvbycpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIGVycm9yIG1lc3NhZ2UgcGFzc2VkIHdoZW4gY2FsbGluZyBnZXRFcnJvck1lc3NhZ2UoKScsIGZ1bmN0aW9uICgpIHtcbiAgICBcbiAgICB2YXIgZ2V0RXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGdldEVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlO1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwgbnVsbCwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCIsIHZhbGlkYXRpb25zOiBcImlzRW1haWxcIiwgdmFsaWRhdGlvbkVycm9yOiBcIkhhcyB0byBiZSBlbWFpbFwifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgZXhwZWN0KGdldEVycm9yTWVzc2FnZSgpKS50b0JlKCdIYXMgdG8gYmUgZW1haWwnKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSB3aGVuIGNhbGxpbmcgZ2V0RXJyb3JNZXNzYWdlKCknLCBmdW5jdGlvbiAoZG9uZSkge1xuICAgIFxuICAgIGphc21pbmUuQWpheC5pbnN0YWxsKCk7XG5cbiAgICB2YXIgZ2V0RXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGdldEVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlO1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIn0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc0VtYWlsXCIsIHZhbGlkYXRpb25FcnJvcjogXCJIYXMgdG8gYmUgZW1haWxcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG5cbiAgICBqYXNtaW5lLkFqYXgucmVxdWVzdHMubW9zdFJlY2VudCgpLnJlc3BvbmRXaXRoKHtcbiAgICAgIHN0YXR1czogNTAwLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIHJlc3BvbnNlVGV4dDogJ3tcImZvb1wiOiBcImJhclwifSdcbiAgICB9KVxuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBleHBlY3QoZ2V0RXJyb3JNZXNzYWdlKCkpLnRvQmUoJ2JhcicpO1xuICAgICAgamFzbWluZS5BamF4LnVuaW5zdGFsbCgpO1xuICAgICAgZG9uZSgpO1xuICAgIH0sIDApO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2Ugd2hlbiBjYWxsaW5nIGlzVmFsaWQoKSBkZXBlbmRpbmcgb24gdmFsaWQgc3RhdGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgXG4gICAgdmFyIGlzVmFsaWQgPSBudWxsO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaXNWYWxpZCA9IHRoaXMuaXNWYWxpZDtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCJ9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNFbWFpbFwifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgZXhwZWN0KGlzVmFsaWQoKSkudG9CZShmYWxzZSk7XG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnZm9vQGZvby5jb20nfX0pO1xuICAgIGV4cGVjdChpc1ZhbGlkKCkpLnRvQmUodHJ1ZSk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSB3aGVuIGNhbGxpbmcgaXNSZXF1aXJlZCgpIGRlcGVuZGluZyBvbiBwYXNzZWQgcmVxdWlyZWQgYXR0cmlidXRlJywgZnVuY3Rpb24gKCkge1xuICAgIFxuICAgIHZhciBpc1JlcXVpcmVkcyA9IFtdO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaXNSZXF1aXJlZHMucHVzaCh0aGlzLmlzUmVxdWlyZWQpO1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIn0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wifSksIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCByZXF1aXJlZDogdHJ1ZX0pXG4gICAgICApXG4gICAgKTtcblxuICAgIGV4cGVjdChpc1JlcXVpcmVkc1swXSgpKS50b0JlKGZhbHNlKTtcbiAgICBleHBlY3QoaXNSZXF1aXJlZHNbMV0oKSkudG9CZSh0cnVlKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIHdoZW4gY2FsbGluZyBzaG93UmVxdWlyZWQoKSBkZXBlbmRpbmcgb24gaW5wdXQgYmVpbmcgZW1wdHkgYW5kIHJlcXVpcmVkIGlzIHBhc3NlZCwgb3Igbm90JywgZnVuY3Rpb24gKCkge1xuICAgIFxuICAgIHZhciBzaG93UmVxdWlyZWRzID0gW107XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICBzaG93UmVxdWlyZWRzLnB1c2godGhpcy5zaG93UmVxdWlyZWQpO1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIn0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiQVwiLCB2YWx1ZTogXCJmb29cIn0pLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIkJcIiwgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlfSksIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiQ1wiLCB2YWx1ZTogXCJcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIGV4cGVjdChzaG93UmVxdWlyZWRzWzBdKCkpLnRvQmUoZmFsc2UpO1xuICAgIGV4cGVjdChzaG93UmVxdWlyZWRzWzFdKCkpLnRvQmUodHJ1ZSk7XG4gICAgZXhwZWN0KHNob3dSZXF1aXJlZHNbMl0oKSkudG9CZShmYWxzZSk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSB3aGVuIGNhbGxpbmcgc2hvd0Vycm9yKCkgZGVwZW5kaW5nIG9uIHZhbHVlIGlzIGludmFsaWQgb3IgYSBzZXJ2ZXIgZXJyb3IgaGFzIGFycml2ZWQsIG9yIG5vdCcsIGZ1bmN0aW9uIChkb25lKSB7XG5cbiAgICB2YXIgc2hvd0Vycm9yID0gbnVsbDtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNob3dFcnJvciA9IHRoaXMuc2hvd0Vycm9yO1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIn0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc0VtYWlsXCIsIHZhbGlkYXRpb25FcnJvcjogXCJUaGlzIGlzIG5vdCBhbiBlbWFpbFwifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgZXhwZWN0KHNob3dFcnJvcigpKS50b0JlKHRydWUpO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnZm9vQGZvby5jb20nfX0pO1xuICAgIGV4cGVjdChzaG93RXJyb3IoKSkudG9CZShmYWxzZSk7XG5cbiAgICBqYXNtaW5lLkFqYXguaW5zdGFsbCgpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpOyAgICBcbiAgICBqYXNtaW5lLkFqYXgucmVxdWVzdHMubW9zdFJlY2VudCgpLnJlc3BvbmRXaXRoKHtcbiAgICAgIHN0YXR1czogNTAwLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICByZXNwb25zZVRleHQ6ICd7XCJmb29cIjogXCJFbWFpbCBhbHJlYWR5IGV4aXN0c1wifSdcbiAgICB9KTtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGV4cGVjdChzaG93RXJyb3IoKSkudG9CZSh0cnVlKTtcbiAgICAgIGphc21pbmUuQWpheC51bmluc3RhbGwoKTtcbiAgICAgIGRvbmUoKTtcbiAgICB9LCAwKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSB3aGVuIGNhbGxpbmcgaXNQcmlzdGluZSgpIGRlcGVuZGluZyBvbiBpbnB1dCBoYXMgYmVlbiBcInRvdWNoZWRcIiBvciBub3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgXG4gICAgdmFyIGlzUHJpc3RpbmUgPSBudWxsO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaXNQcmlzdGluZSA9IHRoaXMuaXNQcmlzdGluZTtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCJ9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIkFcIiwgdmFsdWU6IFwiZm9vXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICBleHBlY3QoaXNQcmlzdGluZSgpKS50b0JlKHRydWUpO1xuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJ2Zvbyd9fSk7XG4gICAgZXhwZWN0KGlzUHJpc3RpbmUoKSkudG9CZShmYWxzZSk7XG4gICAgXG4gIH0pO1xuXG5pdCgnc2hvdWxkIGFsbG93IGFuIHVuZGVmaW5lZCB2YWx1ZSB0byBiZSB1cGRhdGVkIHRvIGEgdmFsdWUnLCBmdW5jdGlvbiAoZG9uZSkge1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCl9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB7dmFsdWU6IHVuZGVmaW5lZH07XG4gICAgICB9LFxuICAgICAgY2hhbmdlVmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgdmFsdWU6ICdmb28nXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCJ9LCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJBXCIsIHZhbHVlOiB0aGlzLnN0YXRlLnZhbHVlfSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbClcbiAgICApO1xuXG4gICAgZm9ybS5jaGFuZ2VWYWx1ZSgpO1xuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZXhwZWN0KGlucHV0LmdldERPTU5vZGUoKS52YWx1ZSkudG9CZSgnZm9vJyk7XG4gICAgICBkb25lKCk7XG4gICAgfSwgMCk7XG4gIH0pOyAgXG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSB2YWxpZGF0aW9ucycsIGZ1bmN0aW9uIChkb25lKSB7XG5cbiAgICB2YXIgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHt2YWx1ZTogJ2Zvb0BiYXIuY29tJywgdmFsaWRhdGlvbnM6ICdpc0VtYWlsJ307XG4gICAgICB9LFxuICAgICAgY2hhbmdlVmFsaWRhdGlvbnM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgdmFsaWRhdGlvbnM6ICdlcXVhbHM6Zm9vJ1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBzZXRJbnZhbGlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIiwgb25JbnZhbGlkOiB0aGlzLnNldEludmFsaWR9LCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJBXCIsIHZhbGlkYXRpb25zOiB0aGlzLnN0YXRlLnZhbGlkYXRpb25zLCB2YWx1ZTogdGhpcy5zdGF0ZS52YWx1ZX0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpXG4gICAgKTtcblxuICAgIGZvcm0uY2hhbmdlVmFsaWRhdGlvbnMoKTtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGV4cGVjdChpc0ludmFsaWQpLnRvQmUodHJ1ZSk7XG4gICAgICBkb25lKCk7XG4gICAgfSwgMCk7XG4gIH0pOyAgXG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHRlc3QgYSB2YWx1ZXMgdmFsaWRpdHknLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJBXCIsIHZhbGlkYXRpb25zOiBcImlzRW1haWxcIn0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRDb21wb25lbnRXaXRoVHlwZShmb3JtLCBUZXN0SW5wdXQpO1xuICAgIGV4cGVjdChpbnB1dC5pc1ZhbGlkVmFsdWUoJ2Zvb0BiYXIuY29tJykpLnRvQmUodHJ1ZSk7XG4gICAgZXhwZWN0KGlucHV0LmlzVmFsaWRWYWx1ZSgnZm9vQGJhcicpKS50b0JlKGZhbHNlKTtcblxuICB9KTsgXG5cbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNHVmpjeTlGYkdWdFpXNTBMWE53WldNdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk5VmMyVnljeTlqYUhKcGMzUnBZVzVoYkdadmJta3ZSRzlqZFcxbGJuUnpMMlJsZGk5bWIzSnRjM2t0Y21WaFkzUXZjM0JsWTNNdlJXeGxiV1Z1ZEMxemNHVmpMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFbEJRVWtzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZET3p0QlFVVjZReXhSUVVGUkxFTkJRVU1zVTBGQlV5eEZRVUZGTEZkQlFWYzdPMEZCUlM5Q0xFVkJRVVVzUlVGQlJTeERRVUZETEdsRlFVRnBSU3hGUVVGRkxGbEJRVms3TzBsQlJXaEdMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzVjBGQlZ5eEZRVUZGTEZWQlFWVXNTMEZCU3l4RlFVRkZPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFBRVU51UXp0TlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTEU5QlFVOHNiMEpCUVVFc1QwRkJUU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVU1zUTBGQlF5eFJRVUZCTEVWQlFWRXNRMEZCUlN4SlFVRkpMRU5CUVVNc1YwRkJXU3hEUVVGRkxFTkJRVUU3VDBGRGNFVTdTMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRTQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRmRCUVZjc1JVRkJRU3hKUVVGRExFVkJRVUU3VVVGRFdDeHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVXNzUTBGQlJTeERRVUZCTzAxQlEzWkNMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRWxCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEY2tVc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTVUZETjBNc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1JTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE96dEJRVVZ3UkN4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRlRDeEZRVUZGTEVWQlFVVXNRMEZCUXl4elJFRkJjMFFzUlVGQlJTeFpRVUZaT3p0SlFVVnlSU3hKUVVGSkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZEYWtJc1NVRkJTU3dyUWtGQkswSXNlVUpCUVVFN1RVRkRha01zVFVGQlRTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJRenROUVVOMFFpeHBRa0ZCYVVJc1JVRkJSU3haUVVGWk8xRkJRemRDTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wOUJRM3BDTzAxQlEwUXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UFFVTnVRenROUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVjBGQldTeERRVUZGTEVOQlFVRTdUMEZEY0VVN1MwRkRSaXhEUVVGRExFTkJRVU03U1VGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeEpRVUZETEVWQlFVRTdVVUZEV0N4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVc3NRMEZCUlN4RFFVRkJPMDFCUTNaQ0xFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xFbEJRVWtzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1VzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU01UkN4TFFVRkxMRVZCUVVVc1EwRkJRenRCUVVOYUxFbEJRVWtzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wRkJSV3BFTEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWTUxFVkJRVVVzUlVGQlJTeERRVUZETEcxRlFVRnRSU3hGUVVGRkxGbEJRVms3TzBsQlJXeEdMRWxCUVVrc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU16UWl4SlFVRkpMQ3RDUVVFclFpeDVRa0ZCUVR0TlFVTnFReXhOUVVGTkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMDFCUTNSQ0xHbENRVUZwUWl4RlFVRkZMRmxCUVZrN1VVRkROMElzWlVGQlpTeEhRVUZITEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNN1QwRkRlRU03VFVGRFJDeFhRVUZYTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1VVRkROVUlzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzA5QlEyNURPMDFCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VVVGRGJFSXNUMEZCVHl4dlFrRkJRU3hQUVVGTkxFVkJRVUVzUTBGQlFTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlF5eERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRWxCUVVrc1EwRkJReXhYUVVGWkxFTkJRVVVzUTBGQlFUdFBRVU53UlR0TFFVTkdMRU5CUVVNc1EwRkJRenRKUVVOSUxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMEk3VFVGRGNrTXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFbEJRVU1zUlVGQlFUdFJRVU5ZTEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNWMEZCUVN4RlFVRlhMRU5CUVVNc1UwRkJRU3hGUVVGVExFTkJRVU1zWlVGQlFTeEZRVUZsTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVVVzUTBGQlFUdE5RVU12UlN4RFFVRkJPMEZCUTNCQ0xFdEJRVXNzUTBGQlF6czdRVUZGVGl4SlFVRkpMRTFCUVUwc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZET3p0QlFVVjBSQ3hIUVVGSExFTkJRVU1zUTBGQlF6czdRVUZGVEN4RlFVRkZMRVZCUVVVc1EwRkJReXh0UlVGQmJVVXNSVUZCUlN4VlFVRlZMRWxCUVVrc1JVRkJSVHM3UVVGRk1VWXNTVUZCU1N4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZET3p0SlFVVjJRaXhKUVVGSkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZETTBJc1NVRkJTU3dyUWtGQkswSXNlVUpCUVVFN1RVRkRha01zVFVGQlRTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJRenROUVVOMFFpeHBRa0ZCYVVJc1JVRkJSU3haUVVGWk8xRkJRemRDTEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRE8wOUJRM2hETzAxQlEwUXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UFFVTnVRenROUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVjBGQldTeERRVUZGTEVOQlFVRTdUMEZEY0VVN1MwRkRSaXhEUVVGRExFTkJRVU03U1VGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1VVRkJVeXhEUVVGQkxFVkJRVUU3VVVGRGVFSXNiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4WFFVRkJMRVZCUVZjc1EwRkJReXhUUVVGQkxFVkJRVk1zUTBGQlF5eGxRVUZCTEVWQlFXVXNRMEZCUXl4cFFrRkJhVUlzUTBGQlJTeERRVUZCTzAxQlF5OUZMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0QlFVVk9MRWxCUVVrc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEVOQlFVTTdPMGxCUlhoRUxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExGZEJRVmNzUTBGQlF6dE5RVU0zUXl4TlFVRk5MRVZCUVVVc1IwRkJSenROUVVOWUxGZEJRVmNzUlVGQlJTeHJRa0ZCYTBJN1RVRkRMMElzV1VGQldTeEZRVUZGTEdkQ1FVRm5RanRCUVVOd1F5eExRVUZMTEVOQlFVTTdPMGxCUlVZc1ZVRkJWU3hEUVVGRExGbEJRVms3VFVGRGNrSXNUVUZCVFN4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMDFCUTNSRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1RVRkRla0lzU1VGQlNTeEZRVUZGTEVOQlFVTTdRVUZEWWl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJWWXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNOa1ZCUVRaRkxFVkJRVVVzV1VGQldUczdTVUZGTlVZc1NVRkJTU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETzBsQlEyNUNMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzYVVKQlFXbENMRVZCUVVVc1dVRkJXVHRSUVVNM1FpeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJRenRQUVVONFFqdE5RVU5FTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRSUVVNMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdUMEZEYmtNN1RVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFJRVU5zUWl4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZETEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVVc1NVRkJTU3hEUVVGRExGZEJRVmtzUTBGQlJTeERRVUZCTzA5QlEzQkZPMHRCUTBZc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEVkQlFVRXNSVUZCUnl4RFFVRkRMRkZCUVZNc1EwRkJRU3hGUVVGQk8xRkJRM2hDTEc5Q1FVRkRMRk5CUVZNc1JVRkJRU3hEUVVGQkxFTkJRVU1zU1VGQlFTeEZRVUZKTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNWMEZCUVN4RlFVRlhMRU5CUVVNc1UwRkJVeXhEUVVGRkxFTkJRVUU3VFVGRE4wTXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNUVUZCVFN4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFbEJRVWtzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1VzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4yUlN4SlFVRkpMRTFCUVUwc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenM3UVVGRmFrTXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNPRVpCUVRoR0xFVkJRVVVzV1VGQldUczdTVUZGTjBjc1NVRkJTU3hYUVVGWExFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEzSkNMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzYVVKQlFXbENMRVZCUVVVc1dVRkJXVHRSUVVNM1FpeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFBRVU51UXp0TlFVTkVMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1QwRkRia003VFVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGRkJRVk1zUTBGQlFTeEZRVUZCTzFGQlEzaENMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkZMRU5CUVVFc1JVRkJRVHRSUVVOdVF5eHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEZGQlFVRXNSVUZCUVN4RFFVRkZMRU5CUVVFN1RVRkRlRUlzUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wbEJSVVlzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNwRExFbEJRVWtzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPenRCUVVWNFF5eEhRVUZITEVOQlFVTXNRMEZCUXpzN1FVRkZUQ3hGUVVGRkxFVkJRVVVzUTBGQlF5eDFTRUZCZFVnc1JVRkJSU3haUVVGWk96dEpRVVYwU1N4SlFVRkpMR0ZCUVdFc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGRrSXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdUVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0TlFVTjBRaXhwUWtGQmFVSXNSVUZCUlN4WlFVRlpPMUZCUXpkQ0xHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8wOUJRM1pETzAxQlEwUXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UFFVTnVRenROUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVjBGQldTeERRVUZGTEVOQlFVRTdUMEZEY0VVN1MwRkRSaXhEUVVGRExFTkJRVU03U1VGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1VVRkJVeXhEUVVGQkxFVkJRVUU3VVVGRGVFSXNiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4SFFVRkJMRVZCUVVjc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZMTEVOQlFVVXNRMEZCUVN4RlFVRkJPMUZCUTJwRExHOUNRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkJMRU5CUVVNc1NVRkJRU3hGUVVGSkxFTkJRVU1zUjBGQlFTeEZRVUZITEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1JVRkJRU3hGUVVGRkxFTkJRVU1zVVVGQlFTeEZRVUZCTEVOQlFVVXNRMEZCUVN4RlFVRkJPMUZCUXk5Q0xHOUNRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkJMRU5CUVVNc1NVRkJRU3hGUVVGSkxFTkJRVU1zUjBGQlFTeEZRVUZITEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRkxFTkJRVUU3VFVGRGJFSXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRM1pETEUxQlFVMHNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVNeFF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenM3UVVGRk0wTXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNNRWhCUVRCSUxFVkJRVVVzVlVGQlZTeEpRVUZKTEVWQlFVVTdPMGxCUlRkSkxFbEJRVWtzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTnlRaXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHROUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8wMUJRM1JDTEdsQ1FVRnBRaXhGUVVGRkxGbEJRVms3VVVGRE4wSXNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU03VDBGRE5VSTdUVUZEUkN4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VVVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMDlCUTI1RE8wMUJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0UFFVTndSVHRMUVVOR0xFTkJRVU1zUTBGQlF6dEpRVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdUVUZEY2tNc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SFFVRkJMRVZCUVVjc1EwRkJReXhSUVVGVExFTkJRVUVzUlVGQlFUdFJRVU40UWl4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRmRCUVVFc1JVRkJWeXhEUVVGRExGTkJRVUVzUlVGQlV5eERRVUZETEdWQlFVRXNSVUZCWlN4RFFVRkRMSE5DUVVGelFpeERRVUZGTEVOQlFVRTdUVUZEY0VZc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMEZCUlU0c1NVRkJTU3hOUVVGTkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03TzBsQlJTOUNMRWxCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEY2tVc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMlJTeEpRVUZKTEUxQlFVMHNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXpzN1NVRkZhRU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRKUVVOMlFpeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTTNReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhYUVVGWExFTkJRVU03VFVGRE4wTXNUVUZCVFN4RlFVRkZMRWRCUVVjN1RVRkRXQ3haUVVGWkxFVkJRVVVzYTBKQlFXdENPMDFCUTJoRExGbEJRVmtzUlVGQlJTeHBRMEZCYVVNN1MwRkRhRVFzUTBGQlF5eERRVUZETzBsQlEwZ3NWVUZCVlN4RFFVRkRMRmxCUVZrN1RVRkRja0lzVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzAxQlF5OUNMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdUVUZEZWtJc1NVRkJTU3hGUVVGRkxFTkJRVU03UzBGRFVpeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTFZc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4RlFVRkZMRU5CUVVNc2IwZEJRVzlITEVWQlFVVXNXVUZCV1RzN1NVRkZia2dzU1VGQlNTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRPMGxCUTNSQ0xFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNhVUpCUVdsQ0xFVkJRVVVzV1VGQldUdFJRVU0zUWl4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF6dFBRVU01UWp0TlFVTkVMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1QwRkRia003VFVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGRkJRVk1zUTBGQlFTeEZRVUZCTzFGQlEzaENMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1IwRkJRU3hGUVVGSExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkZMRU5CUVVFN1RVRkRja0lzUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wbEJSVVlzVFVGQlRTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEyaERMRWxCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEY2tVc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNdlJDeEpRVUZKTEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZja01zUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlV3c1JVRkJSU3hEUVVGRExEQkVRVUV3UkN4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRk8wbEJRek5GTEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzAxQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdUVUZEZEVJc1RVRkJUU3hGUVVGRkxGbEJRVms3VVVGRGJFSXNUMEZCVHl4dlFrRkJRU3hQUVVGTkxFVkJRVUVzUTBGQlFTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVWNzUTBGQlJTeERRVUZCTzA5QlEzaERPMHRCUTBZc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTdzRRa0ZCT0VJc2QwSkJRVUU3VFVGRGFFTXNaVUZCWlN4RlFVRkZMRmxCUVZrN1VVRkRNMElzVDBGQlR5eERRVUZETEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRQUVVNelFqdE5RVU5FTEZkQlFWY3NSVUZCUlN4WlFVRlpPMUZCUTNaQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdWVUZEV2l4TFFVRkxMRVZCUVVVc1MwRkJTenRUUVVOaUxFTkJRVU1zUTBGQlF6dFBRVU5LTzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUk3VlVGRFJTeHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExFZEJRVUVzUlVGQlJ5eERRVUZETEZGQlFWTXNRMEZCUVN4RlFVRkJPMWxCUTNoQ0xHOUNRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkJMRU5CUVVNc1NVRkJRU3hGUVVGSkxFTkJRVU1zUjBGQlFTeEZRVUZITEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZOTEVOQlFVVXNRMEZCUVR0VlFVTnNReXhEUVVGQk8xVkJRMlE3VDBGRFNEdExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRWxCUVVVc1EwRkJRVHRCUVVOcVFpeExRVUZMTEVOQlFVTTdPMGxCUlVZc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzBsQlEyNUNMRWxCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEY2tVc1ZVRkJWU3hEUVVGRExGbEJRVms3VFVGRGNrSXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VFVGRE4wTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1MwRkRVaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlExWXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNhMFJCUVd0RUxFVkJRVVVzVlVGQlZTeEpRVUZKTEVWQlFVVTdPMGxCUlhKRkxFbEJRVWtzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXp0SlFVTjBRaXhKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHROUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8wMUJRM1JDTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkhMRU5CUVVVc1EwRkJRVHRQUVVONFF6dExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc09FSkJRVGhDTEhkQ1FVRkJPMDFCUTJoRExHVkJRV1VzUlVGQlJTeFpRVUZaTzFGQlF6TkNMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzWVVGQllTeEZRVUZGTEZkQlFWY3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRQUVVOMlJEdE5RVU5FTEdsQ1FVRnBRaXhGUVVGRkxGbEJRVms3VVVGRE4wSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenRWUVVOYUxGZEJRVmNzUlVGQlJTeFpRVUZaTzFOQlF6RkNMRU5CUVVNc1EwRkJRenRQUVVOS08wMUJRMFFzVlVGQlZTeEZRVUZGTEZsQlFWazdVVUZEZEVJc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF6dFBRVU5zUWp0TlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTzFWQlEwVXNiMEpCUVVNc1YwRkJWeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEhRVUZCTEVWQlFVY3NRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJReXhUUVVGQkxFVkJRVk1zUTBGQlJTeEpRVUZKTEVOQlFVTXNWVUZCV1N4RFFVRkJMRVZCUVVFN1dVRkRjRVFzYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eEhRVUZCTEVWQlFVY3NRMEZCUXl4WFFVRkJMRVZCUVZjc1EwRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUXl4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCVFN4RFFVRkZMRU5CUVVFN1ZVRkRka1VzUTBGQlFUdFZRVU5rTzA5QlEwZzdTMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRTQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q08wMUJRM0pETEc5Q1FVRkRMRkZCUVZFc1JVRkJRU3hKUVVGRkxFTkJRVUU3UVVGRGFrSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hEUVVGRE8wbEJRM3BDTEZWQlFWVXNRMEZCUXl4WlFVRlpPMDFCUTNKQ0xFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VFVGRE4wSXNTVUZCU1N4RlFVRkZMRU5CUVVNN1MwRkRVaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlExWXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNNRU5CUVRCRExFVkJRVVVzV1VGQldUczdTVUZGZWtRc1NVRkJTU3hUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETzBsQlEzUkNMRWxCUVVrc0swSkJRU3RDTEhsQ1FVRkJPMDFCUTJwRExFMUJRVTBzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1RVRkRkRUlzVFVGQlRTeEZRVUZGTEZsQlFWazdVVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVY3NRMEZCUlN4RFFVRkJPMDlCUTNoRE8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N3NFFrRkJPRUlzZDBKQlFVRTdUVUZEYUVNc1RVRkJUU3hGUVVGRkxGbEJRVms3VVVGRGJFSTdWVUZEUlN4dlFrRkJReXhYUVVGWExFVkJRVUVzU1VGQlF5eEZRVUZCTzFsQlExZ3NiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4SFFVRkJMRVZCUVVjc1EwRkJReXhYUVVGQkxFVkJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVVXNRMEZCUVR0VlFVTXZRaXhEUVVGQk8xVkJRMlE3VDBGRFNEdExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRWxCUVVVc1EwRkJRVHRCUVVOcVFpeExRVUZMTEVOQlFVTTdPMGxCUlVZc1NVRkJTU3hMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETERaQ1FVRTJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVTnlSU3hOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEZsQlFWa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTjZSQ3hKUVVGSkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWMFJDeEhRVUZITEVOQlFVTXNRMEZCUXpzN1EwRkZTaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMllYSWdSbTl5YlhONUlEMGdjbVZ4ZFdseVpTZ25MaTh1TGk5emNtTXZiV0ZwYmk1cWN5Y3BPMXh1WEc1a1pYTmpjbWxpWlNnblJXeGxiV1Z1ZENjc0lHWjFibU4wYVc5dUtDa2dlMXh1WEc0Z0lHbDBLQ2R6YUc5MWJHUWdjbVYwZFhKdUlIQmhjM05sWkNCaGJtUWdjMlYwVm1Gc2RXVW9LU0IyWVd4MVpTQjNhR1Z1SUhWemFXNW5JR2RsZEZaaGJIVmxLQ2tuTENCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ1hHNGdJQ0FnZG1GeUlGUmxjM1JKYm5CMWRDQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJRzFwZUdsdWN6b2dXMFp2Y20xemVTNU5hWGhwYmwwc1hHNGdJQ0FnSUNCMWNHUmhkR1ZXWVd4MVpUb2dablZ1WTNScGIyNGdLR1YyWlc1MEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyVjBWbUZzZFdVb1pYWmxiblF1ZEdGeVoyVjBMblpoYkhWbEtUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTUxY0dSaGRHVldZV3gxWlgwdlBseHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDaGNiaUFnSUNBZ0lEeEdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpWm05dlhDSWdkbUZzZFdVOVhDSm1iMjljSWk4K1hHNGdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDazdYRzVjYmlBZ0lDQjJZWElnYVc1d2RYUWdQU0JVWlhOMFZYUnBiSE11Wm1sdVpGSmxibVJsY21Wa1JFOU5RMjl0Y0c5dVpXNTBWMmwwYUZSaFp5aG1iM0p0TENBblNVNVFWVlFuS1R0Y2JpQWdJQ0JsZUhCbFkzUW9hVzV3ZFhRdVoyVjBSRTlOVG05a1pTZ3BMblpoYkhWbEtTNTBiMEpsS0NkbWIyOG5LVHRjYmlBZ0lDQlVaWE4wVlhScGJITXVVMmx0ZFd4aGRHVXVZMmhoYm1kbEtHbHVjSFYwTENCN2RHRnlaMlYwT2lCN2RtRnNkV1U2SUNkbWIyOWlZWEluZlgwcE8xeHVJQ0FnSUdWNGNHVmpkQ2hwYm5CMWRDNW5aWFJFVDAxT2IyUmxLQ2t1ZG1Gc2RXVXBMblJ2UW1Vb0oyWnZiMkpoY2ljcE8xeHVYRzRnSUgwcE8xeHVYRzRnSUdsMEtDZHphRzkxYkdRZ2MyVjBJR0poWTJzZ2RHOGdjSEpwYzNScGJtVWdkbUZzZFdVZ2QyaGxiaUJ5ZFc1dWFXNW5JSEpsYzJWMEp5d2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJRnh1SUNBZ0lIWmhjaUJ5WlhObGRDQTlJRzUxYkd3N1hHNGdJQ0FnZG1GeUlGUmxjM1JKYm5CMWRDQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJRzFwZUdsdWN6b2dXMFp2Y20xemVTNU5hWGhwYmwwc1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5SRWFXUk5iM1Z1ZERvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhObGRDQTlJSFJvYVhNdWNtVnpaWFJXWVd4MVpUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQjFjR1JoZEdWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUR4cGJuQjFkQ0IyWVd4MVpUMTdkR2hwY3k1blpYUldZV3gxWlNncGZTQnZia05vWVc1blpUMTdkR2hwY3k1MWNHUmhkR1ZXWVd4MVpYMHZQbHh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2hjYmlBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FnSUNBZ1BGUmxjM1JKYm5CMWRDQnVZVzFsUFZ3aVptOXZYQ0lnZG1Gc2RXVTlYQ0ptYjI5Y0lpOCtYRzRnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtSRTlOUTI5dGNHOXVaVzUwVjJsMGFGUmhaeWhtYjNKdExDQW5TVTVRVlZRbktUdGNiaUFnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdVkyaGhibWRsS0dsdWNIVjBMQ0I3ZEdGeVoyVjBPaUI3ZG1Gc2RXVTZJQ2RtYjI5aVlYSW5mWDBwTzF4dUlDQWdJSEpsYzJWMEtDazdYRzRnSUNBZ1pYaHdaV04wS0dsdWNIVjBMbWRsZEVSUFRVNXZaR1VvS1M1MllXeDFaU2t1ZEc5Q1pTZ25abTl2SnlrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCeVpYUjFjbTRnWlhKeWIzSWdiV1Z6YzJGblpTQndZWE56WldRZ2QyaGxiaUJqWVd4c2FXNW5JR2RsZEVWeWNtOXlUV1Z6YzJGblpTZ3BKeXdnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUZ4dUlDQWdJSFpoY2lCblpYUkZjbkp2Y2sxbGMzTmhaMlVnUFNCdWRXeHNPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdZMjl0Y0c5dVpXNTBSR2xrVFc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ1oyVjBSWEp5YjNKTlpYTnpZV2RsSUQwZ2RHaHBjeTVuWlhSRmNuSnZjazFsYzNOaFoyVTdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdkWEJrWVhSbFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMGdiMjVEYUdGdVoyVTllM1JvYVhNdWRYQmtZWFJsVm1Gc2RXVjlMejVjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvWEc0Z0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpSUhaaGJIVmxQVndpWm05dlhDSWdkbUZzYVdSaGRHbHZibk05WENKcGMwVnRZV2xzWENJZ2RtRnNhV1JoZEdsdmJrVnljbTl5UFZ3aVNHRnpJSFJ2SUdKbElHVnRZV2xzWENJdlBseHVJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdaWGh3WldOMEtHZGxkRVZ5Y205eVRXVnpjMkZuWlNncEtTNTBiMEpsS0NkSVlYTWdkRzhnWW1VZ1pXMWhhV3duS1R0Y2JseHVJQ0I5S1R0Y2JseHVJQ0JwZENnbmMyaHZkV3hrSUhKbGRIVnliaUJ6WlhKMlpYSWdaWEp5YjNJZ2JXVnpjMkZuWlNCM2FHVnVJR05oYkd4cGJtY2daMlYwUlhKeWIzSk5aWE56WVdkbEtDa25MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1SUNBZ0lGeHVJQ0FnSUdwaGMyMXBibVV1UVdwaGVDNXBibk4wWVd4c0tDazdYRzVjYmlBZ0lDQjJZWElnWjJWMFJYSnliM0pOWlhOellXZGxJRDBnYm5Wc2JEdGNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lHTnZiWEJ2Ym1WdWRFUnBaRTF2ZFc1ME9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdkbGRFVnljbTl5VFdWemMyRm5aU0E5SUhSb2FYTXVaMlYwUlhKeWIzSk5aWE56WVdkbE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIVndaR0YwWlZaaGJIVmxPaUJtZFc1amRHbHZiaUFvWlhabGJuUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaGxkbVZ1ZEM1MFlYSm5aWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG5Wd1pHRjBaVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUhWeWJEMWNJaTkxYzJWeWMxd2lQbHh1SUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0ptYjI5Y0lpQjJZV3gxWlQxY0ltWnZiMXdpSUhaaGJHbGtZWFJwYjI1elBWd2lhWE5GYldGcGJGd2lJSFpoYkdsa1lYUnBiMjVGY25KdmNqMWNJa2hoY3lCMGJ5QmlaU0JsYldGcGJGd2lMejVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExuTjFZbTFwZENobWIzSnRMbWRsZEVSUFRVNXZaR1VvS1NrN1hHNWNiaUFnSUNCcVlYTnRhVzVsTGtGcVlYZ3VjbVZ4ZFdWemRITXViVzl6ZEZKbFkyVnVkQ2dwTG5KbGMzQnZibVJYYVhSb0tIdGNiaUFnSUNBZ0lITjBZWFIxY3pvZ05UQXdMRnh1SUNBZ0lDQWdZMjl1ZEdWdWRGUjVjR1U2SUNkaGNIQnNhV05oZEdsdmJpOXFjMjl1Snl4Y2JpQWdJQ0FnSUhKbGMzQnZibk5sVkdWNGREb2dKM3RjSW1admIxd2lPaUJjSW1KaGNsd2lmU2RjYmlBZ0lDQjlLVnh1WEc0Z0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNCbGVIQmxZM1FvWjJWMFJYSnliM0pOWlhOellXZGxLQ2twTG5SdlFtVW9KMkpoY2ljcE8xeHVJQ0FnSUNBZ2FtRnpiV2x1WlM1QmFtRjRMblZ1YVc1emRHRnNiQ2dwTzF4dUlDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lIMHNJREFwTzF4dVhHNGdJSDBwTzF4dVhHNGdJR2wwS0NkemFHOTFiR1FnY21WMGRYSnVJSFJ5ZFdVZ2IzSWdabUZzYzJVZ2QyaGxiaUJqWVd4c2FXNW5JR2x6Vm1Gc2FXUW9LU0JrWlhCbGJtUnBibWNnYjI0Z2RtRnNhV1FnYzNSaGRHVW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnWEc0Z0lDQWdkbUZ5SUdselZtRnNhV1FnUFNCdWRXeHNPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdZMjl0Y0c5dVpXNTBSR2xrVFc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2FYTldZV3hwWkNBOUlIUm9hWE11YVhOV1lXeHBaRHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0IxY0dSaGRHVldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tHVjJaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFZtRnNkV1VvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmU0J2YmtOb1lXNW5aVDE3ZEdocGN5NTFjR1JoZEdWV1lXeDFaWDB2UGx4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENoY2JpQWdJQ0FnSUR4R2IzSnRjM2t1Um05eWJTQjFjbXc5WENJdmRYTmxjbk5jSWo1Y2JpQWdJQ0FnSUNBZ1BGUmxjM1JKYm5CMWRDQnVZVzFsUFZ3aVptOXZYQ0lnZG1Gc2RXVTlYQ0ptYjI5Y0lpQjJZV3hwWkdGMGFXOXVjejFjSW1selJXMWhhV3hjSWk4K1hHNGdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDazdYRzVjYmlBZ0lDQmxlSEJsWTNRb2FYTldZV3hwWkNncEtTNTBiMEpsS0daaGJITmxLVHRjYmlBZ0lDQjJZWElnYVc1d2RYUWdQU0JVWlhOMFZYUnBiSE11Wm1sdVpGSmxibVJsY21Wa1JFOU5RMjl0Y0c5dVpXNTBWMmwwYUZSaFp5aG1iM0p0TENBblNVNVFWVlFuS1R0Y2JpQWdJQ0JVWlhOMFZYUnBiSE11VTJsdGRXeGhkR1V1WTJoaGJtZGxLR2x1Y0hWMExDQjdkR0Z5WjJWME9pQjdkbUZzZFdVNklDZG1iMjlBWm05dkxtTnZiU2Q5ZlNrN1hHNGdJQ0FnWlhod1pXTjBLR2x6Vm1Gc2FXUW9LU2t1ZEc5Q1pTaDBjblZsS1R0Y2JseHVJQ0I5S1R0Y2JseHVJQ0JwZENnbmMyaHZkV3hrSUhKbGRIVnliaUIwY25WbElHOXlJR1poYkhObElIZG9aVzRnWTJGc2JHbHVaeUJwYzFKbGNYVnBjbVZrS0NrZ1pHVndaVzVrYVc1bklHOXVJSEJoYzNObFpDQnlaWEYxYVhKbFpDQmhkSFJ5YVdKMWRHVW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnWEc0Z0lDQWdkbUZ5SUdselVtVnhkV2x5WldSeklEMGdXMTA3WEc0Z0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lHMXBlR2x1Y3pvZ1cwWnZjbTF6ZVM1TmFYaHBibDBzWEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblJFYVdSTmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnBjMUpsY1hWcGNtVmtjeTV3ZFhOb0tIUm9hWE11YVhOU1pYRjFhWEpsWkNrN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2RYQmtZWFJsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtHVjJaVzUwTG5SaGNtZGxkQzUyWVd4MVpTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUE4YVc1d2RYUWdkbUZzZFdVOWUzUm9hWE11WjJWMFZtRnNkV1VvS1gwZ2IyNURhR0Z1WjJVOWUzUm9hWE11ZFhCa1lYUmxWbUZzZFdWOUx6NWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNiaUFnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9YRzRnSUNBZ0lDQThSbTl5YlhONUxrWnZjbTBnZFhKc1BWd2lMM1Z6WlhKelhDSStYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJbVp2YjF3aUlIWmhiSFZsUFZ3aVptOXZYQ0l2UGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbVp2YjF3aUlISmxjWFZwY21Wa0x6NWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmx4dUlDQWdJR1Y0Y0dWamRDaHBjMUpsY1hWcGNtVmtjMXN3WFNncEtTNTBiMEpsS0daaGJITmxLVHRjYmlBZ0lDQmxlSEJsWTNRb2FYTlNaWEYxYVhKbFpITmJNVjBvS1NrdWRHOUNaU2gwY25WbEtUdGNibHh1SUNCOUtUdGNibHh1SUNCcGRDZ25jMmh2ZFd4a0lISmxkSFZ5YmlCMGNuVmxJRzl5SUdaaGJITmxJSGRvWlc0Z1kyRnNiR2x1WnlCemFHOTNVbVZ4ZFdseVpXUW9LU0JrWlhCbGJtUnBibWNnYjI0Z2FXNXdkWFFnWW1WcGJtY2daVzF3ZEhrZ1lXNWtJSEpsY1hWcGNtVmtJR2x6SUhCaGMzTmxaQ3dnYjNJZ2JtOTBKeXdnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUZ4dUlDQWdJSFpoY2lCemFHOTNVbVZ4ZFdseVpXUnpJRDBnVzEwN1hHNGdJQ0FnZG1GeUlGUmxjM1JKYm5CMWRDQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJRzFwZUdsdWN6b2dXMFp2Y20xemVTNU5hWGhwYmwwc1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5SRWFXUk5iM1Z1ZERvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J6YUc5M1VtVnhkV2x5WldSekxuQjFjMmdvZEdocGN5NXphRzkzVW1WeGRXbHlaV1FwTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhWd1pHRjBaVlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNobGRtVnVkQzUwWVhKblpYUXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMblZ3WkdGMFpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJSFZ5YkQxY0lpOTFjMlZ5YzF3aVBseHVJQ0FnSUNBZ0lDQThWR1Z6ZEVsdWNIVjBJRzVoYldVOVhDSkJYQ0lnZG1Gc2RXVTlYQ0ptYjI5Y0lpOCtYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJa0pjSWlCMllXeDFaVDFjSWx3aUlISmxjWFZwY21Wa0x6NWNiaUFnSUNBZ0lDQWdQRlJsYzNSSmJuQjFkQ0J1WVcxbFBWd2lRMXdpSUhaaGJIVmxQVndpWENJdlBseHVJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdaWGh3WldOMEtITm9iM2RTWlhGMWFYSmxaSE5iTUYwb0tTa3VkRzlDWlNobVlXeHpaU2s3WEc0Z0lDQWdaWGh3WldOMEtITm9iM2RTWlhGMWFYSmxaSE5iTVYwb0tTa3VkRzlDWlNoMGNuVmxLVHRjYmlBZ0lDQmxlSEJsWTNRb2MyaHZkMUpsY1hWcGNtVmtjMXN5WFNncEtTNTBiMEpsS0daaGJITmxLVHRjYmx4dUlDQjlLVHRjYmx4dUlDQnBkQ2duYzJodmRXeGtJSEpsZEhWeWJpQjBjblZsSUc5eUlHWmhiSE5sSUhkb1pXNGdZMkZzYkdsdVp5QnphRzkzUlhKeWIzSW9LU0JrWlhCbGJtUnBibWNnYjI0Z2RtRnNkV1VnYVhNZ2FXNTJZV3hwWkNCdmNpQmhJSE5sY25abGNpQmxjbkp2Y2lCb1lYTWdZWEp5YVhabFpDd2diM0lnYm05MEp5d2dablZ1WTNScGIyNGdLR1J2Ym1VcElIdGNibHh1SUNBZ0lIWmhjaUJ6YUc5M1JYSnliM0lnUFNCdWRXeHNPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdZMjl0Y0c5dVpXNTBSR2xrVFc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2MyaHZkMFZ5Y205eUlEMGdkR2hwY3k1emFHOTNSWEp5YjNJN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2RYQmtZWFJsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtHVjJaVzUwTG5SaGNtZGxkQzUyWVd4MVpTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUE4YVc1d2RYUWdkbUZzZFdVOWUzUm9hWE11WjJWMFZtRnNkV1VvS1gwZ2IyNURhR0Z1WjJVOWUzUm9hWE11ZFhCa1lYUmxWbUZzZFdWOUx6NWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNiaUFnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9YRzRnSUNBZ0lDQThSbTl5YlhONUxrWnZjbTBnZFhKc1BWd2lMM1Z6WlhKelhDSStYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJbVp2YjF3aUlIWmhiSFZsUFZ3aVptOXZYQ0lnZG1Gc2FXUmhkR2x2Ym5NOVhDSnBjMFZ0WVdsc1hDSWdkbUZzYVdSaGRHbHZia1Z5Y205eVBWd2lWR2hwY3lCcGN5QnViM1FnWVc0Z1pXMWhhV3hjSWk4K1hHNGdJQ0FnSUNBOEwwWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDazdYRzVjYmlBZ0lDQmxlSEJsWTNRb2MyaHZkMFZ5Y205eUtDa3BMblJ2UW1Vb2RISjFaU2s3WEc1Y2JpQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtSRTlOUTI5dGNHOXVaVzUwVjJsMGFGUmhaeWhtYjNKdExDQW5TVTVRVlZRbktUdGNiaUFnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdVkyaGhibWRsS0dsdWNIVjBMQ0I3ZEdGeVoyVjBPaUI3ZG1Gc2RXVTZJQ2RtYjI5QVptOXZMbU52YlNkOWZTazdYRzRnSUNBZ1pYaHdaV04wS0hOb2IzZEZjbkp2Y2lncEtTNTBiMEpsS0daaGJITmxLVHRjYmx4dUlDQWdJR3BoYzIxcGJtVXVRV3BoZUM1cGJuTjBZV3hzS0NrN1hHNGdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG5OMVltMXBkQ2htYjNKdExtZGxkRVJQVFU1dlpHVW9LU2s3SUNBZ0lGeHVJQ0FnSUdwaGMyMXBibVV1UVdwaGVDNXlaWEYxWlhOMGN5NXRiM04wVW1WalpXNTBLQ2t1Y21WemNHOXVaRmRwZEdnb2UxeHVJQ0FnSUNBZ2MzUmhkSFZ6T2lBMU1EQXNYRzRnSUNBZ0lDQnlaWE53YjI1elpWUjVjR1U2SUNkaGNIQnNhV05oZEdsdmJpOXFjMjl1Snl4Y2JpQWdJQ0FnSUhKbGMzQnZibk5sVkdWNGREb2dKM3RjSW1admIxd2lPaUJjSWtWdFlXbHNJR0ZzY21WaFpIa2daWGhwYzNSelhDSjlKMXh1SUNBZ0lIMHBPMXh1SUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnWlhod1pXTjBLSE5vYjNkRmNuSnZjaWdwS1M1MGIwSmxLSFJ5ZFdVcE8xeHVJQ0FnSUNBZ2FtRnpiV2x1WlM1QmFtRjRMblZ1YVc1emRHRnNiQ2dwTzF4dUlDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lIMHNJREFwTzF4dUlDQjlLVHRjYmx4dUlDQnBkQ2duYzJodmRXeGtJSEpsZEhWeWJpQjBjblZsSUc5eUlHWmhiSE5sSUhkb1pXNGdZMkZzYkdsdVp5QnBjMUJ5YVhOMGFXNWxLQ2tnWkdWd1pXNWthVzVuSUc5dUlHbHVjSFYwSUdoaGN5QmlaV1Z1SUZ3aWRHOTFZMmhsWkZ3aUlHOXlJRzV2ZENjc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQmNiaUFnSUNCMllYSWdhWE5RY21semRHbHVaU0E5SUc1MWJHdzdYRzRnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUkVhV1JOYjNWdWREb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCcGMxQnlhWE4wYVc1bElEMGdkR2hwY3k1cGMxQnlhWE4wYVc1bE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIVndaR0YwWlZaaGJIVmxPaUJtZFc1amRHbHZiaUFvWlhabGJuUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaGxkbVZ1ZEM1MFlYSm5aWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG5Wd1pHRjBaVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUhWeWJEMWNJaTkxYzJWeWMxd2lQbHh1SUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0pCWENJZ2RtRnNkV1U5WENKbWIyOWNJaTgrWEc0Z0lDQWdJQ0E4TDBadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNrN1hHNWNiaUFnSUNCbGVIQmxZM1FvYVhOUWNtbHpkR2x1WlNncEtTNTBiMEpsS0hSeWRXVXBPMXh1SUNBZ0lIWmhjaUJwYm5CMWRDQTlJRlJsYzNSVmRHbHNjeTVtYVc1a1VtVnVaR1Z5WldSRVQwMURiMjF3YjI1bGJuUlhhWFJvVkdGbktHWnZjbTBzSUNkSlRsQlZWQ2NwTzF4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9hVzV3ZFhRc0lIdDBZWEpuWlhRNklIdDJZV3gxWlRvZ0oyWnZieWQ5ZlNrN1hHNGdJQ0FnWlhod1pXTjBLR2x6VUhKcGMzUnBibVVvS1NrdWRHOUNaU2htWVd4elpTazdYRzRnSUNBZ1hHNGdJSDBwTzF4dVhHNXBkQ2duYzJodmRXeGtJR0ZzYkc5M0lHRnVJSFZ1WkdWbWFXNWxaQ0IyWVd4MVpTQjBieUJpWlNCMWNHUmhkR1ZrSUhSdklHRWdkbUZzZFdVbkxDQm1kVzVqZEdsdmJpQW9aRzl1WlNrZ2UxeHVJQ0FnSUhaaGNpQlVaWE4wU1c1d2RYUWdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQThhVzV3ZFhRZ2RtRnNkV1U5ZTNSb2FYTXVaMlYwVm1Gc2RXVW9LWDB2UGx4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFpoY2lCVVpYTjBSbTl5YlNBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lHZGxkRWx1YVhScFlXeFRkR0YwWlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdlM1poYkhWbE9pQjFibVJsWm1sdVpXUjlPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR05vWVc1blpWWmhiSFZsT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ0lDQWdJSFpoYkhWbE9pQW5abTl2SjF4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnSUNBOFJtOXliWE41TGtadmNtMGdkWEpzUFZ3aUwzVnpaWEp6WENJK1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0pCWENJZ2RtRnNkV1U5ZTNSb2FYTXVjM1JoZEdVdWRtRnNkV1Y5THo1Y2JpQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDaGNiaUFnSUNBZ0lEeFVaWE4wUm05eWJTOCtYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHWnZjbTB1WTJoaGJtZGxWbUZzZFdVb0tUdGNiaUFnSUNCMllYSWdhVzV3ZFhRZ1BTQlVaWE4wVlhScGJITXVabWx1WkZKbGJtUmxjbVZrUkU5TlEyOXRjRzl1Wlc1MFYybDBhRlJoWnlobWIzSnRMQ0FuU1U1UVZWUW5LVHRjYmlBZ0lDQnpaWFJVYVcxbGIzVjBLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUdWNGNHVmpkQ2hwYm5CMWRDNW5aWFJFVDAxT2IyUmxLQ2t1ZG1Gc2RXVXBMblJ2UW1Vb0oyWnZieWNwTzF4dUlDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lIMHNJREFwTzF4dUlDQjlLVHNnSUZ4dVhHNGdJR2wwS0NkemFHOTFiR1FnWW1VZ1lXSnNaU0IwYnlCa2VXNWhiV2xqWVd4c2VTQmphR0Z1WjJVZ2RtRnNhV1JoZEdsdmJuTW5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1WEc0Z0lDQWdkbUZ5SUdselNXNTJZV3hwWkNBOUlHWmhiSE5sTzF4dUlDQWdJSFpoY2lCVVpYTjBTVzV3ZFhRZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQnRhWGhwYm5NNklGdEdiM0p0YzNrdVRXbDRhVzVkTEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMHZQbHh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lIWmhjaUJVWlhOMFJtOXliU0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUdkbGRFbHVhWFJwWVd4VGRHRjBaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2UzWmhiSFZsT2lBblptOXZRR0poY2k1amIyMG5MQ0IyWVd4cFpHRjBhVzl1Y3pvZ0oybHpSVzFoYVd3bmZUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQmphR0Z1WjJWV1lXeHBaR0YwYVc5dWN6b2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNCMllXeHBaR0YwYVc5dWN6b2dKMlZ4ZFdGc2N6cG1iMjhuWEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lITmxkRWx1ZG1Gc2FXUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2FYTkpiblpoYkdsa0lEMGdkSEoxWlR0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wZ2RYSnNQVndpTDNWelpYSnpYQ0lnYjI1SmJuWmhiR2xrUFh0MGFHbHpMbk5sZEVsdWRtRnNhV1I5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRlJsYzNSSmJuQjFkQ0J1WVcxbFBWd2lRVndpSUhaaGJHbGtZWFJwYjI1elBYdDBhR2x6TG5OMFlYUmxMblpoYkdsa1lYUnBiMjV6ZlNCMllXeDFaVDE3ZEdocGN5NXpkR0YwWlM1MllXeDFaWDB2UGx4dUlDQWdJQ0FnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BGUmxjM1JHYjNKdEx6NWNiaUFnSUNBcE8xeHVYRzRnSUNBZ1ptOXliUzVqYUdGdVoyVldZV3hwWkdGMGFXOXVjeWdwTzF4dUlDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ1pYaHdaV04wS0dselNXNTJZV3hwWkNrdWRHOUNaU2gwY25WbEtUdGNiaUFnSUNBZ0lHUnZibVVvS1R0Y2JpQWdJQ0I5TENBd0tUdGNiaUFnZlNrN0lDQmNibHh1SUNCcGRDZ25jMmh2ZFd4a0lHSmxJR0ZpYkdVZ2RHOGdkR1Z6ZENCaElIWmhiSFZsY3lCMllXeHBaR2wwZVNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJSFpoY2lCcGMwbHVkbUZzYVdRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlMejVjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQjJZWElnVkdWemRFWnZjbTBnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0pCWENJZ2RtRnNhV1JoZEdsdmJuTTlYQ0pwYzBWdFlXbHNYQ0l2UGx4dUlDQWdJQ0FnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BGUmxjM1JHYjNKdEx6NWNiaUFnSUNBcE8xeHVYRzRnSUNBZ2RtRnlJR2x1Y0hWMElEMGdWR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVOdmJYQnZibVZ1ZEZkcGRHaFVlWEJsS0dadmNtMHNJRlJsYzNSSmJuQjFkQ2s3WEc0Z0lDQWdaWGh3WldOMEtHbHVjSFYwTG1selZtRnNhV1JXWVd4MVpTZ25abTl2UUdKaGNpNWpiMjBuS1NrdWRHOUNaU2gwY25WbEtUdGNiaUFnSUNCbGVIQmxZM1FvYVc1d2RYUXVhWE5XWVd4cFpGWmhiSFZsS0NkbWIyOUFZbUZ5SnlrcExuUnZRbVVvWm1Gc2MyVXBPMXh1WEc0Z0lIMHBPeUJjYmx4dWZTazdYRzRpWFgwPSIsInZhciBGb3Jtc3kgPSByZXF1aXJlKCcuLy4uL3NyYy9tYWluLmpzJyk7XG5cbmRlc2NyaWJlKCdGb3Jtc3knLCBmdW5jdGlvbiAoKSB7XG5cbiAgZGVzY3JpYmUoJ1NldHRpbmcgdXAgYSBmb3JtJywgZnVuY3Rpb24gKCkge1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgYSBmb3JtIGludG8gdGhlIGRvY3VtZW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsKSk7XG4gICAgICBleHBlY3QoZm9ybS5nZXRET01Ob2RlKCkudGFnTmFtZSkudG9FcXVhbCgnRk9STScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzZXQgYSBjbGFzcyBuYW1lIGlmIHBhc3NlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge2NsYXNzTmFtZTogXCJmb29cIn0pKTtcbiAgICAgIGV4cGVjdChmb3JtLmdldERPTU5vZGUoKS5jbGFzc05hbWUpLnRvRXF1YWwoJ2ZvbycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBmb3IgbnVsbC91bmRlZmluZWQgY2hpbGRyZW4nLCBmdW5jdGlvbiAoZG9uZSkge1xuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgY2hhbmdlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMuY2hhbmdlVmFsdWV9KVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdmFyIG1vZGVsID0gbnVsbDtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBvblN1Ym1pdDogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgICAgICAgIG1vZGVsID0gZm9ybU1vZGVsO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uU3VibWl0OiAgdGhpcy5vblN1Ym1pdH0sIFxuICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwgbnVsbCwgXCJUZXN0XCIpLCBcbiAgICAgICAgICAgICAgIG51bGwsIFxuICAgICAgICAgICAgICAgdW5kZWZpbmVkLCBcbiAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcIm5hbWVcIiwgdmFsdWU6ICAnZm9vJyB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkpO1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgICAgICBleHBlY3QobW9kZWwpLnRvRXF1YWwoe25hbWU6ICdmb28nfSk7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgZm9yIGlucHV0cyBiZWluZyBhZGRlZCBkeW5hbWljYWxseScsIGZ1bmN0aW9uIChkb25lKSB7XG5cbiAgICAgIHZhciBpbnB1dHMgPSBbXTtcbiAgICAgIHZhciBmb3JjZVVwZGF0ZSA9IG51bGw7XG4gICAgICB2YXIgbW9kZWwgPSBudWxsO1xuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbClcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZm9yY2VVcGRhdGUgPSB0aGlzLmZvcmNlVXBkYXRlLmJpbmQodGhpcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgICAgICAgbW9kZWwgPSBmb3JtTW9kZWw7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiAoIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uU3VibWl0OiB0aGlzLm9uU3VibWl0fSwgXG4gICAgICAgICAgICAgIGlucHV0c1xuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkgXG4gICAgICApO1xuXG4gICAgICAvLyBXYWl0IGJlZm9yZSBhZGRpbmcgdGhlIGlucHV0XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblxuICAgICAgICBpbnB1dHMucHVzaChUZXN0SW5wdXQoe1xuICAgICAgICAgIG5hbWU6ICd0ZXN0J1xuICAgICAgICB9KSk7XG5cbiAgICAgICAgZm9yY2VVcGRhdGUoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgLy8gV2FpdCBmb3IgbmV4dCBldmVudCBsb29wLCBhcyB0aGF0IGRvZXMgdGhlIGZvcm1cbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgICAgICAgICAgZXhwZWN0KG1vZGVsLnRlc3QpLnRvQmVEZWZpbmVkKCk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgfSk7XG5cbiAgICAgIH0sIDEwKTtcblxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBkeW5hbWljYWxseSBhZGRlZCBpbnB1dHMgdG8gdXBkYXRlIHRoZSBmb3JtLW1vZGVsJywgZnVuY3Rpb24gKGRvbmUpIHtcblxuICAgICAgdmFyIGlucHV0cyA9IFtdO1xuICAgICAgdmFyIGZvcmNlVXBkYXRlID0gbnVsbDtcbiAgICAgIHZhciBtb2RlbCA9IG51bGw7XG4gICAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgICBjaGFuZ2VWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy5jaGFuZ2VWYWx1ZX0pXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICAgIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZvcmNlVXBkYXRlID0gdGhpcy5mb3JjZVVwZGF0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB9LFxuICAgICAgICBvblN1Ym1pdDogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgICAgICAgIG1vZGVsID0gZm9ybU1vZGVsO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblN1Ym1pdDogdGhpcy5vblN1Ym1pdH0sIFxuICAgICAgICAgICAgICBpbnB1dHNcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpIFxuICAgICAgKTtcblxuICAgICAgLy8gV2FpdCBiZWZvcmUgYWRkaW5nIHRoZSBpbnB1dFxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgaW5wdXRzLnB1c2goVGVzdElucHV0KHtcbiAgICAgICAgICBuYW1lOiAndGVzdCdcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGZvcmNlVXBkYXRlKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgIC8vIFdhaXQgZm9yIG5leHQgZXZlbnQgbG9vcCwgYXMgdGhhdCBkb2VzIHRoZSBmb3JtXG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpLCB7dGFyZ2V0OiB7dmFsdWU6ICdmb28nfX0pO1xuICAgICAgICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG4gICAgICAgICAgICBleHBlY3QobW9kZWwudGVzdCkudG9CZSgnZm9vJyk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgfSk7XG5cbiAgICAgIH0sIDApO1xuXG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFsbG93IGEgZHluYW1pY2FsbHkgdXBkYXRlZCBpbnB1dCB0byB1cGRhdGUgdGhlIGZvcm0tbW9kZWwnLCBmdW5jdGlvbiAoZG9uZSkge1xuXG4gICAgICB2YXIgZm9yY2VVcGRhdGUgPSBudWxsO1xuICAgICAgdmFyIG1vZGVsID0gbnVsbDtcbiAgICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgIGNoYW5nZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLmNoYW5nZVZhbHVlfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBpbnB1dDtcbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBjb21wb25lbnRXaWxsTW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmb3JjZVVwZGF0ZSA9IHRoaXMuZm9yY2VVcGRhdGUuYmluZCh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25TdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICAgICAgICBtb2RlbCA9IGZvcm1Nb2RlbDtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaW5wdXQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwidGVzdFwiLCB2YWx1ZTogIHRoaXMucHJvcHMudmFsdWV9KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25TdWJtaXQ6IHRoaXMub25TdWJtaXR9LCBcbiAgICAgICAgICAgICAgaW5wdXRcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCB7dmFsdWU6IFwiZm9vXCJ9KSk7XG5cbiAgICAgIC8vIFdhaXQgYmVmb3JlIGNoYW5naW5nIHRoZSBpbnB1dFxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvcm0uc2V0UHJvcHMoe3ZhbHVlOiAnYmFyJ30pO1xuXG4gICAgICAgIGZvcmNlVXBkYXRlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAvLyBXYWl0IGZvciBuZXh0IGV2ZW50IGxvb3AsIGFzIHRoYXQgZG9lcyB0aGUgZm9ybVxuICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG4gICAgICAgICAgICBleHBlY3QobW9kZWwudGVzdCkudG9CZSgnYmFyJyk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgfSk7XG5cbiAgICAgIH0sIDEwKTtcblxuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3ZhbGlkYXRpb25zJywgZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgQ2hlY2tWYWxpZCwgb25TdWJtaXQsIE90aGVyQ2hlY2tWYWxpZDtcbiAgICAgIHZhciBpc1ZhbGlkO1xuXG4gICAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgICBjaGFuZ2VWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogIHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6ICB0aGlzLmNoYW5nZVZhbHVlfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICBnZXREZWZhdWx0UHJvcHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbnB1dHM6IFtdLFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBidWlsdElucHV0cyA9IFtdO1xuICAgICAgICAgIHZhciBpbnB1dHMgPSB0aGlzLnByb3BzLmlucHV0cztcbiAgICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBpbnB1dCA9IGlucHV0c1tpXTtcbiAgICAgICAgICAgIGJ1aWx0SW5wdXRzLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIFJlYWN0Ll9fc3ByZWFkKHt9LCAgIGlucHV0ICwge2tleTogIGlucHV0Lm5hbWV9KSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7XG4gICAgICAgICAgICBvblN1Ym1pdDogIGZ1bmN0aW9uKGFyZzEpIHsgb25TdWJtaXQoYXJnMSk7IH0sIFxuICAgICAgICAgICAgb25WYWxpZDogIGZ1bmN0aW9uKCkgeyBpc1ZhbGlkID0gdHJ1ZTsgfSwgXG4gICAgICAgICAgICBvbkludmFsaWQ6ICBmdW5jdGlvbigpIHsgaXNWYWxpZCA9IGZhbHNlOyB9fSwgXG4gICAgICAgICAgICAgYnVpbHRJbnB1dHMgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgIGlzVmFsaWQgPSB0cnVlO1xuICAgICAgICBDaGVja1ZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ0NoZWNrVmFsaWQnKTtcbiAgICAgICAgRm9ybXN5LmFkZFZhbGlkYXRpb25SdWxlKCdDaGVja1ZhbGlkJywgQ2hlY2tWYWxpZCk7XG4gICAgICAgIE90aGVyQ2hlY2tWYWxpZCA9IGphc21pbmUuY3JlYXRlU3B5KCdDaGVja1ZhbGlkJyk7XG4gICAgICAgIEZvcm1zeS5hZGRWYWxpZGF0aW9uUnVsZSgnT3RoZXJDaGVja1ZhbGlkJywgT3RoZXJDaGVja1ZhbGlkKTtcbiAgICAgICAgb25TdWJtaXQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnb25TdWJtaXQnKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHJ1biB3aGVuIHRoZSBpbnB1dCBjaGFuZ2VzJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCB7aW5wdXRzOiAgW3tuYW1lOiAnb25lJywgdmFsaWRhdGlvbnM6ICdDaGVja1ZhbGlkJywgdmFsdWU6ICdmb28nfV0gfSkpO1xuICAgICAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnaW5wdXQnKTtcbiAgICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dC5nZXRET01Ob2RlKCksIHt0YXJnZXQ6IHt2YWx1ZTogJ2Jhcid9fSk7XG4gICAgICAgIGV4cGVjdChDaGVja1ZhbGlkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnYmFyJyk7XG4gICAgICAgIGV4cGVjdChPdGhlckNoZWNrVmFsaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBhbGxvdyB0aGUgdmFsaWRhdGlvbiB0byBiZSBjaGFuZ2VkJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCB7aW5wdXRzOiAgW3tuYW1lOiAnb25lJywgdmFsaWRhdGlvbnM6ICdDaGVja1ZhbGlkJywgdmFsdWU6ICdmb28nfV0gfSkpO1xuICAgICAgICBmb3JtLnNldFByb3BzKHtpbnB1dHM6IFt7bmFtZTogJ29uZScsIHZhbGlkYXRpb25zOiAnT3RoZXJDaGVja1ZhbGlkJywgdmFsdWU6ICdmb28nfV0gfSk7XG4gICAgICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdpbnB1dCcpO1xuICAgICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LmdldERPTU5vZGUoKSwge3RhcmdldDoge3ZhbHVlOiAnYmFyJ319KTtcbiAgICAgICAgZXhwZWN0KE90aGVyQ2hlY2tWYWxpZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2JhcicpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaW52YWxpZGF0ZSBhIGZvcm0gaWYgZHluYW1pY2FsbHkgaW5zZXJ0ZWQgaW5wdXQgaXMgaW52YWxpZCcsIGZ1bmN0aW9uKGRvbmUpIHtcbiAgICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIHtpbnB1dHM6ICBbe25hbWU6ICdvbmUnLCB2YWxpZGF0aW9uczogJ2lzRW1haWwnLCB2YWx1ZTogJ2Zvb0BiYXIuY29tJ31dIH0pKTtcbiAgICAgICAgZXhwZWN0KGlzVmFsaWQpLnRvRXF1YWwodHJ1ZSk7XG4gICAgICAgIGZvcm0uc2V0UHJvcHMoe2lucHV0czogW1xuICAgICAgICAgIHtuYW1lOiAnb25lJywgdmFsaWRhdGlvbnM6ICdpc0VtYWlsJywgdmFsdWU6ICdmb29AYmFyLmNvbSd9LFxuICAgICAgICAgIHtuYW1lOiAndHdvJywgdmFsaWRhdGlvbnM6ICdpc0VtYWlsJywgdmFsdWU6ICdmb29AYmFyJ30sXG4gICAgICAgIF19LCBmdW5jdGlvbigpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZXhwZWN0KGlzVmFsaWQpLnRvRXF1YWwoZmFsc2UpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgZm9ybSB3aGVuIHJlbW92aW5nIGFuIGludmFsaWQgaW5wdXQnLCBmdW5jdGlvbihkb25lKSB7XG4gICAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCB7aW5wdXRzOiAgW1xuICAgICAgICAgIHtuYW1lOiAnb25lJywgdmFsaWRhdGlvbnM6ICdpc0VtYWlsJywgdmFsdWU6ICdmb29AYmFyLmNvbSd9LFxuICAgICAgICAgIHtuYW1lOiAndHdvJywgdmFsaWRhdGlvbnM6ICdpc0VtYWlsJywgdmFsdWU6ICdmb29AYmFyJ30sXG4gICAgICAgIF0gfSkpO1xuICAgICAgICBleHBlY3QoaXNWYWxpZCkudG9FcXVhbChmYWxzZSk7XG4gICAgICAgIGZvcm0uc2V0UHJvcHMoe2lucHV0czogW3tuYW1lOiAnb25lJywgdmFsaWRhdGlvbnM6ICdpc0VtYWlsJywgdmFsdWU6ICdmb29AYmFyLmNvbSd9XX0sIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBleHBlY3QoaXNWYWxpZCkudG9FcXVhbCh0cnVlKTtcbiAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3J1bnMgbXVsdGlwbGUgdmFsaWRhdGlvbnMnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIHtpbnB1dHM6ICBbe25hbWU6ICdvbmUnLCB2YWxpZGF0aW9uczogJ0NoZWNrVmFsaWQsT3RoZXJDaGVja1ZhbGlkJywgdmFsdWU6ICdmb28nfV0gfSkpO1xuICAgICAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnaW5wdXQnKTtcbiAgICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dC5nZXRET01Ob2RlKCksIHt0YXJnZXQ6IHt2YWx1ZTogJ2Jhcid9fSk7XG4gICAgICAgIGV4cGVjdChDaGVja1ZhbGlkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnYmFyJyk7XG4gICAgICAgIGV4cGVjdChPdGhlckNoZWNrVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdiYXInKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBub3QgdHJpZ2dlciBvbkNoYW5nZSB3aGVuIGZvcm0gaXMgbW91bnRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBoYXNDaGFuZ2VkID0gamFzbWluZS5jcmVhdGVTcHkoJ29uQ2hhbmdlJyk7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBoYXNDaGFuZ2VkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25DaGFuZ2U6IHRoaXMub25DaGFuZ2V9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkpO1xuICAgICAgZXhwZWN0KGhhc0NoYW5nZWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRyaWdnZXIgb25DaGFuZ2Ugd2hlbiBmb3JtIGVsZW1lbnQgaXMgY2hhbmdlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBoYXNDaGFuZ2VkID0gamFzbWluZS5jcmVhdGVTcHkoJ29uQ2hhbmdlJyk7XG4gICAgICB2YXIgTXlJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJNeUlucHV0XCIsXG4gICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBoYXNDaGFuZ2VkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25DaGFuZ2U6IHRoaXMub25DaGFuZ2V9LCBcbiAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChNeUlucHV0LCB7bmFtZTogXCJmb29cIn0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkpO1xuICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKSwge3RhcmdldDoge3ZhbHVlOiAnYmFyJ319KTtcbiAgICAgIGV4cGVjdChoYXNDaGFuZ2VkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRyaWdnZXIgb25DaGFuZ2Ugd2hlbiBuZXcgaW5wdXQgaXMgYWRkZWQgdG8gZm9ybScsIGZ1bmN0aW9uIChkb25lKSB7XG4gICAgICB2YXIgaGFzQ2hhbmdlZCA9IGphc21pbmUuY3JlYXRlU3B5KCdvbkNoYW5nZScpO1xuICAgICAgdmFyIGlucHV0cyA9IFtdO1xuICAgICAgdmFyIGZvcmNlVXBkYXRlID0gbnVsbDtcbiAgICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgIGNoYW5nZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLmNoYW5nZVZhbHVlfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZm9yY2VVcGRhdGUgPSB0aGlzLmZvcmNlVXBkYXRlLmJpbmQodGhpcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaGFzQ2hhbmdlZCgpO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gKCBcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvbkNoYW5nZTogdGhpcy5vbkNoYW5nZX0sIFxuICAgICAgICAgICAgICBpbnB1dHNcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpIFxuICAgICAgKTtcblxuICAgICAgLy8gV2FpdCBiZWZvcmUgYWRkaW5nIHRoZSBpbnB1dFxuICAgICAgaW5wdXRzLnB1c2goVGVzdElucHV0KHtcbiAgICAgICAgbmFtZTogJ3Rlc3QnXG4gICAgICB9KSk7XG5cbiAgICAgIGZvcmNlVXBkYXRlKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAvLyBXYWl0IGZvciBuZXh0IGV2ZW50IGxvb3AsIGFzIHRoYXQgZG9lcyB0aGUgZm9ybVxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBleHBlY3QoaGFzQ2hhbmdlZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgIH0pO1xuXG4gICAgfSk7XG5cbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1VwZGF0ZSBhIGZvcm0nLCBmdW5jdGlvbiAoKSB7XG5cbiAgICBpdCgnc2hvdWxkIGFsbG93IGVsZW1lbnRzIHRvIGNoZWNrIGlmIHRoZSBmb3JtIGlzIGRpc2FibGVkJywgZnVuY3Rpb24gKGRvbmUpIHtcblxuICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKX0pXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiB7ZGlzYWJsZWQ6IHRydWV9O1xuICAgICAgICB9LFxuICAgICAgICBlbmFibGVGb3JtOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuICggXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGRpc2FibGVkOiB0aGlzLnN0YXRlLmRpc2FibGVkfSwgXG4gICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIn0pXG4gICAgICAgICAgICApKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCBudWxsKSBcbiAgICAgICk7XG5cbiAgICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRDb21wb25lbnRXaXRoVHlwZShmb3JtLCBUZXN0SW5wdXQpO1xuICAgICAgZXhwZWN0KGlucHV0LmlzRm9ybURpc2FibGVkKCkpLnRvQmUodHJ1ZSk7XG4gICAgICBmb3JtLmVuYWJsZUZvcm0oKTtcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBleHBlY3QoaW5wdXQuaXNGb3JtRGlzYWJsZWQoKSkudG9CZShmYWxzZSk7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0sIDApO1xuXG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHBhc3MgZXJyb3Igc3RhdGUgb2YgZWxlbWVudHMgYnkgY2hhbmdpbmcgYW4gZXJyb3JzIGF0dHJpYnV0ZScsIGZ1bmN0aW9uIChkb25lKSB7XG5cbiAgICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCl9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgVGVzdEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdEZvcm1cIixcbiAgICAgICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcnM6IHtcbiAgICAgICAgICAgICAgZm9vOiAnYmFyJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAodmFsdWVzKSB7XG4gICAgICAgICAgaWYgKHZhbHVlcy5mb28pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3JzOiB7fVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3JzOiB7Zm9vOiAnYmFyJ31cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuICggXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIHZhbGlkYXRpb25FcnJvcnM6IHRoaXMuc3RhdGUudmFsaWRhdGlvbkVycm9yc30sIFxuICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCJ9KVxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkgXG4gICAgICApO1xuXG4gICAgICAvLyBXYWl0IGZvciB1cGRhdGVcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkQ29tcG9uZW50V2l0aFR5cGUoZm9ybSwgVGVzdElucHV0KTtcbiAgICAgICAgZXhwZWN0KGlucHV0LmdldEVycm9yTWVzc2FnZSgpKS50b0JlKCdiYXInKTtcbiAgICAgICAgaW5wdXQuc2V0VmFsdWUoJ2dvdFZhbHVlJyk7XG5cbiAgICAgICAgLy8gV2FpdCBmb3IgdXBkYXRlXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGV4cGVjdChpbnB1dC5nZXRFcnJvck1lc3NhZ2UoKSkudG9CZShudWxsKTtcbiAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0sIDApO1xuICAgICAgfSwgMCk7XG5cbiAgICB9KTtcblxuXG4gICAgaXQoJ3Nob3VsZCB0cmlnZ2VyIGFuIG9uVmFsaWRTdWJtaXQgd2hlbiBzdWJtaXR0aW5nIGEgdmFsaWQgZm9ybScsIGZ1bmN0aW9uICgpIHtcblxuICAgICAgICB2YXIgaXNDYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKX0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBUZXN0Rm9ybSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0Rm9ybVwiLFxuICAgICAgICAgIG9uVmFsaWRTdWJtaXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlzQ2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICggXG4gICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHtvblZhbGlkU3VibWl0OiB0aGlzLm9uVmFsaWRTdWJtaXR9LCBcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbGlkYXRpb25zOiBcImlzRW1haWxcIiwgdmFsdWU6IFwiZm9vQGJhci5jb21cIn0pXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudCggXG4gICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0Rm9ybSwgbnVsbCkgXG4gICAgICAgICk7XG5cbiAgICAgICAgdmFyIFRlc3RGb3JtID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZENvbXBvbmVudFdpdGhUeXBlKGZvcm0sIFRlc3RGb3JtKTtcbiAgICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChUZXN0Rm9ybS5nZXRET01Ob2RlKCkpOyAgXG4gICAgICAgIGV4cGVjdChpc0NhbGxlZCkudG9CZSh0cnVlKTtcblxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0cmlnZ2VyIGFuIG9uSW52YWxpZFN1Ym1pdCB3aGVuIHN1Ym1pdHRpbmcgYW4gaW52YWxpZCBmb3JtJywgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgIHZhciBpc0NhbGxlZCA9IGZhbHNlO1xuICAgICAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICAgICAgb25JbnZhbGlkU3VibWl0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpc0NhbGxlZCA9IHRydWU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAoIFxuICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25JbnZhbGlkU3VibWl0OiB0aGlzLm9uSW52YWxpZFN1Ym1pdH0sIFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNFbWFpbFwiLCB2YWx1ZTogXCJmb29AYmFyXCJ9KVxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoIFxuICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdEZvcm0sIG51bGwpIFxuICAgICAgICApO1xuXG4gICAgICAgIHZhciBUZXN0Rm9ybSA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRDb21wb25lbnRXaXRoVHlwZShmb3JtLCBUZXN0Rm9ybSk7XG4gICAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoVGVzdEZvcm0uZ2V0RE9NTm9kZSgpKTsgIFxuICAgICAgICBleHBlY3QoaXNDYWxsZWQpLnRvQmUodHJ1ZSk7XG5cbiAgICB9KTtcblxuICB9KTtcblxuICBkZXNjcmliZShcInZhbHVlID09PSBmYWxzZVwiLCBmdW5jdGlvbigpIHtcbiAgICB2YXIgb25TdWJtaXQ7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICBnZXREZWZhdWx0UHJvcHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIGNoYW5nZVZhbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShlLnRhcmdldFt0aGlzLnByb3BzLnR5cGUgPT09IFwiY2hlY2tib3hcIiA/IFwiY2hlY2tlZFwiIDogXCJ2YWx1ZVwiXSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3R5cGU6ICB0aGlzLnByb3BzLnR5cGUsIHZhbHVlOiAgdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogIHRoaXMuY2hhbmdlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFyIFRlc3RGb3JtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RGb3JtXCIsXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7b25TdWJtaXQ6ICBmdW5jdGlvbihhcmcxKSB7IG9uU3VibWl0KGFyZzEpOyB9fSwgXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiAgdGhpcy5wcm9wcy52YWx1ZSwgdHlwZTogXCJjaGVja2JveFwifSksIFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7dHlwZTogXCJzdWJtaXRcIn0sIFwiU2F2ZVwiKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7XG4gICAgICBvblN1Ym1pdCA9IGphc21pbmUuY3JlYXRlU3B5KFwib25TdWJtaXRcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjYWxsIG9uU3VibWl0IGNvcnJlY3RseVwiLCBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCB7dmFsdWU6ICBmYWxzZSB9KSk7XG4gICAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcbiAgICAgIGV4cGVjdChvblN1Ym1pdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoe2ZvbzogZmFsc2V9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGFsbG93IGR5bmFtaWMgY2hhbmdlcyB0byBmYWxzZVwiLCBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RGb3JtLCB7dmFsdWU6ICB0cnVlIH0pKTtcbiAgICAgIGZvcm0uc2V0UHJvcHMoe3ZhbHVlOiBmYWxzZX0pO1xuICAgICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG4gICAgICBleHBlY3Qob25TdWJtaXQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtmb286IGZhbHNlfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y0dWamN5OUdiM0p0YzNrdGMzQmxZeTVxY3lJc0luTnZkWEpqWlhNaU9sc2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNHVmpjeTlHYjNKdGMza3RjM0JsWXk1cWN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hKUVVGSkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6czdRVUZGZWtNc1VVRkJVU3hEUVVGRExGRkJRVkVzUlVGQlJTeFpRVUZaT3p0QlFVVXZRaXhGUVVGRkxGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1JVRkJSU3haUVVGWk96dEpRVVY0UXl4RlFVRkZMRU5CUVVNc2QwTkJRWGRETEVWQlFVVXNXVUZCV1R0TlFVTjJSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzYjBKQlFVTXNWMEZCVnl4RlFVRkJMRWxCUVdVc1EwRkJRU3hEUVVGRExFTkJRVU03VFVGRGRFVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGVFUXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wbEJSVWdzUlVGQlJTeERRVUZETEcxRFFVRnRReXhGUVVGRkxGbEJRVms3VFVGRGJFUXNTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNVMEZCUVN4RlFVRlRMRU5CUVVNc1MwRkJUU3hEUVVGakxFTkJRVUVzUTBGQlF5eERRVUZETzAxQlEzUkdMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzcEVMRXRCUVVzc1EwRkJReXhEUVVGRE96dEpRVVZJTEVWQlFVVXNRMEZCUXl3d1EwRkJNRU1zUlVGQlJTeFZRVUZWTEVsQlFVa3NSVUZCUlR0TlFVTTNSQ3hKUVVGSkxDdENRVUVyUWl4NVFrRkJRVHRSUVVOcVF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM1JDTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRWUVVNMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVMEZEYmtNN1VVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFZRVU5zUWl4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZETEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVVc1NVRkJTU3hEUVVGRExGZEJRVmtzUTBGQlJTeERRVUZCTzFOQlEzQkZPMEZCUTFRc1QwRkJUeXhEUVVGRExFTkJRVU03TzAxQlJVZ3NTVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRE8wMUJRMnBDTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMRkZCUVZFc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdFZRVU0zUWl4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRE8xTkJRMjVDTzFGQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1ZVRkRiRUk3V1VGRFJTeHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJSeXhEUVVGQkxFVkJRVUU3WTBGRGRFTXNiMEpCUVVFc1NVRkJSeXhGUVVGQkxFbEJRVU1zUlVGQlFTeE5RVUZUTEVOQlFVRXNSVUZCUVR0alFVTmFMRU5CUVVNc1NVRkJTU3hGUVVGQkxFTkJRVVU3WTBGRFVDeERRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkZPMk5CUTJJc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhOUVVGQkxFVkJRVTBzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4RFFVRkRMRTFCUVU4c1EwRkJRU3hEUVVGSExFTkJRVUU3V1VGRE4wSXNRMEZCUVR0WlFVTmtPMU5CUTBnN1FVRkRWQ3hQUVVGUExFTkJRVU1zUTBGQlF6czdUVUZGU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVsQlFVVXNRMEZCUVN4RFFVRkRMRU5CUVVNN1RVRkRja1FzVlVGQlZTeERRVUZETEZsQlFWazdVVUZEY2tJc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRE4wTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pETEVsQlFVa3NSVUZCUlN4RFFVRkRPMDlCUTFJc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU5pTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWUUxFbEJRVWtzUlVGQlJTeERRVUZETEdsRVFVRnBSQ3hGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGT3p0TlFVVndSU3hKUVVGSkxFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTTdUVUZEYUVJc1NVRkJTU3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzAxQlEzWkNMRWxCUVVrc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF6dE5RVU5xUWl4SlFVRkpMQ3RDUVVFclFpeDVRa0ZCUVR0UlFVTnFReXhOUVVGTkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTNSQ0xFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENMRTlCUVU4c2IwSkJRVUVzUzBGQlNTeEZRVUZCTEVsQlFVVXNRMEZCUVR0VFFVTmtPMDlCUTBZc1EwRkJReXhEUVVGRE8wMUJRMGdzU1VGQlNTdzRRa0ZCT0VJc2QwSkJRVUU3VVVGRGFFTXNhMEpCUVd0Q0xFVkJRVVVzV1VGQldUdFZRVU01UWl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRNME03VVVGRFJDeFJRVUZSTEVWQlFVVXNWVUZCVlN4VFFVRlRMRVZCUVVVN1ZVRkROMElzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXp0VFFVTnVRanRSUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENPMWxCUTBVc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlZTeERRVUZCTEVWQlFVRTdZMEZEYmtNc1RVRkJUenRaUVVOSkxFTkJRVUVzUlVGQlJUdFRRVU51UWp0UFFVTkdMRU5CUVVNc1EwRkJRenROUVVOSUxFbEJRVWtzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4clFrRkJhMEk3VVVGRGNrTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFbEJRVVVzUTBGQlFUdEJRVU51UWl4UFFVRlBMRU5CUVVNN1FVRkRVanM3UVVGRlFTeE5RVUZOTEZWQlFWVXNRMEZCUXl4WlFVRlpPenRSUVVWeVFpeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJRenRWUVVOd1FpeEpRVUZKTEVWQlFVVXNUVUZCVFR0QlFVTjBRaXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVmFMRkZCUVZFc1YwRkJWeXhEUVVGRExGbEJRVms3UVVGRGFFTTdPMVZCUlZVc1ZVRkJWU3hEUVVGRExGbEJRVms3V1VGRGNrSXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkROME1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU5xUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRCUVVOdVFpeFhRVUZYTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN08wRkJSV2hDTEZOQlFWTXNRMEZCUXl4RFFVRkRPenRCUVVWWUxFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXpzN1FVRkZZaXhMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZGVUN4SlFVRkpMRVZCUVVVc1EwRkJReXhuUlVGQlowVXNSVUZCUlN4VlFVRlZMRWxCUVVrc1JVRkJSVHM3VFVGRmJrWXNTVUZCU1N4TlFVRk5MRWRCUVVjc1JVRkJSU3hEUVVGRE8wMUJRMmhDTEVsQlFVa3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenROUVVOMlFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNN1RVRkRha0lzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VVVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU4wUWl4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VlVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTI1RE8xRkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdWVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0VFFVTndSVHRQUVVOR0xFTkJRVU1zUTBGQlF6dE5RVU5JTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMR3RDUVVGclFpeEZRVUZGTEZsQlFWazdWVUZET1VJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xTkJRek5ETzFGQlEwUXNVVUZCVVN4RlFVRkZMRlZCUVZVc1UwRkJVeXhGUVVGRk8xVkJRemRDTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNN1UwRkRia0k3VVVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0VlFVTnNRanRaUVVORkxHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWVXNRMEZCUVN4RlFVRkJPMk5CUTI1RExFMUJRVTg3V1VGRFNTeERRVUZCTEVWQlFVVTdVMEZEYmtJN1QwRkRSaXhEUVVGRExFTkJRVU03VFVGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzFGQlEzSkRMRzlDUVVGRExGRkJRVkVzUlVGQlFTeEpRVUZGTEVOQlFVRTdRVUZEYmtJc1QwRkJUeXhEUVVGRE8wRkJRMUk3TzBGQlJVRXNUVUZCVFN4VlFVRlZMRU5CUVVNc1dVRkJXVHM3VVVGRmNrSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU03VlVGRGNFSXNTVUZCU1N4RlFVRkZMRTFCUVUwN1FVRkRkRUlzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZXaXhSUVVGUkxGZEJRVmNzUTBGQlF5eFpRVUZaTzBGQlEyaERPenRWUVVWVkxGVkJRVlVzUTBGQlF5eFpRVUZaTzFsQlEzSkNMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRemxITEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUXpkRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlF5OUNMRWxCUVVrc1JVRkJSU3hEUVVGRE8wRkJRMjVDTEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenM3UVVGRmFFSXNVMEZCVXl4RFFVRkRMRU5CUVVNN08wRkJSVmdzVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWYUxFdEJRVXNzUTBGQlF5eERRVUZET3p0QlFVVlFMRWxCUVVrc1JVRkJSU3hEUVVGRExHMUZRVUZ0UlN4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRk96dE5RVVYwUml4SlFVRkpMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU03VFVGRGRrSXNTVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRE8wMUJRMnBDTEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzFGQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZEZEVJc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFWQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRUUVVOdVF6dFJRVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMVZCUTJ4Q0xFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1UwRkRjRVU3UVVGRFZDeFBRVUZQTEVOQlFVTXNRMEZCUXpzN1RVRkZTQ3hKUVVGSkxFdEJRVXNzUTBGQlF6dE5RVU5XTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMR3RDUVVGclFpeEZRVUZGTEZsQlFWazdWVUZET1VJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xTkJRek5ETzFGQlEwUXNVVUZCVVN4RlFVRkZMRlZCUVZVc1UwRkJVeXhGUVVGRk8xVkJRemRDTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNN1UwRkRia0k3VVVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0QlFVTTFRaXhWUVVGVkxFdEJRVXNzUjBGQlJ5eHZRa0ZCUXl4VFFVRlRMRVZCUVVFc1EwRkJRU3hEUVVGRExFbEJRVUVzUlVGQlNTeERRVUZETEUxQlFVRXNSVUZCVFN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVVc1EwRkJRU3hEUVVGSExFTkJRVUVzUTBGQlF6czdWVUZGTjBRN1dVRkRSU3h2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZWTEVOQlFVRXNSVUZCUVR0alFVTnVReXhMUVVGTk8xbEJRMHNzUTBGQlFTeEZRVUZGTzFOQlEyNUNPMDlCUTBZc1EwRkJReXhEUVVGRE8wRkJRMVFzVFVGQlRTeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVVc1EwRkJRU3hEUVVGRExFTkJRVU03UVVGRGRrVTdPMDFCUlUwc1ZVRkJWU3hEUVVGRExGbEJRVms3UVVGRE4wSXNVVUZCVVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN08wRkJSWFJETEZGQlFWRXNWMEZCVnl4RFFVRkRMRmxCUVZrN08xVkJSWFJDTEZWQlFWVXNRMEZCUXl4WlFVRlpPMWxCUTNKQ0xGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzFsQlF6ZERMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJReTlDTEVsQlFVa3NSVUZCUlN4RFFVRkRPMEZCUTI1Q0xGZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZhRUlzVTBGQlV5eERRVUZETEVOQlFVTTdPMEZCUlZnc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZET3p0QlFVVmlMRXRCUVVzc1EwRkJReXhEUVVGRE96dEpRVVZJTEZGQlFWRXNRMEZCUXl4aFFVRmhMRVZCUVVVc1YwRkJWenROUVVOcVF5eEpRVUZKTEZWQlFWVXNSVUZCUlN4UlFVRlJMRVZCUVVVc1pVRkJaU3hEUVVGRE8wRkJRMmhFTEUxQlFVMHNTVUZCU1N4UFFVRlBMRU5CUVVNN08wMUJSVm9zU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VVVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU4wUWl4WFFVRlhMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3VlVGRE5VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTI1RE8xRkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdWVUZEYkVJc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkJMRU5CUVVVc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVVc1EwRkJRU3hEUVVGSExFTkJRVUU3VTBGRGVrVTdRVUZEVkN4UFFVRlBMRU5CUVVNc1EwRkJRenM3VFVGRlNDeEpRVUZKTERoQ1FVRTRRaXgzUWtGQlFUdFJRVU5vUXl4bFFVRmxMRVZCUVVVc1YwRkJWenRWUVVNeFFpeFBRVUZQTzFsQlEwd3NUVUZCVFN4RlFVRkZMRVZCUVVVN1YwRkRXQ3hEUVVGRE8xTkJRMGc3VVVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0VlFVTnNRaXhKUVVGSkxGZEJRVmNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdWVUZEY2tJc1NVRkJTU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1ZVRkRMMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRjRU1zU1VGQlNTeExRVUZMTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM1JDTEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEdkQ1FVRkJMRWRCUVVFc1EwRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUVN4SFFVRkJMRVZCUVVjc1EwRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVVXNRMEZCUVN4RFFVRkJMRU5CUVVjc1EwRkJRU3hEUVVGRExFTkJRVU03VjBGRGFrVTdWVUZEUkN4SlFVRkpMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU03VlVGRGFrSXNUMEZCVHl4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFUdFpRVU5xUWl4UlFVRkJMRVZCUVZFc1NVRkJTeXhEUVVGRExGTkJRVk1zU1VGQlNTeEZRVUZGTEVWQlFVVXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlFTeERRVUZGTzFsQlEyeEVMRTlCUVVFc1JVRkJUeXhMUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGQkxFTkJRVVU3V1VGRE9VTXNVMEZCUVN4RlFVRlRMRWRCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVVc1EwRkJSU3hEUVVGQkxFVkJRVUU3V1VGRGFFUXNRMEZCUXl4WlFVRmhPMVZCUTBnc1EwRkJRU3hEUVVGRE8xTkJRMmhDTzBGQlExUXNUMEZCVHl4RFFVRkRMRU5CUVVNN08wMUJSVWdzVlVGQlZTeERRVUZETEZkQlFWYzdVVUZEY0VJc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU5tTEZWQlFWVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlF6ZERMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4WlFVRlpMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGJrUXNaVUZCWlN4SFFVRkhMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZEYkVRc1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUXpkRUxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRMnBFTEU5QlFVOHNRMEZCUXl4RFFVRkRPenROUVVWSUxFVkJRVVVzUTBGQlF5eHRRMEZCYlVNc1JVRkJSU3hYUVVGWE8xRkJRMnBFTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4dlFrRkJReXhSUVVGUkxFVkJRVUVzUTBGQlFTeERRVUZETEUxQlFVRXNSVUZCVFN4RFFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNWMEZCVnl4RlFVRkZMRmxCUVZrc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVWQlFVY3NRMEZCUlN4RFFVRkJMRU5CUVVNc1EwRkJRenRSUVVONlNDeEpRVUZKTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0pGTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRlRVVzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUXk5RExFMUJRVTBzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNRMEZCUXp0QlFVTjJSQ3hQUVVGUExFTkJRVU1zUTBGQlF6czdUVUZGU0N4RlFVRkZMRU5CUVVNc01rTkJRVEpETEVWQlFVVXNWMEZCVnp0UlFVTjZSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRU5CUVVFc1EwRkJReXhOUVVGQkxFVkJRVTBzUTBGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRkxGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhGUVVGSExFTkJRVVVzUTBGQlFTeERRVUZETEVOQlFVTTdVVUZEZWtnc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFhRVUZYTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM2hHTEVsQlFVa3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNrVXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONFJTeE5RVUZOTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkROVVFzVDBGQlR5eERRVUZETEVOQlFVTTdPMDFCUlVnc1JVRkJSU3hEUVVGRExHMUZRVUZ0UlN4RlFVRkZMRk5CUVZNc1NVRkJTU3hGUVVGRk8xRkJRM0pHTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4dlFrRkJReXhSUVVGUkxFVkJRVUVzUTBGQlFTeERRVUZETEUxQlFVRXNSVUZCVFN4RFFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNWMEZCVnl4RlFVRkZMRk5CUVZNc1JVRkJSU3hMUVVGTExFVkJRVVVzWVVGQllTeERRVUZETEVWQlFVY3NRMEZCUlN4RFFVRkJMRU5CUVVNc1EwRkJRenRSUVVNNVNDeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6bENMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVTdWVUZEY2tJc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEZkQlFWY3NSVUZCUlN4VFFVRlRMRVZCUVVVc1MwRkJTeXhGUVVGRkxHRkJRV0VzUTBGQlF6dFZRVU16UkN4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVVzVjBGQlZ5eEZRVUZGTEZOQlFWTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRE8xTkJRM2hFTEVOQlFVTXNSVUZCUlN4WFFVRlhPMVZCUTJJc1ZVRkJWU3hEUVVGRExGZEJRVmM3V1VGRGNFSXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTXZRaXhKUVVGSkxFVkJRVVVzUTBGQlF6dFhRVU5TTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRVQ3hEUVVGRExFTkJRVU03UVVGRFdDeFBRVUZQTEVOQlFVTXNRMEZCUXpzN1RVRkZTQ3hGUVVGRkxFTkJRVU1zZFVSQlFYVkVMRVZCUVVVc1UwRkJVeXhKUVVGSkxFVkJRVVU3VVVGRGVrVXNTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRzlDUVVGRExGRkJRVkVzUlVGQlFTeERRVUZCTEVOQlFVTXNUVUZCUVN4RlFVRk5MRU5CUVVVc1EwRkJRenRWUVVONlJDeERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1YwRkJWeXhGUVVGRkxGTkJRVk1zUlVGQlJTeExRVUZMTEVWQlFVVXNZVUZCWVN4RFFVRkRPMVZCUXpORUxFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4WFFVRlhMRVZCUVVVc1UwRkJVeXhGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTTdWVUZEZEVRc1EwRkJRU3hEUVVGSExFTkJRVUVzUTBGQlF5eERRVUZETzFGQlExSXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTXZRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEZkQlFWY3NSVUZCUlN4VFFVRlRMRVZCUVVVc1MwRkJTeXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhPMVZCUTJoSExGVkJRVlVzUTBGQlF5eFhRVUZYTzFsQlEzQkNMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRPVUlzU1VGQlNTeEZRVUZGTEVOQlFVTTdWMEZEVWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRMUFzUTBGQlF5eERRVUZETzBGQlExZ3NUMEZCVHl4RFFVRkRMRU5CUVVNN08wMUJSVWdzUlVGQlJTeERRVUZETERKQ1FVRXlRaXhGUVVGRkxGZEJRVmM3VVVGRGVrTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRzlDUVVGRExGRkJRVkVzUlVGQlFTeERRVUZCTEVOQlFVTXNUVUZCUVN4RlFVRk5MRU5CUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4WFFVRlhMRVZCUVVVc05FSkJRVFJDTEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhGUVVGSExFTkJRVVVzUTBGQlFTeERRVUZETEVOQlFVTTdVVUZEZWtrc1NVRkJTU3hMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETEN0Q1FVRXJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnlSU3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaEZMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU12UXl4TlFVRk5MRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VDBGRGNrUXNRMEZCUXl4RFFVRkRPMEZCUTFRc1MwRkJTeXhEUVVGRExFTkJRVU03TzBsQlJVZ3NSVUZCUlN4RFFVRkRMR3RFUVVGclJDeEZRVUZGTEZsQlFWazdUVUZEYWtVc1NVRkJTU3hWUVVGVkxFZEJRVWNzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenROUVVNdlF5eEpRVUZKTERoQ1FVRTRRaXgzUWtGQlFUdFJRVU5vUXl4UlFVRlJMRVZCUVVVc1dVRkJXVHRWUVVOd1FpeFZRVUZWTEVWQlFVVXNRMEZCUXp0VFFVTmtPMUZCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VlVGRGJFSXNUMEZCVHl4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGVkxFTkJRV01zUTBGQlFTeERRVUZETzFOQlF6ZEVPMDlCUTBZc1EwRkJReXhEUVVGRE8wMUJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFpeERRVUZETEc5Q1FVRkRMRkZCUVZFc1JVRkJRU3hKUVVGRkxFTkJRVUVzUTBGQlF5eERRVUZETzAxQlEzSkVMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUTBGQlF6dEJRVU5vUkN4TFFVRkxMRU5CUVVNc1EwRkJRenM3U1VGRlNDeEZRVUZGTEVOQlFVTXNjMFJCUVhORUxFVkJRVVVzV1VGQldUdE5RVU55UlN4SlFVRkpMRlZCUVZVc1IwRkJSeXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMDFCUXk5RExFbEJRVWtzTmtKQlFUWkNMSFZDUVVGQk8xRkJReTlDTEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRGRFSXNVVUZCVVN4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8xVkJRM3BDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0VFFVTnVRenRSUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlV5eERRVUZGTEVOQlFVRTdVMEZEYWtVN1QwRkRSaXhEUVVGRExFTkJRVU03VFVGRFNDeEpRVUZKTERoQ1FVRTRRaXgzUWtGQlFUdFJRVU5vUXl4UlFVRlJMRVZCUVVVc1dVRkJXVHRWUVVOd1FpeFZRVUZWTEVWQlFVVXNRMEZCUXp0VFFVTmtPMUZCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VlVGRGJFSTdXVUZEUlN4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGVkxFTkJRVUVzUlVGQlFUdGpRVU53UXl4dlFrRkJReXhQUVVGUExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJSU3hEUVVGQk8xbEJRMVFzUTBGQlFUdFpRVU5rTzFOQlEwZzdUMEZEUml4RFFVRkRMRU5CUVVNN1RVRkRTQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zYjBKQlFVTXNVVUZCVVN4RlFVRkJMRWxCUVVVc1EwRkJRU3hEUVVGRExFTkJRVU03VFVGRGNrUXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEN0Q1FVRXJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1RVRkRPVWNzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdRVUZETlVNc1MwRkJTeXhEUVVGRExFTkJRVU03TzBsQlJVZ3NSVUZCUlN4RFFVRkRMSGxFUVVGNVJDeEZRVUZGTEZWQlFWVXNTVUZCU1N4RlFVRkZPMDFCUXpWRkxFbEJRVWtzVlVGQlZTeEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VFVGREwwTXNTVUZCU1N4TlFVRk5MRWRCUVVjc1JVRkJSU3hEUVVGRE8wMUJRMmhDTEVsQlFVa3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenROUVVOMlFpeEpRVUZKTEN0Q1FVRXJRaXg1UWtGQlFUdFJRVU5xUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzFGQlEzUkNMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFZRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1UwRkRia003VVVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0VlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMU5CUTNCRk8wOUJRMFlzUTBGQlF5eERRVUZETzAxQlEwZ3NTVUZCU1N3NFFrRkJPRUlzZDBKQlFVRTdVVUZEYUVNc2EwSkJRV3RDTEVWQlFVVXNXVUZCV1R0VlFVTTVRaXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRE0wTTdVVUZEUkN4UlFVRlJMRVZCUVVVc1dVRkJXVHRWUVVOd1FpeFZRVUZWTEVWQlFVVXNRMEZCUXp0VFFVTmtPMUZCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VlVGRGJFSTdXVUZEUlN4dlFrRkJReXhYUVVGWExFVkJRVUVzUTBGQlFTeERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGVkxFTkJRVUVzUlVGQlFUdGpRVU51UXl4TlFVRlBPMWxCUTBrc1EwRkJRU3hGUVVGRk8xTkJRMjVDTzA5QlEwWXNRMEZCUXl4RFFVRkRPMDFCUTBnc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRanRSUVVOeVF5eHZRa0ZCUXl4UlFVRlJMRVZCUVVFc1NVRkJSU3hEUVVGQk8wRkJRMjVDTEU5QlFVOHNRMEZCUXp0QlFVTlNPenROUVVWTkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUTNCQ0xFbEJRVWtzUlVGQlJTeE5RVUZOTzBGQlEzQkNMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJWWXNUVUZCVFN4WFFVRlhMRU5CUVVNc1dVRkJXVHRCUVVNNVFqczdVVUZGVVN4VlFVRlZMRU5CUVVNc1dVRkJXVHRWUVVOeVFpeE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNRMEZCUXp0VlFVTjBReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEJRVU5xUWl4VFFVRlRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJXUXNUMEZCVHl4RFFVRkRMRU5CUVVNN08wRkJSVlFzUzBGQlN5eERRVUZETEVOQlFVTTdPMEZCUlZBc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJVd3NSVUZCUlN4UlFVRlJMRU5CUVVNc1pVRkJaU3hGUVVGRkxGbEJRVms3TzBGQlJYaERMRWxCUVVrc1JVRkJSU3hEUVVGRExIZEVRVUYzUkN4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRk96dE5RVVV6UlN4SlFVRkpMQ3RDUVVFclFpeDVRa0ZCUVR0UlFVTnFReXhOUVVGTkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTNSQ0xFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZITEVOQlFVVXNRMEZCUVR0VFFVTjRRenRQUVVOR0xFTkJRVU1zUTBGQlF6dE5RVU5JTEVsQlFVa3NPRUpCUVRoQ0xIZENRVUZCTzFGQlEyaERMR1ZCUVdVc1JVRkJSU3haUVVGWk8xVkJRek5DTEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRGVrSTdVVUZEUkN4VlFVRlZMRVZCUVVVc1dVRkJXVHRWUVVOMFFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMWxCUTFvc1VVRkJVU3hGUVVGRkxFdEJRVXM3VjBGRGFFSXNRMEZCUXl4RFFVRkRPMU5CUTBvN1VVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFZRVU5zUWp0WlFVTkZMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlF5eERRVUZETEZGQlFVRXNSVUZCVVN4RFFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlZTeERRVUZCTEVWQlFVRTdZMEZEYmtVc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhMUVVGTExFTkJRVVVzUTBGQlFUdFpRVU5ZTEVOQlFVRXNSVUZCUlR0VFFVTnVRanRQUVVOR0xFTkJRVU1zUTBGQlF6dE5RVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdVVUZEY2tNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVsQlFVVXNRMEZCUVR0QlFVTnVRaXhQUVVGUExFTkJRVU03TzAxQlJVWXNTVUZCU1N4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRExEWkNRVUUyUWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dE5RVU55UlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wMUJRekZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenROUVVOc1FpeFZRVUZWTEVOQlFVTXNXVUZCV1R0UlFVTnlRaXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF6TkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8wRkJRMllzVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWYUxFdEJRVXNzUTBGQlF5eERRVUZET3p0QlFVVlFMRWxCUVVrc1JVRkJSU3hEUVVGRExHOUdRVUZ2Uml4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRk96dE5RVVYyUnl4SlFVRkpMQ3RDUVVFclFpeDVRa0ZCUVR0UlFVTnFReXhOUVVGTkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTNSQ0xFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZITEVOQlFVVXNRMEZCUVN4RFFVRkRPMU5CUTNwRE8wOUJRMFlzUTBGQlF5eERRVUZETzAxQlEwZ3NTVUZCU1N3NFFrRkJPRUlzZDBKQlFVRTdVVUZEYUVNc1pVRkJaU3hGUVVGRkxGbEJRVms3VlVGRE0wSXNUMEZCVHp0WlFVTk1MR2RDUVVGblFpeEZRVUZGTzJOQlEyaENMRWRCUVVjc1JVRkJSU3hMUVVGTE8yRkJRMWc3VjBGRFJpeERRVUZETzFOQlEwZzdVVUZEUkN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hOUVVGTkxFVkJRVVU3VlVGRE1VSXNTVUZCU1N4TlFVRk5MRU5CUVVNc1IwRkJSeXhGUVVGRk8xbEJRMlFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0alFVTmFMR2RDUVVGblFpeEZRVUZGTEVWQlFVVTdZVUZEY2tJc1EwRkJReXhEUVVGRE8xZEJRMG9zVFVGQlRUdFpRVU5NTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1kwRkRXaXhuUWtGQlowSXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hMUVVGTExFTkJRVU03WVVGREwwSXNRMEZCUXl4RFFVRkRPMWRCUTBvN1UwRkRSanRSUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFWQlEyeENPMWxCUTBVc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZETEVOQlFVTXNaMEpCUVVFc1JVRkJaMElzUTBGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2RDUVVGclFpeERRVUZCTEVWQlFVRTdZMEZEYmtZc2IwSkJRVU1zVTBGQlV5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SlFVRkJMRVZCUVVrc1EwRkJReXhMUVVGTExFTkJRVVVzUTBGQlFUdFpRVU5ZTEVOQlFVRXNSVUZCUlR0VFFVTnVRanRQUVVOR0xFTkJRVU1zUTBGQlF6dE5RVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdVVUZEY2tNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVsQlFVVXNRMEZCUVR0QlFVTnVRaXhQUVVGUExFTkJRVU03UVVGRFVqczdUVUZGVFN4VlFVRlZMRU5CUVVNc1dVRkJXVHRSUVVOeVFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRM0pGTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRjRVFzVVVGQlVTeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRMjVET3p0UlFVVlJMRlZCUVZVc1EwRkJReXhaUVVGWk8xVkJRM0pDTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1ZVRkRNME1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVMEZEVWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMlFzVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWYUxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlExQTdPMEZCUlVFc1NVRkJTU3hGUVVGRkxFTkJRVU1zT0VSQlFUaEVMRVZCUVVVc1dVRkJXVHM3VVVGRk0wVXNTVUZCU1N4UlFVRlJMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRM0pDTEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzFWQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdWVUZEZEVJc1RVRkJUU3hGUVVGRkxGbEJRVms3V1VGRGJFSXNUMEZCVHl4dlFrRkJRU3hQUVVGTkxFVkJRVUVzUTBGQlFTeERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVWNzUTBGQlJTeERRVUZCTEVOQlFVTTdWMEZEZWtNN1UwRkRSaXhEUVVGRExFTkJRVU03VVVGRFNDeEpRVUZKTERoQ1FVRTRRaXgzUWtGQlFUdFZRVU5vUXl4aFFVRmhMRVZCUVVVc1dVRkJXVHRaUVVONlFpeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRPMWRCUTJwQ08xVkJRMFFzVFVGQlRTeEZRVUZGTEZsQlFWazdXVUZEYkVJN1kwRkRSU3h2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMR0ZCUVVFc1JVRkJZU3hEUVVGRkxFbEJRVWtzUTBGQlF5eGhRVUZsTEVOQlFVRXNSVUZCUVR0blFrRkRPVU1zYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4WFFVRkJMRVZCUVZjc1EwRkJReXhUUVVGQkxFVkJRVk1zUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4aFFVRmhMRU5CUVVVc1EwRkJRVHRqUVVOeVJDeERRVUZCTEVWQlFVVTdWMEZEYmtJN1UwRkRSaXhEUVVGRExFTkJRVU03VVVGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzFWQlEzSkRMRzlDUVVGRExGRkJRVkVzUlVGQlFTeEpRVUZGTEVOQlFVRTdRVUZEY2tJc1UwRkJVeXhEUVVGRE96dFJRVVZHTEVsQlFVa3NVVUZCVVN4SFFVRkhMRk5CUVZNc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRGRrVXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRla1FzVVVGQlVTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZET3p0QlFVVndReXhMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZGVUN4SlFVRkpMRVZCUVVVc1EwRkJReXh0UlVGQmJVVXNSVUZCUlN4WlFVRlpPenRSUVVWb1JpeEpRVUZKTEZGQlFWRXNSMEZCUnl4TFFVRkxMRU5CUVVNN1VVRkRja0lzU1VGQlNTd3JRa0ZCSzBJc2VVSkJRVUU3VlVGRGFrTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF6dFZRVU4wUWl4TlFVRk5MRVZCUVVVc1dVRkJXVHRaUVVOc1FpeFBRVUZQTEc5Q1FVRkJMRTlCUVUwc1JVRkJRU3hEUVVGQkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSeXhEUVVGRkxFTkJRVUVzUTBGQlF6dFhRVU42UXp0VFFVTkdMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzT0VKQlFUaENMSGRDUVVGQk8xVkJRMmhETEdWQlFXVXNSVUZCUlN4WlFVRlpPMWxCUXpOQ0xGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdWMEZEYWtJN1ZVRkRSQ3hOUVVGTkxFVkJRVVVzV1VGQldUdFpRVU5zUWp0alFVTkZMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNaVUZCUVN4RlFVRmxMRU5CUVVVc1NVRkJTU3hEUVVGRExHVkJRV2xDTEVOQlFVRXNSVUZCUVR0blFrRkRiRVFzYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4WFFVRkJMRVZCUVZjc1EwRkJReXhUUVVGQkxFVkJRVk1zUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVVc1EwRkJRVHRqUVVOcVJDeERRVUZCTEVWQlFVVTdWMEZEYmtJN1UwRkRSaXhEUVVGRExFTkJRVU03VVVGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzFWQlEzSkRMRzlDUVVGRExGRkJRVkVzUlVGQlFTeEpRVUZGTEVOQlFVRTdRVUZEY2tJc1UwRkJVeXhEUVVGRE96dFJRVVZHTEVsQlFVa3NVVUZCVVN4SFFVRkhMRk5CUVZNc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRGRrVXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRla1FzVVVGQlVTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZET3p0QlFVVndReXhMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZGVUN4SFFVRkhMRU5CUVVNc1EwRkJRenM3UlVGRlNDeFJRVUZSTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzVjBGQlZ6dEpRVU55UXl4SlFVRkpMRkZCUVZFc1EwRkJRenRKUVVOaUxFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNaVUZCWlN4RlFVRkZMRmRCUVZjN1VVRkRNVUlzVDBGQlR6dFZRVU5NTEVsQlFVa3NSVUZCUlN4TlFVRk5PMU5CUTJJc1EwRkJRenRQUVVOSU8wMUJRMFFzVjBGQlZ5eEZRVUZGTEZkQlFWYzdVVUZEZEVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTEZWQlFWVXNSMEZCUnl4VFFVRlRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dFBRVU12UlR0TlFVTkVMRTFCUVUwc1JVRkJSU3haUVVGWk8xRkJRMnhDTEU5QlFVOHNiMEpCUVVFc1QwRkJUU3hGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZCTEVOQlFVVXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUVN4RFFVRkZMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkZMRU5CUVVVc1EwRkJRVHRQUVVOcVJ6dEJRVU5RTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRKUVVWSUxFbEJRVWtzT0VKQlFUaENMSGRDUVVGQk8wMUJRMmhETEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q08xVkJRMFVzYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeERRVUZETEZOQlFWTXNTVUZCU1N4RlFVRkZMRVZCUVVVc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUnl4RFFVRkJMRVZCUVVFN1dVRkRNMFFzYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkJMRU5CUVVVc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVRXNRMEZCUnl4RFFVRkJMRVZCUVVFN1dVRkRia1VzYjBKQlFVRXNVVUZCVHl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eFJRVUZUTEVOQlFVRXNSVUZCUVN4TlFVRmhMRU5CUVVFN1ZVRkRka0lzUTBGQlFUdFZRVU5rTzA5QlEwZzdRVUZEVUN4TFFVRkxMRU5CUVVNc1EwRkJRenM3U1VGRlNDeFZRVUZWTEVOQlFVTXNWMEZCVnp0TlFVTndRaXhSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRCUVVNdlF5eExRVUZMTEVOQlFVTXNRMEZCUXpzN1NVRkZTQ3hGUVVGRkxFTkJRVU1zWjBOQlFXZERMRVZCUVVVc1YwRkJWenROUVVNNVF5eEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNiMEpCUVVNc1VVRkJVU3hGUVVGQkxFTkJRVUVzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUlN4RFFVRkRMRTFCUVU4c1EwRkJSU3hEUVVGQkxFTkJRVU1zUTBGQlF6dE5RVU55UlN4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenROUVVNM1F5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU14UkN4TFFVRkxMRU5CUVVNc1EwRkJRenM3U1VGRlNDeEZRVUZGTEVOQlFVTXNkVU5CUVhWRExFVkJRVVVzVjBGQlZ6dE5RVU55UkN4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc2IwSkJRVU1zVVVGQlVTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hEUVVGRExFdEJRVTBzUTBGQlJTeERRVUZCTEVOQlFVTXNRMEZCUXp0TlFVTndSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VFVGRE9VSXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1RVRkROME1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGNrUXNRMEZCUXl4RFFVRkRPMGRCUTBvc1EwRkJReXhEUVVGRE8wTkJRMG9zUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWRtRnlJRVp2Y20xemVTQTlJSEpsY1hWcGNtVW9KeTR2TGk0dmMzSmpMMjFoYVc0dWFuTW5LVHRjYmx4dVpHVnpZM0pwWW1Vb0owWnZjbTF6ZVNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQmtaWE5qY21saVpTZ25VMlYwZEdsdVp5QjFjQ0JoSUdadmNtMG5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lISmxibVJsY2lCaElHWnZjbTBnYVc1MGJ5QjBhR1VnWkc5amRXMWxiblFuTENCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvSUR4R2IzSnRjM2t1Um05eWJUNDhMMFp2Y20xemVTNUdiM0p0UGlrN1hHNGdJQ0FnSUNCbGVIQmxZM1FvWm05eWJTNW5aWFJFVDAxT2IyUmxLQ2t1ZEdGblRtRnRaU2t1ZEc5RmNYVmhiQ2duUms5U1RTY3BPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdhWFFvSjNOb2IzVnNaQ0J6WlhRZ1lTQmpiR0Z6Y3lCdVlXMWxJR2xtSUhCaGMzTmxaQ2NzSUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2dnUEVadmNtMXplUzVHYjNKdElHTnNZWE56VG1GdFpUMWNJbVp2YjF3aVBqd3ZSbTl5YlhONUxrWnZjbTArS1R0Y2JpQWdJQ0FnSUdWNGNHVmpkQ2htYjNKdExtZGxkRVJQVFU1dlpHVW9LUzVqYkdGemMwNWhiV1VwTG5SdlJYRjFZV3dvSjJadmJ5Y3BPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdhWFFvSjNOb2IzVnNaQ0JoYkd4dmR5Qm1iM0lnYm5Wc2JDOTFibVJsWm1sdVpXUWdZMmhwYkdSeVpXNG5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUNBZ1kyaGhibWRsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTVqYUdGdVoyVldZV3gxWlgwdlBseHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJQ0FnZG1GeUlHMXZaR1ZzSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJSFpoY2lCVVpYTjBSbTl5YlNBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdiMjVUZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2htYjNKdFRXOWtaV3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnRiMlJsYkNBOUlHWnZjbTFOYjJSbGJEdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lDQWdJQ0FnSUR4R2IzSnRjM2t1Um05eWJTQnZibE4xWW0xcGREMTdJSFJvYVhNdWIyNVRkV0p0YVhRZ2ZUNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1BHZ3hQbFJsYzNROEwyZ3hQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjdJRzUxYkd3Z2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCN0lIVnVaR1ZtYVc1bFpDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQwbmJtRnRaU2NnZG1Gc2RXVTlleUFuWm05dkp5QjlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCMllYSWdabTl5YlNBOUlGUmxjM1JWZEdsc2N5NXlaVzVrWlhKSmJuUnZSRzlqZFcxbGJuUW9QRlJsYzNSR2IzSnRMejRwTzF4dUlDQWdJQ0FnYzJWMFZHbHRaVzkxZENobWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1SUNBZ0lDQWdJQ0JsZUhCbFkzUW9iVzlrWld3cExuUnZSWEYxWVd3b2UyNWhiV1U2SUNkbWIyOG5mU2s3WEc0Z0lDQWdJQ0FnSUdSdmJtVW9LVHRjYmlBZ0lDQWdJSDBzSURFd0tUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lHbDBLQ2R6YUc5MWJHUWdZV3hzYjNjZ1ptOXlJR2x1Y0hWMGN5QmlaV2x1WnlCaFpHUmxaQ0JrZVc1aGJXbGpZV3hzZVNjc0lHWjFibU4wYVc5dUlDaGtiMjVsS1NCN1hHNWNiaUFnSUNBZ0lIWmhjaUJwYm5CMWRITWdQU0JiWFR0Y2JpQWdJQ0FnSUhaaGNpQm1iM0pqWlZWd1pHRjBaU0E5SUc1MWJHdzdYRzRnSUNBZ0lDQjJZWElnYlc5a1pXd2dQU0J1ZFd4c08xeHVJQ0FnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUNBZ2JXbDRhVzV6T2lCYlJtOXliWE41TGsxcGVHbHVYU3hjYmlBZ0lDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlEeGthWFl2UGx4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIWmhjaUJVWlhOMFJtOXliU0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUNBZ1kyOXRjRzl1Wlc1MFYybHNiRTF2ZFc1ME9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptOXlZMlZWY0dSaGRHVWdQU0IwYUdsekxtWnZjbU5sVlhCa1lYUmxMbUpwYm1Rb2RHaHBjeWs3WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lHOXVVM1ZpYldsME9pQm1kVzVqZEdsdmJpQW9abTl5YlUxdlpHVnNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JXOWtaV3dnUFNCbWIzSnRUVzlrWld3N1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb0lGeHVJQ0FnSUNBZ0lDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElHOXVVM1ZpYldsMFBYdDBhR2x6TG05dVUzVmliV2wwZlQ0Z1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUh0cGJuQjFkSE45WEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0NCY2JpQWdJQ0FnSUNBZ1BGUmxjM1JHYjNKdEx6NGdYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0F2THlCWFlXbDBJR0psWm05eVpTQmhaR1JwYm1jZ2RHaGxJR2x1Y0hWMFhHNGdJQ0FnSUNCelpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJQ0FnSUNCcGJuQjFkSE11Y0hWemFDaFVaWE4wU1c1d2RYUW9lMXh1SUNBZ0lDQWdJQ0FnSUc1aGJXVTZJQ2QwWlhOMEoxeHVJQ0FnSUNBZ0lDQjlLU2s3WEc1Y2JpQWdJQ0FnSUNBZ1ptOXlZMlZWY0dSaGRHVW9ablZ1WTNScGIyNGdLQ2tnZTF4dVhHNGdJQ0FnSUNBZ0lDQWdMeThnVjJGcGRDQm1iM0lnYm1WNGRDQmxkbVZ1ZENCc2IyOXdMQ0JoY3lCMGFHRjBJR1J2WlhNZ2RHaGxJR1p2Y20xY2JpQWdJQ0FnSUNBZ0lDQnpaWFJVYVcxbGIzVjBLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYaHdaV04wS0cxdlpHVnNMblJsYzNRcExuUnZRbVZFWldacGJtVmtLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtiMjVsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdmU3dnTUNrN1hHNWNiaUFnSUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUgwc0lERXdLVHRjYmx4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnYVhRb0ozTm9iM1ZzWkNCaGJHeHZkeUJrZVc1aGJXbGpZV3hzZVNCaFpHUmxaQ0JwYm5CMWRITWdkRzhnZFhCa1lYUmxJSFJvWlNCbWIzSnRMVzF2WkdWc0p5d2dablZ1WTNScGIyNGdLR1J2Ym1VcElIdGNibHh1SUNBZ0lDQWdkbUZ5SUdsdWNIVjBjeUE5SUZ0ZE8xeHVJQ0FnSUNBZ2RtRnlJR1p2Y21ObFZYQmtZWFJsSUQwZ2JuVnNiRHRjYmlBZ0lDQWdJSFpoY2lCdGIyUmxiQ0E5SUc1MWJHdzdYRzRnSUNBZ0lDQjJZWElnVkdWemRFbHVjSFYwSUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ0lDQnRhWGhwYm5NNklGdEdiM0p0YzNrdVRXbDRhVzVkTEZ4dUlDQWdJQ0FnSUNCamFHRnVaMlZXWVd4MVpUb2dablZ1WTNScGIyNGdLR1YyWlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaGxkbVZ1ZEM1MFlYSm5aWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMbU5vWVc1blpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkdiM0p0SUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ0lDQmpiMjF3YjI1bGJuUlhhV3hzVFc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQm1iM0pqWlZWd1pHRjBaU0E5SUhSb2FYTXVabTl5WTJWVmNHUmhkR1V1WW1sdVpDaDBhR2x6S1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdiMjVUZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2htYjNKdFRXOWtaV3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnRiMlJsYkNBOUlHWnZjbTFOYjJSbGJEdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZ2dYRzRnSUNBZ0lDQWdJQ0FnSUNBOFJtOXliWE41TGtadmNtMGdiMjVUZFdKdGFYUTllM1JvYVhNdWIyNVRkV0p0YVhSOVBpQmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UybHVjSFYwYzMxY2JpQWdJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb0lGeHVJQ0FnSUNBZ0lDQThWR1Z6ZEVadmNtMHZQaUJjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUM4dklGZGhhWFFnWW1WbWIzSmxJR0ZrWkdsdVp5QjBhR1VnYVc1d2RYUmNiaUFnSUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dVhHNGdJQ0FnSUNBZ0lHbHVjSFYwY3k1d2RYTm9LRlJsYzNSSmJuQjFkQ2g3WEc0Z0lDQWdJQ0FnSUNBZ2JtRnRaVG9nSjNSbGMzUW5YRzRnSUNBZ0lDQWdJSDBwS1R0Y2JseHVJQ0FnSUNBZ0lDQm1iM0pqWlZWd1pHRjBaU2htZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNBZ0lDQWdJQ0F2THlCWFlXbDBJR1p2Y2lCdVpYaDBJR1YyWlc1MElHeHZiM0FzSUdGeklIUm9ZWFFnWkc5bGN5QjBhR1VnWm05eWJWeHVJQ0FnSUNBZ0lDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG1Ob1lXNW5aU2hVWlhOMFZYUnBiSE11Wm1sdVpGSmxibVJsY21Wa1JFOU5RMjl0Y0c5dVpXNTBWMmwwYUZSaFp5aG1iM0p0TENBblNVNVFWVlFuS1N3Z2UzUmhjbWRsZERvZ2UzWmhiSFZsT2lBblptOXZKMzE5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYaHdaV04wS0cxdlpHVnNMblJsYzNRcExuUnZRbVVvSjJadmJ5Y3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHOXVaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lIMHNJREFwTzF4dVhHNGdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0I5TENBd0tUdGNibHh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdhWFFvSjNOb2IzVnNaQ0JoYkd4dmR5QmhJR1I1Ym1GdGFXTmhiR3g1SUhWd1pHRjBaV1FnYVc1d2RYUWdkRzhnZFhCa1lYUmxJSFJvWlNCbWIzSnRMVzF2WkdWc0p5d2dablZ1WTNScGIyNGdLR1J2Ym1VcElIdGNibHh1SUNBZ0lDQWdkbUZ5SUdadmNtTmxWWEJrWVhSbElEMGdiblZzYkR0Y2JpQWdJQ0FnSUhaaGNpQnRiMlJsYkNBOUlHNTFiR3c3WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQmphR0Z1WjJWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG1Ob1lXNW5aVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCMllYSWdhVzV3ZFhRN1hHNGdJQ0FnSUNCMllYSWdWR1Z6ZEVadmNtMGdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0FnSUdOdmJYQnZibVZ1ZEZkcGJHeE5iM1Z1ZERvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdadmNtTmxWWEJrWVhSbElEMGdkR2hwY3k1bWIzSmpaVlZ3WkdGMFpTNWlhVzVrS0hSb2FYTXBPMXh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCdmJsTjFZbTFwZERvZ1puVnVZM1JwYjI0Z0tHWnZjbTFOYjJSbGJDa2dlMXh1SUNBZ0lDQWdJQ0FnSUcxdlpHVnNJRDBnWm05eWJVMXZaR1ZzTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCcGJuQjFkQ0E5SUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDBuZEdWemRDY2dkbUZzZFdVOWV5QjBhR2x6TG5CeWIzQnpMblpoYkhWbElIMGdMejQ3WEc1Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElHOXVVM1ZpYldsMFBYdDBhR2x6TG05dVUzVmliV2wwZlQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTJsdWNIVjBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOUdiM0p0YzNrdVJtOXliVDRwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2c4VkdWemRFWnZjbTBnZG1Gc2RXVTlKMlp2YnljdlBpazdYRzVjYmlBZ0lDQWdJQzh2SUZkaGFYUWdZbVZtYjNKbElHTm9ZVzVuYVc1bklIUm9aU0JwYm5CMWRGeHVJQ0FnSUNBZ2MyVjBWR2x0Wlc5MWRDaG1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdadmNtMHVjMlYwVUhKdmNITW9lM1poYkhWbE9pQW5ZbUZ5SjMwcE8xeHVYRzRnSUNBZ0lDQWdJR1p2Y21ObFZYQmtZWFJsS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCWFlXbDBJR1p2Y2lCdVpYaDBJR1YyWlc1MElHeHZiM0FzSUdGeklIUm9ZWFFnWkc5bGN5QjBhR1VnWm05eWJWeHVJQ0FnSUNBZ0lDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG5OMVltMXBkQ2htYjNKdExtZGxkRVJQVFU1dlpHVW9LU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxlSEJsWTNRb2JXOWtaV3d1ZEdWemRDa3VkRzlDWlNnblltRnlKeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtiMjVsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdmU3dnTUNrN1hHNWNiaUFnSUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUgwc0lERXdLVHRjYmx4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnWkdWelkzSnBZbVVvSjNaaGJHbGtZWFJwYjI1ekp5d2dablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0IyWVhJZ1EyaGxZMnRXWVd4cFpDd2diMjVUZFdKdGFYUXNJRTkwYUdWeVEyaGxZMnRXWVd4cFpEdGNiaUFnSUNBZ0lIWmhjaUJwYzFaaGJHbGtPMXh1WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQmphR0Z1WjJWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYc2dkR2hwY3k1blpYUldZV3gxWlNncElIMGdiMjVEYUdGdVoyVTlleUIwYUdsekxtTm9ZVzVuWlZaaGJIVmxJSDBnTHo1Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSFpoY2lCVVpYTjBSbTl5YlNBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdaMlYwUkdWbVlYVnNkRkJ5YjNCek9pQm1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzV3ZFhSek9pQmJYU3hjYmlBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjJZWElnWW5WcGJIUkpibkIxZEhNZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnSUNCMllYSWdhVzV3ZFhSeklEMGdkR2hwY3k1d2NtOXdjeTVwYm5CMWRITTdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaDJZWElnYVQwd095QnBJRHdnYVc1d2RYUnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCcGJuQjFkSE5iYVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpZFdsc2RFbHVjSFYwY3k1d2RYTm9LRHhVWlhOMFNXNXdkWFFnZXlBdUxpNXBibkIxZENCOUlHdGxlVDE3SUdsdWNIVjBMbTVoYldVZ2ZTQXZQaWs3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSFpoY2lCZmRHaHBjeUE5SUhSb2FYTTdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRHhHYjNKdGMza3VSbTl5YlZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVUZFdKdGFYUWdJRDBnZXlCbWRXNWpkR2x2YmloaGNtY3hLU0I3SUc5dVUzVmliV2wwS0dGeVp6RXBPeUI5SUgxY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1Vm1Gc2FXUWdJQ0E5SUhzZ1puVnVZM1JwYjI0b0tTQjdJR2x6Vm1Gc2FXUWdQU0IwY25WbE95QjlJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVTVzUyWVd4cFpDQTlJSHNnWm5WdVkzUnBiMjRvS1NCN0lHbHpWbUZzYVdRZ1BTQm1ZV3h6WlRzZ2ZTQjlJRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lIc2dZblZwYkhSSmJuQjFkSE1nZlZ4dUlDQWdJQ0FnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdZbVZtYjNKbFJXRmphQ2htZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUNBZ2FYTldZV3hwWkNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUVOb1pXTnJWbUZzYVdRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTZ25RMmhsWTJ0V1lXeHBaQ2NwTzF4dUlDQWdJQ0FnSUNCR2IzSnRjM2t1WVdSa1ZtRnNhV1JoZEdsdmJsSjFiR1VvSjBOb1pXTnJWbUZzYVdRbkxDQkRhR1ZqYTFaaGJHbGtLVHRjYmlBZ0lDQWdJQ0FnVDNSb1pYSkRhR1ZqYTFaaGJHbGtJRDBnYW1GemJXbHVaUzVqY21WaGRHVlRjSGtvSjBOb1pXTnJWbUZzYVdRbktUdGNiaUFnSUNBZ0lDQWdSbTl5YlhONUxtRmtaRlpoYkdsa1lYUnBiMjVTZFd4bEtDZFBkR2hsY2tOb1pXTnJWbUZzYVdRbkxDQlBkR2hsY2tOb1pXTnJWbUZzYVdRcE8xeHVJQ0FnSUNBZ0lDQnZibE4xWW0xcGRDQTlJR3BoYzIxcGJtVXVZM0psWVhSbFUzQjVLQ2R2YmxOMVltMXBkQ2NwTzF4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lHbDBLQ2R6YUc5MWJHUWdjblZ1SUhkb1pXNGdkR2hsSUdsdWNIVjBJR05vWVc1blpYTW5MQ0JtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRHhVWlhOMFJtOXliU0JwYm5CMWRITTlleUJiZTI1aGJXVTZJQ2R2Ym1VbkxDQjJZV3hwWkdGMGFXOXVjem9nSjBOb1pXTnJWbUZzYVdRbkxDQjJZV3gxWlRvZ0oyWnZieWQ5WFNCOUx6NHBPMXh1SUNBZ0lDQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtSRTlOUTI5dGNHOXVaVzUwVjJsMGFGUmhaeWhtYjNKdExDQW5hVzV3ZFhRbktUdGNiaUFnSUNBZ0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaHBibkIxZEM1blpYUkVUMDFPYjJSbEtDa3NJSHQwWVhKblpYUTZJSHQyWVd4MVpUb2dKMkpoY2lkOWZTazdYRzRnSUNBZ0lDQWdJR1Y0Y0dWamRDaERhR1ZqYTFaaGJHbGtLUzUwYjBoaGRtVkNaV1Z1UTJGc2JHVmtWMmwwYUNnblltRnlKeWs3WEc0Z0lDQWdJQ0FnSUdWNGNHVmpkQ2hQZEdobGNrTm9aV05yVm1Gc2FXUXBMbTV2ZEM1MGIwaGhkbVZDWldWdVEyRnNiR1ZrS0NrN1hHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdhWFFvSjNOb2IzVnNaQ0JoYkd4dmR5QjBhR1VnZG1Gc2FXUmhkR2x2YmlCMGJ5QmlaU0JqYUdGdVoyVmtKeXdnWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2c4VkdWemRFWnZjbTBnYVc1d2RYUnpQWHNnVzN0dVlXMWxPaUFuYjI1bEp5d2dkbUZzYVdSaGRHbHZibk02SUNkRGFHVmphMVpoYkdsa0p5d2dkbUZzZFdVNklDZG1iMjhuZlYwZ2ZTOCtLVHRjYmlBZ0lDQWdJQ0FnWm05eWJTNXpaWFJRY205d2N5aDdhVzV3ZFhSek9pQmJlMjVoYldVNklDZHZibVVuTENCMllXeHBaR0YwYVc5dWN6b2dKMDkwYUdWeVEyaGxZMnRXWVd4cFpDY3NJSFpoYkhWbE9pQW5abTl2SjMxZElIMHBPMXh1SUNBZ0lDQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtSRTlOUTI5dGNHOXVaVzUwVjJsMGFGUmhaeWhtYjNKdExDQW5hVzV3ZFhRbktUdGNiaUFnSUNBZ0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaHBibkIxZEM1blpYUkVUMDFPYjJSbEtDa3NJSHQwWVhKblpYUTZJSHQyWVd4MVpUb2dKMkpoY2lkOWZTazdYRzRnSUNBZ0lDQWdJR1Y0Y0dWamRDaFBkR2hsY2tOb1pXTnJWbUZzYVdRcExuUnZTR0YyWlVKbFpXNURZV3hzWldSWGFYUm9LQ2RpWVhJbktUdGNiaUFnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0JwZENnbmMyaHZkV3hrSUdsdWRtRnNhV1JoZEdVZ1lTQm1iM0p0SUdsbUlHUjVibUZ0YVdOaGJHeDVJR2x1YzJWeWRHVmtJR2x1Y0hWMElHbHpJR2x1ZG1Gc2FXUW5MQ0JtZFc1amRHbHZiaWhrYjI1bEtTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENnOFZHVnpkRVp2Y20wZ2FXNXdkWFJ6UFhzZ1czdHVZVzFsT2lBbmIyNWxKeXdnZG1Gc2FXUmhkR2x2Ym5NNklDZHBjMFZ0WVdsc0p5d2dkbUZzZFdVNklDZG1iMjlBWW1GeUxtTnZiU2Q5WFNCOUx6NHBPMXh1SUNBZ0lDQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VkRzlGY1hWaGJDaDBjblZsS1R0Y2JpQWdJQ0FnSUNBZ1ptOXliUzV6WlhSUWNtOXdjeWg3YVc1d2RYUnpPaUJiWEc0Z0lDQWdJQ0FnSUNBZ2UyNWhiV1U2SUNkdmJtVW5MQ0IyWVd4cFpHRjBhVzl1Y3pvZ0oybHpSVzFoYVd3bkxDQjJZV3gxWlRvZ0oyWnZiMEJpWVhJdVkyOXRKMzBzWEc0Z0lDQWdJQ0FnSUNBZ2UyNWhiV1U2SUNkMGQyOG5MQ0IyWVd4cFpHRjBhVzl1Y3pvZ0oybHpSVzFoYVd3bkxDQjJZV3gxWlRvZ0oyWnZiMEJpWVhJbmZTeGNiaUFnSUNBZ0lDQWdYWDBzSUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VkRzlGY1hWaGJDaG1ZV3h6WlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYjI1bEtDazdYRzRnSUNBZ0lDQWdJQ0FnZlN3Z01DazdYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lHbDBLQ2R6YUc5MWJHUWdkbUZzYVdSaGRHVWdZU0JtYjNKdElIZG9aVzRnY21WdGIzWnBibWNnWVc0Z2FXNTJZV3hwWkNCcGJuQjFkQ2NzSUdaMWJtTjBhVzl1S0dSdmJtVXBJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtEeFVaWE4wUm05eWJTQnBibkIxZEhNOWV5QmJYRzRnSUNBZ0lDQWdJQ0FnZTI1aGJXVTZJQ2R2Ym1VbkxDQjJZV3hwWkdGMGFXOXVjem9nSjJselJXMWhhV3duTENCMllXeDFaVG9nSjJadmIwQmlZWEl1WTI5dEozMHNYRzRnSUNBZ0lDQWdJQ0FnZTI1aGJXVTZJQ2QwZDI4bkxDQjJZV3hwWkdGMGFXOXVjem9nSjJselJXMWhhV3duTENCMllXeDFaVG9nSjJadmIwQmlZWEluZlN4Y2JpQWdJQ0FnSUNBZ1hTQjlJQzgrS1R0Y2JpQWdJQ0FnSUNBZ1pYaHdaV04wS0dselZtRnNhV1FwTG5SdlJYRjFZV3dvWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0JtYjNKdExuTmxkRkJ5YjNCektIdHBibkIxZEhNNklGdDdibUZ0WlRvZ0oyOXVaU2NzSUhaaGJHbGtZWFJwYjI1ek9pQW5hWE5GYldGcGJDY3NJSFpoYkhWbE9pQW5abTl2UUdKaGNpNWpiMjBuZlYxOUxDQm1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYaHdaV04wS0dselZtRnNhV1FwTG5SdlJYRjFZV3dvZEhKMVpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCa2IyNWxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZTd2dNQ2s3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJR2wwS0NkeWRXNXpJRzExYkhScGNHeGxJSFpoYkdsa1lYUnBiMjV6Snl3Z1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENnOFZHVnpkRVp2Y20wZ2FXNXdkWFJ6UFhzZ1czdHVZVzFsT2lBbmIyNWxKeXdnZG1Gc2FXUmhkR2x2Ym5NNklDZERhR1ZqYTFaaGJHbGtMRTkwYUdWeVEyaGxZMnRXWVd4cFpDY3NJSFpoYkhWbE9pQW5abTl2SjMxZElIMHZQaWs3WEc0Z0lDQWdJQ0FnSUhaaGNpQnBibkIxZENBOUlGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JFVDAxRGIyMXdiMjVsYm5SWGFYUm9WR0ZuS0dadmNtMHNJQ2RwYm5CMWRDY3BPMXh1SUNBZ0lDQWdJQ0JVWlhOMFZYUnBiSE11VTJsdGRXeGhkR1V1WTJoaGJtZGxLR2x1Y0hWMExtZGxkRVJQVFU1dlpHVW9LU3dnZTNSaGNtZGxkRG9nZTNaaGJIVmxPaUFuWW1GeUozMTlLVHRjYmlBZ0lDQWdJQ0FnWlhod1pXTjBLRU5vWldOclZtRnNhV1FwTG5SdlNHRjJaVUpsWlc1RFlXeHNaV1JYYVhSb0tDZGlZWEluS1R0Y2JpQWdJQ0FnSUNBZ1pYaHdaV04wS0U5MGFHVnlRMmhsWTJ0V1lXeHBaQ2t1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaRmRwZEdnb0oySmhjaWNwTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lHNXZkQ0IwY21sbloyVnlJRzl1UTJoaGJtZGxJSGRvWlc0Z1ptOXliU0JwY3lCdGIzVnVkR1ZrSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdkbUZ5SUdoaGMwTm9ZVzVuWldRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTZ25iMjVEYUdGdVoyVW5LVHRjYmlBZ0lDQWdJSFpoY2lCVVpYTjBSbTl5YlNBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQm9ZWE5EYUdGdVoyVmtLQ2s3WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUE4Um05eWJYTjVMa1p2Y20wZ2IyNURhR0Z1WjJVOWUzUm9hWE11YjI1RGFHRnVaMlY5UGp3dlJtOXliWE41TGtadmNtMCtPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDZzhWR1Z6ZEVadmNtMHZQaWs3WEc0Z0lDQWdJQ0JsZUhCbFkzUW9hR0Z6UTJoaGJtZGxaQ2t1Ym05MExuUnZTR0YyWlVKbFpXNURZV3hzWldRb0tUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lHbDBLQ2R6YUc5MWJHUWdkSEpwWjJkbGNpQnZia05vWVc1blpTQjNhR1Z1SUdadmNtMGdaV3hsYldWdWRDQnBjeUJqYUdGdVoyVmtKeXdnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ2RtRnlJR2hoYzBOb1lXNW5aV1FnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNnbmIyNURhR0Z1WjJVbktUdGNiaUFnSUNBZ0lIWmhjaUJOZVVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdJQ0J2YmtOb1lXNW5aVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG05dVEyaGhibWRsZlM4K1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkbUZ5SUZSbGMzUkdiM0p0SUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0FnSUNBZ0lDQnZia05vWVc1blpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHaGhjME5vWVc1blpXUW9LVHRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lEeEdiM0p0YzNrdVJtOXliU0J2YmtOb1lXNW5aVDE3ZEdocGN5NXZia05vWVc1blpYMCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeE5lVWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaTgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtEeFVaWE4wUm05eWJTOCtLVHRjYmlBZ0lDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9WR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVSUFRVTnZiWEJ2Ym1WdWRGZHBkR2hVWVdjb1ptOXliU3dnSjBsT1VGVlVKeWtzSUh0MFlYSm5aWFE2SUh0MllXeDFaVG9nSjJKaGNpZDlmU2s3WEc0Z0lDQWdJQ0JsZUhCbFkzUW9hR0Z6UTJoaGJtZGxaQ2t1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnYVhRb0ozTm9iM1ZzWkNCMGNtbG5aMlZ5SUc5dVEyaGhibWRsSUhkb1pXNGdibVYzSUdsdWNIVjBJR2x6SUdGa1pHVmtJSFJ2SUdadmNtMG5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1SUNBZ0lDQWdkbUZ5SUdoaGMwTm9ZVzVuWldRZ1BTQnFZWE50YVc1bExtTnlaV0YwWlZOd2VTZ25iMjVEYUdGdVoyVW5LVHRjYmlBZ0lDQWdJSFpoY2lCcGJuQjFkSE1nUFNCYlhUdGNiaUFnSUNBZ0lIWmhjaUJtYjNKalpWVndaR0YwWlNBOUlHNTFiR3c3WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQmphR0Z1WjJWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSV1lXeDFaU2hsZG1WdWRDNTBZWEpuWlhRdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG1Ob1lXNW5aVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZG1GeUlGUmxjM1JHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0JqYjIxd2IyNWxiblJYYVd4c1RXOTFiblE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0JtYjNKalpWVndaR0YwWlNBOUlIUm9hWE11Wm05eVkyVlZjR1JoZEdVdVltbHVaQ2gwYUdsektUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnYjI1RGFHRnVaMlU2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0JvWVhORGFHRnVaMlZrS0NrN1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb0lGeHVJQ0FnSUNBZ0lDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElHOXVRMmhoYm1kbFBYdDBhR2x6TG05dVEyaGhibWRsZlQ0Z1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUh0cGJuQjFkSE45WEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0NCY2JpQWdJQ0FnSUNBZ1BGUmxjM1JHYjNKdEx6NGdYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0F2THlCWFlXbDBJR0psWm05eVpTQmhaR1JwYm1jZ2RHaGxJR2x1Y0hWMFhHNGdJQ0FnSUNCcGJuQjFkSE11Y0hWemFDaFVaWE4wU1c1d2RYUW9lMXh1SUNBZ0lDQWdJQ0J1WVcxbE9pQW5kR1Z6ZENkY2JpQWdJQ0FnSUgwcEtUdGNibHh1SUNBZ0lDQWdabTl5WTJWVmNHUmhkR1VvWm5WdVkzUnBiMjRnS0NrZ2UxeHVYRzRnSUNBZ0lDQWdJQzh2SUZkaGFYUWdabTl5SUc1bGVIUWdaWFpsYm5RZ2JHOXZjQ3dnWVhNZ2RHaGhkQ0JrYjJWeklIUm9aU0JtYjNKdFhHNGdJQ0FnSUNBZ0lITmxkRlJwYldWdmRYUW9ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHVjRjR1ZqZENob1lYTkRhR0Z1WjJWa0tTNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa0tDazdYRzRnSUNBZ0lDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lDQWdJQ0I5TENBd0tUdGNibHh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0I5S1R0Y2JseHVJQ0I5S1R0Y2JseHVJQ0JrWlhOamNtbGlaU2duVlhCa1lYUmxJR0VnWm05eWJTY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUdsMEtDZHphRzkxYkdRZ1lXeHNiM2NnWld4bGJXVnVkSE1nZEc4Z1kyaGxZMnNnYVdZZ2RHaGxJR1p2Y20wZ2FYTWdaR2x6WVdKc1pXUW5MQ0JtZFc1amRHbHZiaUFvWkc5dVpTa2dlMXh1WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUx6NWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0IyWVhJZ1ZHVnpkRVp2Y20wZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQWdJR2RsZEVsdWFYUnBZV3hUZEdGMFpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCN1pHbHpZV0pzWldRNklIUnlkV1Y5TzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQmxibUZpYkdWR2IzSnRPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYVhOaFlteGxaRG9nWm1Gc2MyVmNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNnZ1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wZ2IyNURhR0Z1WjJVOWUzUm9hWE11YjI1RGFHRnVaMlY5SUdScGMyRmliR1ZrUFh0MGFHbHpMbk4wWVhSbExtUnBjMkZpYkdWa2ZUNGdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb0lGeHVJQ0FnSUNBZ0lDQThWR1Z6ZEVadmNtMHZQaUJjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUhaaGNpQnBibkIxZENBOUlGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JEYjIxd2IyNWxiblJYYVhSb1ZIbHdaU2htYjNKdExDQlVaWE4wU1c1d2RYUXBPMXh1SUNBZ0lDQWdaWGh3WldOMEtHbHVjSFYwTG1selJtOXliVVJwYzJGaWJHVmtLQ2twTG5SdlFtVW9kSEoxWlNrN1hHNGdJQ0FnSUNCbWIzSnRMbVZ1WVdKc1pVWnZjbTBvS1R0Y2JpQWdJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0JsZUhCbFkzUW9hVzV3ZFhRdWFYTkdiM0p0UkdsellXSnNaV1FvS1NrdWRHOUNaU2htWVd4elpTazdYRzRnSUNBZ0lDQWdJR1J2Ym1Vb0tUdGNiaUFnSUNBZ0lIMHNJREFwTzF4dVhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcGRDZ25jMmh2ZFd4a0lHSmxJSEJ2YzNOcFlteGxJSFJ2SUhCaGMzTWdaWEp5YjNJZ2MzUmhkR1VnYjJZZ1pXeGxiV1Z1ZEhNZ1lua2dZMmhoYm1kcGJtY2dZVzRnWlhKeWIzSnpJR0YwZEhKcFluVjBaU2NzSUdaMWJtTjBhVzl1SUNoa2IyNWxLU0I3WEc1Y2JpQWdJQ0FnSUhaaGNpQlVaWE4wU1c1d2RYUWdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMHZQanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCMllYSWdWR1Z6ZEVadmNtMGdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0FnSUdkbGRFbHVhWFJwWVd4VGRHRjBaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeHBaR0YwYVc5dVJYSnliM0p6T2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdadmJ6b2dKMkpoY2lkY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0J2YmtOb1lXNW5aVG9nWm5WdVkzUnBiMjRnS0haaGJIVmxjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2gyWVd4MVpYTXVabTl2S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnNhV1JoZEdsdmJrVnljbTl5Y3pvZ2UzMWNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZzYVdSaGRHbHZia1Z5Y205eWN6b2dlMlp2YnpvZ0oySmhjaWQ5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb0lGeHVJQ0FnSUNBZ0lDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElHOXVRMmhoYm1kbFBYdDBhR2x6TG05dVEyaGhibWRsZlNCMllXeHBaR0YwYVc5dVJYSnliM0p6UFh0MGFHbHpMbk4wWVhSbExuWmhiR2xrWVhScGIyNUZjbkp2Y25OOVBpQmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1BGUmxjM1JKYm5CMWRDQnVZVzFsUFZ3aVptOXZYQ0l2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ0cE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSFpoY2lCbWIzSnRJRDBnVkdWemRGVjBhV3h6TG5KbGJtUmxja2x1ZEc5RWIyTjFiV1Z1ZENnZ1hHNGdJQ0FnSUNBZ0lEeFVaWE4wUm05eWJTOCtJRnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnTHk4Z1YyRnBkQ0JtYjNJZ2RYQmtZWFJsWEc0Z0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdsdWNIVjBJRDBnVkdWemRGVjBhV3h6TG1acGJtUlNaVzVrWlhKbFpFTnZiWEJ2Ym1WdWRGZHBkR2hVZVhCbEtHWnZjbTBzSUZSbGMzUkpibkIxZENrN1hHNGdJQ0FnSUNBZ0lHVjRjR1ZqZENocGJuQjFkQzVuWlhSRmNuSnZjazFsYzNOaFoyVW9LU2t1ZEc5Q1pTZ25ZbUZ5SnlrN1hHNGdJQ0FnSUNBZ0lHbHVjSFYwTG5ObGRGWmhiSFZsS0NkbmIzUldZV3gxWlNjcE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUZkaGFYUWdabTl5SUhWd1pHRjBaVnh1SUNBZ0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0JsZUhCbFkzUW9hVzV3ZFhRdVoyVjBSWEp5YjNKTlpYTnpZV2RsS0NrcExuUnZRbVVvYm5Wc2JDazdYRzRnSUNBZ0lDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lDQWdJQ0I5TENBd0tUdGNiaUFnSUNBZ0lIMHNJREFwTzF4dVhHNGdJQ0FnZlNrN1hHNWNibHh1SUNBZ0lHbDBLQ2R6YUc5MWJHUWdkSEpwWjJkbGNpQmhiaUJ2YmxaaGJHbGtVM1ZpYldsMElIZG9aVzRnYzNWaWJXbDBkR2x1WnlCaElIWmhiR2xrSUdadmNtMG5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNBZ0lDQWdkbUZ5SUdselEyRnNiR1ZrSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUhaaGNpQlVaWE4wU1c1d2RYUWdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0FnSUNBZ2JXbDRhVzV6T2lCYlJtOXliWE41TGsxcGVHbHVYU3hjYmlBZ0lDQWdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUE4YVc1d2RYUWdkbUZzZFdVOWUzUm9hWE11WjJWMFZtRnNkV1VvS1gwdlBqdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQjJZWElnVkdWemRFWnZjbTBnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNBZ0lDQWdiMjVXWVd4cFpGTjFZbTFwZERvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FYTkRZV3hzWldRZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdLQ0JjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUc5dVZtRnNhV1JUZFdKdGFYUTllM1JvYVhNdWIyNVdZV3hwWkZOMVltMXBkSDArSUZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSW1admIxd2lJSFpoYkdsa1lYUnBiMjV6UFZ3aWFYTkZiV0ZwYkZ3aUlIWmhiSFZsUFZ3aVptOXZRR0poY2k1amIyMWNJaTgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK0tUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvSUZ4dUlDQWdJQ0FnSUNBZ0lEeFVaWE4wUm05eWJTOCtJRnh1SUNBZ0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNBZ0lIWmhjaUJVWlhOMFJtOXliU0E5SUZSbGMzUlZkR2xzY3k1bWFXNWtVbVZ1WkdWeVpXUkRiMjF3YjI1bGJuUlhhWFJvVkhsd1pTaG1iM0p0TENCVVpYTjBSbTl5YlNrN1hHNGdJQ0FnSUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ZHVnpkRVp2Y20wdVoyVjBSRTlOVG05a1pTZ3BLVHNnSUZ4dUlDQWdJQ0FnSUNCbGVIQmxZM1FvYVhORFlXeHNaV1FwTG5SdlFtVW9kSEoxWlNrN1hHNWNiaUFnSUNCOUtUdGNibHh1SUNBZ0lHbDBLQ2R6YUc5MWJHUWdkSEpwWjJkbGNpQmhiaUJ2YmtsdWRtRnNhV1JUZFdKdGFYUWdkMmhsYmlCemRXSnRhWFIwYVc1bklHRnVJR2x1ZG1Gc2FXUWdabTl5YlNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJQ0FnSUNCMllYSWdhWE5EWVd4c1pXUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdkbUZ5SUZSbGMzUkpibkIxZENBOUlGSmxZV04wTG1OeVpXRjBaVU5zWVhOektIdGNiaUFnSUNBZ0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmUzgrTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUhaaGNpQlVaWE4wUm05eWJTQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJQ0FnSUNCdmJrbHVkbUZzYVdSVGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdselEyRnNiR1ZrSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZ2dYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeEdiM0p0YzNrdVJtOXliU0J2YmtsdWRtRnNhV1JUZFdKdGFYUTllM1JvYVhNdWIyNUpiblpoYkdsa1UzVmliV2wwZlQ0Z1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGUmxjM1JKYm5CMWRDQnVZVzFsUFZ3aVptOXZYQ0lnZG1Gc2FXUmhkR2x2Ym5NOVhDSnBjMFZ0WVdsc1hDSWdkbUZzZFdVOVhDSm1iMjlBWW1GeVhDSXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGlrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLQ0JjYmlBZ0lDQWdJQ0FnSUNBOFZHVnpkRVp2Y20wdlBpQmNiaUFnSUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnSUNCMllYSWdWR1Z6ZEVadmNtMGdQU0JVWlhOMFZYUnBiSE11Wm1sdVpGSmxibVJsY21Wa1EyOXRjRzl1Wlc1MFYybDBhRlI1Y0dVb1ptOXliU3dnVkdWemRFWnZjbTBwTzF4dUlDQWdJQ0FnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdWMzVmliV2wwS0ZSbGMzUkdiM0p0TG1kbGRFUlBUVTV2WkdVb0tTazdJQ0JjYmlBZ0lDQWdJQ0FnWlhod1pXTjBLR2x6UTJGc2JHVmtLUzUwYjBKbEtIUnlkV1VwTzF4dVhHNGdJQ0FnZlNrN1hHNWNiaUFnZlNrN1hHNWNiaUFnWkdWelkzSnBZbVVvWENKMllXeDFaU0E5UFQwZ1ptRnNjMlZjSWl3Z1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ2RtRnlJRzl1VTNWaWJXbDBPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdaMlYwUkdWbVlYVnNkRkJ5YjNCek9pQm1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJjSW5SbGVIUmNJaXhjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCamFHRnVaMlZXWVd4MVpUb2dablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aUzUwWVhKblpYUmJkR2hwY3k1d2NtOXdjeTUwZVhCbElEMDlQU0JjSW1Ob1pXTnJZbTk0WENJZ1B5QmNJbU5vWldOclpXUmNJaUE2SUZ3aWRtRnNkV1ZjSWwwcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIUjVjR1U5ZXlCMGFHbHpMbkJ5YjNCekxuUjVjR1VnZlNCMllXeDFaVDE3SUhSb2FYTXVaMlYwVm1Gc2RXVW9LU0I5SUc5dVEyaGhibWRsUFhzZ2RHaHBjeTVqYUdGdVoyVldZV3gxWlNCOUx6NWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNibHh1SUNBZ0lIWmhjaUJVWlhOMFJtOXliU0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUhKbGJtUmxjam9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCdmJsTjFZbTFwZEQxN0lHWjFibU4wYVc5dUtHRnlaekVwSUhzZ2IyNVRkV0p0YVhRb1lYSm5NU2s3SUgwZ2ZUNWNiaUFnSUNBZ0lDQWdJQ0FnSUR4VVpYTjBTVzV3ZFhRZ2JtRnRaVDFjSW1admIxd2lJSFpoYkhWbFBYc2dkR2hwY3k1d2NtOXdjeTUyWVd4MVpTQjlJSFI1Y0dVOVhDSmphR1ZqYTJKdmVGd2lJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThZblYwZEc5dUlIUjVjR1U5WENKemRXSnRhWFJjSWo1VFlYWmxQQzlpZFhSMGIyNCtYRzRnSUNBZ0lDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR0psWm05eVpVVmhZMmdvWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnSUNCdmJsTjFZbTFwZENBOUlHcGhjMjFwYm1VdVkzSmxZWFJsVTNCNUtGd2liMjVUZFdKdGFYUmNJaWs3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0JwZENoY0luTm9iM1ZzWkNCallXeHNJRzl1VTNWaWJXbDBJR052Y25KbFkzUnNlVndpTENCbWRXNWpkR2x2YmlncElIdGNiaUFnSUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2c4VkdWemRFWnZjbTBnZG1Gc2RXVTlleUJtWVd4elpTQjlMejRwTzF4dUlDQWdJQ0FnVkdWemRGVjBhV3h6TGxOcGJYVnNZWFJsTG5OMVltMXBkQ2htYjNKdExtZGxkRVJQVFU1dlpHVW9LU2s3WEc0Z0lDQWdJQ0JsZUhCbFkzUW9iMjVUZFdKdGFYUXBMblJ2U0dGMlpVSmxaVzVEWVd4c1pXUlhhWFJvS0h0bWIyODZJR1poYkhObGZTazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnBkQ2hjSW5Ob2IzVnNaQ0JoYkd4dmR5QmtlVzVoYldsaklHTm9ZVzVuWlhNZ2RHOGdabUZzYzJWY0lpd2dablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb1BGUmxjM1JHYjNKdElIWmhiSFZsUFhzZ2RISjFaU0I5THo0cE8xeHVJQ0FnSUNBZ1ptOXliUzV6WlhSUWNtOXdjeWg3ZG1Gc2RXVTZJR1poYkhObGZTazdYRzRnSUNBZ0lDQlVaWE4wVlhScGJITXVVMmx0ZFd4aGRHVXVjM1ZpYldsMEtHWnZjbTB1WjJWMFJFOU5UbTlrWlNncEtUdGNiaUFnSUNBZ0lHVjRjR1ZqZENodmJsTjFZbTFwZENrdWRHOUlZWFpsUW1WbGJrTmhiR3hsWkZkcGRHZ29lMlp2YnpvZ1ptRnNjMlY5S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdmU2s3WEc1OUtUdGNiaUpkZlE9PSIsInZhciBGb3Jtc3kgPSByZXF1aXJlKCcuLy4uL3NyYy9tYWluLmpzJyk7XG5cbmRlc2NyaWJlKCdBamF4JywgZnVuY3Rpb24oKSB7XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgamFzbWluZS5BamF4Lmluc3RhbGwoKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBqYXNtaW5lLkFqYXgudW5pbnN0YWxsKCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcG9zdCB0byBhIGdpdmVuIHVybCBpZiBwYXNzZWQnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wifVxuICAgICAgKVxuICAgICk7XG4gICAgXG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG4gICAgZXhwZWN0KGphc21pbmUuQWpheC5yZXF1ZXN0cy5tb3N0UmVjZW50KCkudXJsKS50b0JlKCcvdXNlcnMnKTtcbiAgICBleHBlY3QoamFzbWluZS5BamF4LnJlcXVlc3RzLm1vc3RSZWNlbnQoKS5tZXRob2QpLnRvQmUoJ1BPU1QnKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHB1dCB0byBhIGdpdmVuIHVybCBpZiBwYXNzZWQgYSBtZXRob2QgYXR0cmlidXRlJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIiwgbWV0aG9kOiBcIlBVVFwifVxuICAgICAgKVxuICAgICk7XG4gICAgXG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG4gICAgZXhwZWN0KGphc21pbmUuQWpheC5yZXF1ZXN0cy5tb3N0UmVjZW50KCkudXJsKS50b0JlKCcvdXNlcnMnKTtcbiAgICBleHBlY3QoamFzbWluZS5BamF4LnJlcXVlc3RzLm1vc3RSZWNlbnQoKS5tZXRob2QpLnRvQmUoJ1BVVCcpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFzcyB4LXd3dy1mb3JtLXVybGVuY29kZWQgYXMgY29udGVudFR5cGUgd2hlbiB1cmxlbmNvZGVkIGlzIHNldCBhcyBjb250ZW50VHlwZScsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCIsIGNvbnRlbnRUeXBlOiBcInVybGVuY29kZWRcIn1cbiAgICAgIClcbiAgICApO1xuICAgIFxuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuICAgIGV4cGVjdChqYXNtaW5lLkFqYXgucmVxdWVzdHMubW9zdFJlY2VudCgpLmNvbnRlbnRUeXBlKCkpLnRvQmUoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcnVuIGFuIG9uU3VjY2VzcyBoYW5kbGVyLCBpZiBwYXNzZWQgYW5kIGFqYXggaXMgc3VjY2Vzc2Z1bGwuIEZpcnN0IGFyZ3VtZW50IGlzIGRhdGEgZnJvbSBzZXJ2ZXInLCBmdW5jdGlvbiAoZG9uZSkge1xuIFxuICAgIHZhciBvblN1Y2Nlc3MgPSBqYXNtaW5lLmNyZWF0ZVNweShcInN1Y2Nlc3NcIik7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIiwgb25TdWNjZXNzOiBvblN1Y2Nlc3N9XG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICBqYXNtaW5lLkFqYXguc3R1YlJlcXVlc3QoJy91c2VycycpLmFuZFJldHVybih7XG4gICAgICBzdGF0dXM6IDIwMCxcbiAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICByZXNwb25zZVRleHQ6ICd7fSdcbiAgICB9KTtcblxuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuXG4gICAgLy8gU2luY2UgYWpheCBpcyByZXR1cm5lZCBhcyBhIHByb21pc2UgKGFzeW5jKSwgbW92ZSBhc3NlcnRpb25cbiAgICAvLyB0byBlbmQgb2YgZXZlbnQgbG9vcFxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZXhwZWN0KG9uU3VjY2VzcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoe30pO1xuICAgICAgZG9uZSgpO1xuICAgIH0sIDApO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IGRvIGFqYXggcmVxdWVzdCBpZiBvblN1Ym1pdCBoYW5kbGVyIGlzIHBhc3NlZCwgYnV0IHBhc3MgdGhlIG1vZGVsIGFzIGZpcnN0IGFyZ3VtZW50IHRvIG9uU3VibWl0IGhhbmRsZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgXG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uU3VibWl0OiBvblN1Ym1pdH0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImJhclwifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLnN1Ym1pdChmb3JtLmdldERPTU5vZGUoKSk7XG5cbiAgICBleHBlY3QoamFzbWluZS5BamF4LnJlcXVlc3RzLmNvdW50KCkpLnRvQmUoMCk7XG5cbiAgICBmdW5jdGlvbiBvblN1Ym1pdCAoZGF0YSkge1xuICAgICAgZXhwZWN0KGRhdGEpLnRvRXF1YWwoe1xuICAgICAgICBmb286ICdiYXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0cmlnZ2VyIGFuIG9uU3VibWl0dGVkIGhhbmRsZXIsIGlmIHBhc3NlZCBhbmQgdGhlIHN1Ym1pdCBoYXMgcmVzcG9uZGVkIHdpdGggU1VDQ0VTUycsIGZ1bmN0aW9uIChkb25lKSB7XG4gICAgXG4gICAgdmFyIG9uU3VibWl0dGVkID0gamFzbWluZS5jcmVhdGVTcHkoXCJzdWJtaXR0ZWRcIik7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge3VybDogXCIvdXNlcnNcIiwgb25TdWJtaXR0ZWQ6IG9uU3VibWl0dGVkfVxuICAgICAgKVxuICAgICk7XG4gICAgXG4gICAgamFzbWluZS5BamF4LnN0dWJSZXF1ZXN0KCcvdXNlcnMnKS5hbmRSZXR1cm4oe1xuICAgICAgc3RhdHVzOiAyMDAsXG4gICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgcmVzcG9uc2VUZXh0OiAne30nXG4gICAgfSk7XG5cbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuc3VibWl0KGZvcm0uZ2V0RE9NTm9kZSgpKTtcblxuICAgIC8vIFNpbmNlIGFqYXggaXMgcmV0dXJuZWQgYXMgYSBwcm9taXNlIChhc3luYyksIG1vdmUgYXNzZXJ0aW9uXG4gICAgLy8gdG8gZW5kIG9mIGV2ZW50IGxvb3BcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGV4cGVjdChvblN1Ym1pdHRlZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZG9uZSgpO1xuICAgIH0sIDApO1xuXG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdHJpZ2dlciBhbiBvblN1Ym1pdHRlZCBoYW5kbGVyLCBpZiBwYXNzZWQgYW5kIHRoZSBzdWJtaXQgaGFzIHJlc3BvbmRlZCB3aXRoIEVSUk9SJywgZnVuY3Rpb24gKGRvbmUpIHtcbiAgICBcbiAgICB2YXIgb25TdWJtaXR0ZWQgPSBqYXNtaW5lLmNyZWF0ZVNweShcInN1Ym1pdHRlZFwiKTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCB7dXJsOiBcIi91c2Vyc1wiLCBvblN1Ym1pdHRlZDogb25TdWJtaXR0ZWR9XG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICBqYXNtaW5lLkFqYXguc3R1YlJlcXVlc3QoJy91c2VycycpLmFuZFJldHVybih7XG4gICAgICBzdGF0dXM6IDUwMCxcbiAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICByZXNwb25zZVRleHQ6ICd7fSdcbiAgICB9KTtcblxuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuXG4gICAgLy8gU2luY2UgYWpheCBpcyByZXR1cm5lZCBhcyBhIHByb21pc2UgKGFzeW5jKSwgbW92ZSBhc3NlcnRpb25cbiAgICAvLyB0byBlbmQgb2YgZXZlbnQgbG9vcFxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZXhwZWN0KG9uU3VibWl0dGVkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBkb25lKCk7XG4gICAgfSwgMCk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0cmlnZ2VyIGFuIG9uRXJyb3IgaGFuZGxlciwgaWYgcGFzc2VkIGFuZCB0aGUgc3VibWl0IGhhcyByZXNwb25kZWQgd2l0aCBFUlJPUicsIGZ1bmN0aW9uIChkb25lKSB7XG4gICAgXG4gICAgdmFyIG9uRXJyb3IgPSBqYXNtaW5lLmNyZWF0ZVNweShcImVycm9yXCIpO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIHt1cmw6IFwiL3VzZXJzXCIsIG9uRXJyb3I6IG9uRXJyb3J9XG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICAvLyBEbyBub3QgcmV0dXJuIGFueSBlcnJvciBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dHNcbiAgICBqYXNtaW5lLkFqYXguc3R1YlJlcXVlc3QoJy91c2VycycpLmFuZFJldHVybih7XG4gICAgICBzdGF0dXM6IDUwMCxcbiAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICByZXNwb25zZVRleHQ6ICd7fSdcbiAgICB9KTtcblxuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5zdWJtaXQoZm9ybS5nZXRET01Ob2RlKCkpO1xuXG4gICAgLy8gU2luY2UgYWpheCBpcyByZXR1cm5lZCBhcyBhIHByb21pc2UgKGFzeW5jKSwgbW92ZSBhc3NlcnRpb25cbiAgICAvLyB0byBlbmQgb2YgZXZlbnQgbG9vcFxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZXhwZWN0KG9uRXJyb3IpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHt9KTtcbiAgICAgIGRvbmUoKTtcbiAgICB9LCAwKTtcblxuICB9KTtcblxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y0dWamN5OVRkV0p0YVhRdGMzQmxZeTVxY3lJc0luTnZkWEpqWlhNaU9sc2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNHVmpjeTlUZFdKdGFYUXRjM0JsWXk1cWN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hKUVVGSkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6czdRVUZGZWtNc1VVRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYT3p0RlFVVXhRaXhWUVVGVkxFTkJRVU1zV1VGQldUdEpRVU55UWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBGQlF6TkNMRWRCUVVjc1EwRkJReXhEUVVGRE96dEZRVVZJTEZOQlFWTXNRMEZCUXl4WlFVRlpPMGxCUTNCQ0xFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1FVRkROMElzUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlV3c1JVRkJSU3hGUVVGRkxFTkJRVU1zYzBOQlFYTkRMRVZCUVVVc1dVRkJXVHM3U1VGRmNrUXNTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGRkJRVk1zUTBGQlFUdE5RVU5hTEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUXpkRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRGJFVXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPenRCUVVWdVJTeEhRVUZITEVOQlFVTXNRMEZCUXpzN1FVRkZUQ3hGUVVGRkxFVkJRVVVzUTBGQlF5eDNSRUZCZDBRc1JVRkJSU3haUVVGWk96dEpRVVYyUlN4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1IwRkJRU3hGUVVGSExFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVTXNUVUZCUVN4RlFVRk5MRU5CUVVNc1MwRkJUU3hEUVVGQk8wMUJRM3BDTEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUXpkRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRGJFVXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWc1JTeEhRVUZITEVOQlFVTXNRMEZCUXpzN1FVRkZUQ3hGUVVGRkxFVkJRVVVzUTBGQlF5eDNSa0ZCZDBZc1JVRkJSU3haUVVGWk96dEpRVVYyUnl4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4RFFVRkJMRU5CUVVNc1IwRkJRU3hGUVVGSExFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVTXNWMEZCUVN4RlFVRlhMRU5CUVVNc1dVRkJZU3hEUVVGQk8wMUJRM0pETEVOQlFVRTdRVUZEY0VJc1MwRkJTeXhEUVVGRE96dEpRVVZHTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTJwRUxFbEJRVWtzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExHMURRVUZ0UXl4RFFVRkRMRU5CUVVNN08wRkJSWFpITEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWTUxFVkJRVVVzUlVGQlJTeERRVUZETEhkSFFVRjNSeXhGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGT3p0SlFVVXpTQ3hKUVVGSkxGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wbEJRemRETEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdUVUZEY2tNc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SFFVRkJMRVZCUVVjc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlF5eFRRVUZCTEVWQlFWTXNRMEZCUlN4VFFVRlhMRU5CUVVFN1RVRkRiRU1zUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wbEJSVVlzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETzAxQlF6TkRMRTFCUVUwc1JVRkJSU3hIUVVGSE8wMUJRMWdzVjBGQlZ5eEZRVUZGTEd0Q1FVRnJRanROUVVNdlFpeFpRVUZaTEVWQlFVVXNTVUZCU1R0QlFVTjRRaXhMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZGVUN4SlFVRkpMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMnBFTzBGQlEwRTdPMGxCUlVrc1ZVRkJWU3hEUVVGRExGbEJRVms3VFVGRGNrSXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wMUJRek5ETEVsQlFVa3NSVUZCUlN4RFFVRkRPMEZCUTJJc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVldMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMRzlJUVVGdlNDeEZRVUZGTEZsQlFWazdPMGxCUlc1SkxFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVjc1EwRkJSU3hEUVVGQk8wOUJRM2hETzB0QlEwWXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRanROUVVOeVF5eHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1EwRkJRU3hEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEZGQlFWVXNRMEZCUVN4RlFVRkJPMUZCUXk5Q0xHOUNRVUZETEZOQlFWTXNSVUZCUVN4RFFVRkJMRU5CUVVNc1NVRkJRU3hGUVVGSkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRkxFTkJRVUU3VFVGRGRrSXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBGQlJVNHNTVUZCU1N4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenM3UVVGRmFrUXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdPMGxCUlRsRExGTkJRVk1zVVVGQlVTeEZRVUZGTEVsQlFVa3NSVUZCUlR0TlFVTjJRaXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRPMUZCUTI1Q0xFZEJRVWNzUlVGQlJTeExRVUZMTzA5QlExZ3NRMEZCUXl4RFFVRkRPMEZCUTFRc1MwRkJTenM3UVVGRlRDeEhRVUZITEVOQlFVTXNRMEZCUXpzN1FVRkZUQ3hGUVVGRkxFVkJRVVVzUTBGQlF5dzBSa0ZCTkVZc1JVRkJSU3hWUVVGVkxFbEJRVWtzUlVGQlJUczdTVUZGTDBjc1NVRkJTU3hYUVVGWExFZEJRVWNzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRKUVVOcVJDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeERRVUZCTEVOQlFVTXNSMEZCUVN4RlFVRkhMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVU1zVjBGQlFTeEZRVUZYTEVOQlFVVXNWMEZCWVN4RFFVRkJPMDFCUTNSRExFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dE5RVU16UXl4TlFVRk5MRVZCUVVVc1IwRkJSenROUVVOWUxGZEJRVmNzUlVGQlJTeHJRa0ZCYTBJN1RVRkRMMElzV1VGQldTeEZRVUZGTEVsQlFVazdRVUZEZUVJc1MwRkJTeXhEUVVGRExFTkJRVU03TzBGQlJWQXNTVUZCU1N4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOcVJEdEJRVU5CT3p0SlFVVkpMRlZCUVZVc1EwRkJReXhaUVVGWk8wMUJRM0pDTEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RFFVRkRPMDFCUTNaRExFbEJRVWtzUlVGQlJTeERRVUZETzBGQlEySXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE96dEJRVVZXTEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWTUxFVkJRVVVzUlVGQlJTeERRVUZETERCR1FVRXdSaXhGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGT3p0SlFVVTNSeXhKUVVGSkxGZEJRVmNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8wbEJRMnBFTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdUVUZEY2tNc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVOQlFVRXNRMEZCUXl4SFFVRkJMRVZCUVVjc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlF5eFhRVUZCTEVWQlFWY3NRMEZCUlN4WFFVRmhMRU5CUVVFN1RVRkRkRU1zUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wbEJSVVlzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETzAxQlF6TkRMRTFCUVUwc1JVRkJSU3hIUVVGSE8wMUJRMWdzVjBGQlZ5eEZRVUZGTEd0Q1FVRnJRanROUVVNdlFpeFpRVUZaTEVWQlFVVXNTVUZCU1R0QlFVTjRRaXhMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZGVUN4SlFVRkpMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMnBFTzBGQlEwRTdPMGxCUlVrc1ZVRkJWU3hEUVVGRExGbEJRVms3VFVGRGNrSXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1RVRkRka01zU1VGQlNTeEZRVUZGTEVOQlFVTTdRVUZEWWl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJWWXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNjMFpCUVhOR0xFVkJRVVVzVlVGQlZTeEpRVUZKTEVWQlFVVTdPMGxCUlhwSExFbEJRVWtzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWRCUVVFc1JVRkJSeXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZETEU5QlFVRXNSVUZCVHl4RFFVRkZMRTlCUVZNc1EwRkJRVHROUVVNNVFpeERRVUZCTzBGQlEzQkNMRXRCUVVzc1EwRkJRenRCUVVOT096dEpRVVZKTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0TlFVTXpReXhOUVVGTkxFVkJRVVVzUjBGQlJ6dE5RVU5ZTEZkQlFWY3NSVUZCUlN4clFrRkJhMEk3VFVGREwwSXNXVUZCV1N4RlFVRkZMRWxCUVVrN1FVRkRlRUlzUzBGQlN5eERRVUZETEVOQlFVTTdPMEZCUlZBc1NVRkJTU3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU5xUkR0QlFVTkJPenRKUVVWSkxGVkJRVlVzUTBGQlF5eFpRVUZaTzAxQlEzSkNMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dE5RVU42UXl4SlFVRkpMRVZCUVVVc1EwRkJRenRCUVVOaUxFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZWaXhIUVVGSExFTkJRVU1zUTBGQlF6czdRMEZGU2l4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnUm05eWJYTjVJRDBnY21WeGRXbHlaU2duTGk4dUxpOXpjbU12YldGcGJpNXFjeWNwTzF4dVhHNWtaWE5qY21saVpTZ25RV3BoZUNjc0lHWjFibU4wYVc5dUtDa2dlMXh1WEc0Z0lHSmxabTl5WlVWaFkyZ29ablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJR3BoYzIxcGJtVXVRV3BoZUM1cGJuTjBZV3hzS0NrN1hHNGdJSDBwTzF4dVhHNGdJR0ZtZEdWeVJXRmphQ2htZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnYW1GemJXbHVaUzVCYW1GNExuVnVhVzV6ZEdGc2JDZ3BPMXh1SUNCOUtUdGNibHh1SUNCcGRDZ25jMmh2ZFd4a0lIQnZjM1FnZEc4Z1lTQm5hWFpsYmlCMWNtd2dhV1lnY0dGemMyVmtKeXdnWm5WdVkzUnBiMjRnS0NrZ2UxeHVYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUhWeWJEMWNJaTkxYzJWeWMxd2lQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dUlDQWdJRnh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE8xeHVJQ0FnSUdWNGNHVmpkQ2hxWVhOdGFXNWxMa0ZxWVhndWNtVnhkV1Z6ZEhNdWJXOXpkRkpsWTJWdWRDZ3BMblZ5YkNrdWRHOUNaU2duTDNWelpYSnpKeWs3WEc0Z0lDQWdaWGh3WldOMEtHcGhjMjFwYm1VdVFXcGhlQzV5WlhGMVpYTjBjeTV0YjNOMFVtVmpaVzUwS0NrdWJXVjBhRzlrS1M1MGIwSmxLQ2RRVDFOVUp5azdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQndkWFFnZEc4Z1lTQm5hWFpsYmlCMWNtd2dhV1lnY0dGemMyVmtJR0VnYldWMGFHOWtJR0YwZEhKcFluVjBaU2NzSUdaMWJtTjBhVzl1SUNncElIdGNibHh1SUNBZ0lIWmhjaUJtYjNKdElEMGdWR1Z6ZEZWMGFXeHpMbkpsYm1SbGNrbHVkRzlFYjJOMWJXVnVkQ2hjYmlBZ0lDQWdJRHhHYjNKdGMza3VSbTl5YlNCMWNtdzlYQ0l2ZFhObGNuTmNJaUJ0WlhSb2IyUTlYQ0pRVlZSY0lqNWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmlBZ0lDQmNiaUFnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdWMzVmliV2wwS0dadmNtMHVaMlYwUkU5TlRtOWtaU2dwS1R0Y2JpQWdJQ0JsZUhCbFkzUW9hbUZ6YldsdVpTNUJhbUY0TG5KbGNYVmxjM1J6TG0xdmMzUlNaV05sYm5Rb0tTNTFjbXdwTG5SdlFtVW9KeTkxYzJWeWN5Y3BPMXh1SUNBZ0lHVjRjR1ZqZENocVlYTnRhVzVsTGtGcVlYZ3VjbVZ4ZFdWemRITXViVzl6ZEZKbFkyVnVkQ2dwTG0xbGRHaHZaQ2t1ZEc5Q1pTZ25VRlZVSnlrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCd1lYTnpJSGd0ZDNkM0xXWnZjbTB0ZFhKc1pXNWpiMlJsWkNCaGN5QmpiMjUwWlc1MFZIbHdaU0IzYUdWdUlIVnliR1Z1WTI5a1pXUWdhWE1nYzJWMElHRnpJR052Ym5SbGJuUlVlWEJsSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElIVnliRDFjSWk5MWMyVnljMXdpSUdOdmJuUmxiblJVZVhCbFBWd2lkWEpzWlc1amIyUmxaRndpUGx4dUlDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBcE8xeHVJQ0FnSUZ4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzV6ZFdKdGFYUW9abTl5YlM1blpYUkVUMDFPYjJSbEtDa3BPMXh1SUNBZ0lHVjRjR1ZqZENocVlYTnRhVzVsTGtGcVlYZ3VjbVZ4ZFdWemRITXViVzl6ZEZKbFkyVnVkQ2dwTG1OdmJuUmxiblJVZVhCbEtDa3BMblJ2UW1Vb0oyRndjR3hwWTJGMGFXOXVMM2d0ZDNkM0xXWnZjbTB0ZFhKc1pXNWpiMlJsWkNjcE8xeHVYRzRnSUgwcE8xeHVYRzRnSUdsMEtDZHphRzkxYkdRZ2NuVnVJR0Z1SUc5dVUzVmpZMlZ6Y3lCb1lXNWtiR1Z5TENCcFppQndZWE56WldRZ1lXNWtJR0ZxWVhnZ2FYTWdjM1ZqWTJWemMyWjFiR3d1SUVacGNuTjBJR0Z5WjNWdFpXNTBJR2x6SUdSaGRHRWdabkp2YlNCelpYSjJaWEluTENCbWRXNWpkR2x2YmlBb1pHOXVaU2tnZTF4dUlGeHVJQ0FnSUhaaGNpQnZibE4xWTJObGMzTWdQU0JxWVhOdGFXNWxMbU55WldGMFpWTndlU2hjSW5OMVkyTmxjM05jSWlrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRJSFZ5YkQxY0lpOTFjMlZ5YzF3aUlHOXVVM1ZqWTJWemN6MTdiMjVUZFdOalpYTnpmVDVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JpQWdJQ0JjYmlBZ0lDQnFZWE50YVc1bExrRnFZWGd1YzNSMVlsSmxjWFZsYzNRb0p5OTFjMlZ5Y3ljcExtRnVaRkpsZEhWeWJpaDdYRzRnSUNBZ0lDQnpkR0YwZFhNNklESXdNQ3hjYmlBZ0lDQWdJR052Ym5SbGJuUlVlWEJsT2lBbllYQndiR2xqWVhScGIyNHZhbk52Ymljc1hHNGdJQ0FnSUNCeVpYTndiMjV6WlZSbGVIUTZJQ2Q3ZlNkY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1emRXSnRhWFFvWm05eWJTNW5aWFJFVDAxT2IyUmxLQ2twTzF4dVhHNGdJQ0FnTHk4Z1UybHVZMlVnWVdwaGVDQnBjeUJ5WlhSMWNtNWxaQ0JoY3lCaElIQnliMjFwYzJVZ0tHRnplVzVqS1N3Z2JXOTJaU0JoYzNObGNuUnBiMjVjYmlBZ0lDQXZMeUIwYnlCbGJtUWdiMllnWlhabGJuUWdiRzl2Y0Z4dUlDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ1pYaHdaV04wS0c5dVUzVmpZMlZ6Y3lrdWRHOUlZWFpsUW1WbGJrTmhiR3hsWkZkcGRHZ29lMzBwTzF4dUlDQWdJQ0FnWkc5dVpTZ3BPMXh1SUNBZ0lIMHNJREFwTzF4dVhHNGdJSDBwTzF4dVhHNGdJR2wwS0NkemFHOTFiR1FnYm05MElHUnZJR0ZxWVhnZ2NtVnhkV1Z6ZENCcFppQnZibE4xWW0xcGRDQm9ZVzVrYkdWeUlHbHpJSEJoYzNObFpDd2dZblYwSUhCaGMzTWdkR2hsSUcxdlpHVnNJR0Z6SUdacGNuTjBJR0Z5WjNWdFpXNTBJSFJ2SUc5dVUzVmliV2wwSUdoaGJtUnNaWEluTENCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ1hHNGdJQ0FnZG1GeUlGUmxjM1JKYm5CMWRDQTlJRkpsWVdOMExtTnlaV0YwWlVOc1lYTnpLSHRjYmlBZ0lDQWdJRzFwZUdsdWN6b2dXMFp2Y20xemVTNU5hWGhwYmwwc1hHNGdJQ0FnSUNCeVpXNWtaWEk2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEeHBibkIxZENCMllXeDFaVDE3ZEdocGN5NW5aWFJXWVd4MVpTZ3BmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElHOXVVM1ZpYldsMFBYdHZibE4xWW0xcGRIMCtYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJbVp2YjF3aUlIWmhiSFZsUFZ3aVltRnlYQ0l2UGx4dUlDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBcE8xeHVYRzRnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExuTjFZbTFwZENobWIzSnRMbWRsZEVSUFRVNXZaR1VvS1NrN1hHNWNiaUFnSUNCbGVIQmxZM1FvYW1GemJXbHVaUzVCYW1GNExuSmxjWFZsYzNSekxtTnZkVzUwS0NrcExuUnZRbVVvTUNrN1hHNWNiaUFnSUNCbWRXNWpkR2x2YmlCdmJsTjFZbTFwZENBb1pHRjBZU2tnZTF4dUlDQWdJQ0FnWlhod1pXTjBLR1JoZEdFcExuUnZSWEYxWVd3b2UxeHVJQ0FnSUNBZ0lDQm1iMjg2SUNkaVlYSW5YRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQjBjbWxuWjJWeUlHRnVJRzl1VTNWaWJXbDBkR1ZrSUdoaGJtUnNaWElzSUdsbUlIQmhjM05sWkNCaGJtUWdkR2hsSUhOMVltMXBkQ0JvWVhNZ2NtVnpjRzl1WkdWa0lIZHBkR2dnVTFWRFEwVlRVeWNzSUdaMWJtTjBhVzl1SUNoa2IyNWxLU0I3WEc0Z0lDQWdYRzRnSUNBZ2RtRnlJRzl1VTNWaWJXbDBkR1ZrSUQwZ2FtRnpiV2x1WlM1amNtVmhkR1ZUY0hrb1hDSnpkV0p0YVhSMFpXUmNJaWs3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdElIVnliRDFjSWk5MWMyVnljMXdpSUc5dVUzVmliV2wwZEdWa1BYdHZibE4xWW0xcGRIUmxaSDArWEc0Z0lDQWdJQ0E4TDBadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNrN1hHNGdJQ0FnWEc0Z0lDQWdhbUZ6YldsdVpTNUJhbUY0TG5OMGRXSlNaWEYxWlhOMEtDY3ZkWE5sY25NbktTNWhibVJTWlhSMWNtNG9lMXh1SUNBZ0lDQWdjM1JoZEhWek9pQXlNREFzWEc0Z0lDQWdJQ0JqYjI1MFpXNTBWSGx3WlRvZ0oyRndjR3hwWTJGMGFXOXVMMnB6YjI0bkxGeHVJQ0FnSUNBZ2NtVnpjRzl1YzJWVVpYaDBPaUFuZTMwblhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdWMzVmliV2wwS0dadmNtMHVaMlYwUkU5TlRtOWtaU2dwS1R0Y2JseHVJQ0FnSUM4dklGTnBibU5sSUdGcVlYZ2dhWE1nY21WMGRYSnVaV1FnWVhNZ1lTQndjbTl0YVhObElDaGhjM2x1WXlrc0lHMXZkbVVnWVhOelpYSjBhVzl1WEc0Z0lDQWdMeThnZEc4Z1pXNWtJRzltSUdWMlpXNTBJR3h2YjNCY2JpQWdJQ0J6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lHVjRjR1ZqZENodmJsTjFZbTFwZEhSbFpDa3VkRzlJWVhabFFtVmxia05oYkd4bFpDZ3BPMXh1SUNBZ0lDQWdaRzl1WlNncE8xeHVJQ0FnSUgwc0lEQXBPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2R6YUc5MWJHUWdkSEpwWjJkbGNpQmhiaUJ2YmxOMVltMXBkSFJsWkNCb1lXNWtiR1Z5TENCcFppQndZWE56WldRZ1lXNWtJSFJvWlNCemRXSnRhWFFnYUdGeklISmxjM0J2Ym1SbFpDQjNhWFJvSUVWU1VrOVNKeXdnWm5WdVkzUnBiMjRnS0dSdmJtVXBJSHRjYmlBZ0lDQmNiaUFnSUNCMllYSWdiMjVUZFdKdGFYUjBaV1FnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNoY0luTjFZbTFwZEhSbFpGd2lLVHRjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvWEc0Z0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wZ2RYSnNQVndpTDNWelpYSnpYQ0lnYjI1VGRXSnRhWFIwWldROWUyOXVVM1ZpYldsMGRHVmtmVDVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JpQWdJQ0JjYmlBZ0lDQnFZWE50YVc1bExrRnFZWGd1YzNSMVlsSmxjWFZsYzNRb0p5OTFjMlZ5Y3ljcExtRnVaRkpsZEhWeWJpaDdYRzRnSUNBZ0lDQnpkR0YwZFhNNklEVXdNQ3hjYmlBZ0lDQWdJR052Ym5SbGJuUlVlWEJsT2lBbllYQndiR2xqWVhScGIyNHZhbk52Ymljc1hHNGdJQ0FnSUNCeVpYTndiMjV6WlZSbGVIUTZJQ2Q3ZlNkY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1emRXSnRhWFFvWm05eWJTNW5aWFJFVDAxT2IyUmxLQ2twTzF4dVhHNGdJQ0FnTHk4Z1UybHVZMlVnWVdwaGVDQnBjeUJ5WlhSMWNtNWxaQ0JoY3lCaElIQnliMjFwYzJVZ0tHRnplVzVqS1N3Z2JXOTJaU0JoYzNObGNuUnBiMjVjYmlBZ0lDQXZMeUIwYnlCbGJtUWdiMllnWlhabGJuUWdiRzl2Y0Z4dUlDQWdJSE5sZEZScGJXVnZkWFFvWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ1pYaHdaV04wS0c5dVUzVmliV2wwZEdWa0tTNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa0tDazdYRzRnSUNBZ0lDQmtiMjVsS0NrN1hHNGdJQ0FnZlN3Z01DazdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQjBjbWxuWjJWeUlHRnVJRzl1UlhKeWIzSWdhR0Z1Wkd4bGNpd2dhV1lnY0dGemMyVmtJR0Z1WkNCMGFHVWdjM1ZpYldsMElHaGhjeUJ5WlhOd2IyNWtaV1FnZDJsMGFDQkZVbEpQVWljc0lHWjFibU4wYVc5dUlDaGtiMjVsS1NCN1hHNGdJQ0FnWEc0Z0lDQWdkbUZ5SUc5dVJYSnliM0lnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNoY0ltVnljbTl5WENJcE8xeHVJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDaGNiaUFnSUNBZ0lEeEdiM0p0YzNrdVJtOXliU0IxY213OVhDSXZkWE5sY25OY0lpQnZia1Z5Y205eVBYdHZia1Z5Y205eWZUNWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmlBZ0lDQmNiaUFnSUNBdkx5QkVieUJ1YjNRZ2NtVjBkWEp1SUdGdWVTQmxjbkp2Y2lCaVpXTmhkWE5sSUhSb1pYSmxJR0Z5WlNCdWJ5QnBibkIxZEhOY2JpQWdJQ0JxWVhOdGFXNWxMa0ZxWVhndWMzUjFZbEpsY1hWbGMzUW9KeTkxYzJWeWN5Y3BMbUZ1WkZKbGRIVnliaWg3WEc0Z0lDQWdJQ0J6ZEdGMGRYTTZJRFV3TUN4Y2JpQWdJQ0FnSUdOdmJuUmxiblJVZVhCbE9pQW5ZWEJ3YkdsallYUnBiMjR2YW5OdmJpY3NYRzRnSUNBZ0lDQnlaWE53YjI1elpWUmxlSFE2SUNkN2ZTZGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNXpkV0p0YVhRb1ptOXliUzVuWlhSRVQwMU9iMlJsS0NrcE8xeHVYRzRnSUNBZ0x5OGdVMmx1WTJVZ1lXcGhlQ0JwY3lCeVpYUjFjbTVsWkNCaGN5QmhJSEJ5YjIxcGMyVWdLR0Z6ZVc1aktTd2diVzkyWlNCaGMzTmxjblJwYjI1Y2JpQWdJQ0F2THlCMGJ5QmxibVFnYjJZZ1pYWmxiblFnYkc5dmNGeHVJQ0FnSUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdaWGh3WldOMEtHOXVSWEp5YjNJcExuUnZTR0YyWlVKbFpXNURZV3hzWldSWGFYUm9LSHQ5S1R0Y2JpQWdJQ0FnSUdSdmJtVW9LVHRjYmlBZ0lDQjlMQ0F3S1R0Y2JseHVJQ0I5S1R0Y2JseHVmU2s3WEc0aVhYMD0iLCJ2YXIgRm9ybXN5ID0gcmVxdWlyZSgnLi8uLi9zcmMvbWFpbi5qcycpO1xuXG5kZXNjcmliZSgnVmFsaWRhdGlvbicsIGZ1bmN0aW9uKCkge1xuXG4gIGl0KCdzaG91bGQgdHJpZ2dlciBhbiBvblZhbGlkIGhhbmRsZXIsIGlmIHBhc3NlZCwgd2hlbiBmb3JtIGlzIHZhbGlkJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIG9uVmFsaWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgndmFsaWQnKTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uVmFsaWQ6IG9uVmFsaWR9LCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCByZXF1aXJlZDogdHJ1ZX0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJ2Zvbyd9fSk7XG4gICAgZXhwZWN0KG9uVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIHRyaWdnZXIgYW4gb25JbnZhbGlkIGhhbmRsZXIsIGlmIHBhc3NlZCwgd2hlbiBmb3JtIGlzIGludmFsaWQnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgb25JbnZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ2ludmFsaWQnKTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwge29uVmFsaWQ6IG9uSW52YWxpZH0sIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnJ319KTtcbiAgICBleHBlY3Qob25JbnZhbGlkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB1c2UgcHJvdmlkZWQgdmFsaWRhdGUgZnVuY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgaXNWYWxpZCA9IGphc21pbmUuY3JlYXRlU3B5KCd2YWxpZCcpO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgIGlzVmFsaWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9LFxuICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKSA9PT0gXCJjaGVja1ZhbGlkaXR5XCI7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwgbnVsbCwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiY2hlY2tJbnZhbGlkaXR5XCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdjaGVja1ZhbGlkaXR5J319KTtcbiAgICBleHBlY3QoaXNWYWxpZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gIH0pO1xuXG4gIGl0KCdSVUxFOiBpc0VtYWlsJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGlzVmFsaWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgndmFsaWQnKTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICBpc1ZhbGlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc0VtYWlsXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBleHBlY3QoaXNWYWxpZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICdmb29AZm9vLmNvbSd9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnUlVMRTogaXNOdW1lcmljJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGlzVmFsaWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgndmFsaWQnKTtcbiAgICB2YXIgVGVzdElucHV0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRlc3RJbnB1dFwiLFxuICAgICAgbWl4aW5zOiBbRm9ybXN5Lk1peGluXSxcbiAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICBpc1ZhbGlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc051bWVyaWNcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIGV4cGVjdChpc1ZhbGlkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJzEyMyd9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnUlVMRTogaXNOdW1lcmljIChhY3R1YWwgbnVtYmVyKScsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ3ZhbGlkJyk7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSkpO1xuICAgICAgfSxcbiAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICBpc1ZhbGlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dmFsdWU6IHRoaXMuZ2V0VmFsdWUoKSwgb25DaGFuZ2U6IHRoaXMudXBkYXRlVmFsdWV9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBmb3JtID0gVGVzdFV0aWxzLnJlbmRlckludG9Eb2N1bWVudChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9ybXN5LkZvcm0sIG51bGwsIFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlc3RJbnB1dCwge25hbWU6IFwiZm9vXCIsIHZhbHVlOiBcImZvb1wiLCB2YWxpZGF0aW9uczogXCJpc051bWVyaWNcIn0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHZhciBpbnB1dCA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKGZvcm0sICdJTlBVVCcpO1xuICAgIGV4cGVjdChpc1ZhbGlkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jaGFuZ2UoaW5wdXQsIHt0YXJnZXQ6IHt2YWx1ZTogJzEyMyd9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICB9KTtcblxuICBpdCgnUlVMRTogaXNOdW1lcmljIChzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBmbG9hdCknLCBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgaXNWYWxpZCA9IGphc21pbmUuY3JlYXRlU3B5KCd2YWxpZCcpO1xuICAgIHZhciBUZXN0SW5wdXQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiVGVzdElucHV0XCIsXG4gICAgICBtaXhpbnM6IFtGb3Jtc3kuTWl4aW5dLFxuICAgICAgdXBkYXRlVmFsdWU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgIGlzVmFsaWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt2YWx1ZTogdGhpcy5nZXRWYWx1ZSgpLCBvbkNoYW5nZTogdGhpcy51cGRhdGVWYWx1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZvcm0gPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb3Jtc3kuRm9ybSwgbnVsbCwgXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGVzdElucHV0LCB7bmFtZTogXCJmb29cIiwgdmFsdWU6IFwiZm9vXCIsIHZhbGlkYXRpb25zOiBcImlzTnVtZXJpY1wifSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdmFyIGlucHV0ID0gVGVzdFV0aWxzLmZpbmRSZW5kZXJlZERPTUNvbXBvbmVudFdpdGhUYWcoZm9ybSwgJ0lOUFVUJyk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgVGVzdFV0aWxzLlNpbXVsYXRlLmNoYW5nZShpbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnMS41J319KTtcbiAgICBleHBlY3QoaXNWYWxpZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gIH0pO1xuXG4gIGl0KCdSVUxFOiBpc051bWVyaWMgaXMgZmFsc2UgKHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBpbnZhbGlkIGZsb2F0KScsIGZ1bmN0aW9uICgpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gamFzbWluZS5jcmVhdGVTcHkoJ3ZhbGlkJyk7XG4gICAgdmFyIFRlc3RJbnB1dCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJUZXN0SW5wdXRcIixcbiAgICAgIG1peGluczogW0Zvcm1zeS5NaXhpbl0sXG4gICAgICB1cGRhdGVWYWx1ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgaXNWYWxpZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3ZhbHVlOiB0aGlzLmdldFZhbHVlKCksIG9uQ2hhbmdlOiB0aGlzLnVwZGF0ZVZhbHVlfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgZm9ybSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1zeS5Gb3JtLCBudWxsLCBcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXN0SW5wdXQsIHtuYW1lOiBcImZvb1wiLCB2YWx1ZTogXCJmb29cIiwgdmFsaWRhdGlvbnM6IFwiaXNOdW1lcmljXCJ9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB2YXIgaW5wdXQgPSBUZXN0VXRpbHMuZmluZFJlbmRlcmVkRE9NQ29tcG9uZW50V2l0aFRhZyhmb3JtLCAnSU5QVVQnKTtcbiAgICBleHBlY3QoaXNWYWxpZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBUZXN0VXRpbHMuU2ltdWxhdGUuY2hhbmdlKGlucHV0LCB7dGFyZ2V0OiB7dmFsdWU6ICcxLid9fSk7XG4gICAgZXhwZWN0KGlzVmFsaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgfSk7XG5cbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNHVmpjeTlXWVd4cFpHRjBhVzl1TFhOd1pXTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpOVZjMlZ5Y3k5amFISnBjM1JwWVc1aGJHWnZibWt2Ukc5amRXMWxiblJ6TDJSbGRpOW1iM0p0YzNrdGNtVmhZM1F2YzNCbFkzTXZWbUZzYVdSaGRHbHZiaTF6Y0dWakxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEVsQlFVa3NUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPenRCUVVWNlF5eFJRVUZSTEVOQlFVTXNXVUZCV1N4RlFVRkZMRmRCUVZjN08wRkJSV3hETEVWQlFVVXNSVUZCUlN4RFFVRkRMR3RGUVVGclJTeEZRVUZGTEZsQlFWazdPMGxCUldwR0xFbEJRVWtzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrTXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdUVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0TlFVTjBRaXhYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJRMjVETzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzVDBGQlR5eHZRa0ZCUVN4UFFVRk5MRVZCUVVFc1EwRkJRU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJReXhEUVVGRExGRkJRVUVzUlVGQlVTeERRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlpMRU5CUVVVc1EwRkJRVHRQUVVOd1JUdExRVU5HTEVOQlFVTXNRMEZCUXp0SlFVTklMRWxCUVVrc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJN1RVRkRja01zYjBKQlFVTXNWMEZCVnl4RlFVRkJMRU5CUVVFc1EwRkJReXhQUVVGQkxFVkJRVThzUTBGQlJTeFBRVUZUTEVOQlFVRXNSVUZCUVR0UlFVTTNRaXh2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEZGQlFVRXNSVUZCUVN4RFFVRkZMRU5CUVVFN1RVRkRXaXhEUVVGQk8wRkJRM0JDTEV0QlFVc3NRMEZCUXpzN1NVRkZSaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNKRkxGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGREwwUXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenM3UVVGRmRrTXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNjMFZCUVhORkxFVkJRVVVzV1VGQldUczdTVUZGY2tZc1NVRkJTU3hUUVVGVExFZEJRVWNzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVNM1F5eEpRVUZKTEN0Q1FVRXJRaXg1UWtGQlFUdE5RVU5xUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzAxQlEzUkNMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1QwRkRia003VFVGRFJDeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTnNRaXhQUVVGUExHOUNRVUZCTEU5QlFVMHNSVUZCUVN4RFFVRkJMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkRMRU5CUVVNc1VVRkJRU3hGUVVGUkxFTkJRVVVzU1VGQlNTeERRVUZETEZkQlFWa3NRMEZCUlN4RFFVRkJPMDlCUTNCRk8wdEJRMFlzUTBGQlF5eERRVUZETzBsQlEwZ3NTVUZCU1N4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExHdENRVUZyUWp0TlFVTnlReXh2UWtGQlF5eFhRVUZYTEVWQlFVRXNRMEZCUVN4RFFVRkRMRTlCUVVFc1JVRkJUeXhEUVVGRkxGTkJRVmNzUTBGQlFTeEZRVUZCTzFGQlF5OUNMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkZMRU5CUVVFN1RVRkRka0lzUTBGQlFUdEJRVU53UWl4TFFVRkxMRU5CUVVNN08wbEJSVVlzU1VGQlNTeExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOeVJTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6VkVMRWxCUVVrc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03TzBGQlJYcERMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMSFZEUVVGMVF5eEZRVUZGTEZsQlFWazdPMGxCUlhSRUxFbEJRVWtzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrTXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdUVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0TlFVTjBRaXhYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJRMjVETzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVN1ZVRkRiRUlzVDBGQlR5eEZRVUZGTEVOQlFVTTdVMEZEV0R0UlFVTkVMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVjBGQldTeERRVUZGTEVOQlFVRTdUMEZEY0VVN1RVRkRSQ3hSUVVGUkxFVkJRVVVzV1VGQldUdFJRVU53UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eGxRVUZsTEVOQlFVTTdUMEZETlVNN1MwRkRSaXhEUVVGRExFTkJRVU03U1VGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeEpRVUZETEVWQlFVRTdVVUZEV0N4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVGRkxFTkJRVUU3VFVGRGJrTXNRMEZCUVR0QlFVTndRaXhMUVVGTExFTkJRVU03TzBsQlJVWXNTVUZCU1N4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRExDdENRVUVyUWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU55UlN4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzWlVGQlpTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNwRkxFbEJRVWtzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdPMEZCUlhaRExFZEJRVWNzUTBGQlF5eERRVUZET3p0QlFVVk1MRVZCUVVVc1JVRkJSU3hEUVVGRExHVkJRV1VzUlVGQlJTeFpRVUZaT3p0SlFVVTVRaXhKUVVGSkxFOUJRVThzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM3BETEVsQlFVa3NLMEpCUVN0Q0xIbENRVUZCTzAxQlEycERMRTFCUVUwc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdUVUZEZEVJc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVOdVF6dE5RVU5FTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTJ4Q0xFbEJRVWtzU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPMVZCUTJ4Q0xFOUJRVThzUlVGQlJTeERRVUZETzFOQlExZzdVVUZEUkN4UFFVRlBMRzlDUVVGQkxFOUJRVTBzUlVGQlFTeERRVUZCTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZETEVOQlFVTXNVVUZCUVN4RlFVRlJMRU5CUVVVc1NVRkJTU3hEUVVGRExGZEJRVmtzUTBGQlJTeERRVUZCTzA5QlEzQkZPMHRCUTBZc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTeEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRMR3RDUVVGclFqdE5RVU55UXl4dlFrRkJReXhYUVVGWExFVkJRVUVzU1VGQlF5eEZRVUZCTzFGQlExZ3NiMEpCUVVNc1UwRkJVeXhGUVVGQkxFTkJRVUVzUTBGQlF5eEpRVUZCTEVWQlFVa3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4WFFVRkJMRVZCUVZjc1EwRkJReXhUUVVGVExFTkJRVVVzUTBGQlFUdE5RVU0zUXl4RFFVRkJPMEZCUTNCQ0xFdEJRVXNzUTBGQlF6czdTVUZGUml4SlFVRkpMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zSzBKQlFTdENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzSkZMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUTBGQlF6dEpRVU4yUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNaRkxFbEJRVWtzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdPMEZCUlhaRExFZEJRVWNzUTBGQlF5eERRVUZET3p0QlFVVk1MRVZCUVVVc1JVRkJSU3hEUVVGRExHbENRVUZwUWl4RlFVRkZMRmxCUVZrN08wbEJSV2hETEVsQlFVa3NUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEZWtNc1NVRkJTU3dyUWtGQkswSXNlVUpCUVVFN1RVRkRha01zVFVGQlRTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJRenROUVVOMFFpeFhRVUZYTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1VVRkROVUlzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzA5QlEyNURPMDFCUTBRc1RVRkJUU3hGUVVGRkxGbEJRVms3VVVGRGJFSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVU3VlVGRGJFSXNUMEZCVHl4RlFVRkZMRU5CUVVNN1UwRkRXRHRSUVVORUxFOUJRVThzYjBKQlFVRXNUMEZCVFN4RlFVRkJMRU5CUVVFc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVNc1EwRkJReXhSUVVGQkxFVkJRVkVzUTBGQlJTeEpRVUZKTEVOQlFVTXNWMEZCV1N4RFFVRkZMRU5CUVVFN1QwRkRjRVU3UzBGRFJpeERRVUZETEVOQlFVTTdTVUZEU0N4SlFVRkpMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zYTBKQlFXdENPMDFCUTNKRExHOUNRVUZETEZkQlFWY3NSVUZCUVN4SlFVRkRMRVZCUVVFN1VVRkRXQ3h2UWtGQlF5eFRRVUZUTEVWQlFVRXNRMEZCUVN4RFFVRkRMRWxCUVVFc1JVRkJTU3hEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExGZEJRVUVzUlVGQlZ5eERRVUZETEZkQlFWY3NRMEZCUlN4RFFVRkJPMDFCUXk5RExFTkJRVUU3UVVGRGNFSXNTMEZCU3l4RFFVRkRPenRKUVVWR0xFbEJRVWtzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRja1VzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RFFVRkRPMGxCUTNaRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGREwwUXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenM3UVVGRmRrTXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNhVU5CUVdsRExFVkJRVVVzV1VGQldUczdTVUZGYUVRc1NVRkJTU3hQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVONlF5eEpRVUZKTEN0Q1FVRXJRaXg1UWtGQlFUdE5RVU5xUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzAxQlEzUkNMRmRCUVZjc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VDBGRE0wTTdUVUZEUkN4TlFVRk5MRVZCUVVVc1dVRkJXVHRSUVVOc1FpeEpRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRWUVVOc1FpeFBRVUZQTEVWQlFVVXNRMEZCUXp0VFFVTllPMUZCUTBRc1QwRkJUeXh2UWtGQlFTeFBRVUZOTEVWQlFVRXNRMEZCUVN4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUXl4RFFVRkRMRkZCUVVFc1JVRkJVU3hEUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZaTEVOQlFVVXNRMEZCUVR0UFFVTndSVHRMUVVOR0xFTkJRVU1zUTBGQlF6dEpRVU5JTEVsQlFVa3NTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSTdUVUZEY2tNc2IwSkJRVU1zVjBGQlZ5eEZRVUZCTEVsQlFVTXNSVUZCUVR0UlFVTllMRzlDUVVGRExGTkJRVk1zUlVGQlFTeERRVUZCTEVOQlFVTXNTVUZCUVN4RlFVRkpMRU5CUVVNc1MwRkJRU3hGUVVGTExFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVTXNTMEZCUVN4RlFVRkxMRU5CUVVNc1YwRkJRU3hGUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZGTEVOQlFVRTdUVUZETDBNc1EwRkJRVHRCUVVOd1FpeExRVUZMTEVOQlFVTTdPMGxCUlVZc1NVRkJTU3hMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETEN0Q1FVRXJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTnlSU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdTVUZEZGtNc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNdlJDeEpRVUZKTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RFFVRkRPenRCUVVWMlF5eEhRVUZITEVOQlFVTXNRMEZCUXpzN1FVRkZUQ3hGUVVGRkxFVkJRVVVzUTBGQlF5eHZSRUZCYjBRc1JVRkJSU3haUVVGWk96dEpRVVZ1UlN4SlFVRkpMRTlCUVU4c1IwRkJSeXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNwRExFbEJRVWtzSzBKQlFTdENMSGxDUVVGQk8wMUJRMnBETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VFVGRGRFSXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UFFVTnVRenROUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEyeENMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzFWQlEyeENMRTlCUVU4c1JVRkJSU3hEUVVGRE8xTkJRMWc3VVVGRFJDeFBRVUZQTEc5Q1FVRkJMRTlCUVUwc1JVRkJRU3hEUVVGQkxFTkJRVU1zUzBGQlFTeEZRVUZMTEVOQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRExFTkJRVU1zVVVGQlFTeEZRVUZSTEVOQlFVVXNTVUZCU1N4RFFVRkRMRmRCUVZrc1EwRkJSU3hEUVVGQk8wOUJRM0JGTzB0QlEwWXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEd0Q1FVRnJRanROUVVOeVF5eHZRa0ZCUXl4WFFVRlhMRVZCUVVFc1NVRkJReXhGUVVGQk8xRkJRMWdzYjBKQlFVTXNVMEZCVXl4RlFVRkJMRU5CUVVFc1EwRkJReXhKUVVGQkxFVkJRVWtzUTBGQlF5eExRVUZCTEVWQlFVc3NRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJReXhMUVVGQkxFVkJRVXNzUTBGQlF5eFhRVUZCTEVWQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVVc1EwRkJRVHROUVVNdlF5eERRVUZCTzBGQlEzQkNMRXRCUVVzc1EwRkJRenM3U1VGRlJpeEpRVUZKTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM0pGTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenRKUVVOMlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF5OUVMRWxCUVVrc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03TzBGQlJYWkRMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVZNTEVWQlFVVXNSVUZCUlN4RFFVRkRMSE5GUVVGelJTeEZRVUZGTEZsQlFWazdPMGxCUlhKR0xFbEJRVWtzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrTXNTVUZCU1N3clFrRkJLMElzZVVKQlFVRTdUVUZEYWtNc1RVRkJUU3hGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0TlFVTjBRaXhYUVVGWExFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJRMjVETzAxQlEwUXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVN1ZVRkRiRUlzVDBGQlR5eEZRVUZGTEVOQlFVTTdVMEZEV0R0UlFVTkVMRTlCUVU4c2IwSkJRVUVzVDBGQlRTeEZRVUZCTEVOQlFVRXNRMEZCUXl4TFFVRkJMRVZCUVVzc1EwRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVTXNRMEZCUXl4UlFVRkJMRVZCUVZFc1EwRkJSU3hKUVVGSkxFTkJRVU1zVjBGQldTeERRVUZGTEVOQlFVRTdUMEZEY0VVN1MwRkRSaXhEUVVGRExFTkJRVU03U1VGRFNDeEpRVUZKTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTzAxQlEzSkRMRzlDUVVGRExGZEJRVmNzUlVGQlFTeEpRVUZETEVWQlFVRTdVVUZEV0N4dlFrRkJReXhUUVVGVExFVkJRVUVzUTBGQlFTeERRVUZETEVsQlFVRXNSVUZCU1N4RFFVRkRMRXRCUVVFc1JVRkJTeXhEUVVGRExFdEJRVUVzUlVGQlN5eERRVUZETEV0QlFVRXNSVUZCU3l4RFFVRkRMRmRCUVVFc1JVRkJWeXhEUVVGRExGZEJRVmNzUTBGQlJTeERRVUZCTzAxQlF5OURMRU5CUVVFN1FVRkRjRUlzUzBGQlN5eERRVUZET3p0SlFVVkdMRWxCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEY2tVc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUlVGQlJTeERRVUZETzBsQlEzWkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRPVVFzU1VGQlNTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN08wRkJSVE5ETEVkQlFVY3NRMEZCUXl4RFFVRkRPenREUVVWS0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJblpoY2lCR2IzSnRjM2tnUFNCeVpYRjFhWEpsS0NjdUx5NHVMM055WXk5dFlXbHVMbXB6SnlrN1hHNWNibVJsYzJOeWFXSmxLQ2RXWVd4cFpHRjBhVzl1Snl3Z1puVnVZM1JwYjI0b0tTQjdYRzVjYmlBZ2FYUW9KM05vYjNWc1pDQjBjbWxuWjJWeUlHRnVJRzl1Vm1Gc2FXUWdhR0Z1Wkd4bGNpd2dhV1lnY0dGemMyVmtMQ0IzYUdWdUlHWnZjbTBnYVhNZ2RtRnNhV1FuTENCbWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQjJZWElnYjI1V1lXeHBaQ0E5SUdwaGMyMXBibVV1WTNKbFlYUmxVM0I1S0NkMllXeHBaQ2NwTzF4dUlDQWdJSFpoY2lCVVpYTjBTVzV3ZFhRZ1BTQlNaV0ZqZEM1amNtVmhkR1ZEYkdGemN5aDdYRzRnSUNBZ0lDQnRhWGhwYm5NNklGdEdiM0p0YzNrdVRXbDRhVzVkTEZ4dUlDQWdJQ0FnZFhCa1lYUmxWbUZzZFdVNklHWjFibU4wYVc5dUlDaGxkbVZ1ZENrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGWmhiSFZsS0dWMlpXNTBMblJoY21kbGRDNTJZV3gxWlNrN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQThhVzV3ZFhRZ2RtRnNkV1U5ZTNSb2FYTXVaMlYwVm1Gc2RXVW9LWDBnYjI1RGFHRnVaMlU5ZTNSb2FYTXVkWEJrWVhSbFZtRnNkV1Y5THo1Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JpQWdJQ0IyWVhJZ1ptOXliU0E5SUZSbGMzUlZkR2xzY3k1eVpXNWtaWEpKYm5SdlJHOWpkVzFsYm5Rb1hHNGdJQ0FnSUNBOFJtOXliWE41TGtadmNtMGdiMjVXWVd4cFpEMTdiMjVXWVd4cFpIMCtYRzRnSUNBZ0lDQWdJRHhVWlhOMFNXNXdkWFFnYm1GdFpUMWNJbVp2YjF3aUlISmxjWFZwY21Wa0x6NWNiaUFnSUNBZ0lEd3ZSbTl5YlhONUxrWnZjbTArWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSFpoY2lCcGJuQjFkQ0E5SUZSbGMzUlZkR2xzY3k1bWFXNWtVbVZ1WkdWeVpXUkVUMDFEYjIxd2IyNWxiblJYYVhSb1ZHRm5LR1p2Y20wc0lDZEpUbEJWVkNjcE8xeHVJQ0FnSUZSbGMzUlZkR2xzY3k1VGFXMTFiR0YwWlM1amFHRnVaMlVvYVc1d2RYUXNJSHQwWVhKblpYUTZJSHQyWVd4MVpUb2dKMlp2YnlkOWZTazdYRzRnSUNBZ1pYaHdaV04wS0c5dVZtRnNhV1FwTG5SdlNHRjJaVUpsWlc1RFlXeHNaV1FvS1R0Y2JseHVJQ0I5S1R0Y2JseHVJQ0JwZENnbmMyaHZkV3hrSUhSeWFXZG5aWElnWVc0Z2IyNUpiblpoYkdsa0lHaGhibVJzWlhJc0lHbG1JSEJoYzNObFpDd2dkMmhsYmlCbWIzSnRJR2x6SUdsdWRtRnNhV1FuTENCbWRXNWpkR2x2YmlBb0tTQjdYRzVjYmlBZ0lDQjJZWElnYjI1SmJuWmhiR2xrSUQwZ2FtRnpiV2x1WlM1amNtVmhkR1ZUY0hrb0oybHVkbUZzYVdRbktUdGNiaUFnSUNCMllYSWdWR1Z6ZEVsdWNIVjBJRDBnVW1WaFkzUXVZM0psWVhSbFEyeGhjM01vZTF4dUlDQWdJQ0FnYldsNGFXNXpPaUJiUm05eWJYTjVMazFwZUdsdVhTeGNiaUFnSUNBZ0lIVndaR0YwWlZaaGJIVmxPaUJtZFc1amRHbHZiaUFvWlhabGJuUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJXWVd4MVpTaGxkbVZ1ZEM1MFlYSm5aWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG5Wd1pHRjBaVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0SUc5dVZtRnNhV1E5ZTI5dVNXNTJZV3hwWkgwK1hHNGdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpSUhaaGJIVmxQVndpWm05dlhDSXZQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnZG1GeUlHbHVjSFYwSUQwZ1ZHVnpkRlYwYVd4ekxtWnBibVJTWlc1a1pYSmxaRVJQVFVOdmJYQnZibVZ1ZEZkcGRHaFVZV2NvWm05eWJTd2dKMGxPVUZWVUp5azdYRzRnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExtTm9ZVzVuWlNocGJuQjFkQ3dnZTNSaGNtZGxkRG9nZTNaaGJIVmxPaUFuSjMxOUtUdGNiaUFnSUNCbGVIQmxZM1FvYjI1SmJuWmhiR2xrS1M1MGIwaGhkbVZDWldWdVEyRnNiR1ZrS0NrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0ozTm9iM1ZzWkNCMWMyVWdjSEp2ZG1sa1pXUWdkbUZzYVdSaGRHVWdablZ1WTNScGIyNG5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCMllYSWdhWE5XWVd4cFpDQTlJR3BoYzIxcGJtVXVZM0psWVhSbFUzQjVLQ2QyWVd4cFpDY3BPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdkWEJrWVhSbFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtbHpWbUZzYVdRb0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdselZtRnNhV1FvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxuVndaR0YwWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnZG1Gc2FXUmhkR1U2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WjJWMFZtRnNkV1VvS1NBOVBUMGdYQ0pqYUdWamExWmhiR2xrYVhSNVhDSTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbU5vWldOclNXNTJZV3hwWkdsMGVWd2lMejVjYmlBZ0lDQWdJRHd2Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhaaGNpQnBibkIxZENBOUlGUmxjM1JWZEdsc2N5NW1hVzVrVW1WdVpHVnlaV1JFVDAxRGIyMXdiMjVsYm5SWGFYUm9WR0ZuS0dadmNtMHNJQ2RKVGxCVlZDY3BPMXh1SUNBZ0lGUmxjM1JWZEdsc2N5NVRhVzExYkdGMFpTNWphR0Z1WjJVb2FXNXdkWFFzSUh0MFlYSm5aWFE2SUh0MllXeDFaVG9nSjJOb1pXTnJWbUZzYVdScGRIa25mWDBwTzF4dUlDQWdJR1Y0Y0dWamRDaHBjMVpoYkdsa0tTNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa0tDazdYRzVjYmlBZ2ZTazdYRzVjYmlBZ2FYUW9KMUpWVEVVNklHbHpSVzFoYVd3bkxDQm1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0IyWVhJZ2FYTldZV3hwWkNBOUlHcGhjMjFwYm1VdVkzSmxZWFJsVTNCNUtDZDJZV3hwWkNjcE8xeHVJQ0FnSUhaaGNpQlVaWE4wU1c1d2RYUWdQU0JTWldGamRDNWpjbVZoZEdWRGJHRnpjeWg3WEc0Z0lDQWdJQ0J0YVhocGJuTTZJRnRHYjNKdGMza3VUV2w0YVc1ZExGeHVJQ0FnSUNBZ2RYQmtZWFJsVm1Gc2RXVTZJR1oxYm1OMGFXOXVJQ2hsZG1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRlpoYkhWbEtHVjJaVzUwTG5SaGNtZGxkQzUyWVd4MVpTazdYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdjbVZ1WkdWeU9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1selZtRnNhV1FvS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6Vm1Gc2FXUW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnUEdsdWNIVjBJSFpoYkhWbFBYdDBhR2x6TG1kbGRGWmhiSFZsS0NsOUlHOXVRMmhoYm1kbFBYdDBhR2x6TG5Wd1pHRjBaVlpoYkhWbGZTOCtYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2RtRnlJR1p2Y20wZ1BTQlVaWE4wVlhScGJITXVjbVZ1WkdWeVNXNTBiMFJ2WTNWdFpXNTBLRnh1SUNBZ0lDQWdQRVp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ0FnSUNBOFZHVnpkRWx1Y0hWMElHNWhiV1U5WENKbWIyOWNJaUIyWVd4MVpUMWNJbVp2YjF3aUlIWmhiR2xrWVhScGIyNXpQVndpYVhORmJXRnBiRndpTHo1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNibHh1SUNBZ0lIWmhjaUJwYm5CMWRDQTlJRlJsYzNSVmRHbHNjeTVtYVc1a1VtVnVaR1Z5WldSRVQwMURiMjF3YjI1bGJuUlhhWFJvVkdGbktHWnZjbTBzSUNkSlRsQlZWQ2NwTzF4dUlDQWdJR1Y0Y0dWamRDaHBjMVpoYkdsa0tTNXViM1F1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9hVzV3ZFhRc0lIdDBZWEpuWlhRNklIdDJZV3gxWlRvZ0oyWnZiMEJtYjI4dVkyOXRKMzE5S1R0Y2JpQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VkRzlJWVhabFFtVmxia05oYkd4bFpDZ3BPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2RTVlV4Rk9pQnBjMDUxYldWeWFXTW5MQ0JtZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNCMllYSWdhWE5XWVd4cFpDQTlJR3BoYzIxcGJtVXVZM0psWVhSbFUzQjVLQ2QyWVd4cFpDY3BPMXh1SUNBZ0lIWmhjaUJVWlhOMFNXNXdkWFFnUFNCU1pXRmpkQzVqY21WaGRHVkRiR0Z6Y3loN1hHNGdJQ0FnSUNCdGFYaHBibk02SUZ0R2IzSnRjM2t1VFdsNGFXNWRMRnh1SUNBZ0lDQWdkWEJrWVhSbFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZaaGJIVmxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnY21WdVpHVnlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtbHpWbUZzYVdRb0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdselZtRnNhV1FvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1BHbHVjSFYwSUhaaGJIVmxQWHQwYUdsekxtZGxkRlpoYkhWbEtDbDlJRzl1UTJoaGJtZGxQWHQwYUdsekxuVndaR0YwWlZaaGJIVmxmUzgrWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdkbUZ5SUdadmNtMGdQU0JVWlhOMFZYUnBiSE11Y21WdVpHVnlTVzUwYjBSdlkzVnRaVzUwS0Z4dUlDQWdJQ0FnUEVadmNtMXplUzVHYjNKdFBseHVJQ0FnSUNBZ0lDQThWR1Z6ZEVsdWNIVjBJRzVoYldVOVhDSm1iMjljSWlCMllXeDFaVDFjSW1admIxd2lJSFpoYkdsa1lYUnBiMjV6UFZ3aWFYTk9kVzFsY21salhDSXZQbHh1SUNBZ0lDQWdQQzlHYjNKdGMza3VSbTl5YlQ1Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnZG1GeUlHbHVjSFYwSUQwZ1ZHVnpkRlYwYVd4ekxtWnBibVJTWlc1a1pYSmxaRVJQVFVOdmJYQnZibVZ1ZEZkcGRHaFVZV2NvWm05eWJTd2dKMGxPVUZWVUp5azdYRzRnSUNBZ1pYaHdaV04wS0dselZtRnNhV1FwTG01dmRDNTBiMGhoZG1WQ1pXVnVRMkZzYkdWa0tDazdYRzRnSUNBZ1ZHVnpkRlYwYVd4ekxsTnBiWFZzWVhSbExtTm9ZVzVuWlNocGJuQjFkQ3dnZTNSaGNtZGxkRG9nZTNaaGJIVmxPaUFuTVRJekozMTlLVHRjYmlBZ0lDQmxlSEJsWTNRb2FYTldZV3hwWkNrdWRHOUlZWFpsUW1WbGJrTmhiR3hsWkNncE8xeHVYRzRnSUgwcE8xeHVYRzRnSUdsMEtDZFNWVXhGT2lCcGMwNTFiV1Z5YVdNZ0tHRmpkSFZoYkNCdWRXMWlaWElwSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1WEc0Z0lDQWdkbUZ5SUdselZtRnNhV1FnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNnbmRtRnNhV1FuS1R0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUhWd1pHRjBaVlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNoT2RXMWlaWElvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1NrN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2NtVnVaR1Z5T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbWx6Vm1Gc2FXUW9LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbHpWbUZzYVdRb0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2x1Y0hWMElIWmhiSFZsUFh0MGFHbHpMbWRsZEZaaGJIVmxLQ2w5SUc5dVEyaGhibWRsUFh0MGFHbHpMblZ3WkdGMFpWWmhiSFZsZlM4K1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJQ0FnZG1GeUlHWnZjbTBnUFNCVVpYTjBWWFJwYkhNdWNtVnVaR1Z5U1c1MGIwUnZZM1Z0Wlc1MEtGeHVJQ0FnSUNBZ1BFWnZjbTF6ZVM1R2IzSnRQbHh1SUNBZ0lDQWdJQ0E4VkdWemRFbHVjSFYwSUc1aGJXVTlYQ0ptYjI5Y0lpQjJZV3gxWlQxY0ltWnZiMXdpSUhaaGJHbGtZWFJwYjI1elBWd2lhWE5PZFcxbGNtbGpYQ0l2UGx4dUlDQWdJQ0FnUEM5R2IzSnRjM2t1Um05eWJUNWNiaUFnSUNBcE8xeHVYRzRnSUNBZ2RtRnlJR2x1Y0hWMElEMGdWR1Z6ZEZWMGFXeHpMbVpwYm1SU1pXNWtaWEpsWkVSUFRVTnZiWEJ2Ym1WdWRGZHBkR2hVWVdjb1ptOXliU3dnSjBsT1VGVlVKeWs3WEc0Z0lDQWdaWGh3WldOMEtHbHpWbUZzYVdRcExtNXZkQzUwYjBoaGRtVkNaV1Z1UTJGc2JHVmtLQ2s3WEc0Z0lDQWdWR1Z6ZEZWMGFXeHpMbE5wYlhWc1lYUmxMbU5vWVc1blpTaHBibkIxZEN3Z2UzUmhjbWRsZERvZ2UzWmhiSFZsT2lBbk1USXpKMzE5S1R0Y2JpQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VkRzlJWVhabFFtVmxia05oYkd4bFpDZ3BPMXh1WEc0Z0lIMHBPMXh1WEc0Z0lHbDBLQ2RTVlV4Rk9pQnBjMDUxYldWeWFXTWdLSE4wY21sdVp5QnlaWEJ5WlhObGJuUmhkR2x2YmlCdlppQmhJR1pzYjJGMEtTY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseHVJQ0FnSUhaaGNpQnBjMVpoYkdsa0lEMGdhbUZ6YldsdVpTNWpjbVZoZEdWVGNIa29KM1poYkdsa0p5azdYRzRnSUNBZ2RtRnlJRlJsYzNSSmJuQjFkQ0E5SUZKbFlXTjBMbU55WldGMFpVTnNZWE56S0h0Y2JpQWdJQ0FnSUcxcGVHbHVjem9nVzBadmNtMXplUzVOYVhocGJsMHNYRzRnSUNBZ0lDQjFjR1JoZEdWV1lXeDFaVG9nWm5WdVkzUnBiMjRnS0dWMlpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVm1Gc2RXVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J5Wlc1a1pYSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWFYTldZV3hwWkNncEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVhOV1lXeHBaQ2dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBOGFXNXdkWFFnZG1Gc2RXVTllM1JvYVhNdVoyVjBWbUZzZFdVb0tYMGdiMjVEYUdGdVoyVTllM1JvYVhNdWRYQmtZWFJsVm1Gc2RXVjlMejVjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQjJZWElnWm05eWJTQTlJRlJsYzNSVmRHbHNjeTV5Wlc1a1pYSkpiblJ2Ukc5amRXMWxiblFvWEc0Z0lDQWdJQ0E4Um05eWJYTjVMa1p2Y20wK1hHNGdJQ0FnSUNBZ0lEeFVaWE4wU1c1d2RYUWdibUZ0WlQxY0ltWnZiMXdpSUhaaGJIVmxQVndpWm05dlhDSWdkbUZzYVdSaGRHbHZibk05WENKcGMwNTFiV1Z5YVdOY0lpOCtYRzRnSUNBZ0lDQThMMFp2Y20xemVTNUdiM0p0UGx4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0IyWVhJZ2FXNXdkWFFnUFNCVVpYTjBWWFJwYkhNdVptbHVaRkpsYm1SbGNtVmtSRTlOUTI5dGNHOXVaVzUwVjJsMGFGUmhaeWhtYjNKdExDQW5TVTVRVlZRbktUdGNiaUFnSUNCbGVIQmxZM1FvYVhOV1lXeHBaQ2t1Ym05MExuUnZTR0YyWlVKbFpXNURZV3hzWldRb0tUdGNiaUFnSUNCVVpYTjBWWFJwYkhNdVUybHRkV3hoZEdVdVkyaGhibWRsS0dsdWNIVjBMQ0I3ZEdGeVoyVjBPaUI3ZG1Gc2RXVTZJQ2N4TGpVbmZYMHBPMXh1SUNBZ0lHVjRjR1ZqZENocGMxWmhiR2xrS1M1MGIwaGhkbVZDWldWdVEyRnNiR1ZrS0NrN1hHNWNiaUFnZlNrN1hHNWNiaUFnYVhRb0oxSlZURVU2SUdselRuVnRaWEpwWXlCcGN5Qm1ZV3h6WlNBb2MzUnlhVzVuSUhKbGNISmxjMlZ1ZEdGMGFXOXVJRzltSUdGdUlHbHVkbUZzYVdRZ1pteHZZWFFwSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1WEc0Z0lDQWdkbUZ5SUdselZtRnNhV1FnUFNCcVlYTnRhVzVsTG1OeVpXRjBaVk53ZVNnbmRtRnNhV1FuS1R0Y2JpQWdJQ0IyWVhJZ1ZHVnpkRWx1Y0hWMElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNBZ0lDQWdiV2w0YVc1ek9pQmJSbTl5YlhONUxrMXBlR2x1WFN4Y2JpQWdJQ0FnSUhWd1pHRjBaVlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9aWFpsYm5RcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNobGRtVnVkQzUwWVhKblpYUXVkbUZzZFdVcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lISmxibVJsY2pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVwYzFaaGJHbGtLQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBjMVpoYkdsa0tDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRHhwYm5CMWRDQjJZV3gxWlQxN2RHaHBjeTVuWlhSV1lXeDFaU2dwZlNCdmJrTm9ZVzVuWlQxN2RHaHBjeTUxY0dSaGRHVldZV3gxWlgwdlBseHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVJQ0FnSUhaaGNpQm1iM0p0SUQwZ1ZHVnpkRlYwYVd4ekxuSmxibVJsY2tsdWRHOUViMk4xYldWdWRDaGNiaUFnSUNBZ0lEeEdiM0p0YzNrdVJtOXliVDVjYmlBZ0lDQWdJQ0FnUEZSbGMzUkpibkIxZENCdVlXMWxQVndpWm05dlhDSWdkbUZzZFdVOVhDSm1iMjljSWlCMllXeHBaR0YwYVc5dWN6MWNJbWx6VG5WdFpYSnBZMXdpTHo1Y2JpQWdJQ0FnSUR3dlJtOXliWE41TGtadmNtMCtYRzRnSUNBZ0tUdGNibHh1SUNBZ0lIWmhjaUJwYm5CMWRDQTlJRlJsYzNSVmRHbHNjeTVtYVc1a1VtVnVaR1Z5WldSRVQwMURiMjF3YjI1bGJuUlhhWFJvVkdGbktHWnZjbTBzSUNkSlRsQlZWQ2NwTzF4dUlDQWdJR1Y0Y0dWamRDaHBjMVpoYkdsa0tTNXViM1F1ZEc5SVlYWmxRbVZsYmtOaGJHeGxaQ2dwTzF4dUlDQWdJRlJsYzNSVmRHbHNjeTVUYVcxMWJHRjBaUzVqYUdGdVoyVW9hVzV3ZFhRc0lIdDBZWEpuWlhRNklIdDJZV3gxWlRvZ0p6RXVKMzE5S1R0Y2JpQWdJQ0JsZUhCbFkzUW9hWE5XWVd4cFpDa3VibTkwTG5SdlNHRjJaVUpsWlc1RFlXeHNaV1FvS1R0Y2JseHVJQ0I5S1R0Y2JseHVmU2s3WEc0aVhYMD0iLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZhbHVlID0gJ3ZhbHVlJyBpbiB0aGlzLnByb3BzID8gdGhpcy5wcm9wcy52YWx1ZSA6ICcnO1xuICAgIHJldHVybiB7XG4gICAgICBfdmFsdWU6IHZhbHVlLFxuICAgICAgX2lzVmFsaWQ6IHRydWUsXG4gICAgICBfaXNQcmlzdGluZTogdHJ1ZSxcbiAgICAgIF9wcmlzdGluZVZhbHVlOiB2YWx1ZVxuICAgIH07XG4gIH0sXG4gIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyIGNvbmZpZ3VyZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbnModGhpcy5wcm9wcy52YWxpZGF0aW9ucywgdGhpcy5wcm9wcy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm0odGhpcyk7XG4gICAgfS5iaW5kKHRoaXMpO1xuXG4gICAgaWYgKCF0aGlzLnByb3BzLm5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRm9ybSBJbnB1dCByZXF1aXJlcyBhIG5hbWUgcHJvcGVydHkgd2hlbiB1c2VkJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm0pIHtcbiAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW91bnRlZCgpKSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb3JtIE1peGluIHJlcXVpcmVzIGNvbXBvbmVudCB0byBiZSBuZXN0ZWQgaW4gYSBGb3JtJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uZmlndXJlKCk7XG4gICAgICB9LmJpbmQodGhpcyksIDApO1xuICAgIH1cbiAgICBjb25maWd1cmUoKTtcblxuICB9LFxuXG4gIC8vIFdlIGhhdmUgdG8gbWFrZSB0aGUgdmFsaWRhdGUgbWV0aG9kIGlzIGtlcHQgd2hlbiBuZXcgcHJvcHMgYXJlIGFkZGVkXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIChuZXh0UHJvcHMpIHtcbiAgICBuZXh0UHJvcHMuX2F0dGFjaFRvRm9ybSA9IHRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybTtcbiAgICBuZXh0UHJvcHMuX2RldGFjaEZyb21Gb3JtID0gdGhpcy5wcm9wcy5fZGV0YWNoRnJvbUZvcm07XG4gICAgbmV4dFByb3BzLl92YWxpZGF0ZSA9IHRoaXMucHJvcHMuX3ZhbGlkYXRlO1xuICAgIG5leHRQcm9wcy5faXNWYWxpZFZhbHVlID0gdGhpcy5wcm9wcy5faXNWYWxpZFZhbHVlO1xuICAgIG5leHRQcm9wcy5faXNGb3JtRGlzYWJsZWQgPSB0aGlzLnByb3BzLl9pc0Zvcm1EaXNhYmxlZDtcbiAgICB0aGlzLnNldFZhbGlkYXRpb25zKG5leHRQcm9wcy52YWxpZGF0aW9ucywgbmV4dFByb3BzLnJlcXVpcmVkKTtcbiAgfSxcblxuICBjb21wb25lbnREaWRVcGRhdGU6IGZ1bmN0aW9uIChwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuXG4gICAgdmFyIGlzVmFsdWVDaGFuZ2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgXG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLnByb3BzLnZhbHVlICE9PSBwcmV2UHJvcHMudmFsdWUgJiYgKFxuICAgICAgICAgIHRoaXMuc3RhdGUuX3ZhbHVlID09PSBwcmV2UHJvcHMudmFsdWUgfHxcblxuICAgICAgICAgIC8vIFNpbmNlIHVuZGVmaW5lZCBpcyBjb252ZXJ0ZWQgdG8gZW1wdHkgc3RyaW5nIHdlIGhhdmUgdG9cbiAgICAgICAgICAvLyBjaGVjayB0aGF0IHNwZWNpZmljYWxseVxuICAgICAgICAgICh0aGlzLnN0YXRlLl92YWx1ZSA9PT0gJycgJiYgcHJldlByb3BzLnZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICB9LmJpbmQodGhpcyk7XG5cblxuICAgIC8vIElmIHZhbGlkYXRpb25zIGhhcyBjaGFuZ2VkIG9yIHNvbWV0aGluZyBvdXRzaWRlIGNoYW5nZXMgXG4gICAgLy8gdGhlIHZhbHVlLCBzZXQgdGhlIHZhbHVlIGFnYWluIHJ1bm5pbmcgYSB2YWxpZGF0aW9uXG5cbiAgICBpZiAocHJldlByb3BzLnZhbGlkYXRpb25zICE9PSB0aGlzLnByb3BzLnZhbGlkYXRpb25zIHx8IGlzVmFsdWVDaGFuZ2VkKCkpIHtcbiAgICAgIHZhciB2YWx1ZSA9ICd2YWx1ZScgaW4gdGhpcy5wcm9wcyA/IHRoaXMucHJvcHMudmFsdWUgOiAnJztcbiAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfSxcblxuICAvLyBEZXRhY2ggaXQgd2hlbiBjb21wb25lbnQgdW5tb3VudHNcbiAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnByb3BzLl9kZXRhY2hGcm9tRm9ybSh0aGlzKTtcbiAgfSxcblxuICBzZXRWYWxpZGF0aW9uczogZnVuY3Rpb24gKHZhbGlkYXRpb25zLCByZXF1aXJlZCkge1xuXG4gICAgLy8gQWRkIHZhbGlkYXRpb25zIHRvIHRoZSBzdG9yZSBpdHNlbGYgYXMgdGhlIHByb3BzIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkXG4gICAgdGhpcy5fdmFsaWRhdGlvbnMgPSB2YWxpZGF0aW9ucyB8fCAnJztcblxuICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbnMgPSB2YWxpZGF0aW9ucyA/IHZhbGlkYXRpb25zICsgJywnIDogJyc7XG4gICAgICB0aGlzLl92YWxpZGF0aW9ucyArPSAnaXNWYWx1ZSc7XG4gICAgfVxuXG4gIH0sXG5cbiAgLy8gV2UgdmFsaWRhdGUgYWZ0ZXIgdGhlIHZhbHVlIGhhcyBiZWVuIHNldFxuICBzZXRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBfdmFsdWU6IHZhbHVlLFxuICAgICAgX2lzUHJpc3RpbmU6IGZhbHNlXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5wcm9wcy5fdmFsaWRhdGUodGhpcyk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcbiAgcmVzZXRWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgX3ZhbHVlOiB0aGlzLnN0YXRlLl9wcmlzdGluZVZhbHVlLFxuICAgICAgX2lzUHJpc3RpbmU6IHRydWVcbiAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLnByb3BzLl92YWxpZGF0ZSh0aGlzKTtcbiAgICB9KTtcbiAgfSxcbiAgZ2V0VmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5fdmFsdWU7XG4gIH0sXG4gIGhhc1ZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX3ZhbHVlICE9PSAnJztcbiAgfSxcbiAgZ2V0RXJyb3JNZXNzYWdlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpIHx8IHRoaXMuc2hvd1JlcXVpcmVkKCkgPyBudWxsIDogdGhpcy5zdGF0ZS5fc2VydmVyRXJyb3IgfHwgdGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3I7XG4gIH0sXG4gIGlzRm9ybURpc2FibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuX2lzRm9ybURpc2FibGVkKCk7XG4gIH0sXG4gIGlzVmFsaWQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5faXNWYWxpZDtcbiAgfSxcbiAgaXNQcmlzdGluZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLl9pc1ByaXN0aW5lO1xuICB9LFxuICBpc1JlcXVpcmVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5wcm9wcy5yZXF1aXJlZDtcbiAgfSxcbiAgc2hvd1JlcXVpcmVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZXF1aXJlZCgpICYmIHRoaXMuc3RhdGUuX3ZhbHVlID09PSAnJztcbiAgfSxcbiAgc2hvd0Vycm9yOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICF0aGlzLnNob3dSZXF1aXJlZCgpICYmICF0aGlzLnN0YXRlLl9pc1ZhbGlkO1xuICB9LFxuICBpc1ZhbGlkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLl9pc1ZhbGlkVmFsdWUuY2FsbChudWxsLCB0aGlzLCB2YWx1ZSk7XG4gIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdlRXbDRhVzR1YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTlWYzJWeWN5OWphSEpwYzNScFlXNWhiR1p2Ym1rdlJHOWpkVzFsYm5SekwyUmxkaTltYjNKdGMza3RjbVZoWTNRdmMzSmpMMDFwZUdsdUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWRCUVVjN1JVRkRaaXhsUVVGbExFVkJRVVVzV1VGQldUdEpRVU16UWl4SlFVRkpMRXRCUVVzc1IwRkJSeXhQUVVGUExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZETVVRc1QwRkJUenROUVVOTUxFMUJRVTBzUlVGQlJTeExRVUZMTzAxQlEySXNVVUZCVVN4RlFVRkZMRWxCUVVrN1RVRkRaQ3hYUVVGWExFVkJRVVVzU1VGQlNUdE5RVU5xUWl4alFVRmpMRVZCUVVVc1MwRkJTenRMUVVOMFFpeERRVUZETzBkQlEwZzdRVUZEU0N4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEZsQlFWazdPMGxCUlRsQ0xFbEJRVWtzVTBGQlV5eEhRVUZITEZsQlFWazdUVUZETVVJc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMDFCUTJwRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRM0pETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03TzBsQlJXSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTzAxQlEzQkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zSzBOQlFTdERMRU5CUVVNc1EwRkJRenRCUVVOMlJTeExRVUZMT3p0SlFVVkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdGQlFXRXNSVUZCUlR0TlFVTTNRaXhQUVVGUExGVkJRVlVzUTBGQlF5eFpRVUZaTzFGQlF6VkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNUMEZCVHp0UlFVTTVRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4aFFVRmhMRVZCUVVVN1ZVRkROMElzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4elJFRkJjMFFzUTBGQlF5eERRVUZETzFOQlEzcEZPMUZCUTBRc1UwRkJVeXhGUVVGRkxFTkJRVU03VDBGRFlpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5zUWp0QlFVTk1MRWxCUVVrc1UwRkJVeXhGUVVGRkxFTkJRVU03TzBGQlJXaENMRWRCUVVjN1FVRkRTRHM3UlVGRlJTeDVRa0ZCZVVJc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdEpRVU01UXl4VFFVRlRMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRPMGxCUTI1RUxGTkJRVk1zUTBGQlF5eGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU03U1VGRGRrUXNVMEZCVXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXp0SlFVTXpReXhUUVVGVExFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRE8wbEJRMjVFTEZOQlFWTXNRMEZCUXl4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTTdTVUZEZGtRc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFRRVUZUTEVOQlFVTXNWMEZCVnl4RlFVRkZMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU51UlN4SFFVRkhPenRCUVVWSUxFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1ZVRkJWU3hUUVVGVExFVkJRVVVzVTBGQlV5eEZRVUZGT3p0QlFVVjBSQ3hKUVVGSkxFbEJRVWtzWTBGQll5eEhRVUZITEZsQlFWazdPMDFCUlM5Q08xRkJRMFVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRXRCUVVzc1UwRkJVeXhEUVVGRExFdEJRVXM3UVVGRE5VTXNWVUZCVlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUzBGQlN5eFRRVUZUTEVOQlFVTXNTMEZCU3p0QlFVTXZRenRCUVVOQk96dFhRVVZYTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hMUVVGTExFVkJRVVVzU1VGQlNTeFRRVUZUTEVOQlFVTXNTMEZCU3l4TFFVRkxMRk5CUVZNc1EwRkJRenRUUVVNMVJEdEJRVU5VTEZGQlFWRTdPMEZCUlZJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTnFRanRCUVVOQk8wRkJRMEU3UVVGRFFUczdTVUZGU1N4SlFVRkpMRk5CUVZNc1EwRkJReXhYUVVGWExFdEJRVXNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRWxCUVVrc1kwRkJZeXhGUVVGRkxFVkJRVVU3VFVGRGVFVXNTVUZCU1N4TFFVRkxMRWRCUVVjc1QwRkJUeXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzAxQlF6RkVMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTMEZEZEVJN1FVRkRUQ3hIUVVGSE8wRkJRMGc3TzBWQlJVVXNiMEpCUVc5Q0xFVkJRVVVzV1VGQldUdEpRVU5vUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTnlReXhIUVVGSE96dEJRVVZJTEVWQlFVVXNZMEZCWXl4RlFVRkZMRlZCUVZVc1YwRkJWeXhGUVVGRkxGRkJRVkVzUlVGQlJUdEJRVU51UkRzN1FVRkZRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NWMEZCVnl4SlFVRkpMRVZCUVVVc1EwRkJRenM3U1VGRmRFTXNTVUZCU1N4UlFVRlJMRVZCUVVVN1RVRkRXaXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEZkQlFWY3NSMEZCUnl4WFFVRlhMRWRCUVVjc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF6dE5RVU42UkN4SlFVRkpMRU5CUVVNc1dVRkJXU3hKUVVGSkxGTkJRVk1zUTBGQlF6dEJRVU55UXl4TFFVRkxPenRCUVVWTUxFZEJRVWM3UVVGRFNEczdSVUZGUlN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRGVrSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenROUVVOYUxFMUJRVTBzUlVGQlJTeExRVUZMTzAxQlEySXNWMEZCVnl4RlFVRkZMRXRCUVVzN1MwRkRia0lzUlVGQlJTeFpRVUZaTzAxQlEySXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZETlVJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0SFFVTm1PMFZCUTBRc1ZVRkJWU3hGUVVGRkxGbEJRVms3U1VGRGRFSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenROUVVOYUxFMUJRVTBzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR05CUVdNN1RVRkRha01zVjBGQlZ5eEZRVUZGTEVsQlFVazdTMEZEYkVJc1JVRkJSU3haUVVGWk8wMUJRMklzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE5VSXNRMEZCUXl4RFFVRkRPMGRCUTBvN1JVRkRSQ3hSUVVGUkxFVkJRVVVzV1VGQldUdEpRVU53UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETzBkQlF6RkNPMFZCUTBRc1VVRkJVU3hGUVVGRkxGbEJRVms3U1VGRGNFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUzBGQlN5eEZRVUZGTEVOQlFVTTdSMEZEYWtNN1JVRkRSQ3hsUVVGbExFVkJRVVVzV1VGQldUdEpRVU16UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWRCUVVjc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeERRVUZETzBkQlF6ZEhPMFZCUTBRc1kwRkJZeXhGUVVGRkxGbEJRVms3U1VGRE1VSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzUlVGQlJTeERRVUZETzBkQlEzSkRPMFZCUTBRc1QwRkJUeXhGUVVGRkxGbEJRVms3U1VGRGJrSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF6dEhRVU0xUWp0RlFVTkVMRlZCUVZVc1JVRkJSU3haUVVGWk8wbEJRM1JDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU03UjBGREwwSTdSVUZEUkN4VlFVRlZMRVZCUVVVc1dVRkJXVHRKUVVOMFFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF6dEhRVU01UWp0RlFVTkVMRmxCUVZrc1JVRkJSU3haUVVGWk8wbEJRM2hDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4TFFVRkxMRVZCUVVVc1EwRkJRenRIUVVOMFJEdEZRVU5FTEZOQlFWTXNSVUZCUlN4WlFVRlpPMGxCUTNKQ0xFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXp0SFFVTnlSRHRGUVVORUxGbEJRVmtzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlR0SlFVTTNRaXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMGRCUTNwRU8wTkJRMFlzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdlMXh1SUNCblpYUkpibWwwYVdGc1UzUmhkR1U2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCMllYSWdkbUZzZFdVZ1BTQW5kbUZzZFdVbklHbHVJSFJvYVhNdWNISnZjSE1nUHlCMGFHbHpMbkJ5YjNCekxuWmhiSFZsSURvZ0p5YzdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUY5MllXeDFaVG9nZG1Gc2RXVXNYRzRnSUNBZ0lDQmZhWE5XWVd4cFpEb2dkSEoxWlN4Y2JpQWdJQ0FnSUY5cGMxQnlhWE4wYVc1bE9pQjBjblZsTEZ4dUlDQWdJQ0FnWDNCeWFYTjBhVzVsVm1Gc2RXVTZJSFpoYkhWbFhHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ1kyOXRjRzl1Wlc1MFYybHNiRTF2ZFc1ME9pQm1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0IyWVhJZ1kyOXVabWxuZFhKbElEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXpaWFJXWVd4cFpHRjBhVzl1Y3loMGFHbHpMbkJ5YjNCekxuWmhiR2xrWVhScGIyNXpMQ0IwYUdsekxuQnliM0J6TG5KbGNYVnBjbVZrS1R0Y2JpQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdVgyRjBkR0ZqYUZSdlJtOXliU2gwYUdsektUdGNiaUFnSUNCOUxtSnBibVFvZEdocGN5azdYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXVjSEp2Y0hNdWJtRnRaU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RHYjNKdElFbHVjSFYwSUhKbGNYVnBjbVZ6SUdFZ2JtRnRaU0J3Y205d1pYSjBlU0IzYUdWdUlIVnpaV1FuS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11Y0hKdmNITXVYMkYwZEdGamFGUnZSbTl5YlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhObGRGUnBiV1Z2ZFhRb1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lYUm9hWE11YVhOTmIzVnVkR1ZrS0NrcElISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxuQnliM0J6TGw5aGRIUmhZMmhVYjBadmNtMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjBadmNtMGdUV2w0YVc0Z2NtVnhkV2x5WlhNZ1kyOXRjRzl1Wlc1MElIUnZJR0psSUc1bGMzUmxaQ0JwYmlCaElFWnZjbTBuS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpiMjVtYVdkMWNtVW9LVHRjYmlBZ0lDQWdJSDB1WW1sdVpDaDBhR2x6S1N3Z01DazdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJtWnBaM1Z5WlNncE8xeHVYRzRnSUgwc1hHNWNiaUFnTHk4Z1YyVWdhR0YyWlNCMGJ5QnRZV3RsSUhSb1pTQjJZV3hwWkdGMFpTQnRaWFJvYjJRZ2FYTWdhMlZ3ZENCM2FHVnVJRzVsZHlCd2NtOXdjeUJoY21VZ1lXUmtaV1JjYmlBZ1kyOXRjRzl1Wlc1MFYybHNiRkpsWTJWcGRtVlFjbTl3Y3pvZ1puVnVZM1JwYjI0Z0tHNWxlSFJRY205d2N5a2dlMXh1SUNBZ0lHNWxlSFJRY205d2N5NWZZWFIwWVdOb1ZHOUdiM0p0SUQwZ2RHaHBjeTV3Y205d2N5NWZZWFIwWVdOb1ZHOUdiM0p0TzF4dUlDQWdJRzVsZUhSUWNtOXdjeTVmWkdWMFlXTm9Sbkp2YlVadmNtMGdQU0IwYUdsekxuQnliM0J6TGw5a1pYUmhZMmhHY205dFJtOXliVHRjYmlBZ0lDQnVaWGgwVUhKdmNITXVYM1poYkdsa1lYUmxJRDBnZEdocGN5NXdjbTl3Y3k1ZmRtRnNhV1JoZEdVN1hHNGdJQ0FnYm1WNGRGQnliM0J6TGw5cGMxWmhiR2xrVm1Gc2RXVWdQU0IwYUdsekxuQnliM0J6TGw5cGMxWmhiR2xrVm1Gc2RXVTdYRzRnSUNBZ2JtVjRkRkJ5YjNCekxsOXBjMFp2Y20xRWFYTmhZbXhsWkNBOUlIUm9hWE11Y0hKdmNITXVYMmx6Um05eWJVUnBjMkZpYkdWa08xeHVJQ0FnSUhSb2FYTXVjMlYwVm1Gc2FXUmhkR2x2Ym5Nb2JtVjRkRkJ5YjNCekxuWmhiR2xrWVhScGIyNXpMQ0J1WlhoMFVISnZjSE11Y21WeGRXbHlaV1FwTzF4dUlDQjlMRnh1WEc0Z0lHTnZiWEJ2Ym1WdWRFUnBaRlZ3WkdGMFpUb2dablZ1WTNScGIyNGdLSEJ5WlhaUWNtOXdjeXdnY0hKbGRsTjBZWFJsS1NCN1hHNWNiaUFnSUNCMllYSWdhWE5XWVd4MVpVTm9ZVzVuWldRZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0JjYmlBZ0lDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQWdJSFJvYVhNdWNISnZjSE11ZG1Gc2RXVWdJVDA5SUhCeVpYWlFjbTl3Y3k1MllXeDFaU0FtSmlBb1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVmZG1Gc2RXVWdQVDA5SUhCeVpYWlFjbTl3Y3k1MllXeDFaU0I4ZkZ4dVhHNGdJQ0FnSUNBZ0lDQWdMeThnVTJsdVkyVWdkVzVrWldacGJtVmtJR2x6SUdOdmJuWmxjblJsWkNCMGJ5QmxiWEIwZVNCemRISnBibWNnZDJVZ2FHRjJaU0IwYjF4dUlDQWdJQ0FnSUNBZ0lDOHZJR05vWldOcklIUm9ZWFFnYzNCbFkybG1hV05oYkd4NVhHNGdJQ0FnSUNBZ0lDQWdLSFJvYVhNdWMzUmhkR1V1WDNaaGJIVmxJRDA5UFNBbkp5QW1KaUJ3Y21WMlVISnZjSE11ZG1Gc2RXVWdQVDA5SUhWdVpHVm1hVzVsWkNsY2JpQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lIMHVZbWx1WkNoMGFHbHpLVHRjYmx4dVhHNGdJQ0FnTHk4Z1NXWWdkbUZzYVdSaGRHbHZibk1nYUdGeklHTm9ZVzVuWldRZ2IzSWdjMjl0WlhSb2FXNW5JRzkxZEhOcFpHVWdZMmhoYm1kbGN5QmNiaUFnSUNBdkx5QjBhR1VnZG1Gc2RXVXNJSE5sZENCMGFHVWdkbUZzZFdVZ1lXZGhhVzRnY25WdWJtbHVaeUJoSUhaaGJHbGtZWFJwYjI1Y2JseHVJQ0FnSUdsbUlDaHdjbVYyVUhKdmNITXVkbUZzYVdSaGRHbHZibk1nSVQwOUlIUm9hWE11Y0hKdmNITXVkbUZzYVdSaGRHbHZibk1nZkh3Z2FYTldZV3gxWlVOb1lXNW5aV1FvS1NrZ2UxeHVJQ0FnSUNBZ2RtRnlJSFpoYkhWbElEMGdKM1poYkhWbEp5QnBiaUIwYUdsekxuQnliM0J6SUQ4Z2RHaHBjeTV3Y205d2N5NTJZV3gxWlNBNklDY25PMXh1SUNBZ0lDQWdkR2hwY3k1elpYUldZV3gxWlNoMllXeDFaU2s3WEc0Z0lDQWdmVnh1SUNCOUxGeHVYRzRnSUM4dklFUmxkR0ZqYUNCcGRDQjNhR1Z1SUdOdmJYQnZibVZ1ZENCMWJtMXZkVzUwYzF4dUlDQmpiMjF3YjI1bGJuUlhhV3hzVlc1dGIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhSb2FYTXVjSEp2Y0hNdVgyUmxkR0ZqYUVaeWIyMUdiM0p0S0hSb2FYTXBPMXh1SUNCOUxGeHVYRzRnSUhObGRGWmhiR2xrWVhScGIyNXpPaUJtZFc1amRHbHZiaUFvZG1Gc2FXUmhkR2x2Ym5Nc0lISmxjWFZwY21Wa0tTQjdYRzVjYmlBZ0lDQXZMeUJCWkdRZ2RtRnNhV1JoZEdsdmJuTWdkRzhnZEdobElITjBiM0psSUdsMGMyVnNaaUJoY3lCMGFHVWdjSEp2Y0hNZ2IySnFaV04wSUdOaGJpQnViM1FnWW1VZ2JXOWthV1pwWldSY2JpQWdJQ0IwYUdsekxsOTJZV3hwWkdGMGFXOXVjeUE5SUhaaGJHbGtZWFJwYjI1eklIeDhJQ2NuTzF4dVhHNGdJQ0FnYVdZZ0tISmxjWFZwY21Wa0tTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5MllXeHBaR0YwYVc5dWN5QTlJSFpoYkdsa1lYUnBiMjV6SUQ4Z2RtRnNhV1JoZEdsdmJuTWdLeUFuTENjZ09pQW5KenRjYmlBZ0lDQWdJSFJvYVhNdVgzWmhiR2xrWVhScGIyNXpJQ3M5SUNkcGMxWmhiSFZsSnp0Y2JpQWdJQ0I5WEc1Y2JpQWdmU3hjYmx4dUlDQXZMeUJYWlNCMllXeHBaR0YwWlNCaFpuUmxjaUIwYUdVZ2RtRnNkV1VnYUdGeklHSmxaVzRnYzJWMFhHNGdJSE5sZEZaaGJIVmxPaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXBJSHRjYmlBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0h0Y2JpQWdJQ0FnSUY5MllXeDFaVG9nZG1Gc2RXVXNYRzRnSUNBZ0lDQmZhWE5RY21semRHbHVaVG9nWm1Gc2MyVmNiaUFnSUNCOUxDQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0IwYUdsekxuQnliM0J6TGw5MllXeHBaR0YwWlNoMGFHbHpLVHRjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQjlMRnh1SUNCeVpYTmxkRlpoYkhWbE9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNCZmRtRnNkV1U2SUhSb2FYTXVjM1JoZEdVdVgzQnlhWE4wYVc1bFZtRnNkV1VzWEc0Z0lDQWdJQ0JmYVhOUWNtbHpkR2x1WlRvZ2RISjFaVnh1SUNBZ0lIMHNJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdVgzWmhiR2xrWVhSbEtIUm9hWE1wTzF4dUlDQWdJSDBwTzF4dUlDQjlMRnh1SUNCblpYUldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhSbExsOTJZV3gxWlR0Y2JpQWdmU3hjYmlBZ2FHRnpWbUZzZFdVNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6ZEdGMFpTNWZkbUZzZFdVZ0lUMDlJQ2NuTzF4dUlDQjlMRnh1SUNCblpYUkZjbkp2Y2sxbGMzTmhaMlU2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMVpoYkdsa0tDa2dmSHdnZEdocGN5NXphRzkzVW1WeGRXbHlaV1FvS1NBL0lHNTFiR3dnT2lCMGFHbHpMbk4wWVhSbExsOXpaWEoyWlhKRmNuSnZjaUI4ZkNCMGFHbHpMbkJ5YjNCekxuWmhiR2xrWVhScGIyNUZjbkp2Y2p0Y2JpQWdmU3hjYmlBZ2FYTkdiM0p0UkdsellXSnNaV1E2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXdjbTl3Y3k1ZmFYTkdiM0p0UkdsellXSnNaV1FvS1R0Y2JpQWdmU3hjYmlBZ2FYTldZV3hwWkRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhSbExsOXBjMVpoYkdsa08xeHVJQ0I5TEZ4dUlDQnBjMUJ5YVhOMGFXNWxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzUmhkR1V1WDJselVISnBjM1JwYm1VN1hHNGdJSDBzWEc0Z0lHbHpVbVZ4ZFdseVpXUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdJU0YwYUdsekxuQnliM0J6TG5KbGNYVnBjbVZrTzF4dUlDQjlMRnh1SUNCemFHOTNVbVZ4ZFdseVpXUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1cGMxSmxjWFZwY21Wa0tDa2dKaVlnZEdocGN5NXpkR0YwWlM1ZmRtRnNkV1VnUFQwOUlDY25PMXh1SUNCOUxGeHVJQ0J6YUc5M1JYSnliM0k2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnSVhSb2FYTXVjMmh2ZDFKbGNYVnBjbVZrS0NrZ0ppWWdJWFJvYVhNdWMzUmhkR1V1WDJselZtRnNhV1E3WEc0Z0lIMHNYRzRnSUdselZtRnNhV1JXWVd4MVpUb2dablZ1WTNScGIyNGdLSFpoYkhWbEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjSEp2Y0hNdVgybHpWbUZzYVdSV1lXeDFaUzVqWVd4c0tHNTFiR3dzSUhSb2FYTXNJSFpoYkhWbEtUdGNiaUFnZlZ4dWZUdGNiaUpkZlE9PSIsInZhciBSZWFjdCA9IGdsb2JhbC5SZWFjdCB8fCByZXF1aXJlKCdyZWFjdCcpO1xudmFyIEZvcm1zeSA9IHt9O1xudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4vdmFsaWRhdGlvblJ1bGVzLmpzJyk7XG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzLmpzJyk7XG52YXIgTWl4aW4gPSByZXF1aXJlKCcuL01peGluLmpzJyk7XG52YXIgb3B0aW9ucyA9IHt9O1xuXG5Gb3Jtc3kuTWl4aW4gPSBNaXhpbjtcblxuRm9ybXN5LmRlZmF1bHRzID0gZnVuY3Rpb24gKHBhc3NlZE9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IHBhc3NlZE9wdGlvbnM7XG59O1xuXG5Gb3Jtc3kuYWRkVmFsaWRhdGlvblJ1bGUgPSBmdW5jdGlvbiAobmFtZSwgZnVuYykge1xuICB2YWxpZGF0aW9uUnVsZXNbbmFtZV0gPSBmdW5jO1xufTtcblxuRm9ybXN5LkZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiRm9ybVwiLFxuICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNWYWxpZDogdHJ1ZSxcbiAgICAgIGlzU3VibWl0dGluZzogZmFsc2UsXG4gICAgICBjYW5DaGFuZ2U6IGZhbHNlXG4gICAgfTtcbiAgfSxcbiAgZ2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgb25TdWNjZXNzOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uRXJyb3I6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25TdWJtaXQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25WYWxpZFN1Ym1pdDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkludmFsaWRTdWJtaXQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25TdWJtaXR0ZWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25WYWxpZDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkludmFsaWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICgpIHt9XG4gICAgfTtcbiAgfSxcblxuICAvLyBBZGQgYSBtYXAgdG8gc3RvcmUgdGhlIGlucHV0cyBvZiB0aGUgZm9ybSwgYSBtb2RlbCB0byBzdG9yZVxuICAvLyB0aGUgdmFsdWVzIG9mIHRoZSBmb3JtIGFuZCByZWdpc3RlciBjaGlsZCBpbnB1dHNcbiAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5pbnB1dHMgPSB7fTtcbiAgICB0aGlzLm1vZGVsID0ge307XG4gICAgdGhpcy5yZWdpc3RlcklucHV0cyh0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgfSxcblxuICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMudmFsaWRhdGVGb3JtKCk7XG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFVwZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIHZhciBpbnB1dEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmlucHV0cyk7XG5cbiAgICAvLyBUaGUgdXBkYXRlZCBjaGlsZHJlbiBhcnJheSBpcyBub3QgYXZhaWxhYmxlIGhlcmUgZm9yIHNvbWUgcmVhc29uLFxuICAgIC8vIHdlIG5lZWQgdG8gd2FpdCBmb3IgbmV4dCBldmVudCBsb29wXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cbiAgICAgIC8vIFRoZSBjb21wb25lbnQgbWlnaHQgaGF2ZSBiZWVuIHVubW91bnRlZCBvbiBhblxuICAgICAgLy8gdXBkYXRlXG4gICAgICBpZiAodGhpcy5pc01vdW50ZWQoKSkge1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHModGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3JzKSB7XG4gICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbGlkYXRpb25FcnJvcnModGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3JzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuZXdJbnB1dEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmlucHV0cyk7XG4gICAgICAgIGlmICh1dGlscy5hcnJheXNEaWZmZXIoaW5wdXRLZXlzLCBuZXdJbnB1dEtleXMpKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9LmJpbmQodGhpcyksIDApO1xuICB9LFxuXG4gIC8vIFVwZGF0ZSBtb2RlbCwgc3VibWl0IHRvIHVybCBwcm9wIGFuZCBzZW5kIHRoZSBtb2RlbFxuICBzdWJtaXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBUcmlnZ2VyIGZvcm0gYXMgbm90IHByaXN0aW5lLlxuICAgIC8vIElmIGFueSBpbnB1dHMgaGF2ZSBub3QgYmVlbiB0b3VjaGVkIHlldCB0aGlzIHdpbGwgbWFrZSB0aGVtIGRpcnR5XG4gICAgLy8gc28gdmFsaWRhdGlvbiBiZWNvbWVzIHZpc2libGUgKGlmIGJhc2VkIG9uIGlzUHJpc3RpbmUpXG4gICAgdGhpcy5zZXRGb3JtUHJpc3RpbmUoZmFsc2UpO1xuXG4gICAgLy8gVG8gc3VwcG9ydCB1c2UgY2FzZXMgd2hlcmUgbm8gYXN5bmMgb3IgcmVxdWVzdCBvcGVyYXRpb24gaXMgbmVlZGVkLlxuICAgIC8vIFRoZSBcIm9uU3VibWl0XCIgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggdGhlIG1vZGVsIGUuZy4ge2ZpZWxkTmFtZTogXCJteVZhbHVlXCJ9LFxuICAgIC8vIGlmIHdhbnRpbmcgdG8gcmVzZXQgdGhlIGVudGlyZSBmb3JtIHRvIG9yaWdpbmFsIHN0YXRlLCB0aGUgc2Vjb25kIHBhcmFtIGlzIGEgY2FsbGJhY2sgZm9yIHRoaXMuXG4gICAgaWYgKCF0aGlzLnByb3BzLnVybCkge1xuICAgICAgdGhpcy51cGRhdGVNb2RlbCgpO1xuICAgICAgdmFyIG1vZGVsID0gdGhpcy5tYXBNb2RlbCgpO1xuICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdChtb2RlbCwgdGhpcy5yZXNldE1vZGVsLCB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcik7XG4gICAgICB0aGlzLnN0YXRlLmlzVmFsaWQgPyB0aGlzLnByb3BzLm9uVmFsaWRTdWJtaXQobW9kZWwsIHRoaXMucmVzZXRNb2RlbCkgOiB0aGlzLnByb3BzLm9uSW52YWxpZFN1Ym1pdChtb2RlbCwgdGhpcy5yZXNldE1vZGVsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZU1vZGVsKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBpc1N1Ym1pdHRpbmc6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMub25TdWJtaXQodGhpcy5tYXBNb2RlbCgpLCB0aGlzLnJlc2V0TW9kZWwsIHRoaXMudXBkYXRlSW5wdXRzV2l0aEVycm9yKTtcblxuICAgIHZhciBoZWFkZXJzID0gKE9iamVjdC5rZXlzKHRoaXMucHJvcHMuaGVhZGVycykubGVuZ3RoICYmIHRoaXMucHJvcHMuaGVhZGVycykgfHwgb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuXG4gICAgdmFyIG1ldGhvZCA9IHRoaXMucHJvcHMubWV0aG9kICYmIHV0aWxzLmFqYXhbdGhpcy5wcm9wcy5tZXRob2QudG9Mb3dlckNhc2UoKV0gPyB0aGlzLnByb3BzLm1ldGhvZC50b0xvd2VyQ2FzZSgpIDogJ3Bvc3QnO1xuICAgIHV0aWxzLmFqYXhbbWV0aG9kXSh0aGlzLnByb3BzLnVybCwgdGhpcy5tYXBNb2RlbCgpLCB0aGlzLnByb3BzLmNvbnRlbnRUeXBlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgfHwgJ2pzb24nLCBoZWFkZXJzKVxuICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25TdWNjZXNzKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdHRlZCgpO1xuICAgICAgfS5iaW5kKHRoaXMpKVxuICAgICAgLmNhdGNoKHRoaXMuZmFpbFN1Ym1pdCk7XG4gIH0sXG5cbiAgbWFwTW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5tYXBwaW5nID8gdGhpcy5wcm9wcy5tYXBwaW5nKHRoaXMubW9kZWwpIDogdGhpcy5tb2RlbDtcbiAgfSxcblxuICAvLyBHb2VzIHRocm91Z2ggYWxsIHJlZ2lzdGVyZWQgY29tcG9uZW50cyBhbmRcbiAgLy8gdXBkYXRlcyB0aGUgbW9kZWwgdmFsdWVzXG4gIHVwZGF0ZU1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcbiAgICAgIHRoaXMubW9kZWxbbmFtZV0gPSBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG5cbiAgLy8gUmVzZXQgZWFjaCBrZXkgaW4gdGhlIG1vZGVsIHRvIHRoZSBvcmlnaW5hbCAvIGluaXRpYWwgdmFsdWVcbiAgcmVzZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB0aGlzLmlucHV0c1tuYW1lXS5yZXNldFZhbHVlKCk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICB9LFxuXG4gIHNldElucHV0VmFsaWRhdGlvbkVycm9yczogZnVuY3Rpb24gKGVycm9ycykge1xuICAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcbiAgICAgIHZhciBhcmdzID0gW3tcbiAgICAgICAgX2lzVmFsaWQ6ICEobmFtZSBpbiBlcnJvcnMpLFxuICAgICAgICBfc2VydmVyRXJyb3I6IGVycm9yc1tuYW1lXVxuICAgICAgfV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUuYXBwbHkoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9LmJpbmQodGhpcykpOyAgIFxuICB9LFxuXG4gIC8vIEdvIHRocm91Z2ggZXJyb3JzIGZyb20gc2VydmVyIGFuZCBncmFiIHRoZSBjb21wb25lbnRzXG4gIC8vIHN0b3JlZCBpbiB0aGUgaW5wdXRzIG1hcC4gQ2hhbmdlIHRoZWlyIHN0YXRlIHRvIGludmFsaWRcbiAgLy8gYW5kIHNldCB0aGUgc2VydmVyRXJyb3IgbWVzc2FnZVxuICB1cGRhdGVJbnB1dHNXaXRoRXJyb3I6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICBPYmplY3Qua2V5cyhlcnJvcnMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG5cbiAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGFyZSB0cnlpbmcgdG8gdXBkYXRlIGFuIGlucHV0IHRoYXQgZG9lcyBub3QgZXhpc3RzLiBWZXJpZnkgZXJyb3JzIG9iamVjdCB3aXRoIGlucHV0IG5hbWVzLiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyb3JzKSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBhcmdzID0gW3tcbiAgICAgICAgX2lzVmFsaWQ6IGZhbHNlLFxuICAgICAgICBfc2VydmVyRXJyb3I6IGVycm9yc1tuYW1lXVxuICAgICAgfV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUuYXBwbHkoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIGZhaWxTdWJtaXQ6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcihlcnJvcnMpO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMucHJvcHMub25FcnJvcihlcnJvcnMpO1xuICAgIHRoaXMucHJvcHMub25TdWJtaXR0ZWQoKTtcbiAgfSxcblxuICAvLyBUcmF2ZXJzZSB0aGUgY2hpbGRyZW4gYW5kIGNoaWxkcmVuIG9mIGNoaWxkcmVuIHRvIGZpbmRcbiAgLy8gYWxsIGlucHV0cyBieSBjaGVja2luZyB0aGUgbmFtZSBwcm9wLiBNYXliZSBkbyBhIGJldHRlclxuICAvLyBjaGVjayBoZXJlXG4gIHJlZ2lzdGVySW5wdXRzOiBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcblxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm5hbWUpIHtcbiAgICAgICAgY2hpbGQucHJvcHMuX2F0dGFjaFRvRm9ybSA9IHRoaXMuYXR0YWNoVG9Gb3JtO1xuICAgICAgICBjaGlsZC5wcm9wcy5fZGV0YWNoRnJvbUZvcm0gPSB0aGlzLmRldGFjaEZyb21Gb3JtO1xuICAgICAgICBjaGlsZC5wcm9wcy5fdmFsaWRhdGUgPSB0aGlzLnZhbGlkYXRlO1xuICAgICAgICBjaGlsZC5wcm9wcy5faXNGb3JtRGlzYWJsZWQgPSB0aGlzLmlzRm9ybURpc2FibGVkO1xuICAgICAgICBjaGlsZC5wcm9wcy5faXNWYWxpZFZhbHVlID0gdGhpcy5ydW5WYWxpZGF0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hpbGQgJiYgY2hpbGQucHJvcHMgJiYgY2hpbGQucHJvcHMuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcklucHV0cyhjaGlsZC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICB9XG5cbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIGlzRm9ybURpc2FibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGlzYWJsZWQ7XG4gIH0sXG5cbiAgZ2V0Q3VycmVudFZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykucmVkdWNlKGZ1bmN0aW9uIChkYXRhLCBuYW1lKSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG4gICAgICBkYXRhW25hbWVdID0gY29tcG9uZW50LnN0YXRlLl92YWx1ZTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0uYmluZCh0aGlzKSwge30pO1xuICB9LFxuXG4gIHNldEZvcm1QcmlzdGluZTogZnVuY3Rpb24gKGlzUHJpc3RpbmUpIHtcbiAgICB2YXIgaW5wdXRzID0gdGhpcy5pbnB1dHM7XG4gICAgdmFyIGlucHV0S2V5cyA9IE9iamVjdC5rZXlzKGlucHV0cyk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBjb21wb25lbnQgYW5kIHNldCBpdCBhcyBwcmlzdGluZVxuICAgIC8vIG9yIFwiZGlydHlcIi5cbiAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSBpbnB1dHNbbmFtZV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUoe1xuICAgICAgICBfaXNQcmlzdGluZTogaXNQcmlzdGluZVxuICAgICAgfSk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICAvLyBVc2UgdGhlIGJpbmRlZCB2YWx1ZXMgYW5kIHRoZSBhY3R1YWwgaW5wdXQgdmFsdWUgdG9cbiAgLy8gdmFsaWRhdGUgdGhlIGlucHV0IGFuZCBzZXQgaXRzIHN0YXRlLiBUaGVuIGNoZWNrIHRoZVxuICAvLyBzdGF0ZSBvZiB0aGUgZm9ybSBpdHNlbGZcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcbiAgICBcbiAgICAvLyBUcmlnZ2VyIG9uQ2hhbmdlXG4gICAgaWYgKHRoaXMuc3RhdGUuY2FuQ2hhbmdlKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMuZ2V0Q3VycmVudFZhbHVlcygpKTtcbiAgICB9XG5cbiAgICB2YXIgaXNWYWxpZCA9IHRydWU7XG4gICAgaWYgKGNvbXBvbmVudC52YWxpZGF0ZSAmJiB0eXBlb2YgY29tcG9uZW50LnZhbGlkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpc1ZhbGlkID0gY29tcG9uZW50LnZhbGlkYXRlKCk7XG4gICAgfSBlbHNlIGlmIChjb21wb25lbnQucHJvcHMucmVxdWlyZWQgfHwgY29tcG9uZW50Ll92YWxpZGF0aW9ucykge1xuICAgICAgaXNWYWxpZCA9IHRoaXMucnVuVmFsaWRhdGlvbihjb21wb25lbnQpO1xuICAgIH1cblxuICAgIC8vIFJ1biB0aHJvdWdoIHRoZSB2YWxpZGF0aW9ucywgc3BsaXQgdGhlbSB1cCBhbmQgY2FsbFxuICAgIC8vIHRoZSB2YWxpZGF0b3IgSUYgdGhlcmUgaXMgYSB2YWx1ZSBvciBpdCBpcyByZXF1aXJlZFxuICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICBfaXNWYWxpZDogaXNWYWxpZCxcbiAgICAgIF9zZXJ2ZXJFcnJvcjogbnVsbFxuICAgIH0sIHRoaXMudmFsaWRhdGVGb3JtKTtcblxuICB9LFxuXG4gIC8vIENoZWNrcyB2YWxpZGF0aW9uIG9uIGN1cnJlbnQgdmFsdWUgb3IgYSBwYXNzZWQgdmFsdWVcbiAgcnVuVmFsaWRhdGlvbjogZnVuY3Rpb24gKGNvbXBvbmVudCwgdmFsdWUpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gdHJ1ZTtcbiAgICB2YWx1ZSA9IGFyZ3VtZW50cy5sZW5ndGggPT09IDIgPyB2YWx1ZSA6IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgaWYgKGNvbXBvbmVudC5fdmFsaWRhdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjb21wb25lbnQuX3ZhbGlkYXRpb25zLnNwbGl0KC9cXCwoPyFbXntcXFtdKlt9XFxdXSkvZykuZm9yRWFjaChmdW5jdGlvbiAodmFsaWRhdGlvbikge1xuICAgICAgICB2YXIgYXJncyA9IHZhbGlkYXRpb24uc3BsaXQoJzonKTtcbiAgICAgICAgdmFyIHZhbGlkYXRlTWV0aG9kID0gYXJncy5zaGlmdCgpO1xuICAgICAgICBhcmdzID0gYXJncy5tYXAoZnVuY3Rpb24gKGFyZykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShhcmcpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmc7IC8vIEl0IGlzIGEgc3RyaW5nIGlmIGl0IGNhbiBub3QgcGFyc2UgaXRcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBhcmdzID0gW3ZhbHVlXS5jb25jYXQoYXJncyk7XG4gICAgICAgIGlmICghdmFsaWRhdGlvblJ1bGVzW3ZhbGlkYXRlTWV0aG9kXSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRm9ybXN5IGRvZXMgbm90IGhhdmUgdGhlIHZhbGlkYXRpb24gcnVsZTogJyArIHZhbGlkYXRlTWV0aG9kKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkYXRpb25SdWxlc1t2YWxpZGF0ZU1ldGhvZF0uYXBwbHkodGhpcy5nZXRDdXJyZW50VmFsdWVzKCksIGFyZ3MpKSB7XG4gICAgICAgICAgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LmJpbmQodGhpcykpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNvbXBvbmVudC52YWxpZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAvLyB0aGUgY29tcG9uZW50IGRlZmluZXMgYW4gZXhwbGljaXQgdmFsaWRhdGUgZnVuY3Rpb25cbiAgICAgIGlzVmFsaWQgPSBjb21wb25lbnQudmFsaWRhdGUoKVxuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZDtcbiAgfSxcblxuICAvLyBWYWxpZGF0ZSB0aGUgZm9ybSBieSBnb2luZyB0aHJvdWdoIGFsbCBjaGlsZCBpbnB1dCBjb21wb25lbnRzXG4gIC8vIGFuZCBjaGVjayB0aGVpciBzdGF0ZVxuICB2YWxpZGF0ZUZvcm06IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYWxsSXNWYWxpZCA9IHRydWU7XG4gICAgdmFyIGlucHV0cyA9IHRoaXMuaW5wdXRzO1xuICAgIHZhciBpbnB1dEtleXMgPSBPYmplY3Qua2V5cyhpbnB1dHMpO1xuXG4gICAgLy8gV2UgbmVlZCBhIGNhbGxiYWNrIGFzIHdlIGFyZSB2YWxpZGF0aW5nIGFsbCBpbnB1dHMgYWdhaW4uIFRoaXMgd2lsbFxuICAgIC8vIHJ1biB3aGVuIHRoZSBsYXN0IGNvbXBvbmVudCBoYXMgc2V0IGl0cyBzdGF0ZVxuICAgIHZhciBvblZhbGlkYXRpb25Db21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlucHV0S2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIGlmICghaW5wdXRzW25hbWVdLnN0YXRlLl9pc1ZhbGlkKSB7XG4gICAgICAgICAgYWxsSXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LmJpbmQodGhpcykpO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgaXNWYWxpZDogYWxsSXNWYWxpZFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChhbGxJc1ZhbGlkKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25WYWxpZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkludmFsaWQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gVGVsbCB0aGUgZm9ybSB0aGF0IGl0IGNhbiBzdGFydCB0byB0cmlnZ2VyIGNoYW5nZSBldmVudHNcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBjYW5DaGFuZ2U6IHRydWVcbiAgICAgIH0pO1xuXG4gICAgfS5iaW5kKHRoaXMpO1xuXG4gICAgLy8gUnVuIHZhbGlkYXRpb24gYWdhaW4gaW4gY2FzZSBhZmZlY3RlZCBieSBvdGhlciBpbnB1dHMuIFRoZVxuICAgIC8vIGxhc3QgY29tcG9uZW50IHZhbGlkYXRlZCB3aWxsIHJ1biB0aGUgb25WYWxpZGF0aW9uQ29tcGxldGUgY2FsbGJhY2tcbiAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSBpbnB1dHNbbmFtZV07XG4gICAgICB2YXIgaXNWYWxpZCA9IHRoaXMucnVuVmFsaWRhdGlvbihjb21wb25lbnQpO1xuICAgICAgY29tcG9uZW50LnNldFN0YXRlKHtcbiAgICAgICAgX2lzVmFsaWQ6IGlzVmFsaWQsXG4gICAgICAgIF9zZXJ2ZXJFcnJvcjogbnVsbFxuICAgICAgfSwgaW5kZXggPT09IGlucHV0S2V5cy5sZW5ndGggLSAxID8gb25WYWxpZGF0aW9uQ29tcGxldGUgOiBudWxsKTtcbiAgICB9LmJpbmQodGhpcykpO1xuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG5vIGlucHV0cywgc2V0IHN0YXRlIHdoZXJlIGZvcm0gaXMgcmVhZHkgdG8gdHJpZ2dlclxuICAgIC8vIGNoYW5nZSBldmVudC4gTmV3IGlucHV0cyBtaWdodCBiZSBhZGRlZCBsYXRlclxuICAgIGlmICghaW5wdXRLZXlzLmxlbmd0aCAmJiB0aGlzLmlzTW91bnRlZCgpKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2FuQ2hhbmdlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gTWV0aG9kIHB1dCBvbiBlYWNoIGlucHV0IGNvbXBvbmVudCB0byByZWdpc3RlclxuICAvLyBpdHNlbGYgdG8gdGhlIGZvcm1cbiAgYXR0YWNoVG9Gb3JtOiBmdW5jdGlvbiAoY29tcG9uZW50KSB7XG4gICAgdGhpcy5pbnB1dHNbY29tcG9uZW50LnByb3BzLm5hbWVdID0gY29tcG9uZW50O1xuICAgIHRoaXMubW9kZWxbY29tcG9uZW50LnByb3BzLm5hbWVdID0gY29tcG9uZW50LnN0YXRlLl92YWx1ZTtcbiAgICB0aGlzLnZhbGlkYXRlKGNvbXBvbmVudCk7XG4gIH0sXG5cbiAgLy8gTWV0aG9kIHB1dCBvbiBlYWNoIGlucHV0IGNvbXBvbmVudCB0byB1bnJlZ2lzdGVyXG4gIC8vIGl0c2VsZiBmcm9tIHRoZSBmb3JtXG4gIGRldGFjaEZyb21Gb3JtOiBmdW5jdGlvbiAoY29tcG9uZW50KSB7XG4gICAgZGVsZXRlIHRoaXMuaW5wdXRzW2NvbXBvbmVudC5wcm9wcy5uYW1lXTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbFtjb21wb25lbnQucHJvcHMubmFtZV07XG4gIH0sXG4gIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuXG4gICAgcmV0dXJuIFJlYWN0LkRPTS5mb3JtKHtcbiAgICAgICAgb25TdWJtaXQ6IHRoaXMuc3VibWl0LFxuICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuY2xhc3NOYW1lXG4gICAgICB9LFxuICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgICk7XG5cbiAgfVxufSk7XG5cbmlmICghZ2xvYmFsLmV4cG9ydHMgJiYgIWdsb2JhbC5tb2R1bGUgJiYgKCFnbG9iYWwuZGVmaW5lIHx8ICFnbG9iYWwuZGVmaW5lLmFtZCkpIHtcbiAgZ2xvYmFsLkZvcm1zeSA9IEZvcm1zeTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBGb3Jtc3k7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdmJXRnBiaTVxY3lJc0luTnZkWEpqWlhNaU9sc2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZiV0ZwYmk1cWN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hKUVVGSkxFdEJRVXNzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTMEZCU3l4SlFVRkpMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU0zUXl4SlFVRkpMRTFCUVUwc1IwRkJSeXhGUVVGRkxFTkJRVU03UVVGRGFFSXNTVUZCU1N4bFFVRmxMRWRCUVVjc1QwRkJUeXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMRU5CUVVNN1FVRkRkRVFzU1VGQlNTeExRVUZMTEVkQlFVY3NUMEZCVHl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8wRkJRMnhETEVsQlFVa3NTMEZCU3l4SFFVRkhMRTlCUVU4c1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dEJRVU5zUXl4SlFVRkpMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU03TzBGQlJXcENMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZET3p0QlFVVnlRaXhOUVVGTkxFTkJRVU1zVVVGQlVTeEhRVUZITEZWQlFWVXNZVUZCWVN4RlFVRkZPMFZCUTNwRExFOUJRVThzUjBGQlJ5eGhRVUZoTEVOQlFVTTdRVUZETVVJc1EwRkJReXhEUVVGRE96dEJRVVZHTEUxQlFVMHNRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eFZRVUZWTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVN1JVRkRMME1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJRenRCUVVNdlFpeERRVUZETEVOQlFVTTdPMEZCUlVZc2FVTkJRV2xETEc5Q1FVRkJPMFZCUXk5Q0xHVkJRV1VzUlVGQlJTeFpRVUZaTzBsQlF6TkNMRTlCUVU4N1RVRkRUQ3hQUVVGUExFVkJRVVVzU1VGQlNUdE5RVU5pTEZsQlFWa3NSVUZCUlN4TFFVRkxPMDFCUTI1Q0xGTkJRVk1zUlVGQlJTeExRVUZMTzB0QlEycENMRU5CUVVNN1IwRkRTRHRGUVVORUxHVkJRV1VzUlVGQlJTeFpRVUZaTzBsQlF6TkNMRTlCUVU4N1RVRkRUQ3hQUVVGUExFVkJRVVVzUlVGQlJUdE5RVU5ZTEZOQlFWTXNSVUZCUlN4WlFVRlpMRVZCUVVVN1RVRkRla0lzVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlR0TlFVTjJRaXhSUVVGUkxFVkJRVVVzV1VGQldTeEZRVUZGTzAxQlEzaENMR0ZCUVdFc1JVRkJSU3haUVVGWkxFVkJRVVU3VFVGRE4wSXNaVUZCWlN4RlFVRkZMRmxCUVZrc1JVRkJSVHROUVVNdlFpeFhRVUZYTEVWQlFVVXNXVUZCV1N4RlFVRkZPMDFCUXpOQ0xFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVTdUVUZEZGtJc1UwRkJVeXhGUVVGRkxGbEJRVmtzUlVGQlJUdE5RVU42UWl4UlFVRlJMRVZCUVVVc1dVRkJXU3hGUVVGRk8wdEJRM3BDTEVOQlFVTTdRVUZEVGl4SFFVRkhPMEZCUTBnN1FVRkRRVHM3UlVGRlJTeHJRa0ZCYTBJc1JVRkJSU3haUVVGWk8wbEJRemxDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJRMnBDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJRMmhDTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTTNReXhIUVVGSE96dEZRVVZFTEdsQ1FVRnBRaXhGUVVGRkxGbEJRVms3U1VGRE4wSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wRkJRM2hDTEVkQlFVYzdPMFZCUlVRc2JVSkJRVzFDTEVWQlFVVXNXVUZCV1R0QlFVTnVReXhKUVVGSkxFbEJRVWtzVTBGQlV5eEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlF6ZERPMEZCUTBFN08wRkJSVUVzU1VGQlNTeFZRVUZWTEVOQlFVTXNXVUZCV1R0QlFVTXpRanRCUVVOQk96dEJRVVZCTEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVU3TzBGQlJUVkNMRkZCUVZFc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE96dFBRVVV4UXl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRVZCUVVVN1ZVRkRPVUlzU1VGQlNTeERRVUZETEhkQ1FVRjNRaXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dEJRVU55UlN4VFFVRlRPenRSUVVWRUxFbEJRVWtzV1VGQldTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlF6VkRMRWxCUVVrc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eFRRVUZUTEVWQlFVVXNXVUZCV1N4RFFVRkRMRVZCUVVVN1ZVRkRMME1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMEZCUXpsQ0xGTkJRVk03TzBGQlJWUXNUMEZCVHpzN1MwRkZSaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOeVFpeEhRVUZITzBGQlEwZzdPMFZCUlVVc1RVRkJUU3hGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzBGQlF6TkNMRWxCUVVrc1MwRkJTeXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzBGQlF6TkNPMEZCUTBFN1FVRkRRVHM3UVVGRlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGFFTTdRVUZEUVR0QlFVTkJPenRKUVVWSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1JVRkJSVHROUVVOdVFpeEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1RVRkRia0lzU1VGQlNTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8wMUJRelZDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPMDFCUTNoRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0TlFVTXpTQ3hQUVVGUE8wRkJRMklzUzBGQlN6czdTVUZGUkN4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03U1VGRGJrSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenROUVVOYUxGbEJRVmtzUlVGQlJTeEpRVUZKTzBGQlEzaENMRXRCUVVzc1EwRkJReXhEUVVGRE96dEJRVVZRTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU03TzBGQlJYUkdMRWxCUVVrc1NVRkJTU3hQUVVGUExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eExRVUZMTEU5QlFVOHNRMEZCUXl4UFFVRlBMRWxCUVVrc1JVRkJSU3hEUVVGRE96dEpRVVYwUnl4SlFVRkpMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhGUVVGRkxFZEJRVWNzVFVGQlRTeERRVUZETzBsQlEzcElMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEpRVUZKTEU5QlFVOHNRMEZCUXl4WFFVRlhMRWxCUVVrc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF6dFBRVU5zU0N4SlFVRkpMRU5CUVVNc1ZVRkJWU3hSUVVGUkxFVkJRVVU3VVVGRGVFSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZETDBJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UFFVTXhRaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UFFVTmFMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdRVUZET1VJc1IwRkJSenM3UlVGRlJDeFJRVUZSTEVWQlFVVXNXVUZCV1R0SlFVTndRaXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzBGQlF6VkZMRWRCUVVjN1FVRkRTRHRCUVVOQk96dEZRVVZGTEZkQlFWY3NSVUZCUlN4WlFVRlpPMGxCUTNaQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlR0TlFVTXZReXhKUVVGSkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wMUJRMnhETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1MwRkRNME1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1FpeEhRVUZITzBGQlEwZzdPMFZCUlVVc1ZVRkJWU3hGUVVGRkxGbEJRVms3U1VGRGRFSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRk8wMUJReTlETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdTMEZEYUVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTmtMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dEJRVU40UWl4SFFVRkhPenRGUVVWRUxIZENRVUYzUWl4RlFVRkZMRlZCUVZVc1RVRkJUU3hGUVVGRk8wdEJRM3BETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVU3VFVGRGRrUXNTVUZCU1N4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTnNReXhKUVVGSkxFbEJRVWtzUjBGQlJ5eERRVUZETzFGQlExWXNVVUZCVVN4RlFVRkZMRVZCUVVVc1NVRkJTU3hKUVVGSkxFMUJRVTBzUTBGQlF6dFJRVU16UWl4WlFVRlpMRVZCUVVVc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF6dFBRVU16UWl4RFFVRkRMRU5CUVVNN1RVRkRTQ3hUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE0wTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUWl4SFFVRkhPMEZCUTBnN1FVRkRRVHRCUVVOQk96dEZRVVZGTEhGQ1FVRnhRaXhGUVVGRkxGVkJRVlVzVFVGQlRTeEZRVUZGTzBsQlEzWkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdEJRVU4yUkN4TlFVRk5MRWxCUVVrc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN08wMUJSV3hETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVN1VVRkRaQ3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdsSFFVRnBSeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOd1NpeFBRVUZQT3p0TlFVVkVMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU03VVVGRFZpeFJRVUZSTEVWQlFVVXNTMEZCU3p0UlFVTm1MRmxCUVZrc1JVRkJSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETzA5QlF6TkNMRU5CUVVNc1EwRkJRenROUVVOSUxGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU16UXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeENMRWRCUVVjN08wVkJSVVFzVlVGQlZTeEZRVUZGTEZWQlFWVXNUVUZCVFN4RlFVRkZPMGxCUXpWQ0xFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU51UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8wMUJRMW9zV1VGQldTeEZRVUZGTEV0QlFVczdTMEZEY0VJc1EwRkJReXhEUVVGRE8wbEJRMGdzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE0wSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dEJRVU0zUWl4SFFVRkhPMEZCUTBnN1FVRkRRVHRCUVVOQk96dEZRVVZGTEdOQlFXTXNSVUZCUlN4VlFVRlZMRkZCUVZFc1JVRkJSVHRCUVVOMFF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGRkJRVkVzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlRzN1RVRkZhRVFzU1VGQlNTeExRVUZMTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NSVUZCUlR0UlFVTTFReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8xRkJRemxETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTTdVVUZEYkVRc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenRSUVVOMFF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETzFGQlEyeEVMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNN1FVRkRka1FzVDBGQlR6czdUVUZGUkN4SlFVRkpMRXRCUVVzc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVGRk8xRkJRMmhFTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTnNSQ3hQUVVGUE96dExRVVZHTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJFSXNSMEZCUnpzN1JVRkZSQ3hqUVVGakxFVkJRVVVzV1VGQldUdEpRVU14UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETzBGQlF5OUNMRWRCUVVjN08wVkJSVVFzWjBKQlFXZENMRVZCUVVVc1dVRkJXVHRKUVVNMVFpeFBRVUZQTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVU3VFVGRE0wUXNTVUZCU1N4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTnNReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03VFVGRGNFTXNUMEZCVHl4SlFVRkpMRU5CUVVNN1MwRkRZaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOMFFpeEhRVUZIT3p0RlFVVkVMR1ZCUVdVc1JVRkJSU3hWUVVGVkxGVkJRVlVzUlVGQlJUdEpRVU55UXl4SlFVRkpMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBGQlF6ZENMRWxCUVVrc1NVRkJTU3hUUVVGVExFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVONFF6dEJRVU5CT3p0SlFVVkpMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZPMDFCUTNaRExFbEJRVWtzVTBGQlV5eEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenROUVVNM1FpeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUTJwQ0xGZEJRVmNzUlVGQlJTeFZRVUZWTzA5QlEzaENMRU5CUVVNc1EwRkJRenRMUVVOS0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRUlzUjBGQlJ6dEJRVU5JTzBGQlEwRTdRVUZEUVRzN1FVRkZRU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFZRVUZWTEZOQlFWTXNSVUZCUlR0QlFVTnFRenM3U1VGRlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhGUVVGRk8wMUJRM2hDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRGJrUXNTMEZCU3pzN1NVRkZSQ3hKUVVGSkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZEYmtJc1NVRkJTU3hUUVVGVExFTkJRVU1zVVVGQlVTeEpRVUZKTEU5QlFVOHNVMEZCVXl4RFFVRkRMRkZCUVZFc1MwRkJTeXhWUVVGVkxFVkJRVVU3VFVGRGJFVXNUMEZCVHl4SFFVRkhMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dExRVU5vUXl4TlFVRk5MRWxCUVVrc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVsQlFVa3NVMEZCVXl4RFFVRkRMRmxCUVZrc1JVRkJSVHROUVVNM1JDeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEJRVU01UXl4TFFVRkxPMEZCUTB3N1FVRkRRVHM3U1VGRlNTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRPMDFCUTJwQ0xGRkJRVkVzUlVGQlJTeFBRVUZQTzAxQlEycENMRmxCUVZrc1JVRkJSU3hKUVVGSk8wRkJRM2hDTEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03TzBGQlJURkNMRWRCUVVjN1FVRkRTRHM3UVVGRlFTeEZRVUZGTEdGQlFXRXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSU3hMUVVGTExFVkJRVVU3TzBsQlJYcERMRWxCUVVrc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU51UWl4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEyaEZMRWxCUVVrc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVWQlFVVTdUVUZEYWtNc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eExRVUZMTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4VlFVRlZMRVZCUVVVN1VVRkRhRVlzU1VGQlNTeEpRVUZKTEVkQlFVY3NWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4SlFVRkpMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZEYkVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4SFFVRkhMRVZCUVVVN1ZVRkROMElzU1VGQlNUdFpRVU5HTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFhRVU40UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMVlzVDBGQlR5eEhRVUZITEVOQlFVTTdWMEZEV2p0VFFVTkdMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU0xUWl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExHTkJRV01zUTBGQlF5eEZRVUZGTzFWQlEzQkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zTkVOQlFUUkRMRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU03VTBGRGFFWTdVVUZEUkN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkJSVHRWUVVONlJTeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRPMU5CUTJwQ08wOUJRMFlzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVObU8wRkJRMHdzU1VGQlNTeEpRVUZKTEU5QlFVOHNVMEZCVXl4RFFVRkRMRkZCUVZFc1MwRkJTeXhWUVVGVkxFVkJRVVU3TzAxQlJUVkRMRTlCUVU4c1IwRkJSeXhUUVVGVExFTkJRVU1zVVVGQlVTeEZRVUZGTzB0QlF5OUNPMGxCUTBRc1QwRkJUeXhQUVVGUExFTkJRVU03UVVGRGJrSXNSMEZCUnp0QlFVTklPMEZCUTBFN08wVkJSVVVzV1VGQldTeEZRVUZGTEZsQlFWazdTVUZEZUVJc1NVRkJTU3hWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETzBsQlEzUkNMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZETjBJc1NVRkJTU3hKUVVGSkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRM2hETzBGQlEwRTdPMGxCUlVrc1NVRkJTU3h2UWtGQmIwSXNSMEZCUnl4WlFVRlpPMDFCUTNKRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVN1VVRkRhRU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEZRVUZGTzFWQlEyaERMRlZCUVZVc1IwRkJSeXhMUVVGTExFTkJRVU03VTBGRGNFSTdRVUZEVkN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdPMDFCUldRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU5hTEU5QlFVOHNSVUZCUlN4VlFVRlZPMEZCUXpOQ0xFOUJRVThzUTBGQlF5eERRVUZET3p0TlFVVklMRWxCUVVrc1ZVRkJWU3hGUVVGRk8xRkJRMlFzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRQUVVOMFFpeE5RVUZOTzFGQlEwd3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dEJRVU12UWl4UFFVRlBPMEZCUTFBN08wMUJSVTBzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTmFMRk5CUVZNc1JVRkJSU3hKUVVGSk8wRkJRM1pDTEU5QlFVOHNRMEZCUXl4RFFVRkRPenRCUVVWVUxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRha0k3UVVGRFFUczdTVUZGU1N4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlR0TlFVTjJReXhKUVVGSkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1RVRkROMElzU1VGQlNTeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dE5RVU0xUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRMnBDTEZGQlFWRXNSVUZCUlN4UFFVRlBPMUZCUTJwQ0xGbEJRVmtzUlVGQlJTeEpRVUZKTzA5QlEyNUNMRVZCUVVVc1MwRkJTeXhMUVVGTExGTkJRVk1zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4SFFVRkhMRzlDUVVGdlFpeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNaRkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1FqdEJRVU5CT3p0SlFVVkpMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1JVRkJSVHROUVVONlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUTFvc1UwRkJVeXhGUVVGRkxFbEJRVWs3VDBGRGFFSXNRMEZCUXl4RFFVRkRPMHRCUTBvN1FVRkRUQ3hIUVVGSE8wRkJRMGc3UVVGRFFUczdSVUZGUlN4WlFVRlpMRVZCUVVVc1ZVRkJWU3hUUVVGVExFVkJRVVU3U1VGRGFrTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJRenRKUVVNNVF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRE1VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEJRVU0zUWl4SFFVRkhPMEZCUTBnN1FVRkRRVHM3UlVGRlJTeGpRVUZqTEVWQlFVVXNWVUZCVlN4VFFVRlRMRVZCUVVVN1NVRkRia01zVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEZWtNc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UjBGRGVrTTdRVUZEU0N4RlFVRkZMRTFCUVUwc1JVRkJSU3haUVVGWk96dEpRVVZzUWl4UFFVRlBMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETzFGQlEyeENMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRUdFJRVU55UWl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTzA5QlEyaERPMDFCUTBRc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTzBGQlEzcENMRXRCUVVzc1EwRkJRenM3UjBGRlNEdEJRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWSUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMFZCUXk5RkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRPMEZCUTNwQ0xFTkJRVU03TzBGQlJVUXNUVUZCVFN4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMllYSWdVbVZoWTNRZ1BTQm5iRzlpWVd3dVVtVmhZM1FnZkh3Z2NtVnhkV2x5WlNnbmNtVmhZM1FuS1R0Y2JuWmhjaUJHYjNKdGMza2dQU0I3ZlR0Y2JuWmhjaUIyWVd4cFpHRjBhVzl1VW5Wc1pYTWdQU0J5WlhGMWFYSmxLQ2N1TDNaaGJHbGtZWFJwYjI1U2RXeGxjeTVxY3ljcE8xeHVkbUZ5SUhWMGFXeHpJRDBnY21WeGRXbHlaU2duTGk5MWRHbHNjeTVxY3ljcE8xeHVkbUZ5SUUxcGVHbHVJRDBnY21WeGRXbHlaU2duTGk5TmFYaHBiaTVxY3ljcE8xeHVkbUZ5SUc5d2RHbHZibk1nUFNCN2ZUdGNibHh1Um05eWJYTjVMazFwZUdsdUlEMGdUV2w0YVc0N1hHNWNia1p2Y20xemVTNWtaV1poZFd4MGN5QTlJR1oxYm1OMGFXOXVJQ2h3WVhOelpXUlBjSFJwYjI1ektTQjdYRzRnSUc5d2RHbHZibk1nUFNCd1lYTnpaV1JQY0hScGIyNXpPMXh1ZlR0Y2JseHVSbTl5YlhONUxtRmtaRlpoYkdsa1lYUnBiMjVTZFd4bElEMGdablZ1WTNScGIyNGdLRzVoYldVc0lHWjFibU1wSUh0Y2JpQWdkbUZzYVdSaGRHbHZibEoxYkdWelcyNWhiV1ZkSUQwZ1puVnVZenRjYm4wN1hHNWNia1p2Y20xemVTNUdiM0p0SUQwZ1VtVmhZM1F1WTNKbFlYUmxRMnhoYzNNb2UxeHVJQ0JuWlhSSmJtbDBhV0ZzVTNSaGRHVTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdhWE5XWVd4cFpEb2dkSEoxWlN4Y2JpQWdJQ0FnSUdselUzVmliV2wwZEdsdVp6b2dabUZzYzJVc1hHNGdJQ0FnSUNCallXNURhR0Z1WjJVNklHWmhiSE5sWEc0Z0lDQWdmVHRjYmlBZ2ZTeGNiaUFnWjJWMFJHVm1ZWFZzZEZCeWIzQnpPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR2hsWVdSbGNuTTZJSHQ5TEZ4dUlDQWdJQ0FnYjI1VGRXTmpaWE56T2lCbWRXNWpkR2x2YmlBb0tTQjdmU3hjYmlBZ0lDQWdJRzl1UlhKeWIzSTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNVRkV0p0YVhRNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1V1lXeHBaRk4xWW0xcGREb2dablZ1WTNScGIyNGdLQ2tnZTMwc1hHNGdJQ0FnSUNCdmJrbHVkbUZzYVdSVGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNncElIdDlMRnh1SUNBZ0lDQWdiMjVUZFdKdGFYUjBaV1E2SUdaMWJtTjBhVzl1SUNncElIdDlMRnh1SUNBZ0lDQWdiMjVXWVd4cFpEb2dablZ1WTNScGIyNGdLQ2tnZTMwc1hHNGdJQ0FnSUNCdmJrbHVkbUZzYVdRNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1RGFHRnVaMlU2SUdaMWJtTjBhVzl1SUNncElIdDlYRzRnSUNBZ2ZUdGNiaUFnZlN4Y2JseHVJQ0F2THlCQlpHUWdZU0J0WVhBZ2RHOGdjM1J2Y21VZ2RHaGxJR2x1Y0hWMGN5QnZaaUIwYUdVZ1ptOXliU3dnWVNCdGIyUmxiQ0IwYnlCemRHOXlaVnh1SUNBdkx5QjBhR1VnZG1Gc2RXVnpJRzltSUhSb1pTQm1iM0p0SUdGdVpDQnlaV2RwYzNSbGNpQmphR2xzWkNCcGJuQjFkSE5jYmlBZ1kyOXRjRzl1Wlc1MFYybHNiRTF2ZFc1ME9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdkR2hwY3k1cGJuQjFkSE1nUFNCN2ZUdGNiaUFnSUNCMGFHbHpMbTF2WkdWc0lEMGdlMzA3WEc0Z0lDQWdkR2hwY3k1eVpXZHBjM1JsY2tsdWNIVjBjeWgwYUdsekxuQnliM0J6TG1Ob2FXeGtjbVZ1S1R0Y2JpQWdmU3hjYmx4dUlDQmpiMjF3YjI1bGJuUkVhV1JOYjNWdWREb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSFJvYVhNdWRtRnNhV1JoZEdWR2IzSnRLQ2s3WEc0Z0lIMHNYRzVjYmlBZ1kyOXRjRzl1Wlc1MFYybHNiRlZ3WkdGMFpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSFpoY2lCcGJuQjFkRXRsZVhNZ1BTQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrN1hHNWNiaUFnSUNBdkx5QlVhR1VnZFhCa1lYUmxaQ0JqYUdsc1pISmxiaUJoY25KaGVTQnBjeUJ1YjNRZ1lYWmhhV3hoWW14bElHaGxjbVVnWm05eUlITnZiV1VnY21WaGMyOXVMRnh1SUNBZ0lDOHZJSGRsSUc1bFpXUWdkRzhnZDJGcGRDQm1iM0lnYm1WNGRDQmxkbVZ1ZENCc2IyOXdYRzRnSUNBZ2MyVjBWR2x0Wlc5MWRDaG1kVzVqZEdsdmJpQW9LU0I3WEc1Y2JpQWdJQ0FnSUM4dklGUm9aU0JqYjIxd2IyNWxiblFnYldsbmFIUWdhR0YyWlNCaVpXVnVJSFZ1Ylc5MWJuUmxaQ0J2YmlCaGJseHVJQ0FnSUNBZ0x5OGdkWEJrWVhSbFhHNGdJQ0FnSUNCcFppQW9kR2hwY3k1cGMwMXZkVzUwWldRb0tTa2dlMXh1WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjbVZuYVhOMFpYSkpibkIxZEhNb2RHaHBjeTV3Y205d2N5NWphR2xzWkhKbGJpazdYRzVjYmlBZ0lDQWdJQ0JwWmlBb2RHaHBjeTV3Y205d2N5NTJZV3hwWkdGMGFXOXVSWEp5YjNKektTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFJKYm5CMWRGWmhiR2xrWVhScGIyNUZjbkp2Y25Nb2RHaHBjeTV3Y205d2N5NTJZV3hwWkdGMGFXOXVSWEp5YjNKektUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUhaaGNpQnVaWGRKYm5CMWRFdGxlWE1nUFNCUFltcGxZM1F1YTJWNWN5aDBhR2x6TG1sdWNIVjBjeWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaDFkR2xzY3k1aGNuSmhlWE5FYVdabVpYSW9hVzV3ZFhSTFpYbHpMQ0J1WlhkSmJuQjFkRXRsZVhNcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NTJZV3hwWkdGMFpVWnZjbTBvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtzSURBcE8xeHVJQ0I5TEZ4dVhHNGdJQzh2SUZWd1pHRjBaU0J0YjJSbGJDd2djM1ZpYldsMElIUnZJSFZ5YkNCd2NtOXdJR0Z1WkNCelpXNWtJSFJvWlNCdGIyUmxiRnh1SUNCemRXSnRhWFE2SUdaMWJtTjBhVzl1SUNobGRtVnVkQ2tnZTF4dUlDQWdJR1YyWlc1MExuQnlaWFpsYm5SRVpXWmhkV3gwS0NrN1hHNWNiaUFnSUNBdkx5QlVjbWxuWjJWeUlHWnZjbTBnWVhNZ2JtOTBJSEJ5YVhOMGFXNWxMbHh1SUNBZ0lDOHZJRWxtSUdGdWVTQnBibkIxZEhNZ2FHRjJaU0J1YjNRZ1ltVmxiaUIwYjNWamFHVmtJSGxsZENCMGFHbHpJSGRwYkd3Z2JXRnJaU0IwYUdWdElHUnBjblI1WEc0Z0lDQWdMeThnYzI4Z2RtRnNhV1JoZEdsdmJpQmlaV052YldWeklIWnBjMmxpYkdVZ0tHbG1JR0poYzJWa0lHOXVJR2x6VUhKcGMzUnBibVVwWEc0Z0lDQWdkR2hwY3k1elpYUkdiM0p0VUhKcGMzUnBibVVvWm1Gc2MyVXBPMXh1WEc0Z0lDQWdMeThnVkc4Z2MzVndjRzl5ZENCMWMyVWdZMkZ6WlhNZ2QyaGxjbVVnYm04Z1lYTjVibU1nYjNJZ2NtVnhkV1Z6ZENCdmNHVnlZWFJwYjI0Z2FYTWdibVZsWkdWa0xseHVJQ0FnSUM4dklGUm9aU0JjSW05dVUzVmliV2wwWENJZ1kyRnNiR0poWTJzZ2FYTWdZMkZzYkdWa0lIZHBkR2dnZEdobElHMXZaR1ZzSUdVdVp5NGdlMlpwWld4a1RtRnRaVG9nWENKdGVWWmhiSFZsWENKOUxGeHVJQ0FnSUM4dklHbG1JSGRoYm5ScGJtY2dkRzhnY21WelpYUWdkR2hsSUdWdWRHbHlaU0JtYjNKdElIUnZJRzl5YVdkcGJtRnNJSE4wWVhSbExDQjBhR1VnYzJWamIyNWtJSEJoY21GdElHbHpJR0VnWTJGc2JHSmhZMnNnWm05eUlIUm9hWE11WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbkJ5YjNCekxuVnliQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWTmIyUmxiQ2dwTzF4dUlDQWdJQ0FnZG1GeUlHMXZaR1ZzSUQwZ2RHaHBjeTV0WVhCTmIyUmxiQ2dwTzF4dUlDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1dmJsTjFZbTFwZENodGIyUmxiQ3dnZEdocGN5NXlaWE5sZEUxdlpHVnNMQ0IwYUdsekxuVndaR0YwWlVsdWNIVjBjMWRwZEdoRmNuSnZjaWs3WEc0Z0lDQWdJQ0IwYUdsekxuTjBZWFJsTG1selZtRnNhV1FnUHlCMGFHbHpMbkJ5YjNCekxtOXVWbUZzYVdSVGRXSnRhWFFvYlc5a1pXd3NJSFJvYVhNdWNtVnpaWFJOYjJSbGJDa2dPaUIwYUdsekxuQnliM0J6TG05dVNXNTJZV3hwWkZOMVltMXBkQ2h0YjJSbGJDd2dkR2hwY3k1eVpYTmxkRTF2WkdWc0tUdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxuVndaR0YwWlUxdlpHVnNLQ2s3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNCcGMxTjFZbTFwZEhScGJtYzZJSFJ5ZFdWY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNVRkV0p0YVhRb2RHaHBjeTV0WVhCTmIyUmxiQ2dwTENCMGFHbHpMbkpsYzJWMFRXOWtaV3dzSUhSb2FYTXVkWEJrWVhSbFNXNXdkWFJ6VjJsMGFFVnljbTl5S1R0Y2JseHVJQ0FnSUhaaGNpQm9aV0ZrWlhKeklEMGdLRTlpYW1WamRDNXJaWGx6S0hSb2FYTXVjSEp2Y0hNdWFHVmhaR1Z5Y3lrdWJHVnVaM1JvSUNZbUlIUm9hWE11Y0hKdmNITXVhR1ZoWkdWeWN5a2dmSHdnYjNCMGFXOXVjeTVvWldGa1pYSnpJSHg4SUh0OU8xeHVYRzRnSUNBZ2RtRnlJRzFsZEdodlpDQTlJSFJvYVhNdWNISnZjSE11YldWMGFHOWtJQ1ltSUhWMGFXeHpMbUZxWVhoYmRHaHBjeTV3Y205d2N5NXRaWFJvYjJRdWRHOU1iM2RsY2tOaGMyVW9LVjBnUHlCMGFHbHpMbkJ5YjNCekxtMWxkR2h2WkM1MGIweHZkMlZ5UTJGelpTZ3BJRG9nSjNCdmMzUW5PMXh1SUNBZ0lIVjBhV3h6TG1GcVlYaGJiV1YwYUc5a1hTaDBhR2x6TG5CeWIzQnpMblZ5YkN3Z2RHaHBjeTV0WVhCTmIyUmxiQ2dwTENCMGFHbHpMbkJ5YjNCekxtTnZiblJsYm5SVWVYQmxJSHg4SUc5d2RHbHZibk11WTI5dWRHVnVkRlI1Y0dVZ2ZId2dKMnB6YjI0bkxDQm9aV0ZrWlhKektWeHVJQ0FnSUNBZ0xuUm9aVzRvWm5WdVkzUnBiMjRnS0hKbGMzQnZibk5sS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdOalpYTnpLSEpsYzNCdmJuTmxLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1dmJsTjFZbTFwZEhSbFpDZ3BPMXh1SUNBZ0lDQWdmUzVpYVc1a0tIUm9hWE1wS1Z4dUlDQWdJQ0FnTG1OaGRHTm9LSFJvYVhNdVptRnBiRk4xWW0xcGRDazdYRzRnSUgwc1hHNWNiaUFnYldGd1RXOWtaV3c2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXdjbTl3Y3k1dFlYQndhVzVuSUQ4Z2RHaHBjeTV3Y205d2N5NXRZWEJ3YVc1bktIUm9hWE11Ylc5a1pXd3BJRG9nZEdocGN5NXRiMlJsYkR0Y2JpQWdmU3hjYmx4dUlDQXZMeUJIYjJWeklIUm9jbTkxWjJnZ1lXeHNJSEpsWjJsemRHVnlaV1FnWTI5dGNHOXVaVzUwY3lCaGJtUmNiaUFnTHk4Z2RYQmtZWFJsY3lCMGFHVWdiVzlrWld3Z2RtRnNkV1Z6WEc0Z0lIVndaR0YwWlUxdlpHVnNPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnVDJKcVpXTjBMbXRsZVhNb2RHaHBjeTVwYm5CMWRITXBMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNGdLRzVoYldVcElIdGNiaUFnSUNBZ0lIWmhjaUJqYjIxd2IyNWxiblFnUFNCMGFHbHpMbWx1Y0hWMGMxdHVZVzFsWFR0Y2JpQWdJQ0FnSUhSb2FYTXViVzlrWld4YmJtRnRaVjBnUFNCamIyMXdiMjVsYm5RdWMzUmhkR1V1WDNaaGJIVmxPMXh1SUNBZ0lIMHVZbWx1WkNoMGFHbHpLU2s3WEc0Z0lIMHNYRzVjYmlBZ0x5OGdVbVZ6WlhRZ1pXRmphQ0JyWlhrZ2FXNGdkR2hsSUcxdlpHVnNJSFJ2SUhSb1pTQnZjbWxuYVc1aGJDQXZJR2x1YVhScFlXd2dkbUZzZFdWY2JpQWdjbVZ6WlhSTmIyUmxiRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUU5aWFtVmpkQzVyWlhsektIUm9hWE11YVc1d2RYUnpLUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2h1WVcxbEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG1sdWNIVjBjMXR1WVcxbFhTNXlaWE5sZEZaaGJIVmxLQ2s3WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdJQ0IwYUdsekxuWmhiR2xrWVhSbFJtOXliU2dwTzF4dUlDQjlMRnh1WEc0Z0lITmxkRWx1Y0hWMFZtRnNhV1JoZEdsdmJrVnljbTl5Y3pvZ1puVnVZM1JwYjI0Z0tHVnljbTl5Y3lrZ2UxeHVJQ0FnSUNCUFltcGxZM1F1YTJWNWN5aDBhR2x6TG1sdWNIVjBjeWt1Wm05eVJXRmphQ2htZFc1amRHbHZiaUFvYm1GdFpTd2dhVzVrWlhncElIdGNiaUFnSUNBZ0lIWmhjaUJqYjIxd2IyNWxiblFnUFNCMGFHbHpMbWx1Y0hWMGMxdHVZVzFsWFR0Y2JpQWdJQ0FnSUhaaGNpQmhjbWR6SUQwZ1czdGNiaUFnSUNBZ0lDQWdYMmx6Vm1Gc2FXUTZJQ0VvYm1GdFpTQnBiaUJsY25KdmNuTXBMRnh1SUNBZ0lDQWdJQ0JmYzJWeWRtVnlSWEp5YjNJNklHVnljbTl5YzF0dVlXMWxYVnh1SUNBZ0lDQWdmVjA3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1YzJWMFUzUmhkR1V1WVhCd2JIa29ZMjl0Y0c5dVpXNTBMQ0JoY21kektUdGNiaUFnSUNCOUxtSnBibVFvZEdocGN5a3BPeUFnSUZ4dUlDQjlMRnh1WEc0Z0lDOHZJRWR2SUhSb2NtOTFaMmdnWlhKeWIzSnpJR1p5YjIwZ2MyVnlkbVZ5SUdGdVpDQm5jbUZpSUhSb1pTQmpiMjF3YjI1bGJuUnpYRzRnSUM4dklITjBiM0psWkNCcGJpQjBhR1VnYVc1d2RYUnpJRzFoY0M0Z1EyaGhibWRsSUhSb1pXbHlJSE4wWVhSbElIUnZJR2x1ZG1Gc2FXUmNiaUFnTHk4Z1lXNWtJSE5sZENCMGFHVWdjMlZ5ZG1WeVJYSnliM0lnYldWemMyRm5aVnh1SUNCMWNHUmhkR1ZKYm5CMWRITlhhWFJvUlhKeWIzSTZJR1oxYm1OMGFXOXVJQ2hsY25KdmNuTXBJSHRjYmlBZ0lDQlBZbXBsWTNRdWEyVjVjeWhsY25KdmNuTXBMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNGdLRzVoYldVc0lHbHVaR1Y0S1NCN1hHNGdJQ0FnSUNCMllYSWdZMjl0Y0c5dVpXNTBJRDBnZEdocGN5NXBibkIxZEhOYmJtRnRaVjA3WEc1Y2JpQWdJQ0FnSUdsbUlDZ2hZMjl0Y0c5dVpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduV1c5MUlHRnlaU0IwY25scGJtY2dkRzhnZFhCa1lYUmxJR0Z1SUdsdWNIVjBJSFJvWVhRZ1pHOWxjeUJ1YjNRZ1pYaHBjM1J6TGlCV1pYSnBabmtnWlhKeWIzSnpJRzlpYW1WamRDQjNhWFJvSUdsdWNIVjBJRzVoYldWekxpQW5JQ3NnU2xOUFRpNXpkSEpwYm1kcFpua29aWEp5YjNKektTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSFpoY2lCaGNtZHpJRDBnVzN0Y2JpQWdJQ0FnSUNBZ1gybHpWbUZzYVdRNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNCZmMyVnlkbVZ5UlhKeWIzSTZJR1Z5Y205eWMxdHVZVzFsWFZ4dUlDQWdJQ0FnZlYwN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdWMyVjBVM1JoZEdVdVlYQndiSGtvWTI5dGNHOXVaVzUwTENCaGNtZHpLVHRjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQjlMRnh1WEc0Z0lHWmhhV3hUZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2hsY25KdmNuTXBJSHRjYmlBZ0lDQjBhR2x6TG5Wd1pHRjBaVWx1Y0hWMGMxZHBkR2hGY25KdmNpaGxjbkp2Y25NcE8xeHVJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdhWE5UZFdKdGFYUjBhVzVuT2lCbVlXeHpaVnh1SUNBZ0lIMHBPMXh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVGY25KdmNpaGxjbkp2Y25NcE8xeHVJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNVRkV0p0YVhSMFpXUW9LVHRjYmlBZ2ZTeGNibHh1SUNBdkx5QlVjbUYyWlhKelpTQjBhR1VnWTJocGJHUnlaVzRnWVc1a0lHTm9hV3hrY21WdUlHOW1JR05vYVd4a2NtVnVJSFJ2SUdacGJtUmNiaUFnTHk4Z1lXeHNJR2x1Y0hWMGN5QmllU0JqYUdWamEybHVaeUIwYUdVZ2JtRnRaU0J3Y205d0xpQk5ZWGxpWlNCa2J5QmhJR0psZEhSbGNseHVJQ0F2THlCamFHVmpheUJvWlhKbFhHNGdJSEpsWjJsemRHVnlTVzV3ZFhSek9pQm1kVzVqZEdsdmJpQW9ZMmhwYkdSeVpXNHBJSHRjYmlBZ0lDQlNaV0ZqZEM1RGFHbHNaSEpsYmk1bWIzSkZZV05vS0dOb2FXeGtjbVZ1TENCbWRXNWpkR2x2YmlBb1kyaHBiR1FwSUh0Y2JseHVJQ0FnSUNBZ2FXWWdLR05vYVd4a0lDWW1JR05vYVd4a0xuQnliM0J6SUNZbUlHTm9hV3hrTG5CeWIzQnpMbTVoYldVcElIdGNiaUFnSUNBZ0lDQWdZMmhwYkdRdWNISnZjSE11WDJGMGRHRmphRlJ2Um05eWJTQTlJSFJvYVhNdVlYUjBZV05vVkc5R2IzSnRPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZlpHVjBZV05vUm5KdmJVWnZjbTBnUFNCMGFHbHpMbVJsZEdGamFFWnliMjFHYjNKdE8xeHVJQ0FnSUNBZ0lDQmphR2xzWkM1d2NtOXdjeTVmZG1Gc2FXUmhkR1VnUFNCMGFHbHpMblpoYkdsa1lYUmxPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZmFYTkdiM0p0UkdsellXSnNaV1FnUFNCMGFHbHpMbWx6Um05eWJVUnBjMkZpYkdWa08xeHVJQ0FnSUNBZ0lDQmphR2xzWkM1d2NtOXdjeTVmYVhOV1lXeHBaRlpoYkhWbElEMGdkR2hwY3k1eWRXNVdZV3hwWkdGMGFXOXVPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb1kyaHBiR1FnSmlZZ1kyaHBiR1F1Y0hKdmNITWdKaVlnWTJocGJHUXVjSEp2Y0hNdVkyaHBiR1J5Wlc0cElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1eVpXZHBjM1JsY2tsdWNIVjBjeWhqYUdsc1pDNXdjbTl3Y3k1amFHbHNaSEpsYmlrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNCOUxtSnBibVFvZEdocGN5a3BPMXh1SUNCOUxGeHVYRzRnSUdselJtOXliVVJwYzJGaWJHVmtPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNISnZjSE11WkdsellXSnNaV1E3WEc0Z0lIMHNYRzVjYmlBZ1oyVjBRM1Z5Y21WdWRGWmhiSFZsY3pvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCUFltcGxZM1F1YTJWNWN5aDBhR2x6TG1sdWNIVjBjeWt1Y21Wa2RXTmxLR1oxYm1OMGFXOXVJQ2hrWVhSaExDQnVZVzFsS1NCN1hHNGdJQ0FnSUNCMllYSWdZMjl0Y0c5dVpXNTBJRDBnZEdocGN5NXBibkIxZEhOYmJtRnRaVjA3WEc0Z0lDQWdJQ0JrWVhSaFcyNWhiV1ZkSUQwZ1kyOXRjRzl1Wlc1MExuTjBZWFJsTGw5MllXeDFaVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmtZWFJoTzF4dUlDQWdJSDB1WW1sdVpDaDBhR2x6S1N3Z2UzMHBPMXh1SUNCOUxGeHVYRzRnSUhObGRFWnZjbTFRY21semRHbHVaVG9nWm5WdVkzUnBiMjRnS0dselVISnBjM1JwYm1VcElIdGNiaUFnSUNCMllYSWdhVzV3ZFhSeklEMGdkR2hwY3k1cGJuQjFkSE03WEc0Z0lDQWdkbUZ5SUdsdWNIVjBTMlY1Y3lBOUlFOWlhbVZqZEM1clpYbHpLR2x1Y0hWMGN5azdYRzVjYmlBZ0lDQXZMeUJKZEdWeVlYUmxJSFJvY205MVoyZ2daV0ZqYUNCamIyMXdiMjVsYm5RZ1lXNWtJSE5sZENCcGRDQmhjeUJ3Y21semRHbHVaVnh1SUNBZ0lDOHZJRzl5SUZ3aVpHbHlkSGxjSWk1Y2JpQWdJQ0JwYm5CMWRFdGxlWE11Wm05eVJXRmphQ2htZFc1amRHbHZiaUFvYm1GdFpTd2dhVzVrWlhncElIdGNiaUFnSUNBZ0lIWmhjaUJqYjIxd2IyNWxiblFnUFNCcGJuQjFkSE5iYm1GdFpWMDdYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0JmYVhOUWNtbHpkR2x1WlRvZ2FYTlFjbWx6ZEdsdVpWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVHRjYmlBZ2ZTeGNibHh1SUNBdkx5QlZjMlVnZEdobElHSnBibVJsWkNCMllXeDFaWE1nWVc1a0lIUm9aU0JoWTNSMVlXd2dhVzV3ZFhRZ2RtRnNkV1VnZEc5Y2JpQWdMeThnZG1Gc2FXUmhkR1VnZEdobElHbHVjSFYwSUdGdVpDQnpaWFFnYVhSeklITjBZWFJsTGlCVWFHVnVJR05vWldOcklIUm9aVnh1SUNBdkx5QnpkR0YwWlNCdlppQjBhR1VnWm05eWJTQnBkSE5sYkdaY2JpQWdkbUZzYVdSaGRHVTZJR1oxYm1OMGFXOXVJQ2hqYjIxd2IyNWxiblFwSUh0Y2JpQWdJQ0JjYmlBZ0lDQXZMeUJVY21sbloyVnlJRzl1UTJoaGJtZGxYRzRnSUNBZ2FXWWdLSFJvYVhNdWMzUmhkR1V1WTJGdVEyaGhibWRsS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbkJ5YjNCekxtOXVRMmhoYm1kbEtIUm9hWE11WjJWMFEzVnljbVZ1ZEZaaGJIVmxjeWdwS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IyWVhJZ2FYTldZV3hwWkNBOUlIUnlkV1U3WEc0Z0lDQWdhV1lnS0dOdmJYQnZibVZ1ZEM1MllXeHBaR0YwWlNBbUppQjBlWEJsYjJZZ1kyOXRjRzl1Wlc1MExuWmhiR2xrWVhSbElEMDlQU0FuWm5WdVkzUnBiMjRuS1NCN1hHNGdJQ0FnSUNCcGMxWmhiR2xrSUQwZ1kyOXRjRzl1Wlc1MExuWmhiR2xrWVhSbEtDazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaGpiMjF3YjI1bGJuUXVjSEp2Y0hNdWNtVnhkV2x5WldRZ2ZId2dZMjl0Y0c5dVpXNTBMbDkyWVd4cFpHRjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ2FYTldZV3hwWkNBOUlIUm9hWE11Y25WdVZtRnNhV1JoZEdsdmJpaGpiMjF3YjI1bGJuUXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRkoxYmlCMGFISnZkV2RvSUhSb1pTQjJZV3hwWkdGMGFXOXVjeXdnYzNCc2FYUWdkR2hsYlNCMWNDQmhibVFnWTJGc2JGeHVJQ0FnSUM4dklIUm9aU0IyWVd4cFpHRjBiM0lnU1VZZ2RHaGxjbVVnYVhNZ1lTQjJZV3gxWlNCdmNpQnBkQ0JwY3lCeVpYRjFhWEpsWkZ4dUlDQWdJR052YlhCdmJtVnVkQzV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0JmYVhOV1lXeHBaRG9nYVhOV1lXeHBaQ3hjYmlBZ0lDQWdJRjl6WlhKMlpYSkZjbkp2Y2pvZ2JuVnNiRnh1SUNBZ0lIMHNJSFJvYVhNdWRtRnNhV1JoZEdWR2IzSnRLVHRjYmx4dUlDQjlMRnh1WEc0Z0lDOHZJRU5vWldOcmN5QjJZV3hwWkdGMGFXOXVJRzl1SUdOMWNuSmxiblFnZG1Gc2RXVWdiM0lnWVNCd1lYTnpaV1FnZG1Gc2RXVmNiaUFnY25WdVZtRnNhV1JoZEdsdmJqb2dablZ1WTNScGIyNGdLR052YlhCdmJtVnVkQ3dnZG1Gc2RXVXBJSHRjYmx4dUlDQWdJSFpoY2lCcGMxWmhiR2xrSUQwZ2RISjFaVHRjYmlBZ0lDQjJZV3gxWlNBOUlHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnZ1BUMDlJRElnUHlCMllXeDFaU0E2SUdOdmJYQnZibVZ1ZEM1emRHRjBaUzVmZG1Gc2RXVTdYRzRnSUNBZ2FXWWdLR052YlhCdmJtVnVkQzVmZG1Gc2FXUmhkR2x2Ym5NdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdVgzWmhiR2xrWVhScGIyNXpMbk53YkdsMEtDOWNYQ3dvUHlGYlhudGNYRnRkS2x0OVhGeGRYU2t2WnlrdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2RtRnNhV1JoZEdsdmJpa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ1lYSm5jeUE5SUhaaGJHbGtZWFJwYjI0dWMzQnNhWFFvSnpvbktUdGNiaUFnSUNBZ0lDQWdkbUZ5SUhaaGJHbGtZWFJsVFdWMGFHOWtJRDBnWVhKbmN5NXphR2xtZENncE8xeHVJQ0FnSUNBZ0lDQmhjbWR6SUQwZ1lYSm5jeTV0WVhBb1puVnVZM1JwYjI0Z0tHRnlaeWtnZTF4dUlDQWdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1NsTlBUaTV3WVhKelpTaGhjbWNwTzF4dUlDQWdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ0tHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGNtYzdJQzh2SUVsMElHbHpJR0VnYzNSeWFXNW5JR2xtSUdsMElHTmhiaUJ1YjNRZ2NHRnljMlVnYVhSY2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCaGNtZHpJRDBnVzNaaGJIVmxYUzVqYjI1allYUW9ZWEpuY3lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doZG1Gc2FXUmhkR2x2YmxKMWJHVnpXM1poYkdsa1lYUmxUV1YwYUc5a1hTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduUm05eWJYTjVJR1J2WlhNZ2JtOTBJR2hoZG1VZ2RHaGxJSFpoYkdsa1lYUnBiMjRnY25Wc1pUb2dKeUFySUhaaGJHbGtZWFJsVFdWMGFHOWtLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9JWFpoYkdsa1lYUnBiMjVTZFd4bGMxdDJZV3hwWkdGMFpVMWxkR2h2WkYwdVlYQndiSGtvZEdocGN5NW5aWFJEZFhKeVpXNTBWbUZzZFdWektDa3NJR0Z5WjNNcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVhOV1lXeHBaQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2RIbHdaVzltSUdOdmJYQnZibVZ1ZEM1MllXeHBaR0YwWlNBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCN1hHNGdJQ0FnSUNBdkx5QjBhR1VnWTI5dGNHOXVaVzUwSUdSbFptbHVaWE1nWVc0Z1pYaHdiR2xqYVhRZ2RtRnNhV1JoZEdVZ1puVnVZM1JwYjI1Y2JpQWdJQ0FnSUdselZtRnNhV1FnUFNCamIyMXdiMjVsYm5RdWRtRnNhV1JoZEdVb0tWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdhWE5XWVd4cFpEdGNiaUFnZlN4Y2JseHVJQ0F2THlCV1lXeHBaR0YwWlNCMGFHVWdabTl5YlNCaWVTQm5iMmx1WnlCMGFISnZkV2RvSUdGc2JDQmphR2xzWkNCcGJuQjFkQ0JqYjIxd2IyNWxiblJ6WEc0Z0lDOHZJR0Z1WkNCamFHVmpheUIwYUdWcGNpQnpkR0YwWlZ4dUlDQjJZV3hwWkdGMFpVWnZjbTA2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCMllYSWdZV3hzU1hOV1lXeHBaQ0E5SUhSeWRXVTdYRzRnSUNBZ2RtRnlJR2x1Y0hWMGN5QTlJSFJvYVhNdWFXNXdkWFJ6TzF4dUlDQWdJSFpoY2lCcGJuQjFkRXRsZVhNZ1BTQlBZbXBsWTNRdWEyVjVjeWhwYm5CMWRITXBPMXh1WEc0Z0lDQWdMeThnVjJVZ2JtVmxaQ0JoSUdOaGJHeGlZV05ySUdGeklIZGxJR0Z5WlNCMllXeHBaR0YwYVc1bklHRnNiQ0JwYm5CMWRITWdZV2RoYVc0dUlGUm9hWE1nZDJsc2JGeHVJQ0FnSUM4dklISjFiaUIzYUdWdUlIUm9aU0JzWVhOMElHTnZiWEJ2Ym1WdWRDQm9ZWE1nYzJWMElHbDBjeUJ6ZEdGMFpWeHVJQ0FnSUhaaGNpQnZibFpoYkdsa1lYUnBiMjVEYjIxd2JHVjBaU0E5SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lHbHVjSFYwUzJWNWN5NW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHVZVzFsS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYVc1d2RYUnpXMjVoYldWZExuTjBZWFJsTGw5cGMxWmhiR2xrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZV3hzU1hOV1lXeHBaQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0h0Y2JpQWdJQ0FnSUNBZ2FYTldZV3hwWkRvZ1lXeHNTWE5XWVd4cFpGeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJR2xtSUNoaGJHeEpjMVpoYkdsa0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNISnZjSE11YjI1V1lXeHBaQ2dwTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1dmJrbHVkbUZzYVdRb0tUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdMeThnVkdWc2JDQjBhR1VnWm05eWJTQjBhR0YwSUdsMElHTmhiaUJ6ZEdGeWRDQjBieUIwY21sbloyVnlJR05vWVc1blpTQmxkbVZ1ZEhOY2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0JqWVc1RGFHRnVaMlU2SUhSeWRXVmNiaUFnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wTzF4dVhHNGdJQ0FnTHk4Z1VuVnVJSFpoYkdsa1lYUnBiMjRnWVdkaGFXNGdhVzRnWTJGelpTQmhabVpsWTNSbFpDQmllU0J2ZEdobGNpQnBibkIxZEhNdUlGUm9aVnh1SUNBZ0lDOHZJR3hoYzNRZ1kyOXRjRzl1Wlc1MElIWmhiR2xrWVhSbFpDQjNhV3hzSUhKMWJpQjBhR1VnYjI1V1lXeHBaR0YwYVc5dVEyOXRjR3hsZEdVZ1kyRnNiR0poWTJ0Y2JpQWdJQ0JwYm5CMWRFdGxlWE11Wm05eVJXRmphQ2htZFc1amRHbHZiaUFvYm1GdFpTd2dhVzVrWlhncElIdGNiaUFnSUNBZ0lIWmhjaUJqYjIxd2IyNWxiblFnUFNCcGJuQjFkSE5iYm1GdFpWMDdYRzRnSUNBZ0lDQjJZWElnYVhOV1lXeHBaQ0E5SUhSb2FYTXVjblZ1Vm1Gc2FXUmhkR2x2YmloamIyMXdiMjVsYm5RcE8xeHVJQ0FnSUNBZ1kyOXRjRzl1Wlc1MExuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdYMmx6Vm1Gc2FXUTZJR2x6Vm1Gc2FXUXNYRzRnSUNBZ0lDQWdJRjl6WlhKMlpYSkZjbkp2Y2pvZ2JuVnNiRnh1SUNBZ0lDQWdmU3dnYVc1a1pYZ2dQVDA5SUdsdWNIVjBTMlY1Y3k1c1pXNW5kR2dnTFNBeElEOGdiMjVXWVd4cFpHRjBhVzl1UTI5dGNHeGxkR1VnT2lCdWRXeHNLVHRjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dVhHNGdJQ0FnTHk4Z1NXWWdkR2hsY21VZ1lYSmxJRzV2SUdsdWNIVjBjeXdnYzJWMElITjBZWFJsSUhkb1pYSmxJR1p2Y20wZ2FYTWdjbVZoWkhrZ2RHOGdkSEpwWjJkbGNseHVJQ0FnSUM4dklHTm9ZVzVuWlNCbGRtVnVkQzRnVG1WM0lHbHVjSFYwY3lCdGFXZG9kQ0JpWlNCaFpHUmxaQ0JzWVhSbGNseHVJQ0FnSUdsbUlDZ2hhVzV3ZFhSTFpYbHpMbXhsYm1kMGFDQW1KaUIwYUdsekxtbHpUVzkxYm5SbFpDZ3BLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdZMkZ1UTJoaGJtZGxPaUIwY25WbFhHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJSDBzWEc1Y2JpQWdMeThnVFdWMGFHOWtJSEIxZENCdmJpQmxZV05vSUdsdWNIVjBJR052YlhCdmJtVnVkQ0IwYnlCeVpXZHBjM1JsY2x4dUlDQXZMeUJwZEhObGJHWWdkRzhnZEdobElHWnZjbTFjYmlBZ1lYUjBZV05vVkc5R2IzSnRPaUJtZFc1amRHbHZiaUFvWTI5dGNHOXVaVzUwS1NCN1hHNGdJQ0FnZEdocGN5NXBibkIxZEhOYlkyOXRjRzl1Wlc1MExuQnliM0J6TG01aGJXVmRJRDBnWTI5dGNHOXVaVzUwTzF4dUlDQWdJSFJvYVhNdWJXOWtaV3hiWTI5dGNHOXVaVzUwTG5CeWIzQnpMbTVoYldWZElEMGdZMjl0Y0c5dVpXNTBMbk4wWVhSbExsOTJZV3gxWlR0Y2JpQWdJQ0IwYUdsekxuWmhiR2xrWVhSbEtHTnZiWEJ2Ym1WdWRDazdYRzRnSUgwc1hHNWNiaUFnTHk4Z1RXVjBhRzlrSUhCMWRDQnZiaUJsWVdOb0lHbHVjSFYwSUdOdmJYQnZibVZ1ZENCMGJ5QjFibkpsWjJsemRHVnlYRzRnSUM4dklHbDBjMlZzWmlCbWNtOXRJSFJvWlNCbWIzSnRYRzRnSUdSbGRHRmphRVp5YjIxR2IzSnRPaUJtZFc1amRHbHZiaUFvWTI5dGNHOXVaVzUwS1NCN1hHNGdJQ0FnWkdWc1pYUmxJSFJvYVhNdWFXNXdkWFJ6VzJOdmJYQnZibVZ1ZEM1d2NtOXdjeTV1WVcxbFhUdGNiaUFnSUNCa1pXeGxkR1VnZEdocGN5NXRiMlJsYkZ0amIyMXdiMjVsYm5RdWNISnZjSE11Ym1GdFpWMDdYRzRnSUgwc1hHNGdJSEpsYm1SbGNqb2dablZ1WTNScGIyNGdLQ2tnZTF4dVhHNGdJQ0FnY21WMGRYSnVJRkpsWVdOMExrUlBUUzVtYjNKdEtIdGNiaUFnSUNBZ0lDQWdiMjVUZFdKdGFYUTZJSFJvYVhNdWMzVmliV2wwTEZ4dUlDQWdJQ0FnSUNCamJHRnpjMDVoYldVNklIUm9hWE11Y0hKdmNITXVZMnhoYzNOT1lXMWxYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTVqYUdsc1pISmxibHh1SUNBZ0lDazdYRzVjYmlBZ2ZWeHVmU2s3WEc1Y2JtbG1JQ2doWjJ4dlltRnNMbVY0Y0c5eWRITWdKaVlnSVdkc2IySmhiQzV0YjJSMWJHVWdKaVlnS0NGbmJHOWlZV3d1WkdWbWFXNWxJSHg4SUNGbmJHOWlZV3d1WkdWbWFXNWxMbUZ0WkNrcElIdGNiaUFnWjJ4dlltRnNMa1p2Y20xemVTQTlJRVp2Y20xemVUdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCR2IzSnRjM2s3WEc0aVhYMD0iLCJ2YXIgY3NyZlRva2VuU2VsZWN0b3IgPSB0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9XCJjc3JmLXRva2VuXCJdJykgOiBudWxsO1xuXG52YXIgdG9VUkxFbmNvZGVkID0gZnVuY3Rpb24gKGVsZW1lbnQsIGtleSwgbGlzdCkge1xuICB2YXIgbGlzdCA9IGxpc3QgfHwgW107XG4gIGlmICh0eXBlb2YgKGVsZW1lbnQpID09ICdvYmplY3QnKSB7XG4gICAgZm9yICh2YXIgaWR4IGluIGVsZW1lbnQpXG4gICAgICB0b1VSTEVuY29kZWQoZWxlbWVudFtpZHhdLCBrZXkgPyBrZXkgKyAnWycgKyBpZHggKyAnXScgOiBpZHgsIGxpc3QpO1xuICB9IGVsc2Uge1xuICAgIGxpc3QucHVzaChrZXkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoZWxlbWVudCkpO1xuICB9XG4gIHJldHVybiBsaXN0LmpvaW4oJyYnKTtcbn07XG5cbnZhciByZXF1ZXN0ID0gZnVuY3Rpb24gKG1ldGhvZCwgdXJsLCBkYXRhLCBjb250ZW50VHlwZSwgaGVhZGVycykge1xuXG4gIHZhciBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlID09PSAndXJsZW5jb2RlZCcgPyAnYXBwbGljYXRpb24vJyArIGNvbnRlbnRUeXBlLnJlcGxhY2UoJ3VybGVuY29kZWQnLCAneC13d3ctZm9ybS11cmxlbmNvZGVkJykgOiAnYXBwbGljYXRpb24vanNvbic7XG4gIGRhdGEgPSBjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiB0b1VSTEVuY29kZWQoZGF0YSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgeGhyLm9wZW4obWV0aG9kLCB1cmwsIHRydWUpO1xuICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywgY29udGVudFR5cGUpO1xuXG4gICAgICBpZiAoISFjc3JmVG9rZW5TZWxlY3RvciAmJiAhIWNzcmZUb2tlblNlbGVjdG9yLmNvbnRlbnQpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ1gtQ1NSRi1Ub2tlbicsIGNzcmZUb2tlblNlbGVjdG9yLmNvbnRlbnQpO1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgcGFzc2VkIGhlYWRlcnNcbiAgICAgIE9iamVjdC5rZXlzKGhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24gKGhlYWRlcikge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihoZWFkZXIsIGhlYWRlcnNbaGVhZGVyXSk7XG4gICAgICB9KTtcblxuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0geGhyLnJlc3BvbnNlVGV4dCA/IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QocmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHhoci5zZW5kKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFycmF5c0RpZmZlcjogZnVuY3Rpb24gKGFycmF5QSwgYXJyYXlCKSB7XG4gICAgdmFyIGlzRGlmZmVyZW50ID0gZmFsc2U7XG4gICAgaWYgKGFycmF5QS5sZW5ndGggIT09IGFycmF5Qi5sZW5ndGgpIHtcbiAgICAgIGlzRGlmZmVyZW50ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyYXlBLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIGlmIChpdGVtICE9PSBhcnJheUJbaW5kZXhdKSB7XG4gICAgICAgICAgaXNEaWZmZXJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlmZmVyZW50O1xuICB9LFxuICBhamF4OiB7XG4gICAgcG9zdDogcmVxdWVzdC5iaW5kKG51bGwsICdQT1NUJyksXG4gICAgcHV0OiByZXF1ZXN0LmJpbmQobnVsbCwgJ1BVVCcpXG4gIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdmRYUnBiSE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTlWYzJWeWN5OWphSEpwYzNScFlXNWhiR1p2Ym1rdlJHOWpkVzFsYm5SekwyUmxkaTltYjNKdGMza3RjbVZoWTNRdmMzSmpMM1YwYVd4ekxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEVsQlFVa3NhVUpCUVdsQ0xFZEJRVWNzVDBGQlR5eFJRVUZSTEVsQlFVa3NWMEZCVnl4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU03TzBGQlJXeElMRWxCUVVrc1dVRkJXU3hIUVVGSExGVkJRVlVzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SlFVRkpMRVZCUVVVN1JVRkRMME1zU1VGQlNTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRGUVVOMFFpeEpRVUZKTEZGQlFWRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1VVRkJVU3hGUVVGRk8wbEJRMmhETEV0QlFVc3NTVUZCU1N4SFFVRkhMRWxCUVVrc1QwRkJUenROUVVOeVFpeFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGRCUTNaRkxFMUJRVTA3U1VGRFRDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEhRVU53UkR0RlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTjRRaXhEUVVGRExFTkJRVU03TzBGQlJVWXNTVUZCU1N4UFFVRlBMRWRCUVVjc1ZVRkJWU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVGRk96dEZRVVV2UkN4SlFVRkpMRmRCUVZjc1IwRkJSeXhYUVVGWExFdEJRVXNzV1VGQldTeEhRVUZITEdOQlFXTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUlVGQlJTeDFRa0ZCZFVJc1EwRkJReXhIUVVGSExHdENRVUZyUWl4RFFVRkRPMEZCUTNCS0xFVkJRVVVzU1VGQlNTeEhRVUZITEZkQlFWY3NTMEZCU3l4clFrRkJhMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXpzN1JVRkZkRVlzVDBGQlR5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VlFVRlZMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVU3U1VGRE5VTXNTVUZCU1R0TlFVTkdMRWxCUVVrc1IwRkJSeXhIUVVGSExFbEJRVWtzWTBGQll5eEZRVUZGTEVOQlFVTTdUVUZETDBJc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wMUJRelZDTEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dEJRVU42UkN4TlFVRk5MRWRCUVVjc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4alFVRmpMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03TzAxQlJXeEVMRWxCUVVrc1EwRkJReXhEUVVGRExHbENRVUZwUWl4SlFVRkpMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4UFFVRlBMRVZCUVVVN1VVRkRkRVFzUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExHTkJRV01zUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU40UlN4UFFVRlBPMEZCUTFBN08wMUJSVTBzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeE5RVUZOTEVWQlFVVTdVVUZETjBNc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBSQ3hQUVVGUExFTkJRVU1zUTBGQlF6czdUVUZGU0N4SFFVRkhMRU5CUVVNc2EwSkJRV3RDTEVkQlFVY3NXVUZCV1R0QlFVTXpReXhSUVVGUkxFbEJRVWtzUjBGQlJ5eERRVUZETEZWQlFWVXNTMEZCU3l4RFFVRkRMRVZCUVVVN08xVkJSWGhDTEVsQlFVazdXVUZEUml4SlFVRkpMRkZCUVZFc1IwRkJSeXhIUVVGSExFTkJRVU1zV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0WlFVTjBSU3hKUVVGSkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEZRVUZGTzJOQlEzcERMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dGhRVU51UWl4TlFVRk5PMk5CUTB3c1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzJGQlEyeENPMWRCUTBZc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFpRVU5XTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMFFpeFhRVUZYT3p0VFFVVkdPMDlCUTBZc1EwRkJRenROUVVOR0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRhRUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0TlFVTldMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5ZTzBkQlEwWXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRE96dEJRVVZHTEUxQlFVMHNRMEZCUXl4UFFVRlBMRWRCUVVjN1JVRkRaaXhaUVVGWkxFVkJRVVVzVlVGQlZTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZPMGxCUTNSRExFbEJRVWtzVjBGQlZ5eEhRVUZITEV0QlFVc3NRMEZCUXp0SlFVTjRRaXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSVHROUVVOdVF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRPMHRCUTNCQ0xFMUJRVTA3VFVGRFRDeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdFJRVU53UXl4SlFVRkpMRWxCUVVrc1MwRkJTeXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdWVUZETVVJc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dFRRVU53UWp0UFFVTkdMRU5CUVVNc1EwRkJRenRMUVVOS08wbEJRMFFzVDBGQlR5eFhRVUZYTEVOQlFVTTdSMEZEY0VJN1JVRkRSQ3hKUVVGSkxFVkJRVVU3U1VGRFNpeEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETzBsQlEyaERMRWRCUVVjc1JVRkJSU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNN1IwRkRMMEk3UTBGRFJpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWRtRnlJR056Y21aVWIydGxibE5sYkdWamRHOXlJRDBnZEhsd1pXOW1JR1J2WTNWdFpXNTBJQ0U5SUNkMWJtUmxabWx1WldRbklEOGdaRzlqZFcxbGJuUXVjWFZsY25sVFpXeGxZM1J2Y2lnbmJXVjBZVnR1WVcxbFBWd2lZM055WmkxMGIydGxibHdpWFNjcElEb2diblZzYkR0Y2JseHVkbUZ5SUhSdlZWSk1SVzVqYjJSbFpDQTlJR1oxYm1OMGFXOXVJQ2hsYkdWdFpXNTBMQ0JyWlhrc0lHeHBjM1FwSUh0Y2JpQWdkbUZ5SUd4cGMzUWdQU0JzYVhOMElIeDhJRnRkTzF4dUlDQnBaaUFvZEhsd1pXOW1JQ2hsYkdWdFpXNTBLU0E5UFNBbmIySnFaV04wSnlrZ2UxeHVJQ0FnSUdadmNpQW9kbUZ5SUdsa2VDQnBiaUJsYkdWdFpXNTBLVnh1SUNBZ0lDQWdkRzlWVWt4RmJtTnZaR1ZrS0dWc1pXMWxiblJiYVdSNFhTd2dhMlY1SUQ4Z2EyVjVJQ3NnSjFzbklDc2dhV1I0SUNzZ0oxMG5JRG9nYVdSNExDQnNhWE4wS1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCc2FYTjBMbkIxYzJnb2EyVjVJQ3NnSnowbklDc2daVzVqYjJSbFZWSkpRMjl0Y0c5dVpXNTBLR1ZzWlcxbGJuUXBLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdiR2x6ZEM1cWIybHVLQ2NtSnlrN1hHNTlPMXh1WEc1MllYSWdjbVZ4ZFdWemRDQTlJR1oxYm1OMGFXOXVJQ2h0WlhSb2IyUXNJSFZ5YkN3Z1pHRjBZU3dnWTI5dWRHVnVkRlI1Y0dVc0lHaGxZV1JsY25NcElIdGNibHh1SUNCMllYSWdZMjl1ZEdWdWRGUjVjR1VnUFNCamIyNTBaVzUwVkhsd1pTQTlQVDBnSjNWeWJHVnVZMjlrWldRbklEOGdKMkZ3Y0d4cFkyRjBhVzl1THljZ0t5QmpiMjUwWlc1MFZIbHdaUzV5WlhCc1lXTmxLQ2QxY214bGJtTnZaR1ZrSnl3Z0ozZ3RkM2QzTFdadmNtMHRkWEpzWlc1amIyUmxaQ2NwSURvZ0oyRndjR3hwWTJGMGFXOXVMMnB6YjI0bk8xeHVJQ0JrWVhSaElEMGdZMjl1ZEdWdWRGUjVjR1VnUFQwOUlDZGhjSEJzYVdOaGRHbHZiaTlxYzI5dUp5QS9JRXBUVDA0dWMzUnlhVzVuYVdaNUtHUmhkR0VwSURvZ2RHOVZVa3hGYm1OdlpHVmtLR1JoZEdFcE8xeHVYRzRnSUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNobWRXNWpkR2x2YmlBb2NtVnpiMngyWlN3Z2NtVnFaV04wS1NCN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lIWmhjaUI0YUhJZ1BTQnVaWGNnV0UxTVNIUjBjRkpsY1hWbGMzUW9LVHRjYmlBZ0lDQWdJSGhvY2k1dmNHVnVLRzFsZEdodlpDd2dkWEpzTENCMGNuVmxLVHRjYmlBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0NkQlkyTmxjSFFuTENBbllYQndiR2xqWVhScGIyNHZhbk52YmljcE8xeHVJQ0FnSUNBZ2VHaHlMbk5sZEZKbGNYVmxjM1JJWldGa1pYSW9KME52Ym5SbGJuUXRWSGx3WlNjc0lHTnZiblJsYm5SVWVYQmxLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tDRWhZM055WmxSdmEyVnVVMlZzWldOMGIzSWdKaVlnSVNGamMzSm1WRzlyWlc1VFpXeGxZM1J2Y2k1amIyNTBaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIaG9jaTV6WlhSU1pYRjFaWE4wU0dWaFpHVnlLQ2RZTFVOVFVrWXRWRzlyWlc0bkxDQmpjM0ptVkc5clpXNVRaV3hsWTNSdmNpNWpiMjUwWlc1MEtUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdMeThnUVdSa0lIQmhjM05sWkNCb1pXRmtaWEp6WEc0Z0lDQWdJQ0JQWW1wbFkzUXVhMlY1Y3lob1pXRmtaWEp6S1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNob1pXRmtaWElwSUh0Y2JpQWdJQ0FnSUNBZ2VHaHlMbk5sZEZKbGNYVmxjM1JJWldGa1pYSW9hR1ZoWkdWeUxDQm9aV0ZrWlhKelcyaGxZV1JsY2wwcE8xeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSGhvY2k1dmJuSmxZV1I1YzNSaGRHVmphR0Z1WjJVZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDRhSEl1Y21WaFpIbFRkR0YwWlNBOVBUMGdOQ2tnZTF4dVhHNGdJQ0FnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCeVpYTndiMjV6WlNBOUlIaG9jaTV5WlhOd2IyNXpaVlJsZUhRZ1B5QktVMDlPTG5CaGNuTmxLSGhvY2k1eVpYTndiMjV6WlZSbGVIUXBJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDRhSEl1YzNSaGRIVnpJRDQ5SURJd01DQW1KaUI0YUhJdWMzUmhkSFZ6SUR3Z016QXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVW9jbVZ6Y0c5dWMyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WcVpXTjBLSEpsYzNCdmJuTmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5SUdOaGRHTm9JQ2hsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WldwbFkzUW9aU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0I0YUhJdWMyVnVaQ2hrWVhSaEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQnlaV3BsWTNRb1pTazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JuMDdYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTF4dUlDQmhjbkpoZVhORWFXWm1aWEk2SUdaMWJtTjBhVzl1SUNoaGNuSmhlVUVzSUdGeWNtRjVRaWtnZTF4dUlDQWdJSFpoY2lCcGMwUnBabVpsY21WdWRDQTlJR1poYkhObE8xeHVJQ0FnSUdsbUlDaGhjbkpoZVVFdWJHVnVaM1JvSUNFOVBTQmhjbkpoZVVJdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCcGMwUnBabVpsY21WdWRDQTlJSFJ5ZFdVN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR0Z5Y21GNVFTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHBkR1Z0TENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9hWFJsYlNBaFBUMGdZWEp5WVhsQ1cybHVaR1Y0WFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6UkdsbVptVnlaVzUwSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnBjMFJwWm1abGNtVnVkRHRjYmlBZ2ZTeGNiaUFnWVdwaGVEb2dlMXh1SUNBZ0lIQnZjM1E2SUhKbGNYVmxjM1F1WW1sdVpDaHVkV3hzTENBblVFOVRWQ2NwTEZ4dUlDQWdJSEIxZERvZ2NtVnhkV1Z6ZEM1aWFXNWtLRzUxYkd3c0lDZFFWVlFuS1Z4dUlDQjlYRzU5TzF4dUlsMTkiLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgJ2lzVmFsdWUnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09ICcnO1xuICB9LFxuICAnaXNFbWFpbCc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXigoKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSsoXFwuKFthLXpdfFxcZHxbISNcXCQlJidcXCpcXCtcXC1cXC89XFw/XFxeX2B7XFx8fX5dfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSspKil8KChcXHgyMikoKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPygoW1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4N2ZdfFxceDIxfFtcXHgyMy1cXHg1Yl18W1xceDVkLVxceDdlXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KFxcXFwoW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBkLVxceDdmXXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSkqKCgoXFx4MjB8XFx4MDkpKihcXHgwZFxceDBhKSk/KFxceDIwfFxceDA5KSspPyhcXHgyMikpKUAoKChbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpXFwuKSsoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKShbYS16XXxcXGR8LXxcXC58X3x+fFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSooW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkkL2kpO1xuICB9LFxuICAnaXNUcnVlJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0cnVlO1xuICB9LFxuICAnaXNOdW1lcmljJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbWF0Y2hSZXN1bHRzID0gdmFsdWUubWF0Y2goL1stK10/KFxcZCpbLl0pP1xcZCsvKTtcbiAgICAgIGlmICghISBtYXRjaFJlc3VsdHMpIHtcbiAgICAgICAgcmV0dXJuIG1hdGNoUmVzdWx0c1swXSA9PSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICdpc0FscGhhJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9eW2EtekEtWl0rJC8pO1xuICB9LFxuICAnaXNXb3Jkcyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpcXHNdKyQvKTtcbiAgfSxcbiAgJ2lzU3BlY2lhbFdvcmRzJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9eW2EtekEtWlxcc1xcdTAwQzAtXFx1MDE3Rl0rJC8pO1xuICB9LFxuICBpc0xlbmd0aDogZnVuY3Rpb24gKHZhbHVlLCBtaW4sIG1heCkge1xuICAgIGlmIChtYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSBtaW4gJiYgdmFsdWUubGVuZ3RoIDw9IG1heDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSBtaW47XG4gIH0sXG4gIGVxdWFsczogZnVuY3Rpb24gKHZhbHVlLCBlcWwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gZXFsO1xuICB9LFxuICBlcXVhbHNGaWVsZDogZnVuY3Rpb24gKHZhbHVlLCBmaWVsZCkge1xuICAgIHJldHVybiB2YWx1ZSA9PSB0aGlzW2ZpZWxkXTtcbiAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12ZG1Gc2FXUmhkR2x2YmxKMWJHVnpMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXZWWE5sY25NdlkyaHlhWE4wYVdGdVlXeG1iMjVwTDBSdlkzVnRaVzUwY3k5a1pYWXZabTl5YlhONUxYSmxZV04wTDNOeVl5OTJZV3hwWkdGMGFXOXVVblZzWlhNdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVFVGQlRTeERRVUZETEU5QlFVOHNSMEZCUnp0RlFVTm1MRk5CUVZNc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUdEpRVU14UWl4UFFVRlBMRXRCUVVzc1MwRkJTeXhGUVVGRkxFTkJRVU03UjBGRGNrSTdSVUZEUkN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRE1VSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExIazBRa0ZCZVRSQ0xFTkJRVU1zUTBGQlF6dEhRVU12TlVJN1JVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdTVUZEZWtJc1QwRkJUeXhMUVVGTExFdEJRVXNzU1VGQlNTeERRVUZETzBkQlEzWkNPMFZCUTBRc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzBsQlF6VkNMRWxCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVTeEZRVUZGTzAxQlF6ZENMRTlCUVU4c1NVRkJTU3hEUVVGRE8wdEJRMklzVFVGQlRUdE5RVU5NTEVsQlFVa3NXVUZCV1N4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenROUVVOd1JDeEpRVUZKTEVOQlFVTXNSVUZCUlN4WlFVRlpMRVZCUVVVN1VVRkRia0lzVDBGQlR5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGRE8wOUJRMnBETEUxQlFVMDdVVUZEVEN4UFFVRlBMRXRCUVVzc1EwRkJRenRQUVVOa08wdEJRMFk3UjBGRFJqdEZRVU5FTEZOQlFWTXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRKUVVNeFFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UjBGRGJrTTdSVUZEUkN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRE1VSXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzBkQlEzSkRPMFZCUTBRc1owSkJRV2RDTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRha01zVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVOQlFVTTdSMEZEYkVRN1JVRkRSQ3hSUVVGUkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSVHRKUVVOdVF5eEpRVUZKTEVkQlFVY3NTMEZCU3l4VFFVRlRMRVZCUVVVN1RVRkRja0lzVDBGQlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXp0TFFVTnVSRHRKUVVORUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4SFFVRkhMRU5CUVVNN1IwRkROVUk3UlVGRFJDeE5RVUZOTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRk8wbEJRelZDTEU5QlFVOHNTMEZCU3l4SlFVRkpMRWRCUVVjc1EwRkJRenRIUVVOeVFqdEZRVU5FTEZkQlFWY3NSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRGJrTXNUMEZCVHl4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBkQlF6ZENPME5CUTBZc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTF4dUlDQW5hWE5XWVd4MVpTYzZJR1oxYm1OMGFXOXVJQ2gyWVd4MVpTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0FoUFQwZ0p5YzdYRzRnSUgwc1hHNGdJQ2RwYzBWdFlXbHNKem9nWm5WdVkzUnBiMjRnS0haaGJIVmxLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsTG0xaGRHTm9LQzllS0Nnb1cyRXRlbDE4WEZ4a2ZGc2hJMXhjSkNVbUoxeGNLbHhjSzF4Y0xWeGNMejFjWEQ5Y1hGNWZZSHRjWEh4OWZsMThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS3loY1hDNG9XMkV0ZWwxOFhGeGtmRnNoSTF4Y0pDVW1KMXhjS2x4Y0sxeGNMVnhjTHoxY1hEOWNYRjVmWUh0Y1hIeDlmbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEt5a3FLWHdvS0Z4Y2VESXlLU2dvS0NoY1hIZ3lNSHhjWEhnd09Ta3FLRnhjZURCa1hGeDRNR0VwS1Q4b1hGeDRNakI4WEZ4NE1Ea3BLeWsvS0NoYlhGeDRNREV0WEZ4NE1EaGNYSGd3WWx4Y2VEQmpYRng0TUdVdFhGeDRNV1pjWEhnM1psMThYRng0TWpGOFcxeGNlREl6TFZ4Y2VEVmlYWHhiWEZ4NE5XUXRYRng0TjJWZGZGdGNYSFV3TUVFd0xWeGNkVVEzUmtaY1hIVkdPVEF3TFZ4Y2RVWkVRMFpjWEhWR1JFWXdMVnhjZFVaR1JVWmRLWHdvWEZ4Y1hDaGJYRng0TURFdFhGeDRNRGxjWEhnd1lseGNlREJqWEZ4NE1HUXRYRng0TjJaZGZGdGNYSFV3TUVFd0xWeGNkVVEzUmtaY1hIVkdPVEF3TFZ4Y2RVWkVRMFpjWEhWR1JFWXdMVnhjZFVaR1JVWmRLU2twS1Nvb0tDaGNYSGd5TUh4Y1hIZ3dPU2txS0Z4Y2VEQmtYRng0TUdFcEtUOG9YRng0TWpCOFhGeDRNRGtwS3lrL0tGeGNlREl5S1NrcFFDZ29LRnRoTFhwZGZGeGNaSHhiWEZ4MU1EQkJNQzFjWEhWRU4wWkdYRngxUmprd01DMWNYSFZHUkVOR1hGeDFSa1JHTUMxY1hIVkdSa1ZHWFNsOEtDaGJZUzE2WFh4Y1hHUjhXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS0Z0aExYcGRmRnhjWkh3dGZGeGNMbnhmZkg1OFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLaWhiWVMxNlhYeGNYR1I4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtTbGNYQzRwS3lnb1cyRXRlbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcGZDZ29XMkV0ZWwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLRnRoTFhwZGZGeGNaSHd0ZkZ4Y0xueGZmSDU4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtpaGJZUzE2WFh4YlhGeDFNREJCTUMxY1hIVkVOMFpHWEZ4MVJqa3dNQzFjWEhWR1JFTkdYRngxUmtSR01DMWNYSFZHUmtWR1hTa3BLU1F2YVNrN1hHNGdJSDBzWEc0Z0lDZHBjMVJ5ZFdVbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVWdQVDA5SUhSeWRXVTdYRzRnSUgwc1hHNGdJQ2RwYzA1MWJXVnlhV01uT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBbmJuVnRZbVZ5SnlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhaaGNpQnRZWFJqYUZKbGMzVnNkSE1nUFNCMllXeDFaUzV0WVhSamFDZ3ZXeTByWFQ4b1hGeGtLbHN1WFNrL1hGeGtLeThwTzF4dUlDQWdJQ0FnYVdZZ0tDRWhJRzFoZEdOb1VtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXRjBZMmhTWlhOMWJIUnpXekJkSUQwOUlIWmhiSFZsTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmU3hjYmlBZ0oybHpRV3h3YUdFbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViV0YwWTJnb0wxNWJZUzE2UVMxYVhTc2tMeWs3WEc0Z0lIMHNYRzRnSUNkcGMxZHZjbVJ6SnpvZ1puVnVZM1JwYjI0Z0tIWmhiSFZsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbExtMWhkR05vS0M5ZVcyRXRla0V0V2x4Y2MxMHJKQzhwTzF4dUlDQjlMRnh1SUNBbmFYTlRjR1ZqYVdGc1YyOXlaSE1uT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWJXRjBZMmdvTDE1YllTMTZRUzFhWEZ4elhGeDFNREJETUMxY1hIVXdNVGRHWFNza0x5azdYRzRnSUgwc1hHNGdJR2x6VEdWdVozUm9PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXNJRzFwYml3Z2JXRjRLU0I3WEc0Z0lDQWdhV1lnS0cxaGVDQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVXViR1Z1WjNSb0lENDlJRzFwYmlBbUppQjJZV3gxWlM1c1pXNW5kR2dnUEQwZ2JXRjRPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViR1Z1WjNSb0lENDlJRzFwYmp0Y2JpQWdmU3hjYmlBZ1pYRjFZV3h6T2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUdWeGJDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0E5UFNCbGNXdzdYRzRnSUgwc1hHNGdJR1Z4ZFdGc2MwWnBaV3hrT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUdacFpXeGtLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsSUQwOUlIUm9hWE5iWm1sbGJHUmRPMXh1SUNCOVhHNTlPMXh1SWwxOSJdfQ==