-
Notifications
You must be signed in to change notification settings - Fork 42
/
index.es.js.map
1 lines (1 loc) · 23.5 KB
/
index.es.js.map
1
{"version":3,"file":"index.es.js","sources":["rmodal.js"],"sourcesContent":["const is = (obj, type) => Object.prototype.toString.call(obj).toLowerCase() === `[object ${type}]`;\n\nconst addClass = (el, cls) => {\n const arr = el.className\n .split(/\\s+/)\n .filter((c) => !!c && c == cls);\n\n if (!arr.length) {\n el.className += ` ${cls}`;\n }\n};\n\nconst removeClass = (el, cls) => {\n el.className = el.className\n .split(/\\s+/)\n .filter((c) => !!c && c != cls)\n .join(' ');\n};\n\nclass RModal {\n constructor(el, opts) {\n this.opened = false;\n\n this.opts = {\n bodyClass: 'modal-open'\n , dialogClass: 'modal-dialog'\n , dialogOpenClass: 'bounceInDown'\n , dialogCloseClass: 'bounceOutUp'\n\n , focus: true\n , focusElements: [\n 'a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])'\n , 'button:not([disabled])', 'select:not([disabled])'\n , 'textarea:not([disabled])', 'iframe', 'object', 'embed'\n , '*[tabindex]', '*[contenteditable]'\n ]\n\n , escapeClose: true\n , content: null\n , closeTimeout: 500\n };\n\n Object.keys(opts || {})\n .forEach((key) => {\n /* istanbul ignore else */\n if (opts[key] !== undefined) {\n this.opts[key] = opts[key];\n }\n });\n\n this.overlay = el;\n this.dialog = el.querySelector(`.${this.opts.dialogClass}`);\n\n if (this.opts.content) {\n this.content(this.opts.content);\n }\n }\n\n open(content) {\n this.content(content);\n\n if (!is(this.opts.beforeOpen, 'function')) {\n return this._doOpen();\n }\n\n this.opts.beforeOpen(() => {\n this._doOpen();\n });\n }\n\n _doOpen() {\n addClass(document.body, this.opts.bodyClass);\n\n removeClass(this.dialog, this.opts.dialogCloseClass);\n addClass(this.dialog, this.opts.dialogOpenClass);\n\n this.overlay.style.display = 'block';\n\n if (this.opts.focus) {\n this.focusOutElement = document.activeElement;\n this.focus();\n }\n\n if (is(this.opts.afterOpen, 'function')) {\n this.opts.afterOpen();\n }\n this.opened = true;\n }\n\n close() {\n if (!is(this.opts.beforeClose, 'function')) {\n return this._doClose();\n }\n\n this.opts.beforeClose(() => {\n this._doClose();\n });\n }\n\n _doClose() {\n removeClass(this.dialog, this.opts.dialogOpenClass);\n addClass(this.dialog, this.opts.dialogCloseClass);\n\n removeClass(document.body, this.opts.bodyClass);\n\n if (this.opts.focus) {\n this.focus(this.focusOutElement);\n }\n\n setTimeout(() => {\n this.overlay.style.display = 'none';\n\n if (is(this.opts.afterClose, 'function')) {\n this.opts.afterClose();\n }\n this.opened = false;\n }, this.opts.closeTimeout);\n }\n\n content(html) {\n if (html === undefined) {\n return this.dialog.innerHTML;\n }\n\n this.dialog.innerHTML = html;\n }\n\n elements(selector, fallback) {\n fallback = fallback || window.navigator.appVersion.indexOf('MSIE 9.0') > -1;\n selector = is(selector, 'array') ? selector.join(',') : selector;\n\n return [].filter.call(\n this.dialog.querySelectorAll(selector)\n , (element) => {\n if (fallback) {\n const style = window.getComputedStyle(element);\n return style.display !== 'none' && style.visibility !== 'hidden';\n }\n\n return element.offsetParent !== null;\n }\n );\n }\n\n focus(el) {\n el = el || this.elements(this.opts.focusElements)[0] || this.dialog.firstChild;\n\n if (el && is(el.focus, 'function')) {\n el.focus();\n }\n }\n\n keydown(ev) {\n if (this.opts.escapeClose && ev.which == 27) {\n this.close();\n }\n\n const stopEvent = () => {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n if (this.opened && ev.which == 9 && this.dialog.contains(ev.target)) {\n const elements = this.elements(this.opts.focusElements)\n , first = elements[0]\n , last = elements[elements.length - 1];\n\n if (first == last) {\n stopEvent();\n }\n else if (ev.target == first && ev.shiftKey) {\n stopEvent();\n last.focus();\n }\n else if (ev.target == last && !ev.shiftKey) {\n stopEvent();\n first.focus();\n }\n }\n }\n}\n\nRModal.prototype.version = '@@VERSION@@';\nRModal.version = '@@VERSION@@';\n\nexport default RModal;\n"],"names":["const","this"],"mappings":"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","preExistingComment":"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi9Vc2Vycy93aXNoL0Rlc2t0b3Avcm1vZGFsLmpzL3NyYy9ybW9kYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXMgPSAob2JqLCB0eXBlKSA9PiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS50b0xvd2VyQ2FzZSgpID09PSBgW29iamVjdCAke3R5cGV9XWA7XG5cbmNvbnN0IGFkZENsYXNzID0gKGVsLCBjbHMpID0+IHtcbiAgICBjb25zdCBhcnIgPSBlbC5jbGFzc05hbWVcbiAgICAuc3BsaXQoL1xccysvKVxuICAgIC5maWx0ZXIoKGMpID0+ICEhYyAmJiBjID09IGNscyk7XG5cbiAgICBpZiAoIWFyci5sZW5ndGgpIHtcbiAgICAgICAgZWwuY2xhc3NOYW1lICs9IGAgJHtjbHN9YDtcbiAgICB9XG59O1xuXG5jb25zdCByZW1vdmVDbGFzcyA9IChlbCwgY2xzKSA9PiB7XG4gICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lXG4gICAgLnNwbGl0KC9cXHMrLylcbiAgICAuZmlsdGVyKChjKSA9PiAhIWMgJiYgYyAhPSBjbHMpXG4gICAgLmpvaW4oJyAnKTtcbn07XG5cbmNsYXNzIFJNb2RhbCB7XG4gICAgY29uc3RydWN0b3IoZWwsIG9wdHMpIHtcbiAgICAgICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLm9wdHMgPSB7XG4gICAgICAgICAgICBib2R5Q2xhc3M6ICdtb2RhbC1vcGVuJ1xuICAgICAgICAgICAgLCBkaWFsb2dDbGFzczogJ21vZGFsLWRpYWxvZydcbiAgICAgICAgICAgICwgZGlhbG9nT3BlbkNsYXNzOiAnYm91bmNlSW5Eb3duJ1xuICAgICAgICAgICAgLCBkaWFsb2dDbG9zZUNsYXNzOiAnYm91bmNlT3V0VXAnXG5cbiAgICAgICAgICAgICwgZm9jdXM6IHRydWVcbiAgICAgICAgICAgICwgZm9jdXNFbGVtZW50czogW1xuICAgICAgICAgICAgICAgICdhW2hyZWZdJywgJ2FyZWFbaHJlZl0nLCAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1oaWRkZW5dKSdcbiAgICAgICAgICAgICAgICAsICdidXR0b246bm90KFtkaXNhYmxlZF0pJywgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSknXG4gICAgICAgICAgICAgICAgLCAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pJywgJ2lmcmFtZScsICdvYmplY3QnLCAnZW1iZWQnXG4gICAgICAgICAgICAgICAgLCAnKlt0YWJpbmRleF0nLCAnKltjb250ZW50ZWRpdGFibGVdJ1xuICAgICAgICAgICAgXVxuXG4gICAgICAgICAgICAsIGVzY2FwZUNsb3NlOiB0cnVlXG4gICAgICAgICAgICAsIGNvbnRlbnQ6IG51bGxcbiAgICAgICAgICAgICwgY2xvc2VUaW1lb3V0OiA1MDBcbiAgICAgICAgfTtcblxuICAgICAgICBPYmplY3Qua2V5cyhvcHRzIHx8IHt9KVxuICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKG9wdHNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRzW2tleV0gPSBvcHRzW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheSA9IGVsO1xuICAgICAgICB0aGlzLmRpYWxvZyA9IGVsLnF1ZXJ5U2VsZWN0b3IoYC4ke3RoaXMub3B0cy5kaWFsb2dDbGFzc31gKTtcblxuICAgICAgICBpZiAodGhpcy5vcHRzLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudCh0aGlzLm9wdHMuY29udGVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuKGNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5jb250ZW50KGNvbnRlbnQpO1xuXG4gICAgICAgIGlmICghaXModGhpcy5vcHRzLmJlZm9yZU9wZW4sICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZG9PcGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wdHMuYmVmb3JlT3BlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kb09wZW4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2RvT3BlbigpIHtcbiAgICAgICAgYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5vcHRzLmJvZHlDbGFzcyk7XG5cbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5kaWFsb2csIHRoaXMub3B0cy5kaWFsb2dDbG9zZUNsYXNzKTtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5kaWFsb2csIHRoaXMub3B0cy5kaWFsb2dPcGVuQ2xhc3MpO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgICAgICBpZiAodGhpcy5vcHRzLmZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT3V0RWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXModGhpcy5vcHRzLmFmdGVyT3BlbiwgJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0cy5hZnRlck9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICghaXModGhpcy5vcHRzLmJlZm9yZUNsb3NlLCAnZnVuY3Rpb24nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RvQ2xvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3B0cy5iZWZvcmVDbG9zZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kb0Nsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9kb0Nsb3NlKCkge1xuICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmRpYWxvZywgdGhpcy5vcHRzLmRpYWxvZ09wZW5DbGFzcyk7XG4gICAgICAgIGFkZENsYXNzKHRoaXMuZGlhbG9nLCB0aGlzLm9wdHMuZGlhbG9nQ2xvc2VDbGFzcyk7XG5cbiAgICAgICAgcmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5vcHRzLmJvZHlDbGFzcyk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0cy5mb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyh0aGlzLmZvY3VzT3V0RWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG4gICAgICAgICAgICBpZiAoaXModGhpcy5vcHRzLmFmdGVyQ2xvc2UsICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRzLmFmdGVyQ2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgICAgIH0sIHRoaXMub3B0cy5jbG9zZVRpbWVvdXQpO1xuICAgIH1cblxuICAgIGNvbnRlbnQoaHRtbCkge1xuICAgICAgICBpZiAoaHRtbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2cuaW5uZXJIVE1MO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaWFsb2cuaW5uZXJIVE1MID0gaHRtbDtcbiAgICB9XG5cbiAgICBlbGVtZW50cyhzZWxlY3RvciwgZmFsbGJhY2spIHtcbiAgICAgICAgZmFsbGJhY2sgPSBmYWxsYmFjayB8fCB3aW5kb3cubmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZignTVNJRSA5LjAnKSA+IC0xO1xuICAgICAgICBzZWxlY3RvciA9IGlzKHNlbGVjdG9yLCAnYXJyYXknKSA/IHNlbGVjdG9yLmpvaW4oJywnKSA6IHNlbGVjdG9yO1xuXG4gICAgICAgIHJldHVybiBbXS5maWx0ZXIuY2FsbChcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpXG4gICAgICAgICAgICAsIChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScgJiYgc3R5bGUudmlzaWJpbGl0eSAhPT0gJ2hpZGRlbic7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0UGFyZW50ICE9PSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvY3VzKGVsKSB7XG4gICAgICAgIGVsID0gZWwgfHwgdGhpcy5lbGVtZW50cyh0aGlzLm9wdHMuZm9jdXNFbGVtZW50cylbMF0gfHwgdGhpcy5kaWFsb2cuZmlyc3RDaGlsZDtcblxuICAgICAgICBpZiAoZWwgJiYgaXMoZWwuZm9jdXMsICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAga2V5ZG93bihldikge1xuICAgICAgICBpZiAodGhpcy5vcHRzLmVzY2FwZUNsb3NlICYmIGV2LndoaWNoID09IDI3KSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdG9wRXZlbnQgPSAoKSA9PiB7XG4gICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuZWQgJiYgZXYud2hpY2ggPT0gOSAmJiB0aGlzLmRpYWxvZy5jb250YWlucyhldi50YXJnZXQpKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZWxlbWVudHModGhpcy5vcHRzLmZvY3VzRWxlbWVudHMpXG4gICAgICAgICAgICAgICAgLCBmaXJzdCA9IGVsZW1lbnRzWzBdXG4gICAgICAgICAgICAgICAgLCBsYXN0ID0gZWxlbWVudHNbZWxlbWVudHMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIGlmIChmaXJzdCA9PSBsYXN0KSB7XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChldi50YXJnZXQgPT0gZmlyc3QgJiYgZXYuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgICBzdG9wRXZlbnQoKTtcbiAgICAgICAgICAgICAgICBsYXN0LmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChldi50YXJnZXQgPT0gbGFzdCAmJiAhZXYuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgICBzdG9wRXZlbnQoKTtcbiAgICAgICAgICAgICAgICBmaXJzdC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5STW9kYWwucHJvdG90eXBlLnZlcnNpb24gPSAnQEBWRVJTSU9OQEAnO1xuUk1vZGFsLnZlcnNpb24gPSAnQEBWRVJTSU9OQEAnO1xuXG5leHBvcnQgZGVmYXVsdCBSTW9kYWw7XG4iXSwibmFtZXMiOlsiY29uc3QiLCJ0aGlzIl0sIm1hcHBpbmdzIjoiQUFBQUEsSUFBTSxFQUFFLGFBQUksR0FBRyxFQUFFLElBQUksRUFBRSxTQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsbUJBQWdCLElBQUksVUFBRyxDQUFDOztBQUVuR0EsSUFBTSxRQUFRLGFBQUksRUFBRSxFQUFFLEdBQUcsRUFBRTtJQUN2QkEsSUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVM7S0FDdkIsS0FBSyxDQUFDLEtBQUssQ0FBQztLQUNaLE1BQU0sV0FBRSxDQUFDLEVBQUUsU0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFHLENBQUMsQ0FBQzs7SUFFaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7UUFDYixFQUFFLENBQUMsU0FBUyxJQUFJLE1BQUksR0FBRyxDQUFHO0tBQzdCO0NBQ0osQ0FBQzs7QUFFRkEsSUFBTSxXQUFXLGFBQUksRUFBRSxFQUFFLEdBQUcsRUFBRTtJQUMxQixFQUFFLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTO0tBQzFCLEtBQUssQ0FBQyxLQUFLLENBQUM7S0FDWixNQUFNLFdBQUUsQ0FBQyxFQUFFLFNBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksTUFBRyxDQUFDO0tBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNkLENBQUM7O0FBRUYsSUFBTSxNQUFNLEdBQ1IsZUFBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7OztJQUN0QixJQUFRLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzs7SUFFeEIsSUFBUSxDQUFDLElBQUksR0FBRztRQUNaLFNBQWEsRUFBRSxZQUFZO1VBQ3JCLFdBQVcsRUFBRSxjQUFjO1VBQzNCLGVBQWUsRUFBRSxjQUFjO1VBQy9CLGdCQUFnQixFQUFFLGFBQWE7O1VBRS9CLEtBQUssRUFBRSxJQUFJO1VBQ1gsYUFBYSxFQUFFO1lBQ2pCLFNBQWEsRUFBRSxZQUFZLEVBQUUsMENBQTBDO2NBQ2pFLHdCQUF3QixFQUFFLHdCQUF3QjtjQUNsRCwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU87Y0FDdkQsYUFBYSxFQUFFLG9CQUFvQjtTQUN4Qzs7VUFFQyxXQUFXLEVBQUUsSUFBSTtVQUNqQixPQUFPLEVBQUUsSUFBSTtVQUNiLFlBQVksRUFBRSxHQUFHO0tBQ3RCLENBQUM7O0lBRU4sTUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0tBQ3RCLE9BQU8sV0FBRSxHQUFHLEVBQUU7O1FBRWYsSUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQzdCLE1BQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzlCO0tBQ0osQ0FBQyxDQUFDOztJQUVQLElBQVEsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLElBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLGFBQWEsU0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDOztJQUVoRSxJQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ3ZCLElBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNuQztFQUNKOztBQUVMLGlCQUFJLHNCQUFLLE9BQU8sRUFBRTs7O0lBQ2QsSUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQzs7SUFFMUIsSUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRTtRQUMzQyxPQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUN6Qjs7SUFFTCxJQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsYUFBSTtRQUN4QixNQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDbEIsQ0FBQyxDQUFDO0VBQ047O0FBRUwsaUJBQUksOEJBQVU7SUFDVixRQUFZLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztJQUVqRCxXQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsUUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzs7SUFFckQsSUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQzs7SUFFekMsSUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNyQixJQUFRLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDbEQsSUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ2hCOztJQUVMLElBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ3pDLElBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7S0FDekI7SUFDTCxJQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztFQUN0Qjs7QUFFTCxpQkFBSSwwQkFBUTs7O0lBQ1IsSUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsRUFBRTtRQUM1QyxPQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUMxQjs7SUFFTCxJQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsYUFBSTtRQUN6QixNQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDbkIsQ0FBQyxDQUFDO0VBQ047O0FBRUwsaUJBQUksZ0NBQVc7OztJQUNYLFdBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEQsUUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOztJQUV0RCxXQUFlLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztJQUVwRCxJQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ3JCLElBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3BDOztJQUVMLFVBQWMsYUFBSTtRQUNkLE1BQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7O1FBRXhDLElBQVEsRUFBRSxDQUFDQyxNQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUMxQyxNQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzFCO1FBQ0wsTUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7S0FDdkIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0VBQzlCOztBQUVMLGlCQUFJLDRCQUFRLElBQUksRUFBRTtJQUNkLElBQVEsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUN4QixPQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0tBQ2hDOztJQUVMLElBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztFQUNoQzs7QUFFTCxpQkFBSSw4QkFBUyxRQUFRLEVBQUUsUUFBUSxFQUFFO0lBQzdCLFFBQVksR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLFFBQVksR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDOztJQUVyRSxPQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUNyQixJQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztvQkFDbkMsT0FBTyxFQUFFO1lBQ1osSUFBUSxRQUFRLEVBQUU7Z0JBQ2QsSUFBVSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuRCxPQUFXLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDO2FBQ3BFOztZQUVMLE9BQVcsT0FBTyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUM7U0FDeEM7S0FDSixDQUFDO0VBQ0w7O0FBRUwsaUJBQUksd0JBQU0sRUFBRSxFQUFFO0lBQ1YsRUFBTSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7O0lBRW5GLElBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ3BDLEVBQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztLQUNkO0VBQ0o7O0FBRUwsaUJBQUksNEJBQVEsRUFBRSxFQUFFO0lBQ1osSUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRTtRQUM3QyxJQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDaEI7O0lBRUwsSUFBVSxTQUFTLGVBQU07UUFDckIsRUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLEVBQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztNQUN4Qjs7SUFFTCxJQUFRLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3JFLElBQVUsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Y0FDakQsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7Y0FDbkIsSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDOztRQUUvQyxJQUFRLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDbkIsU0FBYSxFQUFFLENBQUM7U0FDZjthQUNJLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUM1QyxTQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7YUFDSSxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUM1QyxTQUFhLEVBQUUsQ0FBQztZQUNoQixLQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDakI7S0FDSjtDQUNKLENBQ0o7O0FBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDO0FBQ3pDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDOzs7OyJ9"}