single-scripture-rcl 3.4.33-beta.2 → 3.4.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -43,7 +43,7 @@ import { VerseObjects } from 'scripture-resources-rcl';
|
|
|
43
43
|
import { UsfmFileConversionHelpers } from 'word-aligner-rcl';
|
|
44
44
|
import { CircularProgress } from 'translation-helps-rcl';
|
|
45
45
|
import { BookObjectsType, ScriptureReferenceType } from '../../types';
|
|
46
|
-
import { delay, getResourceMessage, LOADING_RESOURCE, verseObjectsHaveWords } from '../../utils';
|
|
46
|
+
import { delay, findNonWhiteSpaceChars, getResourceMessage, LOADING_RESOURCE, verseObjectsHaveWords } from '../../utils';
|
|
47
47
|
import { ScriptureALignmentEditProps, useScriptureAlignmentEdit } from '../../hooks/useScriptureAlignmentEdit';
|
|
48
48
|
import { Container, Content, EmptyContent } from './styled';
|
|
49
49
|
var MessageStyle = {
|
|
@@ -66,6 +66,21 @@ var TextAreaStyle = {
|
|
|
66
66
|
minHeight: '100px',
|
|
67
67
|
fontSize: '16px'
|
|
68
68
|
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Checks if the given content is empty by verifying the presence of non-whitespace characters
|
|
72
|
+
* or if the provided verseObjects array is empty or undefined.
|
|
73
|
+
*
|
|
74
|
+
* @param {Array} verseObjects - An array of verse objects to be checked.
|
|
75
|
+
* @return {boolean} Returns true if the content is empty or contains only whitespace, false otherwise.
|
|
76
|
+
*/
|
|
77
|
+
function emptyContent(verseObjects) {
|
|
78
|
+
var hasNoVerses = !(verseObjects !== null && verseObjects !== void 0 && verseObjects.length);
|
|
79
|
+
if (hasNoVerses) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
return !findNonWhiteSpaceChars(verseObjects);
|
|
83
|
+
}
|
|
69
84
|
function ScripturePane(_ref) {
|
|
70
85
|
var _scriptureAlignmentEd3;
|
|
71
86
|
var currentIndex = _ref.currentIndex,
|
|
@@ -267,7 +282,7 @@ function ScripturePane(_ref) {
|
|
|
267
282
|
autoFocus: true
|
|
268
283
|
});
|
|
269
284
|
}
|
|
270
|
-
var noVerseContent = noWords &&
|
|
285
|
+
var noVerseContent = noWords && emptyContent(verseObjects); //TRICKY - just because there are no words doesn't mean there is not visible content, so also check for that
|
|
271
286
|
if (noVerseContent && enableEdit) {
|
|
272
287
|
// show a clickable message in the case that there is no text to click on
|
|
273
288
|
return /*#__PURE__*/React.createElement(EmptyContent, null, "Click to Edit");
|
|
@@ -308,4 +323,4 @@ ScripturePane.defaultProps = {
|
|
|
308
323
|
verseObjects: []
|
|
309
324
|
};
|
|
310
325
|
export default ScripturePane;
|
|
311
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZURlZXBDb21wYXJlRWZmZWN0IiwiVmVyc2VPYmplY3RzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsIkNpcmN1bGFyUHJvZ3Jlc3MiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiZGVsYXkiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJMT0FESU5HX1JFU09VUkNFIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIkNvbnRhaW5lciIsIkNvbnRlbnQiLCJFbXB0eUNvbnRlbnQiLCJNZXNzYWdlU3R5bGUiLCJkaXJlY3Rpb24iLCJ3aGl0ZVNwYWNlIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJoZWlnaHQiLCJ3aWR0aCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJUZXh0QXJlYVN0eWxlIiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJTY3JpcHR1cmVQYW5lIiwiX3JlZiIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZDMiLCJjdXJyZW50SW5kZXgiLCJjb250ZW50U3R5bGUiLCJkZXRlcm1pbmluZ0JyYW5jaCIsImRpc2FibGVXb3JkUG9wb3ZlciIsImdldExleGljb25EYXRhIiwiaXNOVCIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0RWRpdFZlcnNlIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJzZXJ2ZXIiLCJ0cmFuc2xhdGUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImRvaW5nQWxpZ25tZW50IiwibmV3VGV4dCIsInByb2Nlc3NpbmdFZGl0IiwiX1JlYWN0JHVzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiX29iamVjdFNwcmVhZCIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwiaW5pdGlhbFZlcnNlVGV4dCIsInNldEluaXRpYWxWZXJzZVRleHQiLCJyZXNvdXJjZU1lc3NhZ2UiLCJfcmVmMiIsImNoYXB0ZXIiLCJib29rSWQiLCJ2ZXJzZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkMiIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwiZW5hYmxlRWRpdCIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJuZXdWZXJzZVRleHQiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwibG9nIiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInZlcnNlT2JqZWN0cyIsIm9uQmx1ciIsImV2ZW50IiwiX2V2ZW50JHRhcmdldCIsInRhcmdldCIsInZhbHVlIiwidGhlbiIsIl9lZGl0aW5nIiwidmVyc2VSZWYiLCJjb25jYXQiLCJub1dvcmRzIiwidmVyc2VDb250ZW50IiwiY3JlYXRlRWxlbWVudCIsInNpemUiLCJkZWZhdWx0VmFsdWUiLCJzdHlsZSIsImF1dG9Gb2N1cyIsIm5vVmVyc2VDb250ZW50IiwibGVuZ3RoIiwidmVyc2VLZXkiLCJwYWRkaW5nQm90dG9tIiwib25DbGljayIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlRGVlcENvbXBhcmVFZmZlY3QgZnJvbSAndXNlLWRlZXAtY29tcGFyZS1lZmZlY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgQ2lyY3VsYXJQcm9ncmVzcyB9IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IEJvb2tPYmplY3RzVHlwZSwgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHtcbiAgZGVsYXksXG4gIGdldFJlc291cmNlTWVzc2FnZSxcbiAgTE9BRElOR19SRVNPVVJDRSxcbiAgdmVyc2VPYmplY3RzSGF2ZVdvcmRzLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcywgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQnXG5pbXBvcnQge1xuICBDb250YWluZXIsXG4gIENvbnRlbnQsXG4gIEVtcHR5Q29udGVudCxcbn0gZnJvbSAnLi9zdHlsZWQnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciBjb250ZW50ICoqL1xuICBjb250ZW50U3R5bGU6IGFueTtcbiAgLy8gaW5kZXggbnVtYmVyIGZvciB0aGlzIHNjcmlwdHVyZSBwYW5lXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAvLyB3YWl0aW5nIHRvIGRldGVybWluZSBicmFuY2hcbiAgZGV0ZXJtaW5pbmdCcmFuY2g6IGJvb2xlYW4sXG4gIC8qKiBsYW5ndWFnZSBkaXJlY3Rpb24gdG8gdXNlICoqL1xuICBkaXJlY3Rpb246IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZG8gbm90IGRpc3BsYXkgbGV4aWNvbiBwb3BvdmVyIG9uIGhvdmVyICoqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IGJvb2xlYW58dW5kZWZpbmVkO1xuICAvKiogZm9udCBzaXplIGZvciBtZXNzYWdlcyAqL1xuICBmb250U2l6ZTogbnVtYmVyO1xuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IEZ1bmN0aW9uO1xuICAvKiogdHJ1ZSBpZiBicm93c2luZyBOVCAqL1xuICBpc05UOiBib29sZWFuO1xuICAvKiogd2hldGhlciBvciBub3QgdGhpcyBjdXJyZW50IHZlcnNlIGhhcyBiZWVuIHNlbGVjdGVkIGZvciBhbGlnbm1lbnQgKi9cbiAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBib29sZWFuO1xuICAvKiogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdmVyc2UgYWxpZ25tZW50IGhhcyBmaW5pc2hlZCAqL1xuICBvbkFsaWdubWVudEZpbmlzaDogRnVuY3Rpb247XG4gIC8vIG9yaWdpbmFsIHNjcmlwdHVyZSBib29rT2JqZWN0cyBmb3IgY3VycmVudCBib29rXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGU7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHRoYXQgd2UgYXJlIGVkaXRpbmcgKi9cbiAgc2V0RWRpdFZlcnNlOiBGdW5jdGlvbjtcbiAgLyoqIGNhbGxiYWNrIHRvIGZsYWcgdW5zYXZlZCBzdGF0dXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBGdW5jdGlvbjtcbiAgLy8gY2FsbGJhY2sgZm9yIGNoYW5nZSBpbiB3b3JkIGFsaWdubWVudCBzdGF0dXNcbiAgc2V0V29yZEFsaWduZXJTdGF0dXM6IEZ1bmN0aW9uO1xuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IEZ1bmN0aW9uO1xuICAvKiogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHRvIHVwZGF0ZSB2ZXJzZSBhbGlnbm1lbnQgc3RhdHVzICovXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1czogRnVuY3Rpb247XG59XG5cbmNvbnN0IE1lc3NhZ2VTdHlsZSA9IHtcbiAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyxcbiAgbGluZUhlaWdodDogJ25vcm1hbCcsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgaGVpZ2h0OiAnMTAwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGZvbnRTaXplOiAnMTZweCcsXG4gIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICBmb250V2VpZ2h0OiAnYm9sZCcsXG59XG5cbmNvbnN0IFRleHRBcmVhU3R5bGUgPSB7XG4gIGhlaWdodDogJzYwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIG1pbldpZHRoOiAnMjIwcHgnLFxuICBtaW5IZWlnaHQ6ICcxMDBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICBjdXJyZW50SW5kZXgsXG4gIGNvbnRlbnRTdHlsZSxcbiAgZGV0ZXJtaW5pbmdCcmFuY2gsXG4gIGRpcmVjdGlvbixcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBmb250U2l6ZSxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGlzTlQsXG4gIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCxcbiAgb25BbGlnbm1lbnRGaW5pc2gsXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gIHJlZmVyZW5jZSxcbiAgcmVmU3R5bGUsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNhdmluZyxcbiAgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgc2V0RWRpdFZlcnNlLFxuICBzZXRTYXZlZENoYW5nZXMsXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzLFxuICBzZXJ2ZXIsXG4gIHRyYW5zbGF0ZSxcbiAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzLFxufSA6IFByb3BzKSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBkb2luZ0FsaWdubWVudDogZmFsc2UsXG4gICAgbmV3VGV4dDogbnVsbCxcbiAgICBwcm9jZXNzaW5nRWRpdDogZmFsc2UsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBkb2luZ0FsaWdubWVudCxcbiAgICBuZXdUZXh0LFxuICAgIHByb2Nlc3NpbmdFZGl0LCAvLyB0cnVlIHdoZW4gd2UgYXJlIHByb2Nlc3NpbmcgZWRpdCB0ZXh0IGFmdGVyIG9uQmx1clxuICB9ID0gc3RhdGVcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGNvbnN0IFtpbml0aWFsVmVyc2VUZXh0LCBzZXRJbml0aWFsVmVyc2VUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpXG5cbiAgbGV0IHJlc291cmNlTWVzc2FnZSA9ICcnXG5cbiAgaWYgKHNhdmluZykge1xuICAgIHJlc291cmNlTWVzc2FnZSA9ICdTYXZpbmcgQ2hhbmdlcy4uLidcbiAgfSBlbHNlIGlmIChkZXRlcm1pbmluZ0JyYW5jaCkge1xuICAgIHJlc291cmNlTWVzc2FnZSA9ICdQcmUtJyArIExPQURJTkdfUkVTT1VSQ0VcbiAgfSBlbHNlIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGNoYXB0ZXIsXG4gICAgYm9va0lkLFxuICAgIHZlcnNlLFxuICB9ID0gcmVmZXJlbmNlIHx8IHt9XG4gIGRpcmVjdGlvbiA9IGRpcmVjdGlvbiB8fCAnbHRyJ1xuXG4gIHJlZlN0eWxlID0gcmVmU3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnOTAlJyxcbiAgfVxuXG4gIGNvbnRlbnRTdHlsZSA9IGNvbnRlbnRTdHlsZSB8fCB7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6ICcxMDAlJyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgIC4uLnNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gICAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICB9XG5cbiAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXQgPSB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0KF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnKVxuICBjb25zdCB7XG4gICAgYWN0aW9uczoge1xuICAgICAgY2xlYXJDaGFuZ2VzLFxuICAgICAgaGFuZGxlQWxpZ25tZW50Q2xpY2ssXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgZW5hYmxlRWRpdCxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgfSxcbiAgfSA9IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gbW9uaXRvciBpZiB3ZSBuZWVkIHRvIHN0YXJ0IGFsaWdubWVudFxuICAgIGlmIChpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgJiYgIWFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkgeyAvLyBjaGVjayBpZiBlZGl0IGZvciB0aGlzIHZlcnNlIGlzIHNlbGVjdGVkIGFuZCBub3QgYWxyZWFkeSBkb2luZyBhbGlnbm1lbnRcbiAgICAgIGlmICghZWRpdGluZyAmJiAhcHJvY2Vzc2luZ0VkaXQpIHsgLy8gbWFrZSBzdXJlIG5vdCBzdGlsbCBlZGl0aW5nIG9yIHByb2Nlc3NpbmcgZWRpdFxuICAgICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRgLCByZWZlcmVuY2UpXG4gICAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gc3RpbGwgZWRpdGluZyB2ZXJzZSwgbm90IHJlYWR5IGZvciBhbGlnbm1lbnRgLCB7ZWRpdGluZywgcHJvY2Vzc2luZ0VkaXR9KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2lzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCwgYWxpZ25lckRhdGEsIGRvaW5nQWxpZ25tZW50LCBlZGl0aW5nLCBwcm9jZXNzaW5nRWRpdF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgJiYgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzKHJlZmVyZW5jZSwgYWxpZ25lZClcbiAgfSwgW2FsaWduZWQsIGNoYXB0ZXIsIHZlcnNlLCBib29rSWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiB0cnVlIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSBhbGlnbmVyRGF0YSB3ZW50IGZhbHNlIHVuZXhwZWN0ZWRgLCB7IHJlZmVyZW5jZSwgYWxpZ25lckRhdGEsIGRvaW5nQWxpZ25tZW50IH0pXG4gICAgICB9XG5cbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogZmFsc2UgfSlcbiAgICAgIG9uQWxpZ25tZW50RmluaXNoICYmIG9uQWxpZ25tZW50RmluaXNoKClcbiAgICB9XG4gIH0sIFtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdD8uc3RhdGU/LmFsaWduZXJEYXRhXSlcblxuICAvLyBkeW5hbWljYWxseSBhZGp1c3QgZm9udCBzaXplXG4gIGNvbnN0IGNhbGN1bGF0ZWRGb250U2l6ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKFxuICAgIHBhcnNlRmxvYXQoVGV4dEFyZWFTdHlsZS5mb250U2l6ZSkgKiBmb250U2l6ZSAvIDEwMCArICdweCdcbiAgKSwgW2ZvbnRTaXplXSlcblxuICBjb25zdCB0ZXh0QXJlYVN0eWxlID0ge1xuICAgIC4uLmNvbnRlbnRTdHlsZSxcbiAgICAuLi5UZXh0QXJlYVN0eWxlLFxuICAgIGZvbnRTaXplOiBjYWxjdWxhdGVkRm9udFNpemUsXG4gIH1cblxuICB1c2VEZWVwQ29tcGFyZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzOiBpbml0aWFsVmVyc2VPYmplY3RzIH0pXG4gICAgY2xlYXJDaGFuZ2VzKClcbiAgICBzZXRJbml0aWFsVmVyc2VUZXh0KHZlcnNlVGV4dClcbiAgICBzZXRTdGF0ZSh7IG5ld1RleHQ6IG51bGwgfSlcbiAgfSwgW3sgcmVmZXJlbmNlLCBpbml0aWFsVmVyc2VPYmplY3RzIH1dKVxuXG4gIC8qKlxuICAgKiB3aGVuIGZvY3VzIGlzIGNoYW5nZWQgZnJvbSB0ZXh0IGVkaXRpbmcsIGdldCBmaW5hbCB0ZXh0IGFuZCBkbyBwcm9jZXNzaW5nIG9mIGZpbmFsIHRleHRcbiAgICogQHBhcmFtIHtSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50Pn0gZXZlbnQgLSBET00gZXZlbnQgaW5mb1xuICAgKi9cbiAgZnVuY3Rpb24gb25CbHVyKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50Pikge1xuICAgIGNvbnN0IG5ld1ZlcnNlVGV4dCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlIC8vIGdldCBuZXcgdGV4dFxuICAgIHNldFN0YXRlKHsgbmV3VGV4dDogbmV3VmVyc2VUZXh0LCBwcm9jZXNzaW5nRWRpdDogdHJ1ZSB9KSAvLyBzaG93IHNwaW5uZXIgd2hpbGUgcHJvY2Vzc2luZyBlZGl0IHRleHRcbiAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4geyAvLyBhbGxvdyBzdGF0ZSB0byB1cGRhdGUgYmVmb3JlIHByb2Nlc3NpbmcgbmV3IHRleHRcbiAgICAgIHNldEVkaXRpbmcoZmFsc2UsIG5ld1ZlcnNlVGV4dCkudGhlbigoKSA9PiB7IC8vIHByb2Nlc3MgdGhlIGxhdGVzdCBlZGl0IHRleHRcbiAgICAgICAgc2V0U3RhdGUoe3Byb2Nlc3NpbmdFZGl0OiBmYWxzZX0pIC8vIG5vdyBkb25lLCByZW1vdmUgc3Bpbm5lclxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gbW9uaXRvciBmb3IgZWRpdCBzdGF0ZSBjaGFuZ2VzIGFuZCBjYWxsIGJhY2sgdG8gc2NyaXB0dXJlIGNhcmQgd2l0aCBlZGl0IHN0YXR1c1xuICAgIGNvbnN0IF9lZGl0aW5nID0gZWRpdGluZyB8fCBwcm9jZXNzaW5nRWRpdFxuICAgIGNvbnN0IHZlcnNlUmVmID0gYCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWBcbiAgICBzZXRFZGl0VmVyc2UgJiYgc2V0RWRpdFZlcnNlKHZlcnNlUmVmLCBfZWRpdGluZylcbiAgfSwgW2VkaXRpbmcsIHByb2Nlc3NpbmdFZGl0XSlcblxuICBjb25zdCB2ZXJzZU9iamVjdHMgPSBjdXJyZW50VmVyc2VPYmplY3RzIHx8IGluaXRpYWxWZXJzZU9iamVjdHMgfHwgW11cbiAgY29uc3Qgbm9Xb3JkcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gIXZlcnNlT2JqZWN0c0hhdmVXb3Jkcyh2ZXJzZU9iamVjdHMpLCBbY3VycmVudFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0c10pXG5cbiAgLyoqXG4gICAqIGRldGVybWluZSB3aGF0IFVJIHRvIHNob3cgYmFzZWQgb24gc3RhdGVcbiAgICogQHBhcmFtIHtib29sZWFufSBlZGl0aW5nIC0gaWYgdHJ1ZSBzaG93IGVkaXQgbW9kZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZUVkaXQgLSBpZiB0cnVlIHRoZW4gZWRpdCBpcyBlbmFibGVkXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gbm9Xb3JkcyAtIGlmIHRydWUgdGhlbiB0aGVyZSBhcmUgbm8gZGlzcGxheWFibGUgd29yZHNcbiAgICogQHBhcmFtIHtib29sZWFufSBwcm9jZXNzaW5nRWRpdCAtIGlmIHRydWUgdGhlbiBlZGl0IGlzIGJlaW5nIHByb2Nlc3NlZFxuICAgKi9cbiAgZnVuY3Rpb24gdmVyc2VDb250ZW50KGVkaXRpbmcsIGVuYWJsZUVkaXQsIG5vV29yZHMsIHByb2Nlc3NpbmdFZGl0KSB7XG4gICAgaWYgKHByb2Nlc3NpbmdFZGl0KSB7IC8vIHB1dCB1cCBzcGlubmVyIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGVkaXRcbiAgICAgIHJldHVybiA8Q2lyY3VsYXJQcm9ncmVzcyBzaXplPXs0MH0vPlxuICAgIH1cblxuICAgIGlmIChlZGl0aW5nKSB7XG4gICAgICByZXR1cm4gPHRleHRhcmVhXG4gICAgICAgIGRlZmF1bHRWYWx1ZT17bmV3VmVyc2VUZXh0IHx8IGluaXRpYWxWZXJzZVRleHR9XG4gICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICBzdHlsZT17dGV4dEFyZWFTdHlsZX1cbiAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAvPlxuICAgIH1cblxuICAgIGNvbnN0IG5vVmVyc2VDb250ZW50ID0gbm9Xb3JkcyAmJiAhdmVyc2VPYmplY3RzPy5sZW5ndGg7IC8vVFJJQ0tZIC0ganVzdCBiZWNhdXNlIHRoZXJlIGFyZSBubyB3b3JkcyBkb2Vzbid0IG1lYW4gdGhlcmUgaXMgbm90IGNvbnRlbnQsIHNvIGFsc28gY2hlY2sgZm9yIHVuYWxpZ25lZCBjb250ZW50XG4gICAgaWYgKG5vVmVyc2VDb250ZW50ICYmIGVuYWJsZUVkaXQpIHsgLy8gc2hvdyBhIGNsaWNrYWJsZSBtZXNzYWdlIGluIHRoZSBjYXNlIHRoYXQgdGhlcmUgaXMgbm8gdGV4dCB0byBjbGljayBvblxuICAgICAgcmV0dXJuIDxFbXB0eUNvbnRlbnQ+XG4gICAgICAgIENsaWNrIHRvIEVkaXRcbiAgICAgIDwvRW1wdHlDb250ZW50PlxuICAgIH1cblxuICAgIHJldHVybiA8VmVyc2VPYmplY3RzXG4gICAgICB2ZXJzZUtleT17YCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWB9XG4gICAgICB2ZXJzZU9iamVjdHM9e3ZlcnNlT2JqZWN0c31cbiAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyfVxuICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgLz5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lciBzdHlsZT17eyBkaXJlY3Rpb24sIHdpZHRoOiAnMTAwJScsIHBhZGRpbmdCb3R0b206ICcwLjVlbScgfX0+XG4gICAgICB7cmVzb3VyY2VNZXNzYWdlID9cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICA8ZGl2IHN0eWxlPXtNZXNzYWdlU3R5bGV9PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6IGAke2ZvbnRTaXplfSVgIH19PiB7cmVzb3VyY2VNZXNzYWdlfSA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDpcbiAgICAgICAgPENvbnRlbnQ+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3JlZlN0eWxlfT4ge2NoYXB0ZXJ9Ont2ZXJzZX0mbmJzcDs8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e2NvbnRlbnRTdHlsZX0gb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RWRpdGluZyAmJiBzZXRFZGl0aW5nKHRydWUpXG4gICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dmVyc2VDb250ZW50KGVkaXRpbmcsIGVuYWJsZUVkaXQsIG5vV29yZHMsIHByb2Nlc3NpbmdFZGl0KX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUM5QixPQUFPQyxvQkFBb0IsTUFBTSx5QkFBeUI7QUFDMUQsU0FBU0MsWUFBWSxRQUFRLHlCQUF5QjtBQUN0RCxTQUFTQyx5QkFBeUIsUUFBUSxrQkFBa0I7QUFDNUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELFNBQVNDLGVBQWUsRUFBRUMsc0JBQXNCLFFBQVEsYUFBYTtBQUNyRSxTQUNFQyxLQUFLLEVBQ0xDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsUUFDaEIsYUFBYTtBQUNwQixTQUFTQywyQkFBMkIsRUFBRUMseUJBQXlCLFFBQVEsdUNBQXVDO0FB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
|
|
326
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZURlZXBDb21wYXJlRWZmZWN0IiwiVmVyc2VPYmplY3RzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsIkNpcmN1bGFyUHJvZ3Jlc3MiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiZGVsYXkiLCJmaW5kTm9uV2hpdGVTcGFjZUNoYXJzIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiTE9BRElOR19SRVNPVVJDRSIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsIlNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyIsInVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJDb250YWluZXIiLCJDb250ZW50IiwiRW1wdHlDb250ZW50IiwiTWVzc2FnZVN0eWxlIiwiZGlyZWN0aW9uIiwid2hpdGVTcGFjZSIsImxpbmVIZWlnaHQiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwiaGVpZ2h0Iiwid2lkdGgiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJmb250V2VpZ2h0IiwiVGV4dEFyZWFTdHlsZSIsIm1pbldpZHRoIiwibWluSGVpZ2h0IiwiZW1wdHlDb250ZW50IiwidmVyc2VPYmplY3RzIiwiaGFzTm9WZXJzZXMiLCJsZW5ndGgiLCJTY3JpcHR1cmVQYW5lIiwiX3JlZiIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZDMiLCJjdXJyZW50SW5kZXgiLCJjb250ZW50U3R5bGUiLCJkZXRlcm1pbmluZ0JyYW5jaCIsImRpc2FibGVXb3JkUG9wb3ZlciIsImdldExleGljb25EYXRhIiwiaXNOVCIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0RWRpdFZlcnNlIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJzZXJ2ZXIiLCJ0cmFuc2xhdGUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImRvaW5nQWxpZ25tZW50IiwibmV3VGV4dCIsInByb2Nlc3NpbmdFZGl0IiwiX1JlYWN0JHVzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiX29iamVjdFNwcmVhZCIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwiaW5pdGlhbFZlcnNlVGV4dCIsInNldEluaXRpYWxWZXJzZVRleHQiLCJyZXNvdXJjZU1lc3NhZ2UiLCJfcmVmMiIsImNoYXB0ZXIiLCJib29rSWQiLCJ2ZXJzZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkMiIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwiZW5hYmxlRWRpdCIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJuZXdWZXJzZVRleHQiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwibG9nIiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsIm9uQmx1ciIsImV2ZW50IiwiX2V2ZW50JHRhcmdldCIsInRhcmdldCIsInZhbHVlIiwidGhlbiIsIl9lZGl0aW5nIiwidmVyc2VSZWYiLCJjb25jYXQiLCJub1dvcmRzIiwidmVyc2VDb250ZW50IiwiY3JlYXRlRWxlbWVudCIsInNpemUiLCJkZWZhdWx0VmFsdWUiLCJzdHlsZSIsImF1dG9Gb2N1cyIsIm5vVmVyc2VDb250ZW50IiwidmVyc2VLZXkiLCJwYWRkaW5nQm90dG9tIiwib25DbGljayIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlRGVlcENvbXBhcmVFZmZlY3QgZnJvbSAndXNlLWRlZXAtY29tcGFyZS1lZmZlY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgQ2lyY3VsYXJQcm9ncmVzcyB9IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IEJvb2tPYmplY3RzVHlwZSwgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHtcbiAgZGVsYXksXG4gIGZpbmROb25XaGl0ZVNwYWNlQ2hhcnMsXG4gIGdldFJlc291cmNlTWVzc2FnZSxcbiAgTE9BRElOR19SRVNPVVJDRSxcbiAgdmVyc2VPYmplY3RzSGF2ZVdvcmRzLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcywgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQnXG5pbXBvcnQge1xuICBDb250YWluZXIsXG4gIENvbnRlbnQsXG4gIEVtcHR5Q29udGVudCxcbn0gZnJvbSAnLi9zdHlsZWQnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciBjb250ZW50ICoqL1xuICBjb250ZW50U3R5bGU6IGFueTtcbiAgLy8gaW5kZXggbnVtYmVyIGZvciB0aGlzIHNjcmlwdHVyZSBwYW5lXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAvLyB3YWl0aW5nIHRvIGRldGVybWluZSBicmFuY2hcbiAgZGV0ZXJtaW5pbmdCcmFuY2g6IGJvb2xlYW4sXG4gIC8qKiBsYW5ndWFnZSBkaXJlY3Rpb24gdG8gdXNlICoqL1xuICBkaXJlY3Rpb246IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZG8gbm90IGRpc3BsYXkgbGV4aWNvbiBwb3BvdmVyIG9uIGhvdmVyICoqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IGJvb2xlYW58dW5kZWZpbmVkO1xuICAvKiogZm9udCBzaXplIGZvciBtZXNzYWdlcyAqL1xuICBmb250U2l6ZTogbnVtYmVyO1xuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IEZ1bmN0aW9uO1xuICAvKiogdHJ1ZSBpZiBicm93c2luZyBOVCAqL1xuICBpc05UOiBib29sZWFuO1xuICAvKiogd2hldGhlciBvciBub3QgdGhpcyBjdXJyZW50IHZlcnNlIGhhcyBiZWVuIHNlbGVjdGVkIGZvciBhbGlnbm1lbnQgKi9cbiAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBib29sZWFuO1xuICAvKiogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdmVyc2UgYWxpZ25tZW50IGhhcyBmaW5pc2hlZCAqL1xuICBvbkFsaWdubWVudEZpbmlzaDogRnVuY3Rpb247XG4gIC8vIG9yaWdpbmFsIHNjcmlwdHVyZSBib29rT2JqZWN0cyBmb3IgY3VycmVudCBib29rXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGU7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHRoYXQgd2UgYXJlIGVkaXRpbmcgKi9cbiAgc2V0RWRpdFZlcnNlOiBGdW5jdGlvbjtcbiAgLyoqIGNhbGxiYWNrIHRvIGZsYWcgdW5zYXZlZCBzdGF0dXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBGdW5jdGlvbjtcbiAgLy8gY2FsbGJhY2sgZm9yIGNoYW5nZSBpbiB3b3JkIGFsaWdubWVudCBzdGF0dXNcbiAgc2V0V29yZEFsaWduZXJTdGF0dXM6IEZ1bmN0aW9uO1xuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IEZ1bmN0aW9uO1xuICAvKiogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHRvIHVwZGF0ZSB2ZXJzZSBhbGlnbm1lbnQgc3RhdHVzICovXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1czogRnVuY3Rpb247XG59XG5cbmNvbnN0IE1lc3NhZ2VTdHlsZSA9IHtcbiAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyxcbiAgbGluZUhlaWdodDogJ25vcm1hbCcsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgaGVpZ2h0OiAnMTAwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGZvbnRTaXplOiAnMTZweCcsXG4gIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICBmb250V2VpZ2h0OiAnYm9sZCcsXG59XG5cbmNvbnN0IFRleHRBcmVhU3R5bGUgPSB7XG4gIGhlaWdodDogJzYwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIG1pbldpZHRoOiAnMjIwcHgnLFxuICBtaW5IZWlnaHQ6ICcxMDBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBjb250ZW50IGlzIGVtcHR5IGJ5IHZlcmlmeWluZyB0aGUgcHJlc2VuY2Ugb2Ygbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuICogb3IgaWYgdGhlIHByb3ZpZGVkIHZlcnNlT2JqZWN0cyBhcnJheSBpcyBlbXB0eSBvciB1bmRlZmluZWQuXG4gKlxuICogQHBhcmFtIHtBcnJheX0gdmVyc2VPYmplY3RzIC0gQW4gYXJyYXkgb2YgdmVyc2Ugb2JqZWN0cyB0byBiZSBjaGVja2VkLlxuICogQHJldHVybiB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb250ZW50IGlzIGVtcHR5IG9yIGNvbnRhaW5zIG9ubHkgd2hpdGVzcGFjZSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBlbXB0eUNvbnRlbnQodmVyc2VPYmplY3RzKSB7XG4gIGNvbnN0IGhhc05vVmVyc2VzID0gIXZlcnNlT2JqZWN0cz8ubGVuZ3RoO1xuICBpZiAoaGFzTm9WZXJzZXMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAhZmluZE5vbldoaXRlU3BhY2VDaGFycyh2ZXJzZU9iamVjdHMpO1xufVxuXG5mdW5jdGlvbiBTY3JpcHR1cmVQYW5lKHtcbiAgY3VycmVudEluZGV4LFxuICBjb250ZW50U3R5bGUsXG4gIGRldGVybWluaW5nQnJhbmNoLFxuICBkaXJlY3Rpb24sXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICBpc05ULFxuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gIG9uQWxpZ25tZW50RmluaXNoLFxuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICByZXNvdXJjZVN0YXR1cyxcbiAgcmVzb3VyY2VMaW5rLFxuICBzYXZpbmcsXG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gIHNldEVkaXRWZXJzZSxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgc2VydmVyLFxuICB0cmFuc2xhdGUsXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlLFxuICAgIG5ld1RleHQ6IG51bGwsXG4gICAgcHJvY2Vzc2luZ0VkaXQ6IGZhbHNlLFxuICB9KVxuICBjb25zdCB7XG4gICAgZG9pbmdBbGlnbm1lbnQsXG4gICAgbmV3VGV4dCxcbiAgICBwcm9jZXNzaW5nRWRpdCwgLy8gdHJ1ZSB3aGVuIHdlIGFyZSBwcm9jZXNzaW5nIGVkaXQgdGV4dCBhZnRlciBvbkJsdXJcbiAgfSA9IHN0YXRlXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuXG4gIGxldCByZXNvdXJjZU1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnU2F2aW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSBpZiAoZGV0ZXJtaW5pbmdCcmFuY2gpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnUHJlLScgKyBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIGJvb2tJZCxcbiAgICB2ZXJzZSxcbiAgfSA9IHJlZmVyZW5jZSB8fCB7fVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdChfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZylcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIGVuYWJsZUVkaXQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgIH0sXG4gIH0gPSBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIG1vbml0b3IgaWYgd2UgbmVlZCB0byBzdGFydCBhbGlnbm1lbnRcbiAgICBpZiAoaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ICYmICFhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHsgLy8gY2hlY2sgaWYgZWRpdCBmb3IgdGhpcyB2ZXJzZSBpcyBzZWxlY3RlZCBhbmQgbm90IGFscmVhZHkgZG9pbmcgYWxpZ25tZW50XG4gICAgICBpZiAoIWVkaXRpbmcgJiYgIXByb2Nlc3NpbmdFZGl0KSB7IC8vIG1ha2Ugc3VyZSBub3Qgc3RpbGwgZWRpdGluZyBvciBwcm9jZXNzaW5nIGVkaXRcbiAgICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSB2ZXJzZSBzZWxlY3RlZCBmb3IgYWxpZ25tZW50YCwgcmVmZXJlbmNlKVxuICAgICAgICBoYW5kbGVBbGlnbm1lbnRDbGljaygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIHN0aWxsIGVkaXRpbmcgdmVyc2UsIG5vdCByZWFkeSBmb3IgYWxpZ25tZW50YCwge2VkaXRpbmcsIHByb2Nlc3NpbmdFZGl0fSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudCwgZWRpdGluZywgcHJvY2Vzc2luZ0VkaXRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzICYmIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyhyZWZlcmVuY2UsIGFsaWduZWQpXG4gIH0sIFthbGlnbmVkLCBjaGFwdGVyLCB2ZXJzZSwgYm9va0lkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogdHJ1ZSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gYWxpZ25lckRhdGEgd2VudCBmYWxzZSB1bmV4cGVjdGVkYCwgeyByZWZlcmVuY2UsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudCB9KVxuICAgICAgfVxuXG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlIH0pXG4gICAgICBvbkFsaWdubWVudEZpbmlzaCAmJiBvbkFsaWdubWVudEZpbmlzaCgpXG4gICAgfVxuICB9LCBbX3NjcmlwdHVyZUFsaWdubWVudEVkaXQ/LnN0YXRlPy5hbGlnbmVyRGF0YV0pXG5cbiAgLy8gZHluYW1pY2FsbHkgYWRqdXN0IGZvbnQgc2l6ZVxuICBjb25zdCBjYWxjdWxhdGVkRm9udFNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IChcbiAgICBwYXJzZUZsb2F0KFRleHRBcmVhU3R5bGUuZm9udFNpemUpICogZm9udFNpemUgLyAxMDAgKyAncHgnXG4gICksIFtmb250U2l6ZV0pXG5cbiAgY29uc3QgdGV4dEFyZWFTdHlsZSA9IHtcbiAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgLi4uVGV4dEFyZWFTdHlsZSxcbiAgICBmb250U2l6ZTogY2FsY3VsYXRlZEZvbnRTaXplLFxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgIGNsZWFyQ2hhbmdlcygpXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBudWxsIH0pXG4gIH0sIFt7IHJlZmVyZW5jZSwgaW5pdGlhbFZlcnNlT2JqZWN0cyB9XSlcblxuICAvKipcbiAgICogd2hlbiBmb2N1cyBpcyBjaGFuZ2VkIGZyb20gdGV4dCBlZGl0aW5nLCBnZXQgZmluYWwgdGV4dCBhbmQgZG8gcHJvY2Vzc2luZyBvZiBmaW5hbCB0ZXh0XG4gICAqIEBwYXJhbSB7UmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD59IGV2ZW50IC0gRE9NIGV2ZW50IGluZm9cbiAgICovXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdWZXJzZVRleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZSAvLyBnZXQgbmV3IHRleHRcbiAgICBzZXRTdGF0ZSh7IG5ld1RleHQ6IG5ld1ZlcnNlVGV4dCwgcHJvY2Vzc2luZ0VkaXQ6IHRydWUgfSkgLy8gc2hvdyBzcGlubmVyIHdoaWxlIHByb2Nlc3NpbmcgZWRpdCB0ZXh0XG4gICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHsgLy8gYWxsb3cgc3RhdGUgdG8gdXBkYXRlIGJlZm9yZSBwcm9jZXNzaW5nIG5ldyB0ZXh0XG4gICAgICBzZXRFZGl0aW5nKGZhbHNlLCBuZXdWZXJzZVRleHQpLnRoZW4oKCkgPT4geyAvLyBwcm9jZXNzIHRoZSBsYXRlc3QgZWRpdCB0ZXh0XG4gICAgICAgIHNldFN0YXRlKHtwcm9jZXNzaW5nRWRpdDogZmFsc2V9KSAvLyBub3cgZG9uZSwgcmVtb3ZlIHNwaW5uZXJcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIG1vbml0b3IgZm9yIGVkaXQgc3RhdGUgY2hhbmdlcyBhbmQgY2FsbCBiYWNrIHRvIHNjcmlwdHVyZSBjYXJkIHdpdGggZWRpdCBzdGF0dXNcbiAgICBjb25zdCBfZWRpdGluZyA9IGVkaXRpbmcgfHwgcHJvY2Vzc2luZ0VkaXRcbiAgICBjb25zdCB2ZXJzZVJlZiA9IGAke3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXG4gICAgc2V0RWRpdFZlcnNlICYmIHNldEVkaXRWZXJzZSh2ZXJzZVJlZiwgX2VkaXRpbmcpXG4gIH0sIFtlZGl0aW5nLCBwcm9jZXNzaW5nRWRpdF0pXG5cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gY3VycmVudFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzIHx8IFtdXG4gIGNvbnN0IG5vV29yZHMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICF2ZXJzZU9iamVjdHNIYXZlV29yZHModmVyc2VPYmplY3RzKSwgW2N1cnJlbnRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHNdKVxuXG4gIC8qKlxuICAgKiBkZXRlcm1pbmUgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHN0YXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZyAtIGlmIHRydWUgc2hvdyBlZGl0IG1vZGVcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVFZGl0IC0gaWYgdHJ1ZSB0aGVuIGVkaXQgaXMgZW5hYmxlZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vV29yZHMgLSBpZiB0cnVlIHRoZW4gdGhlcmUgYXJlIG5vIGRpc3BsYXlhYmxlIHdvcmRzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2Vzc2luZ0VkaXQgLSBpZiB0cnVlIHRoZW4gZWRpdCBpcyBiZWluZyBwcm9jZXNzZWRcbiAgICovXG4gIGZ1bmN0aW9uIHZlcnNlQ29udGVudChlZGl0aW5nLCBlbmFibGVFZGl0LCBub1dvcmRzLCBwcm9jZXNzaW5nRWRpdCkge1xuICAgIGlmIChwcm9jZXNzaW5nRWRpdCkgeyAvLyBwdXQgdXAgc3Bpbm5lciB3aGlsZSBwcm9jZXNzaW5nIHRoZSBlZGl0XG4gICAgICByZXR1cm4gPENpcmN1bGFyUHJvZ3Jlc3Mgc2l6ZT17NDB9Lz5cbiAgICB9XG5cbiAgICBpZiAoZWRpdGluZykge1xuICAgICAgcmV0dXJuIDx0ZXh0YXJlYVxuICAgICAgICBkZWZhdWx0VmFsdWU9e25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0fVxuICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgc3R5bGU9e3RleHRBcmVhU3R5bGV9XG4gICAgICAgIGF1dG9Gb2N1c1xuICAgICAgLz5cbiAgICB9XG5cbiAgICBjb25zdCBub1ZlcnNlQ29udGVudCA9IG5vV29yZHMgJiYgZW1wdHlDb250ZW50KHZlcnNlT2JqZWN0cyk7IC8vVFJJQ0tZIC0ganVzdCBiZWNhdXNlIHRoZXJlIGFyZSBubyB3b3JkcyBkb2Vzbid0IG1lYW4gdGhlcmUgaXMgbm90IHZpc2libGUgY29udGVudCwgc28gYWxzbyBjaGVjayBmb3IgdGhhdFxuICAgIGlmIChub1ZlcnNlQ29udGVudCAmJiBlbmFibGVFZGl0KSB7IC8vIHNob3cgYSBjbGlja2FibGUgbWVzc2FnZSBpbiB0aGUgY2FzZSB0aGF0IHRoZXJlIGlzIG5vIHRleHQgdG8gY2xpY2sgb25cbiAgICAgIHJldHVybiA8RW1wdHlDb250ZW50PlxuICAgICAgICBDbGljayB0byBFZGl0XG4gICAgICA8L0VtcHR5Q29udGVudD5cbiAgICB9XG5cbiAgICByZXR1cm4gPFZlcnNlT2JqZWN0c1xuICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgdmVyc2VPYmplY3RzPXt2ZXJzZU9iamVjdHN9XG4gICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcn1cbiAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgIC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgc3R5bGU9e3sgZGlyZWN0aW9uLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nQm90dG9tOiAnMC41ZW0nIH19PlxuICAgICAge3Jlc291cmNlTWVzc2FnZSA/XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgPGRpdiBzdHlsZT17TWVzc2FnZVN0eWxlfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiBgJHtmb250U2l6ZX0lYCB9fT4ge3Jlc291cmNlTWVzc2FnZX0gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ZlcnNlQ29udGVudChlZGl0aW5nLCBlbmFibGVFZGl0LCBub1dvcmRzLCBwcm9jZXNzaW5nRWRpdCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L0NvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9Db250YWluZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlUGFuZS5kZWZhdWx0UHJvcHMgPSB7IHZlcnNlT2JqZWN0czogW10gfVxuXG5leHBvcnQgZGVmYXVsdCBTY3JpcHR1cmVQYW5lXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsT0FBT0Msb0JBQW9CLE1BQU0seUJBQXlCO0FBQzFELFNBQVNDLFlBQVksUUFBUSx5QkFBeUI7QUFDdEQsU0FBU0MseUJBQXlCLFFBQVEsa0JBQWtCO0FBQzVELFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUN4RCxTQUFTQyxlQUFlLEVBQUVDLHNCQUFzQixRQUFRLGFBQWE7QUFDckUsU0FDRUMsS0FBSyxFQUNMQyxzQkFBc0IsRUFDdEJDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsUUFDaEIsYUFBYTtBQUNwQixTQUFTQywyQkFBMkIsRUFBRUMseUJBQXlCLFFBQVEsdUNBQXVDO0FBQzlHLFNBQ0VDLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxZQUFZLFFBQ1AsVUFBVTtBQW1EakIsSUFBTUMsWUFBWSxHQUFHO0VBQ25CQyxTQUFTLEVBQUUsS0FBSztFQUNoQkMsVUFBVSxFQUFFLFVBQVU7RUFDdEJDLFVBQVUsRUFBRSxRQUFRO0VBQ3BCQyxPQUFPLEVBQUUsTUFBTTtFQUNmQyxjQUFjLEVBQUUsUUFBUTtFQUN4QkMsVUFBVSxFQUFFLFFBQVE7RUFDcEJDLE1BQU0sRUFBRSxNQUFNO0VBQ2RDLEtBQUssRUFBRSxNQUFNO0VBQ2JDLFFBQVEsRUFBRSxNQUFN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
|
|
@@ -484,6 +484,55 @@ export function verseObjectsHaveWords(verseObjects) {
|
|
|
484
484
|
return false;
|
|
485
485
|
}
|
|
486
486
|
|
|
487
|
+
/**
|
|
488
|
+
* Determines if there are any non-whitespace characters within the provided verse objects.
|
|
489
|
+
* The method traverses through the input, checking for non-empty strings in `word` or `text` type objects,
|
|
490
|
+
* optionally traversing child objects if present.
|
|
491
|
+
*
|
|
492
|
+
* @param {VerseObjectsType} verseObjects - The input objects to check for non-whitespace characters. This can be a string, an array of objects, or contain nested structures.
|
|
493
|
+
* @return {boolean} Returns `true` if any non-whitespace characters are found, otherwise `false`.
|
|
494
|
+
*/
|
|
495
|
+
export function findNonWhiteSpaceChars(verseObjects) {
|
|
496
|
+
if (typeof verseObjects === 'string') {
|
|
497
|
+
// @ts-ignore
|
|
498
|
+
var notEmpty = verseObjects.trim();
|
|
499
|
+
return !!notEmpty;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
// @ts-ignore
|
|
503
|
+
if (verseObjects !== null && verseObjects !== void 0 && verseObjects.verseObjects) {
|
|
504
|
+
// special case for verseObjects with verseObjects property
|
|
505
|
+
// @ts-ignore
|
|
506
|
+
return findNonWhiteSpaceChars(verseObjects.verseObjects);
|
|
507
|
+
}
|
|
508
|
+
if (verseObjects !== null && verseObjects !== void 0 && verseObjects.length) {
|
|
509
|
+
var _iterator3 = _createForOfIteratorHelper(verseObjects),
|
|
510
|
+
_step3;
|
|
511
|
+
try {
|
|
512
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
513
|
+
var vo = _step3.value;
|
|
514
|
+
if (vo.type === 'word' || vo.type === 'text') {
|
|
515
|
+
var _vo$text;
|
|
516
|
+
var text = (_vo$text = vo.text) === null || _vo$text === void 0 ? void 0 : _vo$text.trim();
|
|
517
|
+
if (text) {
|
|
518
|
+
return true;
|
|
519
|
+
}
|
|
520
|
+
} else if (vo.children) {
|
|
521
|
+
var foundWords = findNonWhiteSpaceChars(vo.children);
|
|
522
|
+
if (foundWords) {
|
|
523
|
+
return true;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
} catch (err) {
|
|
528
|
+
_iterator3.e(err);
|
|
529
|
+
} finally {
|
|
530
|
+
_iterator3.f();
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
return false;
|
|
534
|
+
}
|
|
535
|
+
|
|
487
536
|
/**
|
|
488
537
|
* extract just the alignments from verseObjects
|
|
489
538
|
* @param {VerseObjectsType} verseObjects
|
|
@@ -637,4 +686,4 @@ function _fetchBibleBook() {
|
|
|
637
686
|
}));
|
|
638
687
|
return _fetchBibleBook.apply(this, arguments);
|
|
639
688
|
}
|
|
640
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJpdGVyIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsInN0ZXAiLCJfZTIiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IiLCJJTlZBTElEX01BTklGRVNUX0VSUk9SIiwiTE9BRElOR19TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUiIsImNvcmUiLCJ1c2ZtanMiLCJCb29rRmV0Y2hQYXJhbXMiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiU2NyaXB0dXJlUmVzb3VyY2VUeXBlIiwiU2VydmVyQ29uZmlnVHlwZSIsIlZlcnNlT2JqZWN0c1R5cGUiLCJCT09LX05PVF9GT1VORF9FUlJPUl9NU0ciLCJMT0FESU5HX1JFU09VUkNFIiwiTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0ciLCJNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHIiwiTlRfT1JJR19MQU5HIiwiTlRfT1JJR19MQU5HX0JJQkxFIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiT1RfT1JJR19MQU5HX0JJQkxFIiwiU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0ciLCJUQVJHRVRfTElURVJBTCIsIlRBUkdFVF9TSU1QTElGSUVEIiwiZGVsYXkiLCJESVNBQkxFX1dPUkRfUE9QT1ZFUiIsImdldFJlc291cmNlTGluayIsInNjcmlwdHVyZSIsInJlZiIsImJyYW5jaCIsInJlc291cmNlSWQiLCJwcm9qZWN0SWQiLCJjb25jYXQiLCJvd25lciIsImxhbmd1YWdlSWQiLCJwYXJzZVJlc291cmNlTGluayIsInJlc291cmNlTGluayIsIl9yZXNvdXJjZUxpbmskc3BsaXQiLCJzcGxpdCIsIl9yZXNvdXJjZUxpbmskc3BsaXQyIiwiZ2V0U2NyaXB0dXJlT2JqZWN0IiwiX3JlZiIsInRpdGxlIiwic2VydmVyIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJfc2NyaXB0dXJlQ29uZmlnJHZlcnMiLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsIl9zcGxpdFVybCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsIl9yZWYyIiwibGFiZWwiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJpbmRleCIsImZpbmRJdGVtSW5kZXhCeUtleSIsInNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnIiwib3B0aW9ucyIsImN1cnJlbnQiLCJhbGxvd1VzZXJJbnB1dCIsIm9uQ2hhbmdlIiwidmFsaWRhdGlvbkNCIiwiaXRlbSIsIm5ld0l0ZW0iLCJhZGRJdGVtVG9IaXN0b3J5IiwiZ2V0SXRlbUJ5VGl0bGUiLCJkZWxldGVJdGVtIiwiZGVsZXRlSW5kZXgiLCJyZW1vdmVJdGVtQnlJbmRleCIsImdldFJlcG9VcmwiLCJpc05UIiwicmVwb1VybCIsIl9yZXNvdXJjZUxpbmskc3BsaXQzIiwiX3Jlc291cmNlTGluayRzcGxpdDQiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJfcGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwicGFydCIsIl9yZXBvJHNwbGl0IiwiX3JlcG8kc3BsaXQyIiwiX3VudXNlZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRSZXNvdXJjZUVycm9yTWVzc2FnZSIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFJlc291cmNlTGlua1NwZWNpZmljIiwiZml4T2NjdXJyZW5jZSIsIm9jY3VycmVuY2UiLCJwYXJzZUludCIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHNfIiwidm8iLCJvY2N1cnJlbmNlcyIsIndvcmQiLCJjaGlsZHJlbiIsIm5ld1ZvIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZmlsZW5hbWUiLCJfZmlsZW5hbWUkbWF0Y2giLCJyZWdleCIsImJvb2tOYW1lIiwibWF0Y2giLCJnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQiLCJiaWJsZVVzZm0iLCJpZEhlYWRlciIsInBvc0lkIiwiaW5kZXhPZiIsImlkU3RhcnQiLCJoZWFkZXJJZCIsInN1YnN0cmluZyIsInRyaW0iLCJoZWFkZXJCb29rSUQiLCJfaGVhZGVyQm9va0lEIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImZvdW5kV29yZHMiLCJnZXRBbGlnbm1lbnRzIiwiYWxpZ25tZW50c0xpc3QiLCJ0YWciLCJhbGlnbm1lbnQiLCJlbmRUYWciLCJfYWxpZ25tZW50IiwiZmV0Y2hCaWJsZUJvb2tDb3JlIiwiX3giLCJfZmV0Y2hCaWJsZUJvb2tDb3JlIiwiX2NhbGxlZSIsImZldGNoUGFyYW1zIiwiX3Jlc291cmNlJHByb2plY3QiLCJfcmVzb3VyY2UkcHJvamVjdDIiLCJyZXNvdXJjZSIsInJlc3BvbnNlIiwiYm9va09iamVjdHMiLCJfZXJyb3JNc2ciLCJfcmVmMyIsInNoYSIsIl9lcnJvck1zZzIiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicmVzb3VyY2VGcm9tUmVzb3VyY2VMaW5rIiwibWFuaWZlc3QiLCJwcm9qZWN0IiwiZmlsZSIsIndhcm4iLCJyZXNvdXJjZUVycm9yIiwiZ2V0UmVzcG9uc2VEYXRhIiwidG9KU09OIiwiZGF0YSIsInQwIiwiZmV0Y2hCaWJsZUJvb2siLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfZmV0Y2hCaWJsZUJvb2siLCJfY2FsbGVlMiIsImNvbmZpZyIsInJlZmVyZW5jZSIsInJlZl8iLCJyZXN1bHRzIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHsgY29yZSB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHtcbiAgQm9va0ZldGNoUGFyYW1zLFxuICBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlLFxuICBTY3JpcHR1cmVSZXNvdXJjZVR5cGUsXG4gIFNlcnZlckNvbmZpZ1R5cGUsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHtcbiAgQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBMT0FESU5HX1JFU09VUkNFLFxuICBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TRyxcbiAgTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgTlRfT1JJR19MQU5HLFxuICBOVF9PUklHX0xBTkdfQklCTEUsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxuICBPVF9PUklHX0xBTkdfQklCTEUsXG4gIFNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBUQVJHRVRfTElURVJBTCxcbiAgVEFSR0VUX1NJTVBMSUZJRUQsXG59IGZyb20gJy4vY29tbW9uJ1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuL2RlbGF5J1xuXG5leHBvcnQgY29uc3QgRElTQUJMRV9XT1JEX1BPUE9WRVIgPSB0cnVlIC8vIGRpc2FibGUgd29yZCBwb3BvdmVyIGZvciBldmVyeSBzY3JpcHR1cmUgcGFuZSBidXQgb3JpZ2luYWwgbGFuZ3VhZ2VzXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlKSB7XG4gIGNvbnN0IHJlZiA9IHNjcmlwdHVyZS5yZWYgfHwgc2NyaXB0dXJlLmJyYW5jaFxuICBjb25zdCByZXNvdXJjZUlkID0gc2NyaXB0dXJlLnJlc291cmNlSWQgfHwgc2NyaXB0dXJlLnByb2plY3RJZFxuICByZXR1cm4gYCR7c2NyaXB0dXJlLm93bmVyfS8ke3NjcmlwdHVyZS5sYW5ndWFnZUlkfS8ke3Jlc291cmNlSWR9LyR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaykge1xuICBjb25zdCBbb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWQsIHJlZl0gPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuICByZXR1cm4ge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZWYsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZU9iamVjdCh7XG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIG93bmVyLFxuICByZWYsXG4gIGxhbmd1YWdlSWQsXG4gIHJlc291cmNlSWQsXG4gIHJlc291cmNlTGluayxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG59KSB7XG4gIGNvbnN0IHNjcmlwdHVyZSA9IHtcbiAgICB0aXRsZSxcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGlmICghcmVzb3VyY2VMaW5rKSB7XG4gICAgc2NyaXB0dXJlLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICBvd25lcixcbiAgICAgIHJlZixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICByZXNvdXJjZUlkLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVxufVxuXG4vKipcbiAqIHJldHVybiB2ZXJzZSBkYXRhIGdpdmVuIGEgc2NyaXB0dXJlIGNvbmZpZyBhbmQgdmVyc2UgbnVtYmVyXG4gKiBAcGFyYW0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0gdmVyc2VOdW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlRGF0YUZyb21TY3JpcENvbmZpZyhzY3JpcHR1cmVDb25maWcsIHZlcnNlTnVtKSB7XG4gIHJldHVybiBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uZmluZChcbiAgICB2ZXJzZVJlZiA9PiB2ZXJzZVJlZi52ZXJzZSA9PT0gdmVyc2VOdW0sXG4gIClcbn1cblxuLyoqXG4gKiByZXR1cm4gdHJ1ZSBpZiByZXNvdXJjZSBpcyBhbiBvcmlnaW5hbCBsYW5ndWFnZSBiaWJsZVxuICogQHBhcmFtIHJlc291cmNlSWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT3JpZ2luYWxCaWJsZShyZXNvdXJjZUlkKSB7XG4gIGNvbnN0IGlzT3JpZyA9ICgocmVzb3VyY2VJZCA9PT0gTlRfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1RfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSlcbiAgcmV0dXJuIGlzT3JpZ1xufVxuXG4vKipcbiAqIG1ha2Ugc3VyZSBzY3JpcHR1cmVTZXR0aW5ncyBhcmUgdXAgdG8gZGF0ZSB3aXRoIGN1cnJlbnQgb3duZXIgYW5kIGxhbmd1YWdlXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3M6IGFueSwgY3VycmVudE93bmVyOiBhbnksIGN1cnJlbnRMYW5ndWFnZUlkOiBhbnkpIHtcbiAgaWYgKGN1cnJlbnRPd25lciAmJiAoY3VycmVudE93bmVyICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5vd25lcikpIHsgLy8gaWYgb3duZXIgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBjdXJyZW50T3duZXJcbiAgfVxuXG4gIGlmIChjdXJyZW50TGFuZ3VhZ2VJZCAmJiAoY3VycmVudExhbmd1YWdlSWQgIT09IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQpKSB7IC8vIGlmIGxhbmd1YWdlIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBjdXJyZW50TGFuZ3VhZ2VJZFxuICB9XG59XG5cbi8qKlxuICogc2VwYXJhdGUgVVJMIGludG8gc2VydmVyIGFuZCByZXNvdXJjZSBsaW5rXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgaWYgKG9yaWdpbmFsUmVwb1VybCkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwob3JpZ2luYWxSZXBvVXJsKVxuICAgIGNvbnN0IHNlcnZlciA9IHVybC5vcmlnaW5cbiAgICBjb25zdCByZXNvdXJjZUxpbmsgPSB1cmwucGF0aG5hbWUgKyAodXJsLnNlYXJjaCB8fCAnJylcbiAgICByZXR1cm4geyBzZXJ2ZXIsIHJlc291cmNlTGluayB9XG4gIH1cbiAgcmV0dXJuIHt9XG59XG5cbi8qKlxuICogZ2V0IHRoZSBzY3JpcHR1cmUgc2V0dGluZ3MgbmVlZGVkIGZvciBmZXRjaCAtIGZvciBPcmlnTGFuZywgVUxULCBHTFQgd2lsbCByZXBsYWNlIG93bmVyIGFuZCBsYW5ndWFnZUlkIHdpdGggY29ycmVjdCB2YWx1ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29rSWRcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc19cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNOZXdUZXN0YW1lbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmwgLSBvcHRpb25hbCBwYXRoIHRvIHJlcG8gZm9yIG9yaWdpbmFsIGxhbmd1YWdlXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzKFxuICBib29rSWQsIHNjcmlwdHVyZVNldHRpbmdzXywgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsUmVwb1VybD1udWxsLFxuICBjdXJyZW50TGFuZ3VhZ2VJZD1udWxsLFxuICBjdXJyZW50T3duZXI9bnVsbCxcbikge1xuICBjb25zdCBzY3JpcHR1cmVTZXR0aW5ncyA9IHsgLi4uc2NyaXB0dXJlU2V0dGluZ3NfIH1cbiAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gRElTQUJMRV9XT1JEX1BPUE9WRVJcbiAgY29uc3QgcmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzXy5yZXNvdXJjZUlkXG5cbiAgaWYgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkge1xuICAgIC8vIHNlbGVjdCBvcmlnaW5hbCBsYW5ndWFnZSBCaWJsZSBiYXNlZCBvbiB3aGljaCB0ZXN0YW1lbnQgdGhlIGJvb2sgYmVsb25nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBpc05ld1Rlc3RhbWVudCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBpc05ld1Rlc3RhbWVudFxuICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIDogT1RfT1JJR19MQU5HX0JJQkxFXG5cbiAgICBpZiAoc2NyaXB0dXJlU2V0dGluZ3Mub3JpZ2luYWxMYW5ndWFnZU93bmVyKSB7XG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lclxuICAgIH1cblxuICAgIGlmIChvcmlnaW5hbFJlcG9VcmwpIHsgLy8gdXNlIHRoaXMgdXJsIGlmIGRlZmluZWRcbiAgICAgIGNvbnN0IHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfSA9IHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybClcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnNlcnZlciA9IHNlcnZlclxuICAgICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gcmVzb3VyY2VMaW5rXG4gICAgfSBlbHNlIHsgLy8gZmFsbCBiYWNrIHRvIGFwcCBkZWZhdWx0c1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICAgIH1cbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5kaXNhYmxlV29yZFBvcG92ZXIgPSBmYWxzZVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9MSVRFUkFMKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1bHQnIDogJ2dsdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VJZCA9PT0gVEFSR0VUX1NJTVBMSUZJRUQpIHtcbiAgICBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzLCBjdXJyZW50T3duZXIsIGN1cnJlbnRMYW5ndWFnZUlkKVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID09PSAnZW4nID8gJ3VzdCcgOiAnZ3N0J1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgfVxuICByZXR1cm4gc2NyaXB0dXJlU2V0dGluZ3Ncbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gIGxhYmVsLFxuICByZXNvdXJjZUxpbmssXG4gIHNldFNjcmlwdHVyZSxcbiAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG59KSB7XG4gIGNvbnN0IGhpc3RvcnkgPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVxuICBsZXQgaW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5maW5kSXRlbUluZGV4QnlLZXkoaGlzdG9yeSwgJ3Jlc291cmNlTGluaycsIHJlc291cmNlTGluaylcblxuICBjb25zdCBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyA9IHtcbiAgICBsYWJlbCwgLy8gbGFiZWwgZm9yIGNvbWJvYm94XG4gICAgb3B0aW9uczogaGlzdG9yeSxcbiAgICBjdXJyZW50OiBpbmRleCxcbiAgICBhbGxvd1VzZXJJbnB1dDogdHJ1ZSxcbiAgICBvbkNoYW5nZTogKHRpdGxlLCBpbmRleCwgdmFsaWRhdGlvbkNCPW51bGwpID0+IHtcbiAgICAgIGxldCBpdGVtXG5cbiAgICAgIGlmICgoaW5kZXggPCAwKSAmJiB0aXRsZSkge1xuICAgICAgICBjb25zdCBuZXdJdGVtID0ge1xuICAgICAgICAgIHVybDogdGl0bGUsXG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5hZGRJdGVtVG9IaXN0b3J5KG5ld0l0ZW0pXG5cbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClbaW5kZXhdXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW0gPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRJdGVtQnlUaXRsZSh0aXRsZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgc2V0U2NyaXB0dXJlKGl0ZW0sIHZhbGlkYXRpb25DQilcbiAgICAgIH1cbiAgICB9LFxuICAgIGRlbGV0ZUl0ZW06IHRpdGxlID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVxuICAgICAgY29uc3QgZGVsZXRlSW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5maW5kSXRlbUluZGV4QnlLZXkoaGlzdG9yeSwgJ3RpdGxlJywgdGl0bGUpXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC5yZW1vdmVJdGVtQnlJbmRleChkZWxldGVJbmRleClcbiAgICB9LFxuICB9XG5cbiAgcmV0dXJuIHNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvVXJsKHJlc291cmNlTGluazogc3RyaW5nLCBzZXJ2ZXI6IHN0cmluZywgaXNOVDogYm9vbGVhbik6IHN0cmluZyB7XG4gIGxldCByZXBvVXJsXG5cbiAgdHJ5IHtcbiAgICBsZXQgW293bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkXSA9IHJlc291cmNlTGluay5zcGxpdCgnLycpXG5cbiAgICBzd2l0Y2ggKHJlc291cmNlSWQpIHtcbiAgICBjYXNlIE9SSUdJTkFMX1NPVVJDRTpcbiAgICAgIGxhbmd1YWdlSWQgPSBpc05UID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HXG4gICAgICByZXNvdXJjZUlkID0gaXNOVFxuICAgICAgICA/IE5UX09SSUdfTEFOR19CSUJMRVxuICAgICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgVEFSR0VUX0xJVEVSQUw6XG4gICAgICByZXNvdXJjZUlkID0gKGxhbmd1YWdlSWQgPT09ICdlbicpID8gJ3VsdCcgOiAnZ2x0J1xuICAgICAgYnJlYWtcblxuICAgIGNhc2UgVEFSR0VUX1NJTVBMSUZJRUQ6XG4gICAgICByZXNvdXJjZUlkID0gKGxhbmd1YWdlSWQgPT09ICdlbicpID8gJ3VzdCcgOiAnZ3N0J1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgcmVwb1VybCA9IGAke293bmVyfS8ke2xhbmd1YWdlSWR9XyR7cmVzb3VyY2VJZH1gXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyByZXNvdXJjZUxpbmsgd2FzIGludmFsaWRcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGAke3NlcnZlciB8fCAnJ30vJHtyZXBvVXJsfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayhcbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmcsXG4gIHNlcnZlcjogc3RyaW5nLFxuICBlcnJvckNvZGU6IHN0cmluZyxcbiAgaXNOVDogYm9vbGVhbik6IHN0cmluZ1xue1xuICBjb25zdCByZXBvVXJsID0gZ2V0UmVwb1VybChyZXNvdXJjZUxpbmssIHNlcnZlciwgaXNOVClcbiAgY29uc3QgZXJyb3JNc2cgPSBlcnJvckNvZGUgKyByZXBvVXJsXG4gIHJldHVybiBlcnJvck1zZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEY3NVcmwodXJsKSB7XG4gIGxldCB2YWxpZFJlcG9QYXRoID0gZmFsc2VcbiAgbGV0IHZhbGlkVXJsID0gZmFsc2VcblxuICB0cnkge1xuICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJylcbiAgICBjb25zdCBbcHJvdG9jb2wsICwgaG9zdCwgdXNlciwgcmVwb10gPSBwYXJ0c1xuICAgIHZhbGlkVXJsID0gKHByb3RvY29sID09PSAnaHR0cHM6JylcbiAgICBjb25zdCBob3N0UGFydHMgPSBob3N0ID8gaG9zdC5zcGxpdCgnLicpIDogW11cblxuICAgIGlmIChob3N0UGFydHMubGVuZ3RoID49IDIpIHtcbiAgICAgIGZvciAobGV0IHBhcnQgb2YgaG9zdFBhcnRzKSB7XG4gICAgICAgIGlmICghcGFydCkge1xuICAgICAgICAgIHZhbGlkVXJsID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkVXJsID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoIHByb3RvY29sICYmIGhvc3QgJiYgdXNlciAmJiByZXBvICkge1xuICAgICAgY29uc3QgW2xhbmd1YWdlSWQsIHByb2plY3RJZF0gPSByZXBvLnNwbGl0KCdfJylcbiAgICAgIHZhbGlkUmVwb1BhdGggPSBsYW5ndWFnZUlkICYmIHByb2plY3RJZFxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS5sb2coJ0ludmFsaWQgRENTIFVSTDogJyArIHVybClcbiAgfVxuICByZXR1cm4geyB2YWxpZFVybCwgdmFsaWRSZXBvUGF0aCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1czogb2JqZWN0KSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbQ09OVEVOVF9OT1RfRk9VTkRfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IEJPT0tfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBTQ1JJUFRVUkVfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogZGVjb2RlIHJlc291cmNlIHN0YXR1cyBpbnRvIHN0cmluZy4gIEN1cnJlbnRseSBvbmx5IEVuZ2xpc2hcbiAqIEBwYXJhbSByZXNvdXJjZVN0YXR1cyAtIG9iamVjdCB0aGF0IGNvbnRhaW5zIHN0YXRlIGFuZCBlcnJvcnMgdGhhdCBhcmUgZGV0ZWN0ZWRcbiAqIEBwYXJhbSBzZXJ2ZXIgLSBjb250YWlucyB0aGUgc2VydmVyIGJlaW5nIHVzZWRcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmsgLSBwYXRoIHRvIHJlcG8gb24gc2VydmVyXG4gKiBAcGFyYW0gaXNOVCAtIHRydWUgaWYgTlQgYm9va1xuICogQHJldHVybiBlbXB0eSBzdHJpbmcgaWYgbm8gZXJyb3IsIGVsc2UgcmV0dXJucyB1c2VyIGVycm9yIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1czogb2JqZWN0LCBzZXJ2ZXI6IHN0cmluZywgcmVzb3VyY2VMaW5rOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pIHtcbiAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChyZXNvdXJjZVN0YXR1c1tMT0FESU5HX1NUQVRFXSkge1xuICAgIG1lc3NhZ2UgPSBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgbWVzc2FnZSA9IGdldFJlc291cmNlRXJyb3JNZXNzYWdlKHJlc291cmNlU3RhdHVzKVxuXG4gICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgIG1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIG1lc3NhZ2UsIGlzTlQpXG4gICAgfVxuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogZ2VuZXJhdGUgcmVzb3VyY2Ugc3RyaW5nXG4gKiBAcGFyYW0gb3duZXJcbiAqIEBwYXJhbSBsYW5ndWFnZUlkXG4gKiBAcGFyYW0gcHJvamVjdElkXG4gKiBAcGFyYW0gcmVmXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyhvd25lcjogc3RyaW5nLCBsYW5ndWFnZUlkOiBzdHJpbmcsIHByb2plY3RJZDogc3RyaW5nLCByZWY6IHN0cmluZykge1xuICByZXR1cm4gYGFwaS92MS9yZXBvcy8ke293bmVyfS8ke2xhbmd1YWdlSWR9XyR7cHJvamVjdElkfS9jb250ZW50cz9yZWY9JHtyZWZ9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZml4T2NjdXJyZW5jZShvY2N1cnJlbmNlKSB7XG4gIGlmICh0eXBlb2Ygb2NjdXJyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQob2NjdXJyZW5jZSlcbiAgfVxuICByZXR1cm4gb2NjdXJyZW5jZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cFZlcnNlT2JqZWN0cyh2ZXJzZU9iamVjdHMpIHtcbiAgaWYgKHZlcnNlT2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgdmVyc2VPYmplY3RzXyA9IFsuLi52ZXJzZU9iamVjdHNdXG5cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHZlcnNlT2JqZWN0c18ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB2byA9IHZlcnNlT2JqZWN0c19baV1cblxuICAgICAgaWYgKHZvLnR5cGUgPT09ICd3b3JkJyAmJiAodm8ub2NjdXJyZW5jZSB8fCB2by5vY2N1cnJlbmNlcykpIHtcbiAgICAgICAgY29uc3Qgd29yZCA9IHsgLi4udm8gfVxuXG4gICAgICAgIGlmICh2by5vY2N1cnJlbmNlKSB7XG4gICAgICAgICAgd29yZC5vY2N1cnJlbmNlID0gZml4T2NjdXJyZW5jZSh2by5vY2N1cnJlbmNlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZvLm9jY3VycmVuY2VzKSB7XG4gICAgICAgICAgd29yZC5vY2N1cnJlbmNlcyA9IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZXMpXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IHdvcmRcbiAgICAgIH0gZWxzZSBpZiAodm8uY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZvLmNoaWxkcmVuKVxuICAgICAgICBjb25zdCBuZXdWbyA9IHtcbiAgICAgICAgICAuLi52byxcbiAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgfVxuICAgICAgICB2ZXJzZU9iamVjdHNfW2ldID0gbmV3Vm9cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZlcnNlT2JqZWN0c19cbiAgfVxuICByZXR1cm4gW11cbn1cblxuLyoqXG4gKiB0YWtlIHRoZSBmaWxlbmFtZSBvZiB0aGUgYm9vayAoZS5nLiBcIjU3LVRJVC51c2ZtXCIpIGFuZCBwYXJzZSBvdXQgdGhlIGJvb2tJZFxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGJvb2tJZCBpZiBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lKGZpbGVuYW1lKSB7XG4gIGNvbnN0IHJlZ2V4ID0gL14oLio/KVxcLnVzZm0vXG4gIGNvbnN0IGJvb2tOYW1lID0gZmlsZW5hbWU/Lm1hdGNoKHJlZ2V4KT8uWzFdXG4gIHJldHVybiBib29rTmFtZVxufVxuXG4vKipcbiAqIHBhcnNlIHRoZSBVU0ZNIHRvIGZpbmQgYm9va0lEIGluIGhlYWRlclxuICogQHBhcmFtIHtzdHJpbmd9IGJpYmxlVXNmbVxuICogQHJldHVybiB7c3RyaW5nfSBib29rSWQgaWYgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJpYmxlSWRGcm9tVXNmbUNvbnRlbnRJRChiaWJsZVVzZm0pIHtcbiAgY29uc3QgaWRIZWFkZXIgPSAnXFxcXGlkICdcbiAgY29uc3QgcG9zSWQgPSBiaWJsZVVzZm0/LmluZGV4T2YoaWRIZWFkZXIpXG5cbiAgaWYgKHBvc0lkID49IDApIHtcbiAgICBjb25zdCBpZFN0YXJ0ID0gcG9zSWQgKyBpZEhlYWRlci5sZW5ndGhcbiAgICBsZXQgaGVhZGVySWQgPSBiaWJsZVVzZm0/LnN1YnN0cmluZyggaWRTdGFydCwgaWRTdGFydCArIDEwMCkudHJpbSgpXG4gICAgbGV0IGhlYWRlckJvb2tJRCA9IG51bGxcblxuICAgIGlmIChoZWFkZXJJZD8ubGVuZ3RoID4gMSkge1xuICAgICAgaGVhZGVyQm9va0lEID0gaGVhZGVySWQ/LnNwbGl0KCcgJylcbiAgICAgIGhlYWRlckJvb2tJRCA9IGhlYWRlckJvb2tJRD8uWzBdLnRyaW0oKVxuICAgIH1cbiAgICByZXR1cm4gaGVhZGVyQm9va0lEXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuLyoqXG4gKiBkZXRlcm1pbmVzIGlmIHRoZXJlIGFyZSBhbnkgd29yZHMgaW4gdmVyc2VPYmplY3RzXG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IHZlcnNlT2JqZWN0cyAtIGFycmF5IG9mIHZlcnNlT2JqZWN0cyB0byBzZWFyY2ggZm9yIHdvcmRzXG4gKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIHdvcmQgaXMgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcnNlT2JqZWN0c0hhdmVXb3Jkcyh2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUpIHtcbiAgaWYgKHZlcnNlT2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgZm9yIChjb25zdCB2byBvZiB2ZXJzZU9iamVjdHMpIHtcbiAgICAgIGlmICh2by50eXBlID09PSAnd29yZCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0gZWxzZSBpZiAodm8uY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgZm91bmRXb3JkcyA9IHZlcnNlT2JqZWN0c0hhdmVXb3Jkcyh2by5jaGlsZHJlbilcblxuICAgICAgICBpZiAoZm91bmRXb3Jkcykge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKlxuICogZXh0cmFjdCBqdXN0IHRoZSBhbGlnbm1lbnRzIGZyb20gdmVyc2VPYmplY3RzXG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IHZlcnNlT2JqZWN0c1xuICogQHJldHVybnMge1ZlcnNlT2JqZWN0c1R5cGV9IC0ganVzdCBhbGlnbm1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGlnbm1lbnRzKHZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSk6VmVyc2VPYmplY3RzVHlwZSB7XG4gIGNvbnN0IGFsaWdubWVudHNMaXN0ID0gdmVyc2VPYmplY3RzLmZpbHRlcih2byA9PiB2by50YWcgPT09ICd6YWxuJylcblxuICAvLyByZW1vdmUgZW5kVGFnXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYWxpZ25tZW50c0xpc3QubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBhbGlnbm1lbnQgPSBhbGlnbm1lbnRzTGlzdFtpXVxuXG4gICAgaWYgKGFsaWdubWVudC5lbmRUYWcpIHtcbiAgICAgIGNvbnN0IF9hbGlnbm1lbnQgPSB7IC4uLmFsaWdubWVudCB9XG4gICAgICBkZWxldGUgX2FsaWdubWVudC5lbmRUYWdcbiAgICAgIGFsaWdubWVudHNMaXN0W2ldID0gX2FsaWdubWVudFxuICAgIH1cbiAgfVxuICByZXR1cm4gYWxpZ25tZW50c0xpc3Rcbn1cblxuLyoqXG4gKiBkbyBhIGZldGNoIG9mIG1hbmlmZXN0IGFuZCBib29rIG9mIHRoZSBiaWJsZSBzcGVjaWZpZWQgaW4gZmV0Y2hQYXJhbXMuXG4gKlxuICogICAgVFJJQ0tZIC0gdGhpcyBmdW5jdGlvbiBpcyBiZWluZyBjYWxsZWQgYnkgZXZlcnkgc2NyaXB0dXJlIGNhcmQgc2ltdWx0YW5lb3VzbHkgZHVyaW5nIGJvb2sgbmF2aWdhdGlvbiwgc28gaXQgaXNcbiAqICAgICAgdmVyeSBpbXBvcnRhbnQgdGhhdCBpdCBkb2VzIG5vdCBjYXVzZSBzaWduaWZpY2FudCBkZWxheXMgKHBhcnRpY3VsYXJseSBvbiBzbG93ZXIgZGV2aWNlcykgYW5kIGJsb2NrIFVJIG9yXG4gKiAgICAgIHN0YXRlIHVwZGF0ZXMuXG4gKlxuICogQHBhcmFtIHtCb29rRmV0Y2hQYXJhbXN9IGZldGNoUGFyYW1zXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEJpYmxlQm9va0NvcmUoZmV0Y2hQYXJhbXM6IEJvb2tGZXRjaFBhcmFtcykge1xuICB0cnkge1xuICAgIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtIEZFVENISU5HIGJpYmxlICR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua31gLCBmZXRjaFBhcmFtcylcblxuICAgIC8vIGZldGNoIG1hbmlmZXN0IGRhdGFcbiAgICBjb25zdCByZXNvdXJjZSA9IGF3YWl0IGNvcmUucmVzb3VyY2VGcm9tUmVzb3VyY2VMaW5rKGZldGNoUGFyYW1zKVxuXG4gICAgaWYgKCFyZXNvdXJjZT8ubWFuaWZlc3QgfHwgIXJlc291cmNlPy5wcm9qZWN0Py5maWxlKSB7XG4gICAgICBjb25zdCBlcnJvck1zZyA9IHJlc291cmNlPy5tYW5pZmVzdCA/ICdwYXJzaW5nIHJlc291cmNlIG1hbmlmZXN0JyA6ICdsb2FkaW5nIHJlc291cmNlIG1hbmlmZXN0J1xuICAgICAgY29uc29sZS53YXJuKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtIGVycm9yICR7ZXJyb3JNc2d9YCwgZmV0Y2hQYXJhbXMgKVxuICAgICAgcmV0dXJuIHsgZXJyb3I6IGVycm9yTXNnLCByZXNvdXJjZUVycm9yOiB0cnVlIH1cbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBMT0FERUQgYmlibGUgbWFuaWZlc3QsIGZldGNoaW5nIGJvb2sgICR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua31gLCBmZXRjaFBhcmFtcylcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlc291cmNlPy5wcm9qZWN0Py5maWxlKClcbiAgICAvLyBwYXJzZSBib29rIHVzZm1cbiAgICBjb25zdCBiaWJsZVVzZm0gPSByZXNwb25zZSAmJiBjb3JlLmdldFJlc3BvbnNlRGF0YShyZXNwb25zZSlcbiAgICBhd2FpdCBkZWxheSgxMDApIC8vIGFsbG93IFVJIHRvIHVwZGF0ZSBiZXR3ZWVuIHR3byBjb21wdXRhdGlvbmFsbHkgZXhwZW5zaXZlIGZ1bmN0aW9uc1xuICAgIGNvbnN0IGJvb2tPYmplY3RzID0gYmlibGVVc2ZtICYmIHVzZm1qcy50b0pTT04oYmlibGVVc2ZtKSAvLyBjb252ZXJ0IHRvIGJpYmxlIG9iamVjdHNcblxuICAgIGlmICghYm9va09iamVjdHMpIHtcbiAgICAgIGNvbnN0IGVycm9yTXNnID0gYmlibGVVc2ZtID8gJ2ZldGNoaW5nIGJvb2sgb2YgdGhlIGJpYmxlJyA6ICdwYXJzaW5nIGJvb2sgb2YgdGhlIGJpYmxlJ1xuICAgICAgY29uc29sZS53YXJuKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtIGVycm9yICR7ZXJyb3JNc2d9YCwgZmV0Y2hQYXJhbXMgKVxuICAgICAgcmV0dXJuIHsgZXJyb3I6IGVycm9yTXNnIH1cbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBuYW1lLFxuICAgICAgc2hhLFxuICAgICAgdXJsLFxuICAgIH0gPSByZXNwb25zZT8uZGF0YSB8fCB7fVxuXG4gICAgY29uc29sZS5sb2coYGZldGNoQmlibGVCb29rQ29yZSgpIC0gTE9BREVEIGJpYmxlIGJvb2ssICAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9YCwgZmV0Y2hQYXJhbXMpXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc291cmNlLFxuICAgICAgYmlibGVVc2ZtLFxuICAgICAgYm9va09iamVjdHMsXG4gICAgICBuYW1lLFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBzaGEsXG4gICAgICB1cmwsXG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc3QgZXJyb3JNc2cgPSAnaGFyZCBlcnJvciBsb2FkaW5nIHJlc291cmNlJ1xuICAgIGNvbnNvbGUuZXJyb3IoYGZldGNoQmlibGVCb29rQ29yZSgpIC0gJHtlcnJvck1zZ31gLCBmZXRjaFBhcmFtcywgZSApXG4gICAgcmV0dXJuIHsgZXJyb3I6IGVycm9yTXNnIH1cbiAgfVxufVxuXG4vKipcbiAqIGRvIGEgZmV0Y2ggb2YgbWFuaWZlc3QgYW5kIGJvb2sgb2YgdGhlIGJpYmxlIHNwZWNpZmllZCBpbiBmZXRjaFBhcmFtc1xuICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlciAtIHNlcnZlciB0byBhY2Nlc3NcbiAqIEBwYXJhbSB7U2VydmVyQ29uZmlnVHlwZX0gY29uZmlnXG4gKiBAcGFyYW0ge1NjcmlwdHVyZVJlc291cmNlVHlwZX0gcmVzb3VyY2VcbiAqIEBwYXJhbSB7U2NyaXB0dXJlUmVmZXJlbmNlVHlwZX0gcmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEJpYmxlQm9vayhzZXJ2ZXI6IHN0cmluZywgY29uZmlnOiBTZXJ2ZXJDb25maWdUeXBlLCByZXNvdXJjZTogU2NyaXB0dXJlUmVzb3VyY2VUeXBlLCByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUpIHtcbiAgY29uc29sZS5sb2coYGZldGNoQmlibGVCb29rKCkgLSBsb2FkaW5nIGJpYmxlIGJvb2tgLCByZXNvdXJjZSlcbiAgY29uc3QgcmVmXyA9IHJlc291cmNlPy5icmFuY2ggfHwgcmVzb3VyY2U/LnJlZlxuICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgIC4uLnJlc291cmNlLFxuICAgIHJlc291cmNlSWQ6IHJlc291cmNlPy5wcm9qZWN0SWQgfHwgJycsXG4gICAgYm9va0lkOiByZWZlcmVuY2U/LmJvb2tJZCB8fCAnJyxcbiAgICByZWY6IHJlZl8sXG4gIH0pXG5cbiAgbGV0IGZldGNoUGFyYW1zOiBCb29rRmV0Y2hQYXJhbXMgPSB7XG4gICAgY29uZmlnOiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBzZXJ2ZXIsXG4gICAgfSxcbiAgICByZXNvdXJjZSxcbiAgICByZWZlcmVuY2UsXG4gICAgcmVzb3VyY2VMaW5rLFxuICB9XG5cbiAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGZldGNoQmlibGVCb29rQ29yZShmZXRjaFBhcmFtcylcbiAgY29uc29sZS5sb2coYGZldGNoQmlibGVCb29rKCkgLSBiaWJsZSBib29rIGxvYWQgZmluaXNoZWRgLCByZXNvdXJjZSlcbiAgcmV0dXJuIHJlc3VsdHNcbn1cbiJdLCJtYXBwaW5ncyI6IjsrQ0FDQSxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUCxDQUFBLEVBQUFELENBQUEsSUFBQVMsS0FBQSxFQUFBUCxDQUFBLEVBQUFpQixVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxTQUFBcEIsQ0FBQSxDQUFBRCxDQUFBLFdBQUFrQixNQUFBLG1CQUFBakIsQ0FBQSxJQUFBaUIsTUFBQSxZQUFBQSxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsZ0JBQUFvQixLQUFBckIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsRUFBQUcs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
|
|
689
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJpdGVyIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsInN0ZXAiLCJfZTIiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IiLCJJTlZBTElEX01BTklGRVNUX0VSUk9SIiwiTE9BRElOR19TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUiIsImNvcmUiLCJ1c2ZtanMiLCJCb29rRmV0Y2hQYXJhbXMiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiU2NyaXB0dXJlUmVzb3VyY2VUeXBlIiwiU2VydmVyQ29uZmlnVHlwZSIsIlZlcnNlT2JqZWN0c1R5cGUiLCJCT09LX05PVF9GT1VORF9FUlJPUl9NU0ciLCJMT0FESU5HX1JFU09VUkNFIiwiTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0ciLCJNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHIiwiTlRfT1JJR19MQU5HIiwiTlRfT1JJR19MQU5HX0JJQkxFIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiT1RfT1JJR19MQU5HX0JJQkxFIiwiU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0ciLCJUQVJHRVRfTElURVJBTCIsIlRBUkdFVF9TSU1QTElGSUVEIiwiZGVsYXkiLCJESVNBQkxFX1dPUkRfUE9QT1ZFUiIsImdldFJlc291cmNlTGluayIsInNjcmlwdHVyZSIsInJlZiIsImJyYW5jaCIsInJlc291cmNlSWQiLCJwcm9qZWN0SWQiLCJjb25jYXQiLCJvd25lciIsImxhbmd1YWdlSWQiLCJwYXJzZVJlc291cmNlTGluayIsInJlc291cmNlTGluayIsIl9yZXNvdXJjZUxpbmskc3BsaXQiLCJzcGxpdCIsIl9yZXNvdXJjZUxpbmskc3BsaXQyIiwiZ2V0U2NyaXB0dXJlT2JqZWN0IiwiX3JlZiIsInRpdGxlIiwic2VydmVyIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJfc2NyaXB0dXJlQ29uZmlnJHZlcnMiLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsIl9zcGxpdFVybCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsIl9yZWYyIiwibGFiZWwiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJpbmRleCIsImZpbmRJdGVtSW5kZXhCeUtleSIsInNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnIiwib3B0aW9ucyIsImN1cnJlbnQiLCJhbGxvd1VzZXJJbnB1dCIsIm9uQ2hhbmdlIiwidmFsaWRhdGlvbkNCIiwiaXRlbSIsIm5ld0l0ZW0iLCJhZGRJdGVtVG9IaXN0b3J5IiwiZ2V0SXRlbUJ5VGl0bGUiLCJkZWxldGVJdGVtIiwiZGVsZXRlSW5kZXgiLCJyZW1vdmVJdGVtQnlJbmRleCIsImdldFJlcG9VcmwiLCJpc05UIiwicmVwb1VybCIsIl9yZXNvdXJjZUxpbmskc3BsaXQzIiwiX3Jlc291cmNlTGluayRzcGxpdDQiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJfcGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwicGFydCIsIl9yZXBvJHNwbGl0IiwiX3JlcG8kc3BsaXQyIiwiX3VudXNlZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRSZXNvdXJjZUVycm9yTWVzc2FnZSIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFJlc291cmNlTGlua1NwZWNpZmljIiwiZml4T2NjdXJyZW5jZSIsIm9jY3VycmVuY2UiLCJwYXJzZUludCIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHNfIiwidm8iLCJvY2N1cnJlbmNlcyIsIndvcmQiLCJjaGlsZHJlbiIsIm5ld1ZvIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZmlsZW5hbWUiLCJfZmlsZW5hbWUkbWF0Y2giLCJyZWdleCIsImJvb2tOYW1lIiwibWF0Y2giLCJnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQiLCJiaWJsZVVzZm0iLCJpZEhlYWRlciIsInBvc0lkIiwiaW5kZXhPZiIsImlkU3RhcnQiLCJoZWFkZXJJZCIsInN1YnN0cmluZyIsInRyaW0iLCJoZWFkZXJCb29rSUQiLCJfaGVhZGVyQm9va0lEIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImZvdW5kV29yZHMiLCJmaW5kTm9uV2hpdGVTcGFjZUNoYXJzIiwibm90RW1wdHkiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX3ZvJHRleHQiLCJ0ZXh0IiwiZ2V0QWxpZ25tZW50cyIsImFsaWdubWVudHNMaXN0IiwidGFnIiwiYWxpZ25tZW50IiwiZW5kVGFnIiwiX2FsaWdubWVudCIsImZldGNoQmlibGVCb29rQ29yZSIsIl94IiwiX2ZldGNoQmlibGVCb29rQ29yZSIsIl9jYWxsZWUiLCJmZXRjaFBhcmFtcyIsIl9yZXNvdXJjZSRwcm9qZWN0IiwiX3Jlc291cmNlJHByb2plY3QyIiwicmVzb3VyY2UiLCJyZXNwb25zZSIsImJvb2tPYmplY3RzIiwiX2Vycm9yTXNnIiwiX3JlZjMiLCJzaGEiLCJfZXJyb3JNc2cyIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInJlc291cmNlRnJvbVJlc291cmNlTGluayIsIm1hbmlmZXN0IiwicHJvamVjdCIsImZpbGUiLCJ3YXJuIiwicmVzb3VyY2VFcnJvciIsImdldFJlc3BvbnNlRGF0YSIsInRvSlNPTiIsImRhdGEiLCJ0MCIsImZldGNoQmlibGVCb29rIiwiX3gyIiwiX3gzIiwiX3g0IiwiX3g1IiwiX2ZldGNoQmlibGVCb29rIiwiX2NhbGxlZTIiLCJjb25maWciLCJyZWZlcmVuY2UiLCJyZWZfIiwicmVzdWx0cyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgSU5WQUxJRF9NQU5JRkVTVF9FUlJPUixcbiAgTE9BRElOR19TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IGNvcmUgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB1c2ZtanMgZnJvbSAndXNmbS1qcydcbmltcG9ydCB7XG4gIEJvb2tGZXRjaFBhcmFtcyxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSxcbiAgU2NyaXB0dXJlUmVzb3VyY2VUeXBlLFxuICBTZXJ2ZXJDb25maWdUeXBlLFxuICBWZXJzZU9iamVjdHNUeXBlLFxufSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7XG4gIEJPT0tfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgTE9BRElOR19SRVNPVVJDRSxcbiAgTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0csXG4gIE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIE5UX09SSUdfTEFORyxcbiAgTlRfT1JJR19MQU5HX0JJQkxFLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbiAgT1RfT1JJR19MQU5HX0JJQkxFLFxuICBTQ1JJUFRVUkVfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgVEFSR0VUX0xJVEVSQUwsXG4gIFRBUkdFVF9TSU1QTElGSUVELFxufSBmcm9tICcuL2NvbW1vbidcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAnLi9kZWxheSdcblxuZXhwb3J0IGNvbnN0IERJU0FCTEVfV09SRF9QT1BPVkVSID0gdHJ1ZSAvLyBkaXNhYmxlIHdvcmQgcG9wb3ZlciBmb3IgZXZlcnkgc2NyaXB0dXJlIHBhbmUgYnV0IG9yaWdpbmFsIGxhbmd1YWdlc1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZSkge1xuICBjb25zdCByZWYgPSBzY3JpcHR1cmUucmVmIHx8IHNjcmlwdHVyZS5icmFuY2hcbiAgY29uc3QgcmVzb3VyY2VJZCA9IHNjcmlwdHVyZS5yZXNvdXJjZUlkIHx8IHNjcmlwdHVyZS5wcm9qZWN0SWRcbiAgcmV0dXJuIGAke3NjcmlwdHVyZS5vd25lcn0vJHtzY3JpcHR1cmUubGFuZ3VhZ2VJZH0vJHtyZXNvdXJjZUlkfS8ke3JlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlc291cmNlTGluayhyZXNvdXJjZUxpbmspIHtcbiAgY29uc3QgW293bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkLCByZWZdID0gcmVzb3VyY2VMaW5rLnNwbGl0KCcvJylcbiAgcmV0dXJuIHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgcmVmLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVPYmplY3Qoe1xuICB0aXRsZSxcbiAgc2VydmVyLFxuICBvd25lcixcbiAgcmVmLFxuICBsYW5ndWFnZUlkLFxuICByZXNvdXJjZUlkLFxuICByZXNvdXJjZUxpbmssXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxufSkge1xuICBjb25zdCBzY3JpcHR1cmUgPSB7XG4gICAgdGl0bGUsXG4gICAgc2VydmVyLFxuICAgIG93bmVyLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICByZWYsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICByZXNvdXJjZUxpbmssXG4gIH1cblxuICBpZiAoIXJlc291cmNlTGluaykge1xuICAgIHNjcmlwdHVyZS5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgb3duZXIsXG4gICAgICByZWYsXG4gICAgICBsYW5ndWFnZUlkLFxuICAgICAgcmVzb3VyY2VJZCxcbiAgICB9KVxuICB9XG4gIHJldHVybiBzY3JpcHR1cmVcbn1cblxuLyoqXG4gKiByZXR1cm4gdmVyc2UgZGF0YSBnaXZlbiBhIHNjcmlwdHVyZSBjb25maWcgYW5kIHZlcnNlIG51bWJlclxuICogQHBhcmFtIHNjcmlwdHVyZUNvbmZpZ1xuICogQHBhcmFtIHZlcnNlTnVtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzZURhdGFGcm9tU2NyaXBDb25maWcoc2NyaXB0dXJlQ29uZmlnLCB2ZXJzZU51bSkge1xuICByZXR1cm4gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWY/LmZpbmQoXG4gICAgdmVyc2VSZWYgPT4gdmVyc2VSZWYudmVyc2UgPT09IHZlcnNlTnVtLFxuICApXG59XG5cbi8qKlxuICogcmV0dXJuIHRydWUgaWYgcmVzb3VyY2UgaXMgYW4gb3JpZ2luYWwgbGFuZ3VhZ2UgYmlibGVcbiAqIEBwYXJhbSByZXNvdXJjZUlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09yaWdpbmFsQmlibGUocmVzb3VyY2VJZCkge1xuICBjb25zdCBpc09yaWcgPSAoKHJlc291cmNlSWQgPT09IE5UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkpXG4gIHJldHVybiBpc09yaWdcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgc2NyaXB0dXJlU2V0dGluZ3MgYXJlIHVwIHRvIGRhdGUgd2l0aCBjdXJyZW50IG93bmVyIGFuZCBsYW5ndWFnZVxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzOiBhbnksIGN1cnJlbnRPd25lcjogYW55LCBjdXJyZW50TGFuZ3VhZ2VJZDogYW55KSB7XG4gIGlmIChjdXJyZW50T3duZXIgJiYgKGN1cnJlbnRPd25lciAhPT0gc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIpKSB7IC8vIGlmIG93bmVyIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gY3VycmVudE93bmVyXG4gIH1cblxuICBpZiAoY3VycmVudExhbmd1YWdlSWQgJiYgKGN1cnJlbnRMYW5ndWFnZUlkICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkKSkgeyAvLyBpZiBsYW5ndWFnZSBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gY3VycmVudExhbmd1YWdlSWRcbiAgfVxufVxuXG4vKipcbiAqIHNlcGFyYXRlIFVSTCBpbnRvIHNlcnZlciBhbmQgcmVzb3VyY2UgbGlua1xuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKSB7XG4gIGlmIChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKG9yaWdpbmFsUmVwb1VybClcbiAgICBjb25zdCBzZXJ2ZXIgPSB1cmwub3JpZ2luXG4gICAgY29uc3QgcmVzb3VyY2VMaW5rID0gdXJsLnBhdGhuYW1lICsgKHVybC5zZWFyY2ggfHwgJycpXG4gICAgcmV0dXJuIHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfVxuICB9XG4gIHJldHVybiB7fVxufVxuXG4vKipcbiAqIGdldCB0aGUgc2NyaXB0dXJlIHNldHRpbmdzIG5lZWRlZCBmb3IgZmV0Y2ggLSBmb3IgT3JpZ0xhbmcsIFVMVCwgR0xUIHdpbGwgcmVwbGFjZSBvd25lciBhbmQgbGFuZ3VhZ2VJZCB3aXRoIGNvcnJlY3QgdmFsdWVzXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NfXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3VGVzdGFtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsIC0gb3B0aW9uYWwgcGF0aCB0byByZXBvIGZvciBvcmlnaW5hbCBsYW5ndWFnZVxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgYm9va0lkLCBzY3JpcHR1cmVTZXR0aW5nc18sIGlzTmV3VGVzdGFtZW50LFxuICBvcmlnaW5hbFJlcG9Vcmw9bnVsbCxcbiAgY3VycmVudExhbmd1YWdlSWQ9bnVsbCxcbiAgY3VycmVudE93bmVyPW51bGwsXG4pIHtcbiAgY29uc3Qgc2NyaXB0dXJlU2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZVNldHRpbmdzXyB9XG4gIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IERJU0FCTEVfV09SRF9QT1BPVkVSXG4gIGNvbnN0IHJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5nc18ucmVzb3VyY2VJZFxuXG4gIGlmIChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpIHtcbiAgICAvLyBzZWxlY3Qgb3JpZ2luYWwgbGFuZ3VhZ2UgQmlibGUgYmFzZWQgb24gd2hpY2ggdGVzdGFtZW50IHRoZSBib29rIGJlbG9uZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gaXNOZXdUZXN0YW1lbnQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gaXNOZXdUZXN0YW1lbnRcbiAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuXG4gICAgaWYgKHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lcikge1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXJcbiAgICB9XG5cbiAgICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7IC8vIHVzZSB0aGlzIHVybCBpZiBkZWZpbmVkXG4gICAgICBjb25zdCB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH0gPSBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5zZXJ2ZXIgPSBzZXJ2ZXJcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IHJlc291cmNlTGlua1xuICAgIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byBhcHAgZGVmYXVsdHNcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgICB9XG4gICAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gZmFsc2VcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfTElURVJBTCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndWx0JyA6ICdnbHQnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9TSU1QTElGSUVEKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1c3QnIDogJ2dzdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVNldHRpbmdzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICBsYWJlbCxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZXRTY3JpcHR1cmUsXG4gIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxufSkge1xuICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgbGV0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICdyZXNvdXJjZUxpbmsnLCByZXNvdXJjZUxpbmspXG5cbiAgY29uc3Qgc2NyaXB0dXJlU2VsZWN0b3JDb25maWcgPSB7XG4gICAgbGFiZWwsIC8vIGxhYmVsIGZvciBjb21ib2JveFxuICAgIG9wdGlvbnM6IGhpc3RvcnksXG4gICAgY3VycmVudDogaW5kZXgsXG4gICAgYWxsb3dVc2VySW5wdXQ6IHRydWUsXG4gICAgb25DaGFuZ2U6ICh0aXRsZSwgaW5kZXgsIHZhbGlkYXRpb25DQj1udWxsKSA9PiB7XG4gICAgICBsZXQgaXRlbVxuXG4gICAgICBpZiAoKGluZGV4IDwgMCkgJiYgdGl0bGUpIHtcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICB1cmw6IHRpdGxlLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdJdGVtKVxuXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpW2luZGV4XVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0SXRlbUJ5VGl0bGUodGl0bGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHNldFNjcmlwdHVyZShpdGVtLCB2YWxpZGF0aW9uQ0IpXG4gICAgICB9XG4gICAgfSxcbiAgICBkZWxldGVJdGVtOiB0aXRsZSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICd0aXRsZScsIHRpdGxlKVxuICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlSXRlbUJ5SW5kZXgoZGVsZXRlSW5kZXgpXG4gICAgfSxcbiAgfVxuXG4gIHJldHVybiBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwb1VybChyZXNvdXJjZUxpbms6IHN0cmluZywgc2VydmVyOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBsZXQgcmVwb1VybFxuXG4gIHRyeSB7XG4gICAgbGV0IFtvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0gPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuXG4gICAgc3dpdGNoIChyZXNvdXJjZUlkKSB7XG4gICAgY2FzZSBPUklHSU5BTF9TT1VSQ0U6XG4gICAgICBsYW5ndWFnZUlkID0gaXNOVCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgICAgcmVzb3VyY2VJZCA9IGlzTlRcbiAgICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9MSVRFUkFMOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1bHQnIDogJ2dsdCdcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9TSU1QTElGSUVEOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1c3QnIDogJ2dzdCdcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlcG9VcmwgPSBgJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Jlc291cmNlSWR9YFxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gcmVzb3VyY2VMaW5rIHdhcyBpbnZhbGlkXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBgJHtzZXJ2ZXIgfHwgJyd9LyR7cmVwb1VybH1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsoXG4gIHJlc291cmNlTGluazogc3RyaW5nLFxuICBzZXJ2ZXI6IHN0cmluZyxcbiAgZXJyb3JDb2RlOiBzdHJpbmcsXG4gIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmdcbntcbiAgY29uc3QgcmVwb1VybCA9IGdldFJlcG9VcmwocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIGlzTlQpXG4gIGNvbnN0IGVycm9yTXNnID0gZXJyb3JDb2RlICsgcmVwb1VybFxuICByZXR1cm4gZXJyb3JNc2dcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGNzVXJsKHVybCkge1xuICBsZXQgdmFsaWRSZXBvUGF0aCA9IGZhbHNlXG4gIGxldCB2YWxpZFVybCA9IGZhbHNlXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJ0cyA9IHVybC5zcGxpdCgnLycpXG4gICAgY29uc3QgW3Byb3RvY29sLCAsIGhvc3QsIHVzZXIsIHJlcG9dID0gcGFydHNcbiAgICB2YWxpZFVybCA9IChwcm90b2NvbCA9PT0gJ2h0dHBzOicpXG4gICAgY29uc3QgaG9zdFBhcnRzID0gaG9zdCA/IGhvc3Quc3BsaXQoJy4nKSA6IFtdXG5cbiAgICBpZiAoaG9zdFBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICBmb3IgKGxldCBwYXJ0IG9mIGhvc3RQYXJ0cykge1xuICAgICAgICBpZiAoIXBhcnQpIHtcbiAgICAgICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCBwcm90b2NvbCAmJiBob3N0ICYmIHVzZXIgJiYgcmVwbyApIHtcbiAgICAgIGNvbnN0IFtsYW5ndWFnZUlkLCBwcm9qZWN0SWRdID0gcmVwby5zcGxpdCgnXycpXG4gICAgICB2YWxpZFJlcG9QYXRoID0gbGFuZ3VhZ2VJZCAmJiBwcm9qZWN0SWRcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIGNvbnNvbGUubG9nKCdJbnZhbGlkIERDUyBVUkw6ICcgKyB1cmwpXG4gIH1cbiAgcmV0dXJuIHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCkge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tJTlZBTElEX01BTklGRVNUX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBCT09LX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGRlY29kZSByZXNvdXJjZSBzdGF0dXMgaW50byBzdHJpbmcuICBDdXJyZW50bHkgb25seSBFbmdsaXNoXG4gKiBAcGFyYW0gcmVzb3VyY2VTdGF0dXMgLSBvYmplY3QgdGhhdCBjb250YWlucyBzdGF0ZSBhbmQgZXJyb3JzIHRoYXQgYXJlIGRldGVjdGVkXG4gKiBAcGFyYW0gc2VydmVyIC0gY29udGFpbnMgdGhlIHNlcnZlciBiZWluZyB1c2VkXG4gKiBAcGFyYW0gcmVzb3VyY2VMaW5rIC0gcGF0aCB0byByZXBvIG9uIHNlcnZlclxuICogQHBhcmFtIGlzTlQgLSB0cnVlIGlmIE5UIGJvb2tcbiAqIEByZXR1cm4gZW1wdHkgc3RyaW5nIGlmIG5vIGVycm9yLCBlbHNlIHJldHVybnMgdXNlciBlcnJvciBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCwgc2VydmVyOiBzdHJpbmcsIHJlc291cmNlTGluazogc3RyaW5nLCBpc05UOiBib29sZWFuKSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTE9BRElOR19TVEFURV0pIHtcbiAgICBtZXNzYWdlID0gTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgPSBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1cylcblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICBtZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaywgc2VydmVyLCBtZXNzYWdlLCBpc05UKVxuICAgIH1cbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGdlbmVyYXRlIHJlc291cmNlIHN0cmluZ1xuICogQHBhcmFtIG93bmVyXG4gKiBAcGFyYW0gbGFuZ3VhZ2VJZFxuICogQHBhcmFtIHByb2plY3RJZFxuICogQHBhcmFtIHJlZlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rU3BlY2lmaWMob3duZXI6IHN0cmluZywgbGFuZ3VhZ2VJZDogc3RyaW5nLCBwcm9qZWN0SWQ6IHN0cmluZywgcmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBhcGkvdjEvcmVwb3MvJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Byb2plY3RJZH0vY29udGVudHM/cmVmPSR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpeE9jY3VycmVuY2Uob2NjdXJyZW5jZSkge1xuICBpZiAodHlwZW9mIG9jY3VycmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KG9jY3VycmVuY2UpXG4gIH1cbiAgcmV0dXJuIG9jY3VycmVuY2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKSB7XG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0c18gPSBbLi4udmVyc2VPYmplY3RzXVxuXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB2ZXJzZU9iamVjdHNfLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3Qgdm8gPSB2ZXJzZU9iamVjdHNfW2ldXG5cbiAgICAgIGlmICh2by50eXBlID09PSAnd29yZCcgJiYgKHZvLm9jY3VycmVuY2UgfHwgdm8ub2NjdXJyZW5jZXMpKSB7XG4gICAgICAgIGNvbnN0IHdvcmQgPSB7IC4uLnZvIH1cblxuICAgICAgICBpZiAodm8ub2NjdXJyZW5jZSkge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZSA9IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2by5vY2N1cnJlbmNlcykge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZXMgPSBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2VzKVxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSB3b3JkXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2by5jaGlsZHJlbilcbiAgICAgICAgY29uc3QgbmV3Vm8gPSB7XG4gICAgICAgICAgLi4udm8sXG4gICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IG5ld1ZvXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNfXG4gIH1cbiAgcmV0dXJuIFtdXG59XG5cbi8qKlxuICogdGFrZSB0aGUgZmlsZW5hbWUgb2YgdGhlIGJvb2sgKGUuZy4gXCI1Ny1USVQudXNmbVwiKSBhbmQgcGFyc2Ugb3V0IHRoZSBib29rSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZVxuICogQHJldHVybiB7c3RyaW5nfSBib29rSWQgaWYgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZShmaWxlbmFtZSkge1xuICBjb25zdCByZWdleCA9IC9eKC4qPylcXC51c2ZtL1xuICBjb25zdCBib29rTmFtZSA9IGZpbGVuYW1lPy5tYXRjaChyZWdleCk/LlsxXVxuICByZXR1cm4gYm9va05hbWVcbn1cblxuLyoqXG4gKiBwYXJzZSB0aGUgVVNGTSB0byBmaW5kIGJvb2tJRCBpbiBoZWFkZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZVVzZm1cbiAqIEByZXR1cm4ge3N0cmluZ30gYm9va0lkIGlmIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQoYmlibGVVc2ZtKSB7XG4gIGNvbnN0IGlkSGVhZGVyID0gJ1xcXFxpZCAnXG4gIGNvbnN0IHBvc0lkID0gYmlibGVVc2ZtPy5pbmRleE9mKGlkSGVhZGVyKVxuXG4gIGlmIChwb3NJZCA+PSAwKSB7XG4gICAgY29uc3QgaWRTdGFydCA9IHBvc0lkICsgaWRIZWFkZXIubGVuZ3RoXG4gICAgbGV0IGhlYWRlcklkID0gYmlibGVVc2ZtPy5zdWJzdHJpbmcoIGlkU3RhcnQsIGlkU3RhcnQgKyAxMDApLnRyaW0oKVxuICAgIGxldCBoZWFkZXJCb29rSUQgPSBudWxsXG5cbiAgICBpZiAoaGVhZGVySWQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGhlYWRlckJvb2tJRCA9IGhlYWRlcklkPy5zcGxpdCgnICcpXG4gICAgICBoZWFkZXJCb29rSUQgPSBoZWFkZXJCb29rSUQ/LlswXS50cmltKClcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlckJvb2tJRFxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZGV0ZXJtaW5lcyBpZiB0aGVyZSBhcmUgYW55IHdvcmRzIGluIHZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB2ZXJzZU9iamVjdHMgLSBhcnJheSBvZiB2ZXJzZU9iamVjdHMgdG8gc2VhcmNoIGZvciB3b3Jkc1xuICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiB3b3JkIGlzIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzZU9iamVjdHNIYXZlV29yZHModmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlKSB7XG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3Qgdm8gb2YgdmVyc2VPYmplY3RzKSB7XG4gICAgICBpZiAodm8udHlwZSA9PT0gJ3dvcmQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kV29yZHMgPSB2ZXJzZU9iamVjdHNIYXZlV29yZHModm8uY2hpbGRyZW4pXG5cbiAgICAgICAgaWYgKGZvdW5kV29yZHMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlcmUgYXJlIGFueSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzIHdpdGhpbiB0aGUgcHJvdmlkZWQgdmVyc2Ugb2JqZWN0cy5cbiAqIFRoZSBtZXRob2QgdHJhdmVyc2VzIHRocm91Z2ggdGhlIGlucHV0LCBjaGVja2luZyBmb3Igbm9uLWVtcHR5IHN0cmluZ3MgaW4gYHdvcmRgIG9yIGB0ZXh0YCB0eXBlIG9iamVjdHMsXG4gKiBvcHRpb25hbGx5IHRyYXZlcnNpbmcgY2hpbGQgb2JqZWN0cyBpZiBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gdmVyc2VPYmplY3RzIC0gVGhlIGlucHV0IG9iamVjdHMgdG8gY2hlY2sgZm9yIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMuIFRoaXMgY2FuIGJlIGEgc3RyaW5nLCBhbiBhcnJheSBvZiBvYmplY3RzLCBvciBjb250YWluIG5lc3RlZCBzdHJ1Y3R1cmVzLlxuICogQHJldHVybiB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMgYXJlIGZvdW5kLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmROb25XaGl0ZVNwYWNlQ2hhcnModmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlKSB7XG4gIGlmICh0eXBlb2YgdmVyc2VPYmplY3RzID09PSAnc3RyaW5nJykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBub3RFbXB0eSA9IHZlcnNlT2JqZWN0cy50cmltKClcbiAgICByZXR1cm4gISFub3RFbXB0eVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBpZiAodmVyc2VPYmplY3RzPy52ZXJzZU9iamVjdHMpIHsgLy8gc3BlY2lhbCBjYXNlIGZvciB2ZXJzZU9iamVjdHMgd2l0aCB2ZXJzZU9iamVjdHMgcHJvcGVydHlcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIGZpbmROb25XaGl0ZVNwYWNlQ2hhcnModmVyc2VPYmplY3RzLnZlcnNlT2JqZWN0cylcbiAgfVxuXG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3Qgdm8gb2YgdmVyc2VPYmplY3RzKSB7XG4gICAgICBpZiAoKHZvLnR5cGUgPT09ICd3b3JkJykgfHwgKHZvLnR5cGUgPT09ICd0ZXh0JykpIHtcbiAgICAgICAgY29uc3QgdGV4dCA9IHZvLnRleHQ/LnRyaW0oKVxuXG4gICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh2by5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBmb3VuZFdvcmRzID0gZmluZE5vbldoaXRlU3BhY2VDaGFycyh2by5jaGlsZHJlbilcblxuICAgICAgICBpZiAoZm91bmRXb3Jkcykge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuXG4vKipcbiAqIGV4dHJhY3QganVzdCB0aGUgYWxpZ25tZW50cyBmcm9tIHZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB2ZXJzZU9iamVjdHNcbiAqIEByZXR1cm5zIHtWZXJzZU9iamVjdHNUeXBlfSAtIGp1c3QgYWxpZ25tZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxpZ25tZW50cyh2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUpOlZlcnNlT2JqZWN0c1R5cGUge1xuICBjb25zdCBhbGlnbm1lbnRzTGlzdCA9IHZlcnNlT2JqZWN0cy5maWx0ZXIodm8gPT4gdm8udGFnID09PSAnemFsbicpXG5cbiAgLy8gcmVtb3ZlIGVuZFRhZ1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFsaWdubWVudHNMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYWxpZ25tZW50ID0gYWxpZ25tZW50c0xpc3RbaV1cblxuICAgIGlmIChhbGlnbm1lbnQuZW5kVGFnKSB7XG4gICAgICBjb25zdCBfYWxpZ25tZW50ID0geyAuLi5hbGlnbm1lbnQgfVxuICAgICAgZGVsZXRlIF9hbGlnbm1lbnQuZW5kVGFnXG4gICAgICBhbGlnbm1lbnRzTGlzdFtpXSA9IF9hbGlnbm1lbnRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFsaWdubWVudHNMaXN0XG59XG5cbi8qKlxuICogZG8gYSBmZXRjaCBvZiBtYW5pZmVzdCBhbmQgYm9vayBvZiB0aGUgYmlibGUgc3BlY2lmaWVkIGluIGZldGNoUGFyYW1zLlxuICpcbiAqICAgIFRSSUNLWSAtIHRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGJ5IGV2ZXJ5IHNjcmlwdHVyZSBjYXJkIHNpbXVsdGFuZW91c2x5IGR1cmluZyBib29rIG5hdmlnYXRpb24sIHNvIGl0IGlzXG4gKiAgICAgIHZlcnkgaW1wb3J0YW50IHRoYXQgaXQgZG9lcyBub3QgY2F1c2Ugc2lnbmlmaWNhbnQgZGVsYXlzIChwYXJ0aWN1bGFybHkgb24gc2xvd2VyIGRldmljZXMpIGFuZCBibG9jayBVSSBvclxuICogICAgICBzdGF0ZSB1cGRhdGVzLlxuICpcbiAqIEBwYXJhbSB7Qm9va0ZldGNoUGFyYW1zfSBmZXRjaFBhcmFtc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCaWJsZUJvb2tDb3JlKGZldGNoUGFyYW1zOiBCb29rRmV0Y2hQYXJhbXMpIHtcbiAgdHJ5IHtcbiAgICBjb25zb2xlLmxvZyhgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBGRVRDSElORyBiaWJsZSAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9YCwgZmV0Y2hQYXJhbXMpXG5cbiAgICAvLyBmZXRjaCBtYW5pZmVzdCBkYXRhXG4gICAgY29uc3QgcmVzb3VyY2UgPSBhd2FpdCBjb3JlLnJlc291cmNlRnJvbVJlc291cmNlTGluayhmZXRjaFBhcmFtcylcblxuICAgIGlmICghcmVzb3VyY2U/Lm1hbmlmZXN0IHx8ICFyZXNvdXJjZT8ucHJvamVjdD8uZmlsZSkge1xuICAgICAgY29uc3QgZXJyb3JNc2cgPSByZXNvdXJjZT8ubWFuaWZlc3QgPyAncGFyc2luZyByZXNvdXJjZSBtYW5pZmVzdCcgOiAnbG9hZGluZyByZXNvdXJjZSBtYW5pZmVzdCdcbiAgICAgIGNvbnNvbGUud2FybihgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBlcnJvciAke2Vycm9yTXNnfWAsIGZldGNoUGFyYW1zIClcbiAgICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZywgcmVzb3VyY2VFcnJvcjogdHJ1ZSB9XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coYGZldGNoQmlibGVCb29rQ29yZSgpIC0gTE9BREVEIGJpYmxlIG1hbmlmZXN0LCBmZXRjaGluZyBib29rICAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9YCwgZmV0Y2hQYXJhbXMpXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXNvdXJjZT8ucHJvamVjdD8uZmlsZSgpXG4gICAgLy8gcGFyc2UgYm9vayB1c2ZtXG4gICAgY29uc3QgYmlibGVVc2ZtID0gcmVzcG9uc2UgJiYgY29yZS5nZXRSZXNwb25zZURhdGEocmVzcG9uc2UpXG4gICAgYXdhaXQgZGVsYXkoMTAwKSAvLyBhbGxvdyBVSSB0byB1cGRhdGUgYmV0d2VlbiB0d28gY29tcHV0YXRpb25hbGx5IGV4cGVuc2l2ZSBmdW5jdGlvbnNcbiAgICBjb25zdCBib29rT2JqZWN0cyA9IGJpYmxlVXNmbSAmJiB1c2ZtanMudG9KU09OKGJpYmxlVXNmbSkgLy8gY29udmVydCB0byBiaWJsZSBvYmplY3RzXG5cbiAgICBpZiAoIWJvb2tPYmplY3RzKSB7XG4gICAgICBjb25zdCBlcnJvck1zZyA9IGJpYmxlVXNmbSA/ICdmZXRjaGluZyBib29rIG9mIHRoZSBiaWJsZScgOiAncGFyc2luZyBib29rIG9mIHRoZSBiaWJsZSdcbiAgICAgIGNvbnNvbGUud2FybihgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBlcnJvciAke2Vycm9yTXNnfWAsIGZldGNoUGFyYW1zIClcbiAgICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZyB9XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIHNoYSxcbiAgICAgIHVybCxcbiAgICB9ID0gcmVzcG9uc2U/LmRhdGEgfHwge31cblxuICAgIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtIExPQURFRCBiaWJsZSBib29rLCAgJHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rfWAsIGZldGNoUGFyYW1zKVxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNvdXJjZSxcbiAgICAgIGJpYmxlVXNmbSxcbiAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgbmFtZSxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgc2hhLFxuICAgICAgdXJsLFxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnN0IGVycm9yTXNnID0gJ2hhcmQgZXJyb3IgbG9hZGluZyByZXNvdXJjZSdcbiAgICBjb25zb2xlLmVycm9yKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtICR7ZXJyb3JNc2d9YCwgZmV0Y2hQYXJhbXMsIGUgKVxuICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZyB9XG4gIH1cbn1cblxuLyoqXG4gKiBkbyBhIGZldGNoIG9mIG1hbmlmZXN0IGFuZCBib29rIG9mIHRoZSBiaWJsZSBzcGVjaWZpZWQgaW4gZmV0Y2hQYXJhbXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2ZXIgLSBzZXJ2ZXIgdG8gYWNjZXNzXG4gKiBAcGFyYW0ge1NlcnZlckNvbmZpZ1R5cGV9IGNvbmZpZ1xuICogQHBhcmFtIHtTY3JpcHR1cmVSZXNvdXJjZVR5cGV9IHJlc291cmNlXG4gKiBAcGFyYW0ge1NjcmlwdHVyZVJlZmVyZW5jZVR5cGV9IHJlZmVyZW5jZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCaWJsZUJvb2soc2VydmVyOiBzdHJpbmcsIGNvbmZpZzogU2VydmVyQ29uZmlnVHlwZSwgcmVzb3VyY2U6IFNjcmlwdHVyZVJlc291cmNlVHlwZSwgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlKSB7XG4gIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9vaygpIC0gbG9hZGluZyBiaWJsZSBib29rYCwgcmVzb3VyY2UpXG4gIGNvbnN0IHJlZl8gPSByZXNvdXJjZT8uYnJhbmNoIHx8IHJlc291cmNlPy5yZWZcbiAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAuLi5yZXNvdXJjZSxcbiAgICByZXNvdXJjZUlkOiByZXNvdXJjZT8ucHJvamVjdElkIHx8ICcnLFxuICAgIGJvb2tJZDogcmVmZXJlbmNlPy5ib29rSWQgfHwgJycsXG4gICAgcmVmOiByZWZfLFxuICB9KVxuXG4gIGxldCBmZXRjaFBhcmFtczogQm9va0ZldGNoUGFyYW1zID0ge1xuICAgIGNvbmZpZzoge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgc2VydmVyLFxuICAgIH0sXG4gICAgcmVzb3VyY2UsXG4gICAgcmVmZXJlbmNlLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBmZXRjaEJpYmxlQm9va0NvcmUoZmV0Y2hQYXJhbXMpXG4gIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9vaygpIC0gYmlibGUgYm9vayBsb2FkIGZpbmlzaGVkYCwgcmVzb3VyY2UpXG4gIHJldHVybiByZXN1bHRzXG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFBLElBQUFTLEtBQUEsRUFBQVAsQ0FBQSxFQUFBaUIsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsU0FBQXBCLENBQUEsQ0FBQUQsQ0FBQSxXQUFBa0IsTUFBQSxtQkFBQWpCLENBQUEsSUFBQWlCLE1BQUEsWUFBQUEsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLGdCQUFBb0IsS0FBQXJCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsUUFBQUssQ0FBQSxHQUFBVixDQUFBLElBQUFBLENBQUEsQ0FBQUksU0FBQSxZQUFBbUIsU0FBQSxHQUFBdkIsQ0FBQSxHQUFBdUIsU0FBQSxFQUFBWCxDQUFBLEdBQUFULE1BQUEsQ0FBQXFCLE1BQUEsQ0FBQWQsQ0FBQSxDQUFBTixTQUFBLEdBQUFVLENBQUEsT0FBQVcsT0FBQSxDQUFBcEIsQ0FBQSxnQkFBQUUsQ0FBQSxDQUFBSyxDQUFBLGVBQUFILEtBQUEsRUFBQWlCLGdCQUFBLENBQUF6QixDQUFBLEVBQUFDLENBQUEsRUFBQVksQ0FBQSxNQUFBRixDQUFBLGFBQUFlLFNBQUExQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxtQkFBQTBCLElBQUEsWUFBQUMsR0FBQSxFQUFBNUIsQ0FBQSxDQUFBNkIsSUFBQSxDQUFBOUIsQ0FBQSxFQUFBRSxDQUFBLGNBQUFELENBQUEsYUFBQTJCLElBQUEsV0FBQUMsR0FBQSxFQUFBNUIsQ0FBQSxRQUFBRCxDQUFBLENBQUFzQixJQUFBLEdBQUFBLElBQUEsTUFBQVMsQ0FBQSxxQkFBQUMsQ0FBQSxxQkFBQUMsQ0FBQSxnQkFBQUMsQ0FBQSxnQkFBQUMsQ0FBQSxnQkFBQVosVUFBQSxjQUFBYSxrQkFBQSxjQUFBQywyQkFBQSxTQUFBQyxDQUFBLE9BQUFwQixNQUFBLENBQUFvQixDQUFBLEVBQUExQixDQUFBLHFDQUFBMkIsQ0FBQSxHQUFBcEMsTUFBQSxDQUFBcUMsY0FBQSxFQUFBQyxDQUFBLEdBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBQSxDQUFBLENBQUFHLE1BQUEsUUFBQUQsQ0FBQSxJQUFBQSxDQUFBLEtBQUF2QyxDQUFBLElBQUFHLENBQUEsQ0FBQXlCLElBQUEsQ0FBQVcsQ0FBQSxFQUFBN0IsQ0FBQSxNQUFBMEIsQ0FBQSxHQUFBRyxDQUFBLE9BQUFFLENBQUEsR0FBQU4sMEJBQUEsQ0FBQWpDLFNBQUEsR0FBQW1CLFNBQUEsQ0FBQW5CLFNBQUEsR0FBQUQsTUFBQSxDQUFBcUIsTUFBQSxDQUFBYyxDQUFBLFlBQUFNLHNCQUFBM0MsQ0FBQSxnQ0FBQTRDLE9BQUEsV0FBQTdDLENBQUEsSUFBQWtCLE1BQUEsQ0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxZQUFBQyxDQUFBLGdCQUFBNkMsT0FBQSxDQUFBOUMsQ0FBQSxFQUFBQyxDQUFBLHNCQUFBOEMsY0FBQTlDLENBQUEsRUFBQUQsQ0FBQSxhQUFBZ0QsT0FBQTlDLENBQUEsRUFBQUssQ0FBQSxFQUFBRyxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxHQUFBYSxRQUFBLENBQUExQixDQUFBLENBQUFDLENBQUEsR0FBQUQsQ0FBQSxFQUFBTSxDQUFBLG1CQUFBTyxDQUFBLENBQUFjLElBQUEsUUFBQVosQ0FBQSxHQUFBRixDQUFBLENBQUFlLEdBQUEsRUFBQUUsQ0FBQSxHQUFBZixDQUFBLENBQUFQLEtBQUEsU0FBQXNCLENBQUEsZ0JBQUFrQixPQUFBLENBQUFsQixDQUFBLEtBQUExQixDQUFBLENBQUF5QixJQUFBLENBQUFDLENBQUEsZUFBQS9CLENBQUEsQ0FBQWtELE9BQUEsQ0FBQW5CLENBQUEsQ0FBQW9CLE9BQUEsRUFBQUMsSUFBQSxXQUFBbkQsQ0FBQSxJQUFBK0MsTUFBQSxTQUFBL0MsQ0FBQSxFQUFBUyxDQUFBLEVBQUFFLENBQUEsZ0JBQUFYLENBQUEsSUFBQStDLE1BQUEsVUFBQS9DLENBQUEsRUFBQVMsQ0FBQSxFQUFBRSxDQUFBLFFBQUFaLENBQUEsQ0FBQWtELE9BQUEsQ0FBQW5CLENBQUEsRUFBQXFCLElBQUEsV0FBQW5ELENBQUEsSUFBQWUsQ0FBQSxDQUFBUCxLQUFBLEdBQUFSLENBQUEsRUFBQVMsQ0FBQSxDQUFBTSxDQUFBLGdCQUFBZixDQUFBLFdBQUErQyxNQUFBLFVBQUEvQyxDQUFBLEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLENBQUFFLENBQUEsQ0FBQWUsR0FBQSxTQUFBM0IsQ0FBQSxFQUFBSyxDQUFBLG9CQUFBRSxLQUFBLFdBQUFBLE1BQUFSLENBQUEsRUFBQUksQ0FBQSxhQUFBZ0QsMkJBQUEsZUFBQXJELENBQUEsV0FBQUEsQ0FBQSxFQUFBRSxDQUFBLElBQUE4QyxNQUFBLENBQUEvQyxDQUFBLEVBQUFJLENBQUEsRUFBQUwsQ0FBQSxFQUFBRSxDQUFBLGdCQUFBQSxDQUFBLEdBQUFBLENBQUEsR0FBQUEsQ0FBQSxDQUFBa0QsSUFBQSxDQUFBQywwQkFBQSxFQUFBQSwwQkFBQSxJQUFBQSwwQkFBQSxxQkFBQTNCLGlCQUFBMUIsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsUUFBQUUsQ0FBQSxHQUFBd0IsQ0FBQSxtQkFBQXJCLENBQUEsRUFBQUUsQ0FBQSxRQUFBTCxDQUFBLEtBQUEwQixDQUFBLFlBQUFxQixLQUFBLHNDQUFBL0MsQ0FBQSxLQUFBMkIsQ0FBQSxvQkFBQXhCLENBQUEsUUFBQUUsQ0FBQSxXQUFBSCxLQUFBLEVBQUFSLENBQUEsRUFBQXNELElBQUEsZUFBQWxELENBQUEsQ0FBQW1ELE1BQUEsR0FBQTlDLENBQUEsRUFBQUwsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBakIsQ0FBQSxVQUFBRSxDQUFBLEdBQUFULENBQUEsQ0FBQW9ELFFBQUEsTUFBQTNDLENBQUEsUUFBQUUsQ0FBQSxHQUFBMEMsbUJBQUEsQ0FBQTVDLENBQUEsRUFBQVQsQ0FBQSxPQUFBVyxDQUFBLFFBQUFBLENBQUEsS0FBQW1CLENBQUEsbUJBQUFuQixDQUFBLHFCQUFBWCxDQUFBLENBQUFtRCxNQUFBLEVBQUFuRCxDQUFBLENBQUFzRCxJQUFBLEdBQUF0RCxDQUFBLENBQUF1RCxLQUFBLEdBQUF2RCxDQUFBLENBQUF3QixHQUFBLHNCQUFBeEIsQ0FBQSxDQUFBbUQsTUFBQSxRQUFBakQsQ0FBQSxLQUFBd0IsQ0FBQSxRQUFBeEIsQ0FBQSxHQUFBMkIsQ0FBQSxFQUFBN0IsQ0FBQSxDQUFBd0IsR0FBQSxFQUFBeEIsQ0FBQSxDQUFBd0QsaUJBQUEsQ0FBQXhELENBQUEsQ0FBQXdCLEdBQUEsdUJBQUF4QixDQUFBLENBQUFtRCxNQUFBLElBQUFuRCxDQUFBLENBQUF5RCxNQUFBLFdBQUF6RCxDQUFBLENBQUF3QixHQUFBLEdBQUF0QixDQUFBLEdBQUEwQixDQUFBLE1BQUFLLENBQUEsR0FBQVgsUUFBQSxDQUFBM0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsb0JBQUFpQyxDQUFBLENBQUFWLElBQUEsUUFBQXJCLENBQUEsR0FBQUYsQ0FBQSxDQUFBa0QsSUFBQSxHQUFBckIsQ0FBQSxHQUFBRixDQUFBLEVBQUFNLENBQUEsQ0FBQVQsR0FBQSxLQUFBTSxDQUFBLHFCQUFBMUIsS0FBQSxFQUFBNkIsQ0FBQSxDQUFBVCxHQUFBLEVBQUEwQixJQUFBLEVBQUFsRCxDQUFBLENBQUFrRCxJQUFBLGtCQUFBakIsQ0FBQSxDQUFBVixJQUFBLEtBQUFyQixDQUFBLEdBQUEyQixDQUFBLEVBQUE3QixDQUFBLENBQUFtRCxNQUFBLFlBQUFuRCxDQUFBLENBQUF3QixHQUFBLEdBQUFTLENBQUEsQ0FBQVQsR0FBQSxtQkFBQTZCLG9CQUFBMUQsQ0FBQSxFQUFBRSxDQUFBLFFBQUFHLENBQUEsR0FBQUgsQ0FBQSxDQUFBc0QsTUFBQSxFQUFBakQsQ0FBQSxHQUFBUCxDQUFBLENBQUFhLFFBQUEsQ0FBQVIsQ0FBQSxPQUFBRSxDQUFBLEtBQUFOLENBQUEsU0FBQUMsQ0FBQSxDQUFBdUQsUUFBQSxxQkFBQXBELENBQUEsSUFBQUwsQ0FBQSxDQUFBYSxRQUFBLGVBQUFYLENBQUEsQ0FBQXNELE1BQUEsYUFBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQTVCLENBQUEsRUFBQXlELG1CQUFBLENBQUExRCxDQUFBLEVBQUFFLENBQUEsZUFBQUEsQ0FBQSxDQUFBc0QsTUFBQSxrQkFBQW5ELENBQUEsS0FBQUgsQ0FBQSxDQUFBc0QsTUFBQSxZQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxPQUFBa0MsU0FBQSx1Q0FBQTFELENBQUEsaUJBQUE4QixDQUFBLE1BQUF6QixDQUFBLEdBQUFpQixRQUFBLENBQUFwQixDQUFBLEVBQUFQLENBQUEsQ0FBQWEsUUFBQSxFQUFBWCxDQUFBLENBQUEyQixHQUFBLG1CQUFBbkIsQ0FBQSxDQUFBa0IsSUFBQSxTQUFBMUIsQ0FBQSxDQUFBc0QsTUFBQSxZQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxHQUFBbkIsQ0FBQSxDQUFBbUIsR0FBQSxFQUFBM0IsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxNQUFBdkIsQ0FBQSxHQUFBRixDQUFBLENBQUFtQixHQUFBLFNBQUFqQixDQUFBLEdBQUFBLENBQUEsQ0FBQTJDLElBQUEsSUFBQXJELENBQUEsQ0FBQUYsQ0FBQSxDQUFBZ0UsVUFBQSxJQUFBcEQsQ0FBQSxDQUFBSCxLQUFBLEVBQUFQLENBQUEsQ0FBQStELElBQUEsR0FBQWpFLENBQUEsQ0FBQWtFLE9BQUEsZUFBQWhFLENBQUEsQ0FBQXNELE1BQUEsS0FBQXRELENBQUEsQ0FBQXNELE1BQUEsV0FBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQTVCLENBQUEsR0FBQUMsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxJQUFBdkIsQ0FBQSxJQUFBVixDQUFBLENBQUFzRCxNQUFBLFlBQUF0RCxDQUFBLENBQUEyQixHQUFBLE9BQUFrQyxTQUFBLHNDQUFBN0QsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxjQUFBZ0MsYUFBQWxFLENBQUEsUUFBQUQsQ0FBQSxLQUFBb0UsTUFBQSxFQUFBbkUsQ0FBQSxZQUFBQSxDQUFBLEtBQUFELENBQUEsQ0FBQXFFLFFBQUEsR0FBQXBFLENBQUEsV0FBQUEsQ0FBQSxLQUFBRCxDQUFBLENBQUFzRSxVQUFBLEdBQUFyRSxDQUFBLEtBQUFELENBQUEsQ0FBQXVFLFFBQUEsR0FBQXRFLENBQUEsV0FBQXVFLFVBQUEsQ0FBQUMsSUFBQSxDQUFBekUsQ0FBQSxjQUFBMEUsY0FBQXpFLENBQUEsUUFBQUQsQ0FBQSxHQUFBQyxDQUFBLENBQUEwRSxVQUFBLFFBQUEzRSxDQUFBLENBQUE0QixJQUFBLG9CQUFBNUIsQ0FBQSxDQUFBNkIsR0FBQSxFQUFBNUIsQ0FBQSxDQUFBMEUsVUFBQSxHQUFBM0UsQ0FBQSxhQUFBeUIsUUFBQXhCLENBQUEsU0FBQXVFLFVBQUEsTUFBQUosTUFBQSxhQUFBbkUsQ0FBQSxDQUFBNEMsT0FBQSxDQUFBc0IsWUFBQSxjQUFBUyxLQUFBLGlCQUFBbEMsT0FBQTFDLENBQUEsUUFBQUEsQ0FBQSxXQUFBQSxDQUFBLFFBQUFFLENBQUEsR0FBQUYsQ0FBQSxDQUFBWSxDQUFBLE9BQUFWLENBQUEsU0FBQUEsQ0FBQSxDQUFBNEIsSUFBQSxDQUFBOUIsQ0FBQSw0QkFBQUEsQ0FBQSxDQUFBaUUsSUFBQSxTQUFBakUsQ0FBQSxPQUFBNkUsS0FBQSxDQUFBN0UsQ0FBQSxDQUFBOEUsTUFBQSxTQUFBdkUsQ0FBQSxPQUFBRyxDQUFBLFlBQUF1RCxLQUFBLGFBQUExRCxDQUFBLEdBQUFQLENBQUEsQ0FBQThFLE1BQUEsT0FBQXpFLENBQUEsQ0FBQXlCLElBQUEsQ0FBQTlCLENBQUEsRUFBQU8sQ0FBQSxVQUFBMEQsSUFBQSxDQUFBeEQsS0FBQSxHQUFBVCxDQUFBLENBQUFPLENBQUEsR0FBQTBELElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFNBQUFBLElBQUEsQ0FBQXhELEtBQUEsR0FBQVIsQ0FBQSxFQUFBZ0UsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsWUFBQXZELENBQUEsQ0FBQXVELElBQUEsR0FBQXZELENBQUEsZ0JBQUFxRCxTQUFBLENBQUFkLE9BQUEsQ0FBQWpELENBQUEsa0NBQUFvQyxpQkFBQSxDQUFBaEMsU0FBQSxHQUFBaUMsMEJBQUEsRUFBQTlCLENBQUEsQ0FBQW9DLENBQUEsbUJBQUFsQyxLQUFBLEVBQUE0QiwwQkFBQSxFQUFBakIsWUFBQSxTQUFBYixDQUFBLENBQUE4QiwwQkFBQSxtQkFBQTVCLEtBQUEsRUFBQTJCLGlCQUFBLEVBQUFoQixZQUFBLFNBQUFnQixpQkFBQSxDQUFBMkMsV0FBQSxHQUFBN0QsTUFBQSxDQUFBbUIsMEJBQUEsRUFBQXJCLENBQUEsd0JBQUFoQixDQUFBLENBQUFnRixtQkFBQSxhQUFBL0UsQ0FBQSxRQUFBRCxDQUFBLHdCQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQWdGLFdBQUEsV0FBQWpGLENBQUEsS0FBQUEsQ0FBQSxLQUFBb0MsaUJBQUEsNkJBQUFwQyxDQUFBLENBQUErRSxXQUFBLElBQUEvRSxDQUFBLENBQUFrRixJQUFBLE9BQUFsRixDQUFBLENBQUFtRixJQUFBLGFBQUFsRixDQUFBLFdBQUFFLE1BQUEsQ0FBQWlGLGNBQUEsR0FBQWpGLE1BQUEsQ0FBQWlGLGNBQUEsQ0FBQW5GLENBQUEsRUFBQW9DLDBCQUFBLEtBQUFwQyxDQUFBLENBQUFvRixTQUFBLEdBQUFoRCwwQkFBQSxFQUFBbkIsTUFBQSxDQUFBakIsQ0FBQSxFQUFBZSxDQUFBLHlCQUFBZixDQUFBLENBQUFHLFNBQUEsR0FBQUQsTUFBQSxDQUFBcUIsTUFBQSxDQUFBbUIsQ0FBQSxHQUFBMUMsQ0FBQSxLQUFBRCxDQUFBLENBQUFzRixLQUFBLGFBQUFyRixDQUFBLGFBQUFrRCxPQUFBLEVBQUFsRCxDQUFBLE9BQUEyQyxxQkFBQSxDQUFBRyxhQUFBLENBQUEzQyxTQUFBLEdBQUFjLE1BQUEsQ0FBQTZCLGFBQUEsQ0FBQTNDLFNBQUEsRUFBQVUsQ0FBQSxpQ0FBQWQsQ0FBQSxDQUFBK0MsYUFBQSxHQUFBQSxhQUFBLEVBQUEvQyxDQUFBLENBQUF1RixLQUFBLGFBQUF0RixDQUFBLEVBQUFDLENBQUEsRUFBQUcsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsZUFBQUEsQ0FBQSxLQUFBQSxDQUFBLEdBQUE4RSxPQUFBLE9BQUE1RSxDQUFBLE9BQUFtQyxhQUFBLENBQUF6QixJQUFBLENBQUFyQixDQUFBLEVBQUFDLENBQUEsRUFBQUcsQ0FBQSxFQUFBRSxDQUFBLEdBQUFHLENBQUEsVUFBQVYsQ0FBQSxDQUFBZ0YsbUJBQUEsQ0FBQTlFLENBQUEsSUFBQVUsQ0FBQSxHQUFBQSxDQUFBLENBQUFxRCxJQUFBLEdBQUFiLElBQUEsV0FBQW5ELENBQUEsV0FBQUEsQ0FBQSxDQUFBc0QsSUFBQSxHQUFBdEQsQ0FBQSxDQUFBUSxLQUFBLEdBQUFHLENBQUEsQ0FBQXFELElBQUEsV0FBQXJCLHFCQUFBLENBQUFELENBQUEsR0FBQXpCLE1BQUEsQ0FBQXlCLENBQUEsRUFBQTNCLENBQUEsZ0JBQUFFLE1BQUEsQ0FBQXlCLENBQUEsRUFBQS9CLENBQUEsaUNBQUFNLE1BQUEsQ0FBQXlCLENBQUEsNkRBQUEzQyxDQUFBLENBQUF5RixJQUFBLGFBQUF4RixDQUFBLFFBQUFELENBQUEsR0FBQUcsTUFBQSxDQUFBRixDQUFBLEdBQUFDLENBQUEsZ0JBQUFHLENBQUEsSUFBQUwsQ0FBQSxFQUFBRSxDQUFBLENBQUF1RSxJQUFBLENBQUFwRSxDQUFBLFVBQUFILENBQUEsQ0FBQXdGLE9BQUEsYUFBQXpCLEtBQUEsV0FBQS9ELENBQUEsQ0FBQTRFLE1BQUEsU0FBQTdFLENBQUEsR0FBQUMsQ0FBQSxDQUFBeUYsR0FBQSxRQUFBMUYsQ0FBQSxJQUFBRCxDQUFBLFNBQUFpRSxJQUFBLENBQUF4RCxLQUFBLEdBQUFSLENBQUEsRUFBQWdFLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFdBQUFBLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFFBQUFqRSxDQUFBLENBQUEwQyxNQUFBLEdBQUFBLE1BQUEsRUFBQWpCLE9BQUEsQ0FBQXJCLFNBQUEsS0FBQTZFLFdBQUEsRUFBQXhELE9BQUEsRUFBQW1ELEtBQUEsV0FBQUEsTUFBQTVFLENBQUEsYUFBQTRGLElBQUEsV0FBQTNCLElBQUEsV0FBQU4sSUFBQSxRQUFBQyxLQUFBLEdBQUEzRCxDQUFBLE9BQUFzRCxJQUFBLFlBQUFFLFFBQUEsY0FBQUQsTUFBQSxnQkFBQTNCLEdBQUEsR0FBQTVCLENBQUEsT0FBQXVFLFVBQUEsQ0FBQTNCLE9BQUEsQ0FBQTZCLGFBQUEsSUFBQTFFLENBQUEsV0FBQUUsQ0FBQSxrQkFBQUEsQ0FBQSxDQUFBMkYsTUFBQSxPQUFBeEYsQ0FBQSxDQUFBeUIsSUFBQSxPQUFBNUIsQ0FBQSxNQUFBMkUsS0FBQSxFQUFBM0UsQ0FBQSxDQUFBNEYsS0FBQSxjQUFBNUYsQ0FBQSxJQUFBRCxDQUFBLE1BQUE4RixJQUFBLFdBQUFBLEtBQUEsU0FBQXhDLElBQUEsV0FBQXRELENBQUEsUUFBQXVFLFVBQUEsSUFBQUcsVUFBQSxrQkFBQTFFLENBQUEsQ0FBQTJCLElBQUEsUUFBQTNCLENBQUEsQ0FBQTRCLEdBQUEsY0FBQW1FLElBQUEsS0FBQW5DLGlCQUFBLFdBQUFBLGtCQUFBN0QsQ0FBQSxhQUFBdUQsSUFBQSxRQUFBdkQsQ0FBQSxNQUFBRSxDQUFBLGtCQUFBK0YsT0FBQTVGLENBQUEsRUFBQUUsQ0FBQSxXQUFBSyxDQUFBLENBQUFnQixJQUFBLFlBQUFoQixDQUFBLENBQUFpQixHQUFBLEdBQUE3QixDQUFBLEVBQUFFLENBQUEsQ0FBQStELElBQUEsR0FBQTVELENBQUEsRUFBQUUsQ0FBQSxLQUFBTCxDQUFBLENBQUFzRCxNQUFBLFdBQUF0RCxDQUFBLENBQUEyQixHQUFBLEdBQUE1QixDQUFBLEtBQUFNLENBQUEsYUFBQUEsQ0FBQSxRQUFBaUUsVUFBQSxDQUFBTSxNQUFBLE1BQUF2RSxDQUFBLFNBQUFBLENBQUEsUUFBQUcsQ0FBQSxRQUFBOEQsVUFBQSxDQUFBakUsQ0FBQSxHQUFBSyxDQUFBLEdBQUFGLENBQUEsQ0FBQWlFLFVBQUEsaUJBQUFqRSxDQUFBLENBQUEwRCxNQUFBLFNBQUE2QixNQUFBLGFBQUF2RixDQUFBLENBQUEwRCxNQUFBLFNBQUF3QixJQUFBLFFBQUE5RSxDQUFBLEdBQUFULENBQUEsQ0FBQXlCLElBQUEsQ0FBQXBCLENBQUEsZUFBQU0sQ0FBQSxHQUFBWCxDQUFBLENBQUF5QixJQUFBLENBQUFwQixDQUFBLHFCQUFBSSxDQUFBLElBQUFFLENBQUEsYUFBQTRFLElBQUEsR0FBQWxGLENBQUEsQ0FBQTJELFFBQUEsU0FBQTRCLE1BQUEsQ0FBQXZGLENBQUEsQ0FBQTJELFFBQUEsZ0JBQUF1QixJQUFBLEdBQUFsRixDQUFBLENBQUE0RCxVQUFBLFNBQUEyQixNQUFBLENBQUF2RixDQUFBLENBQUE0RCxVQUFBLGNBQUF4RCxDQUFBLGFBQUE4RSxJQUFBLEdBQUFsRixDQUFBLENBQUEyRCxRQUFBLFNBQUE0QixNQUFBLENBQUF2RixDQUFBLENBQUEyRCxRQUFBLHFCQUFBckQsQ0FBQSxZQUFBc0MsS0FBQSxxREFBQXNDLElBQUEsR0FBQWxGLENBQUEsQ0FBQTRELFVBQUEsU0FBQTJCLE1BQUEsQ0FBQXZGLENBQUEsQ0FBQTRELFVBQUEsWUFBQVIsTUFBQSxXQUFBQSxPQUFBN0QsQ0FBQSxFQUFBRCxDQUFBLGFBQUFFLENBQUEsUUFBQXNFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBNUUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFLLENBQUEsUUFBQWlFLFVBQUEsQ0FBQXRFLENBQUEsT0FBQUssQ0FBQSxDQUFBNkQsTUFBQSxTQUFBd0IsSUFBQSxJQUFBdkYsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBdkIsQ0FBQSx3QkFBQXFGLElBQUEsR0FBQXJGLENBQUEsQ0FBQStELFVBQUEsUUFBQTVELENBQUEsR0FBQUgsQ0FBQSxhQUFBRyxDQUFBLGlCQUFBVCxDQUFBLG1CQUFBQSxDQUFBLEtBQUFTLENBQUEsQ0FBQTBELE1BQUEsSUFBQXBFLENBQUEsSUFBQUEsQ0FBQSxJQUFBVSxDQUFBLENBQUE0RCxVQUFBLEtBQUE1RCxDQUFBLGNBQUFFLENBQUEsR0FBQUYsQ0FBQSxHQUFBQSxDQUFBLENBQUFpRSxVQUFBLGNBQUEvRCxDQUFBLENBQUFnQixJQUFBLEdBQUEzQixDQUFBLEVBQUFXLENBQUEsQ0FBQWlCLEdBQUEsR0FBQTdCLENBQUEsRUFBQVUsQ0FBQSxTQUFBOEMsTUFBQSxnQkFBQVMsSUFBQSxHQUFBdkQsQ0FBQSxDQUFBNEQsVUFBQSxFQUFBbkMsQ0FBQSxTQUFBK0QsUUFBQSxDQUFBdEYsQ0FBQSxNQUFBc0YsUUFBQSxXQUFBQSxTQUFBakcsQ0FBQSxFQUFBRCxDQUFBLG9CQUFBQyxDQUFBLENBQUEyQixJQUFBLFFBQUEzQixDQUFBLENBQUE0QixHQUFBLHFCQUFBNUIsQ0FBQSxDQUFBMkIsSUFBQSxtQkFBQTNCLENBQUEsQ0FBQTJCLElBQUEsUUFBQXFDLElBQUEsR0FBQWhFLENBQUEsQ0FBQTRCLEdBQUEsZ0JBQUE1QixDQUFBLENBQUEyQixJQUFBLFNBQUFvRSxJQUFBLFFBQUFuRSxHQUFBLEdBQUE1QixDQUFBLENBQUE0QixHQUFBLE9BQUEyQixNQUFBLGtCQUFBUyxJQUFBLHlCQUFBaEUsQ0FBQSxDQUFBMkIsSUFBQSxJQUFBNUIsQ0FBQSxVQUFBaUUsSUFBQSxHQUFBakUsQ0FBQSxHQUFBbUMsQ0FBQSxLQUFBZ0UsTUFBQSxXQUFBQSxPQUFBbEcsQ0FBQSxhQUFBRCxDQUFBLFFBQUF3RSxVQUFBLENBQUFNLE1BQUEsTUFBQTlFLENBQUEsU0FBQUEsQ0FBQSxRQUFBRSxDQUFBLFFBQUFzRSxVQUFBLENBQUF4RSxDQUFBLE9BQUFFLENBQUEsQ0FBQW9FLFVBQUEsS0FBQXJFLENBQUEsY0FBQWlHLFFBQUEsQ0FBQWhHLENBQUEsQ0FBQXlFLFVBQUEsRUFBQXpFLENBQUEsQ0FBQXFFLFFBQUEsR0FBQUcsYUFBQSxDQUFBeEUsQ0FBQSxHQUFBaUMsQ0FBQSx5QkFBQWlFLE9BQUFuRyxDQUFBLGFBQUFELENBQUEsUUFBQXdFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBOUUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFFLENBQUEsUUFBQXNFLFVBQUEsQ0FBQXhFLENBQUEsT0FBQUUsQ0FBQSxDQUFBa0UsTUFBQSxLQUFBbkUsQ0FBQSxRQUFBSSxDQUFBLEdBQUFILENBQUEsQ0FBQXlFLFVBQUEsa0JBQUF0RSxDQUFBLENBQUF1QixJQUFBLFFBQUFyQixDQUFBLEdBQUFGLENBQUEsQ0FBQXdCLEdBQUEsRUFBQTZDLGFBQUEsQ0FBQXhFLENBQUEsWUFBQUssQ0FBQSxnQkFBQStDLEtBQUEsOEJBQUErQyxhQUFBLFdBQUFBLGNBQUFyRyxDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxnQkFBQW9ELFFBQUEsS0FBQTVDLFFBQUEsRUFBQTZCLE1BQUEsQ0FBQTFDLENBQUEsR0FBQWdFLFVBQUEsRUFBQTlELENBQUEsRUFBQWdFLE9BQUEsRUFBQTdELENBQUEsb0JBQUFtRCxNQUFBLFVBQUEzQixHQUFBLEdBQUE1QixDQUFBLEdBQUFrQyxDQUFBLE9BQUFuQyxDQUFBO0FBQUEsU0FBQXNHLG1CQUFBQyxHQUFBLEVBQUFyRCxPQUFBLEVBQUFzRCxNQUFBLEVBQUFDLEtBQUEsRUFBQUMsTUFBQSxFQUFBQyxHQUFBLEVBQUE5RSxHQUFBLGNBQUErRSxJQUFBLEdBQUFMLEdBQUEsQ0FBQUksR0FBQSxFQUFBOUUsR0FBQSxPQUFBcEIsS0FBQSxHQUFBbUcsSUFBQSxDQUFBbkcsS0FBQSxXQUFBb0csS0FBQSxJQUFBTCxNQUFBLENBQUFLLEtBQUEsaUJBQUFELElBQUEsQ0FBQXJELElBQUEsSUFBQUwsT0FBQSxDQUFBekMsS0FBQSxZQUFBK0UsT0FBQSxDQUFBdEMsT0FBQSxDQUFBekMsS0FBQSxFQUFBMkMsSUFBQSxDQUFBcUQsS0FBQSxFQUFBQyxNQUFBO0FBQUEsU0FBQUksa0JBQUFDLEVBQUEsNkJBQUFDLElBQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFBLGFBQUExQixPQUFBLFdBQUF0QyxPQUFBLEVBQUFzRCxNQUFBLFFBQUFELEdBQUEsR0FBQVEsRUFBQSxDQUFBSSxLQUFBLENBQUFILElBQUEsRUFBQUMsSUFBQSxZQUFBUixNQUFBaEcsS0FBQSxJQUFBNkYsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBckQsT0FBQSxFQUFBc0QsTUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsVUFBQWpHLEtBQUEsY0FBQWlHLE9BQUFVLEdBQUEsSUFBQWQsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBckQsT0FBQSxFQUFBc0QsTUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsV0FBQVUsR0FBQSxLQUFBWCxLQUFBLENBQUFZLFNBQUE7QUFBQSxTQUFBQyxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUE1RCxTQUFBO0FBQUEsU0FBQTBELGlCQUFBRyxJQUFBLGVBQUFqSCxNQUFBLG9CQUFBaUgsSUFBQSxDQUFBakgsTUFBQSxDQUFBRSxRQUFBLGFBQUErRyxJQUFBLCtCQUFBQyxLQUFBLENBQUFDLElBQUEsQ0FBQUYsSUFBQTtBQUFBLFNBQUFKLG1CQUFBRCxHQUFBLFFBQUFNLEtBQUEsQ0FBQUUsT0FBQSxDQUFBUixHQUFBLFVBQUFTLGlCQUFBLENBQUFULEdBQUE7QUFBQSxTQUFBVSwyQkFBQTFILENBQUEsRUFBQTJILGNBQUEsUUFBQUMsRUFBQSxVQUFBeEgsTUFBQSxvQkFBQUosQ0FBQSxDQUFBSSxNQUFBLENBQUFFLFFBQUEsS0FBQU4sQ0FBQSxxQkFBQTRILEVBQUEsUUFBQU4sS0FBQSxDQUFBRSxPQUFBLENBQUF4SCxDQUFBLE1BQUE0SCxFQUFBLEdBQUFULDJCQUFBLENBQUFuSCxDQUFBLE1BQUEySCxjQUFBLElBQUEzSCxDQUFBLFdBQUFBLENBQUEsQ0FBQXVFLE1BQUEscUJBQUFxRCxFQUFBLEVBQUE1SCxDQUFBLEdBQUE0SCxFQUFBLE1BQUF6SCxDQUFBLFVBQUEwSCxDQUFBLFlBQUFBLEVBQUEsZUFBQWxHLENBQUEsRUFBQWtHLENBQUEsRUFBQS9ILENBQUEsV0FBQUEsRUFBQSxRQUFBSyxDQUFBLElBQUFILENBQUEsQ0FBQXVFLE1BQUEsV0FBQXZCLElBQUEsbUJBQUFBLElBQUEsU0FBQTlDLEtBQUEsRUFBQUYsQ0FBQSxDQUFBRyxDQUFBLFVBQUFWLENBQUEsV0FBQUEsRUFBQXFJLEVBQUEsVUFBQUEsRUFBQSxLQUFBcEcsQ0FBQSxFQUFBbUcsQ0FBQSxnQkFBQXJFLFNBQUEsaUpBQUF1RSxnQkFBQSxTQUFBQyxNQUFBLFVBQUFuQixHQUFBLFdBQUFsRixDQUFBLFdBQUFBLEVBQUEsSUFBQWlHLEVBQUEsR0FBQUEsRUFBQSxDQUFBckcsSUFBQSxDQUFBdkIsQ0FBQSxNQUFBRixDQUFBLFdBQUFBLEVBQUEsUUFBQW1JLElBQUEsR0FBQUwsRUFBQSxDQUFBbEUsSUFBQSxJQUFBcUUsZ0JBQUEsR0FBQUUsSUFBQSxDQUFBakYsSUFBQSxTQUFBaUYsSUFBQSxLQUFBeEksQ0FBQSxXQUFBQSxFQUFBeUksR0FBQSxJQUFBRixNQUFBLFNBQUFuQixHQUFBLEdBQUFxQixHQUFBLEtBQUF4RyxDQUFBLFdBQUFBLEVBQUEsZUFBQXFHLGdCQUFBLElBQUFILEVBQUEsb0JBQUFBLEVBQUEsOEJBQUFJLE1BQUEsUUFBQW5CLEdBQUE7QUFBQSxTQUFBc0IsUUFBQTFJLENBQUEsRUFBQUUsQ0FBQSxRQUFBRCxDQUFBLEdBQUFFLE1BQUEsQ0FBQXNGLElBQUEsQ0FBQXpGLENBQUEsT0FBQUcsTUFBQSxDQUFBd0kscUJBQUEsUUFBQXBJLENBQUEsR0FBQUosTUFBQSxDQUFBd0kscUJBQUEsQ0FBQTNJLENBQUEsR0FBQUUsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQXFJLE1BQUEsV0FBQTFJLENBQUEsV0FBQUMsTUFBQSxDQUFBMEksd0JBQUEsQ0FBQTdJLENBQUEsRUFBQUUsQ0FBQSxFQUFBaUIsVUFBQSxPQUFBbEIsQ0FBQSxDQUFBd0UsSUFBQSxDQUFBMEMsS0FBQSxDQUFBbEgsQ0FBQSxFQUFBTSxDQUFBLFlBQUFOLENBQUE7QUFBQSxTQUFBNkksY0FBQTlJLENBQUEsYUFBQUUsQ0FBQSxNQUFBQSxDQUFBLEdBQUFnSCxTQUFBLENBQUFwQyxNQUFBLEVBQUE1RSxDQUFBLFVBQUFELENBQUEsV0FBQWlILFNBQUEsQ0FBQWhILENBQUEsSUFBQWdILFNBQUEsQ0FBQWhILENBQUEsUUFBQUEsQ0FBQSxPQUFBd0ksT0FBQSxDQUFBdkksTUFBQSxDQUFBRixDQUFBLE9BQUE0QyxPQUFBLFdBQUEzQyxDQUFBLElBQUE2SSxlQUFBLENBQUEvSSxDQUFBLEVBQUFFLENBQUEsRUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFNBQUFDLE1BQUEsQ0FBQTZJLHlCQUFBLEdBQUE3SSxNQUFBLENBQUE4SSxnQkFBQSxDQUFBakosQ0FBQSxFQUFBRyxNQUFBLENBQUE2SSx5QkFBQSxDQUFBL0ksQ0FBQSxLQUFBeUksT0FBQSxDQUFBdkksTUFBQSxDQUFBRixDQUFBLEdBQUE0QyxPQUFBLFdBQUEzQyxDQUFBLElBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUixDQUFBLEVBQUFFLENBQUEsRUFBQUMsTUFBQSxDQUFBMEksd0JBQUEsQ0FBQTVJLENBQUEsRUFBQUMsQ0FBQSxpQkFBQUYsQ0FBQTtBQUFBLFNBQUErSSxnQkFBQUcsR0FBQSxFQUFBdkMsR0FBQSxFQUFBbEcsS0FBQSxJQUFBa0csR0FBQSxHQUFBd0MsY0FBQSxDQUFBeEMsR0FBQSxPQUFBQSxHQUFBLElBQUF1QyxHQUFBLElBQUEvSSxNQUFBLENBQUFLLGNBQUEsQ0FBQTBJLEdBQUEsRUFBQXZDLEdBQUEsSUFBQWxHLEtBQUEsRUFBQUEsS0FBQSxFQUFBVSxVQUFBLFFBQUFDLFlBQUEsUUFBQUMsUUFBQSxvQkFBQTZILEdBQUEsQ0FBQXZDLEdBQUEsSUFBQWxHLEtBQUEsV0FBQXlJLEdBQUE7QUFBQSxTQUFBQyxlQUFBdEgsR0FBQSxRQUFBOEUsR0FBQSxHQUFBeUMsWUFBQSxDQUFBdkgsR0FBQSxvQkFBQW9CLE9BQUEsQ0FBQTBELEdBQUEsaUJBQUFBLEdBQUEsR0FBQTBDLE1BQUEsQ0FBQTFDLEdBQUE7QUFBQSxTQUFBeUMsYUFBQUUsS0FBQSxFQUFBQyxJQUFBLFFBQUF0RyxPQUFBLENBQUFxRyxLQUFBLGtCQUFBQSxLQUFBLGtCQUFBQSxLQUFBLE1BQUFFLElBQUEsR0FBQUYsS0FBQSxDQUFBM0ksTUFBQSxDQUFBOEksV0FBQSxPQUFBRCxJQUFBLEtBQUFuQyxTQUFBLFFBQUFxQyxHQUFBLEdBQUFGLElBQUEsQ0FBQTFILElBQUEsQ0FBQXdILEtBQUEsRUFBQUMsSUFBQSxvQkFBQXRHLE9BQUEsQ0FBQXlHLEdBQUEsdUJBQUFBLEdBQUEsWUFBQTNGLFNBQUEsNERBQUF3RixJQUFBLGdCQUFBRixNQUFBLEdBQUFNLE1BQUEsRUFBQUwsS0FBQTtBQUFBLFNBQUFNLGVBQUFyQyxHQUFBLEVBQUE3RyxDQUFBLFdBQUFtSixlQUFBLENBQUF0QyxHQUFBLEtBQUF1QyxxQkFBQSxDQUFBdkMsR0FBQSxFQUFBN0csQ0FBQSxLQUFBZ0gsMkJBQUEsQ0FBQUgsR0FBQSxFQUFBN0csQ0FBQSxLQUFBcUosZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBaEcsU0FBQTtBQUFBLFNBQUEyRCw0QkFBQW5ILENBQUEsRUFBQXlKLE1BQUEsU0FBQXpKLENBQUEscUJBQUFBLENBQUEsc0JBQUF5SCxpQkFBQSxDQUFBekgsQ0FBQSxFQUFBeUosTUFBQSxPQUFBM0osQ0FBQSxHQUFBRixNQUFBLENBQUFDLFNBQUEsQ0FBQTZKLFFBQUEsQ0FBQW5JLElBQUEsQ0FBQXZCLENBQUEsRUFBQXVGLEtBQUEsYUFBQXpGLENBQUEsaUJBQUFFLENBQUEsQ0FBQTBFLFdBQUEsRUFBQTVFLENBQUEsR0FBQUUsQ0FBQSxDQUFBMEUsV0FBQSxDQUFBQyxJQUFBLE1BQUE3RSxDQUFBLGNBQUFBLENBQUEsbUJBQUF3SCxLQUFBLENBQUFDLElBQUEsQ0FBQXZILENBQUEsT0FBQUYsQ0FBQSwrREFBQTZKLElBQUEsQ0FBQTdKLENBQUEsVUFBQTJILGlCQUFBLENBQUF6SCxDQUFBLEVBQUF5SixNQUFBO0FBQUEsU0FBQWhDLGtCQUFBVCxHQUFBLEVBQUE0QyxHQUFBLFFBQUFBLEdBQUEsWUFBQUEsR0FBQSxHQUFBNUMsR0FBQSxDQUFBekMsTUFBQSxFQUFBcUYsR0FBQSxHQUFBNUMsR0FBQSxDQUFBekMsTUFBQSxXQUFBcEUsQ0FBQSxNQUFBMEosSUFBQSxPQUFBdkMsS0FBQSxDQUFBc0MsR0FBQSxHQUFBekosQ0FBQSxHQUFBeUosR0FBQSxFQUFBekosQ0FBQSxJQUFBMEosSUFBQSxDQUFBMUosQ0FBQSxJQUFBNkcsR0FBQSxDQUFBN0csQ0FBQSxVQUFBMEosSUFBQTtBQUFBLFNBQUFOLHNCQUFBNUosQ0FBQSxFQUFBOEIsQ0FBQSxRQUFBL0IsQ0FBQSxXQUFBQyxDQUFBLGdDQUFBUyxNQUFBLElBQUFULENBQUEsQ0FBQVMsTUFBQSxDQUFBRSxRQUFBLEtBQUFYLENBQUEsNEJBQUFELENBQUEsUUFBQUQsQ0FBQSxFQUFBSyxDQUFBLEVBQUFLLENBQUEsRUFBQU0sQ0FBQSxFQUFBSixDQUFBLE9BQUFxQixDQUFBLE9BQUExQixDQUFBLGlCQUFBRyxDQUFBLElBQUFULENBQUEsR0FBQUEsQ0FBQSxDQUFBNkIsSUFBQSxDQUFBNUIsQ0FBQSxHQUFBK0QsSUFBQSxRQUFBakMsQ0FBQSxRQUFBN0IsTUFBQSxDQUFBRixDQUFBLE1BQUFBLENBQUEsVUFBQWdDLENBQUEsdUJBQUFBLENBQUEsSUFBQWpDLENBQUEsR0FBQVUsQ0FBQSxDQUFBb0IsSUFBQSxDQUFBN0IsQ0FBQSxHQUFBc0QsSUFBQSxNQUFBM0MsQ0FBQSxDQUFBNkQsSUFBQSxDQUFBekUsQ0FBQSxDQUFBUyxLQUFBLEdBQUFHLENBQUEsQ0FBQWtFLE1BQUEsS0FBQTlDLENBQUEsR0FBQUMsQ0FBQSxpQkFBQS9CLENBQUEsSUFBQUssQ0FBQSxPQUFBRixDQUFBLEdBQUFILENBQUEseUJBQUErQixDQUFBLFlBQUFoQyxDQUFBLGVBQUFlLENBQUEsR0FBQWYsQ0FBQSxjQUFBRSxNQUFBLENBQUFhLENBQUEsTUFBQUEsQ0FBQSwyQkFBQVQsQ0FBQSxRQUFBRixDQUFBLGFBQUFPLENBQUE7QUFBQSxTQUFBaUosZ0JBQUF0QyxHQUFBLFFBQUFNLEtBQUEsQ0FBQUUsT0FBQSxDQUFBUixHQUFBLFVBQUFBLEdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQSxTQUNFOEMsdUJBQXVCLEVBQ3ZCQyxzQkFBc0IsRUFDdEJDLGFBQWEsRUFDYkMseUJBQXlCLEVBQ3pCQywwQkFBMEIsUUFDckIsdUJBQXVCO0FBQzlCLFNBQVNDLElBQUksUUFBUSx5QkFBeUI7QUFDOUMsT0FBT0MsTUFBTSxNQUFNLFNBQVM7QUFDNUIsU0FDRUMsZUFBZSxFQUNmQyxzQkFBc0IsRUFDdEJDLHFCQUFxQixFQUNyQkMsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsUUFDWCxVQUFVO0FBQ2pCLFNBQ0VDLHdCQUF3QixFQUN4QkMsZ0JBQWdCLEVBQ2hCQywwQkFBMEIsRUFDMUJDLDRCQUE0QixFQUM1QkMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLGVBQWUsRUFDZkMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLDZCQUE2QixFQUM3QkMsY0FBYyxFQUNkQyxpQkFBaUIsUUFDWixVQUFVO0FBQ2pCLFNBQVNDLEtBQUssUUFBUSxTQUFTO0FBRS9CLE9BQU8sSUFBTUMsb0JBQW9CLEdBQUcsSUFBSSxFQUFDOztBQUV6QyxPQUFPLFNBQVNDLGVBQWVBLENBQUNDLFNBQVMsRUFBRTtFQUN6QyxJQUFNQyxHQUFHLEdBQUdELFNBQVMsQ0FBQ0MsR0FBRyxJQUFJRCxTQUFTLENBQUNFLE1BQU07RUFDN0MsSUFBTUMsVUFBVSxHQUFHSCxTQUFTLENBQUNHLFVBQVUsSUFBSUgsU0FBUyxDQUFDSSxTQUFTO0VBQzlELFVBQUFDLE1BQUEsQ0FBVUwsU0FBUyxDQUFDTSxLQUFLLE9BQUFELE1BQUEsQ0FBSUwsU0FBUyxDQUFDTyxVQUFVLE9BQUFGLE1BQUEsQ0FBSUYsVUFBVSxPQUFBRSxNQUFBLENBQUlKLEdBQUc7QUFDeEU7QUFFQSxPQUFPLFNBQVNPLGlCQUFpQkEsQ0FBQ0MsWUFBWSxFQUFFO0VBQzlDLElBQUFDLG1CQUFBLEdBQTZDRCxZQUFZLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFBQUMsb0JBQUEsR0FBQWhELGNBQUEsQ0FBQThDLG1CQUFBO0lBQTdESixLQUFLLEdBQUFNLG9CQUFBO0lBQUVMLFVBQVUsR0FBQUssb0JBQUE7SUFBRVQsVUFBVSxHQUFBUyxvQkFBQTtJQUFFWCxHQUFHLEdBQUFXLG9CQUFBO0VBQ3pDLE9BQU87SUFDTE4sS0FBSyxFQUFMQSxLQUFLO0lBQ0xDLFVBQVUsRUFBVkEsVUFBVTtJQUNWSixVQUFVLEVBQVZBLFVBQVU7SUFDVkYsR0FBRyxFQUFIQTtFQUNGLENBQUM7QUFDSDtBQUVBLE9BQU8sU0FBU1ksa0JBQWtCQSxDQUFBQyxJQUFBLEVBVS9CO0VBQUEsSUFUREMsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7SUFDTEMsTUFBTSxHQUFBRixJQUFBLENBQU5FLE1BQU07SUFDTlYsS0FBSyxHQUFBUSxJQUFBLENBQUxSLEtBQUs7SUFDTEwsR0FBRyxHQUFBYSxJQUFBLENBQUhiLEdBQUc7SUFDSE0sVUFBVSxHQUFBTyxJQUFBLENBQVZQLFVBQVU7SUFDVkosVUFBVSxHQUFBVyxJQUFBLENBQVZYLFVBQVU7SUFDVk0sWUFBWSxHQUFBSyxJQUFBLENBQVpMLFlBQVk7SUFDWlEsa0JBQWtCLEdBQUFILElBQUEsQ0FBbEJHLGtCQUFrQjtJQUNsQkMscUJBQXFCLEdBQUFKLElBQUEsQ0FBckJJLHFCQUFxQjtFQUVyQixJQUFNbEIsU0FBUyxHQUFHO0lBQ2hCZSxLQUFLLEVBQUxBLEtBQUs7SUFDTEMsTUFBTSxFQUFOQSxNQUFNO0lBQ05WLEtBQUssRUFBTEEsS0FBSztJQUNMWSxxQkFBcUIsRUFBckJBLHFCQUFxQjtJQUNyQmpCLEdBQUcsRUFBSEEsR0FBRztJQUNITSxVQUFVLEVBQVZBLFVBQVU7SUFDVkosVUFBVSxFQUFWQSxVQUFVO0lBQ1ZjLGtCQUFrQixFQUFsQkEsa0JBQWtCO0lBQ2xCUixZQUFZLEVBQVpBO0VBQ0YsQ0FBQztFQUVELElBQUksQ0FBQ0EsWUFBWSxFQUFFO0lBQ2pCVCxTQUFTLENBQUNTLFlBQVksR0FBR1YsZUFBZSxDQUFDO01BQ3ZDTyxLQUFLLEVBQUxBLEtBQUs7TUFDTEwsR0FBRyxFQUFIQSxHQUFHO01BQ0hNLFVBQVUsRUFBVkEsVUFBVTtNQUNWSixVQUFVLEVBQVZBO0lBQ0YsQ0FBQyxDQUFDO0VBQ0o7RUFDQSxPQUFPSCxTQUFTO0FBQ2xCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNtQiwyQkFBMkJBLENBQUNDLGVBQWUsRUFBRUMsUUFBUSxFQUFFO0VBQUEsSUFBQUMscUJBQUE7RUFDckUsT0FBT0YsZUFBZSxhQUFmQSxlQUFlLGdCQUFBRSxxQkFBQSxHQUFmRixlQUFlLENBQUVHLFlBQVksY0FBQUQscUJBQUEsdUJBQTdCQSxxQkFBQSxDQUErQkUsSUFBSSxDQUN4QyxVQUFBQyxRQUFRO0lBQUEsT0FBSUEsUUFBUSxDQUFDQyxLQUFLLEtBQUtMLFFBQVE7RUFBQSxDQUN6QyxDQUFDO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNNLGVBQWVBLENBQUN4QixVQUFVLEVBQUU7RUFDMUMsSUFBTXlCLE1BQU0sR0FBS3pCLFVBQVUsS0FBS2Isa0JBQWtCLElBQU1hLFVBQVUsS0FBS1Ysa0JBQW1CLElBQUtVLFVBQVUsS0FBS1osZUFBaUI7RUFDL0gsT0FBT3FDLE1BQU07QUFDZjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNDLHNCQUFzQkEsQ0FBQ0MsaUJBQXNCLEVBQUVDLFlBQWlCLEVBQUVDLGlCQUFzQixFQUFFO0VBQ3hHLElBQUlELFlBQVksSUFBS0EsWUFBWSxLQUFLRCxpQkFBaUIsQ0FBQ3hCLEtBQU0sRUFBRTtJQUFFO0lBQ2hFd0IsaUJBQWlCLENBQUN4QixLQUFLLEdBQUd5QixZQUFZO0VBQ3hDO0VBRUEsSUFBSUMsaUJBQWlCLElBQUtBLGlCQUFpQixLQUFLRixpQkFBaUIsQ0FBQ3ZCLFVBQVcsRUFBRTtJQUFFO0lBQy9FdUIsaUJBQWlCLENBQUN2QixVQUFVLEdBQUd5QixpQkFBaUI7RUFDbEQ7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0MsUUFBUUEsQ0FBQ0MsZUFBZSxFQUFFO0VBQ3hDLElBQUlBLGVBQWUsRUFBRTtJQUNuQixJQUFNQyxHQUFHLEdBQUcsSUFBSUMsR0FBRyxDQUFDRixlQUFlLENBQUM7SUFDcEMsSUFBTWxCLE1BQU0sR0FBR21CLEdBQUcsQ0FBQ0UsTUFBTTtJQUN6QixJQUFNNUIsWUFBWSxHQUFHMEIsR0FBRyxDQUFDRyxRQUFRLElBQUlILEdBQUcsQ0FBQ0ksTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN0RCxPQUFPO01BQUV2QixNQUFNLEVBQU5BLE1BQU07TUFBRVAsWUFBWSxFQUFaQTtJQUFhLENBQUM7RUFDakM7RUFDQSxPQUFPLENBQUMsQ0FBQztBQUNYOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBUytCLDRCQUE0QkEsQ0FDMUNDLE1BQU0sRUFBRUMsa0JBQWtCLEVBQUVDLGNBQWMsRUFJMUM7RUFBQSxJQUhBVCxlQUFlLEdBQUFoSCxTQUFBLENBQUFwQyxNQUFBLFFBQUFvQyxTQUFBLFFBQUFHLFNBQUEsR0FBQUgsU0FBQSxNQUFDLElBQUk7RUFBQSxJQUNwQjhHLGlCQUFpQixHQUFBOUcsU0FBQSxDQUFBcEMsTUFBQSxRQUFBb0MsU0FBQSxRQUFBRyxTQUFBLEdBQUFILFNBQUEsTUFBQyxJQUFJO0VBQUEsSUFDdEI2RyxZQUFZLEdBQUE3RyxTQUFBLENBQUFwQyxNQUFBLFFBQUFvQyxTQUFBLFFBQUFHLFNBQUEsR0FBQUgsU0FBQSxNQUFDLElBQUk7RUFFakIsSUFBTTRHLGlCQUFpQixHQUFBaEYsYUFBQSxLQUFRNEYsa0JBQWtCLENBQUU7RUFDbkRaLGlCQUFpQixDQUFDYixrQkFBa0IsR0FBR25CLG9CQUFvQjtFQUMzRCxJQUFNSyxVQUFVLEdBQUd1QyxrQkFBa0IsQ0FBQ3ZDLFVBQVU7RUFFaEQsSUFBSUEsVUFBVSxLQUFLWixlQUFlLEVBQUU7SUFDbEM7SUFDQXVDLGlCQUFpQixDQUFDdkIsVUFBVSxHQUFHb0MsY0FBYyxHQUFHdEQsWUFBWSxHQUFHRyxZQUFZO0lBQzNFc0MsaUJBQWlCLENBQUMzQixVQUFVLEdBQUd3QyxjQUFjLEdBQ3pDckQsa0JBQWtCLEdBQ2xCRyxrQkFBa0I7SUFFdEIsSUFBSXFDLGlCQUFpQixDQUFDWixxQkFBcUIsRUFBRTtNQUMzQ1ksaUJBQWlCLENBQUN4QixLQUFLLEdBQUd3QixpQkFBaUIsQ0FBQ1oscUJBQXFCO0lBQ25FO0lBRUEsSUFBSWdCLGVBQWUsRUFBRTtNQUFFO01BQ3JCLElBQUFVLFNBQUEsR0FBaUNYLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDO1FBQWxEbEIsTUFBTSxHQUFBNEIsU0FBQSxDQUFONUIsTUFBTTtRQUFFUCxZQUFZLEdBQUFtQyxTQUFBLENBQVpuQyxZQUFZO01BQzVCcUIsaUJBQWlCLENBQUNkLE1BQU0sR0FBR0EsTUFBTTtNQUNqQ2MsaUJBQWlCLENBQUNyQixZQUFZLEdBQUdBLFlBQVk7SUFDL0MsQ0FBQyxNQUFNO01BQUU7TUFDUHFCLGlCQUFpQixDQUFDckIsWUFBWSxHQUFHVixlQUFlLENBQUMrQixpQkFBaUIsQ0FBQztJQUNyRTtJQUNBQSxpQkFBaUIsQ0FBQ2Isa0JBQWtCLEdBQUcsS0FBSztFQUM5QyxDQUFDLE1BQU0sSUFBSWQsVUFBVSxLQUFLUixjQUFjLEVBQUU7SUFDeENrQyxzQkFBc0IsQ0FBQ0MsaUJBQWlCLEVBQUVDLFlBQVksRUFBRUMsaUJBQWlCLENBQUM7SUFDMUVGLGlCQUFpQixDQUFDM0IsVUFBVSxHQUFHMkIsaUJBQWlCLENBQUN2QixVQUFVLEtBQUssSUFBSSxHQUFHLEtBQUssR0FBRyxLQUFLO0lBQ3BGdUIsaUJBQWlCLENBQUNyQixZQUFZLEdBQUdWLGVBQWUsQ0FBQytCLGlCQUFpQixDQUFDO0VBQ3JFLENBQUMsTUFBTSxJQUFJM0IsVUFBVSxLQUFLUCxpQkFBaUIsRUFBRTtJQUMzQ2lDLHNCQUFzQixDQUFDQyxpQkFBaUIsRUFBRUMsWUFBWSxFQUFFQyxpQkFBaUIsQ0FBQztJQUMxRUYsaUJBQWlCLENBQUMzQixVQUFVLEdBQUcyQixpQkFBaUIsQ0FBQ3ZCLFVBQVUsS0FBSyxJQUFJLEdBQUcsS0FBSyxHQUFHLEtBQUs7SUFDcEZ1QixpQkFBaUIsQ0FBQ3JCLFlBQVksR0FBR1YsZUFBZSxDQUFDK0IsaUJBQWlCLENBQUM7RUFDckU7RUFDQSxPQUFPQSxpQkFBaUI7QUFDMUI7QUFFQSxPQUFPLFNBQVNlLDJCQUEyQkEsQ0FBQUMsS0FBQSxFQUt4QztFQUFBLElBSkRDLEtBQUssR0FBQUQsS0FBQSxDQUFMQyxLQUFLO0lBQ0x0QyxZQUFZLEdBQUFxQyxLQUFBLENBQVpyQyxZQUFZO0lBQ1p1QyxZQUFZLEdBQUFGLEtBQUEsQ0FBWkUsWUFBWTtJQUNaQyxvQkFBb0IsR0FBQUgsS0FBQSxDQUFwQkcsb0JBQW9CO0VBRXBCLElBQU1DLE9BQU8sR0FBR0Qsb0JBQW9CLENBQUNFLFNBQVMsQ0FBQyxDQUFDO0VBQ2hELElBQUlDLEtBQUssR0FBR0gsb0JBQW9CLENBQUNJLGtCQUFrQixDQUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFekMsWUFBWSxDQUFDO0VBRTFGLElBQU02Qyx1QkFBdUIsR0FBRztJQUM5QlAsS0FBSyxFQUFMQSxLQUFLO0lBQUU7SUFDUFEsT0FBTyxFQUFFTCxPQUFPO0lBQ2hCTSxPQUFPLEVBQUVKLEtBQUs7SUFDZEssY0FBYyxFQUFFLElBQUk7SUFDcEJDLFFBQVEsRUFBRSxTQUFBQSxTQUFDM0MsS0FBSyxFQUFFcUMsS0FBSyxFQUF3QjtNQUFBLElBQXRCTyxZQUFZLEdBQUF6SSxTQUFBLENBQUFwQyxNQUFBLFFBQUFvQyxTQUFBLFFBQUFHLFNBQUEsR0FBQUgsU0FBQSxNQUFDLElBQUk7TUFDeEMsSUFBSTBJLElBQUk7TUFFUixJQUFLUixLQUFLLEdBQUcsQ0FBQyxJQUFLckMsS0FBSyxFQUFFO1FBQ3hCLElBQU04QyxPQUFPLEdBQUc7VUFDZDFCLEdBQUcsRUFBRXBCLEtBQUs7VUFDVkEsS0FBSyxFQUFMQTtRQUNGLENBQUM7UUFDRCxJQUFNcUMsTUFBSyxHQUFHSCxvQkFBb0IsQ0FBQ2EsZ0JBQWdCLENBQUNELE9BQU8sQ0FBQztRQUU1RCxJQUFJVCxNQUFLLElBQUksQ0FBQyxFQUFFO1VBQ2RRLElBQUksR0FBR1gsb0JBQW9CLENBQUNFLFNBQVMsQ0FBQyxDQUFDLENBQUNDLE1BQUssQ0FBQztRQUNoRDtNQUNGLENBQUMsTUFBTTtRQUNMUSxJQUFJLEdBQUdYLG9CQUFvQixDQUFDYyxjQUFjLENBQUNoRCxLQUFLLENBQUM7TUFDbkQ7TUFFQSxJQUFJNkMsSUFBSSxFQUFFO1FBQ1JaLFlBQVksQ0FBQ1ksSUFBSSxFQUFFRCxZQUFZLENBQUM7TUFDbEM7SUFDRixDQUFDO0lBQ0RLLFVBQVUsRUFBRSxTQUFBQSxXQUFBakQsS0FBSyxFQUFJO01BQ25CLElBQU1tQyxPQUFPLEdBQUdELG9CQUFvQixDQUFDRSxTQUFTLENBQUMsQ0FBQztNQUNoRCxJQUFNYyxXQUFXLEdBQUdoQixvQkFBb0IsQ0FBQ0ksa0JBQWtCLENBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUVuQyxLQUFLLENBQUM7TUFDcEZrQyxvQkFBb0IsQ0FBQ2lCLGlCQUFpQixDQUFDRCxXQUFXLENBQUM7SUFDckQ7RUFDRixDQUFDO0VBRUQsT0FBT1gsdUJBQXVCO0FBQ2hDO0FBRUEsT0FBTyxTQUFTYSxVQUFVQSxDQUFDMUQsWUFBb0IsRUFBRU8sTUFBYyxFQUFFb0QsSUFBYSxFQUFVO0VBQ3RGLElBQUlDLE9BQU87RUFFWCxJQUFJO0lBQ0YsSUFBQUMsb0JBQUEsR0FBc0M3RCxZQUFZLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7TUFBQTRELG9CQUFBLEdBQUEzRyxjQUFBLENBQUEwRyxvQkFBQTtNQUF4RGhFLEtBQUssR0FBQWlFLG9CQUFBO01BQUVoRSxVQUFVLEdBQUFnRSxvQkFBQTtNQUFFcEUsVUFBVSxHQUFBb0Usb0JBQUE7SUFFbEMsUUFBUXBFLFVBQVU7TUFDbEIsS0FBS1osZUFBZTtRQUNsQmdCLFVBQVUsR0FBRzZELElBQUksR0FBRy9FLFlBQVksR0FBR0csWUFBWTtRQUMvQ1csVUFBVSxHQUFHaUUsSUFBSSxHQUNiOUUsa0JBQWtCLEdBQ2xCRyxrQkFBa0I7UUFDdEI7TUFFRixLQUFLRSxjQUFjO1FBQ2pCUSxVQUFVLEdBQUlJLFVBQVUsS0FBSyxJQUFJLEdBQUksS0FBSyxHQUFHLEtBQUs7UUFDbEQ7TUFFRixLQUFLWCxpQkFBaUI7UUFDcEJPLFVBQVUsR0FBSUksVUFBVSxLQUFLLElBQUksR0FBSSxLQUFLLEdBQUcsS0FBSztRQUNsRDtJQUNGO0lBQ0E4RCxPQUFPLE1BQUFoRSxNQUFBLENBQU1DLEtBQUssT0FBQUQsTUFBQSxDQUFJRSxVQUFVLE9BQUFGLE1BQUEsQ0FBSUYsVUFBVSxDQUFFO0VBQ2xELENBQUMsQ0FBQyxPQUFPbk0sQ0FBQyxFQUFFO0lBQ1Y7RUFBQTs7RUFHRjtFQUNBLFVBQUFxTSxNQUFBLENBQVVXLE1BQU0sSUFBSSxFQUFFLE9BQUFYLE1BQUEsQ0FBSWdFLE9BQU87QUFDbkM7QUFFQSxPQUFPLFNBQVNHLDhCQUE4QkEsQ0FDNUMvRCxZQUFvQixFQUNwQk8sTUFBYyxFQUNkeUQsU0FBaUIsRUFDakJMLElBQWEsRUFDZjtFQUNFLElBQU1DLE9BQU8sR0FBR0YsVUFBVSxDQUFDMUQsWUFBWSxFQUFFTyxNQUFNLEVBQUVvRCxJQUFJLENBQUM7RUFDdEQsSUFBTU0sUUFBUSxHQUFHRCxTQUFTLEdBQUdKLE9BQU87RUFDcEMsT0FBT0ssUUFBUTtBQUNqQjtBQUVBLE9BQU8sU0FBU0MsY0FBY0EsQ0FBQ3hDLEdBQUcsRUFBRTtFQUNsQyxJQUFJeUMsYUFBYSxHQUFHLEtBQUs7RUFDekIsSUFBSUMsUUFBUSxHQUFHLEtBQUs7RUFFcEIsSUFBSTtJQUNGLElBQU1DLEtBQUssR0FBRzNDLEdBQUcsQ0FBQ3hCLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDNUIsSUFBQW9FLE1BQUEsR0FBQW5ILGNBQUEsQ0FBdUNrSCxLQUFLO01BQXJDRSxRQUFRLEdBQUFELE1BQUE7TUFBSUUsSUFBSSxHQUFBRixNQUFBO01BQUVHLElBQUksR0FBQUgsTUFBQTtNQUFFSSxJQUFJLEdBQUFKLE1BQUE7SUFDbkNGLFFBQVEsR0FBSUcsUUFBUSxLQUFLLFFBQVM7SUFDbEMsSUFBTUksU0FBUyxHQUFHSCxJQUFJLEdBQUdBLElBQUksQ0FBQ3RFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO0lBRTdDLElBQUl5RSxTQUFTLENBQUN0TSxNQUFNLElBQUksQ0FBQyxFQUFFO01BQUEsSUFBQXVNLFNBQUEsR0FBQXBKLDBCQUFBLENBQ1JtSixTQUFTO1FBQUFFLEtBQUE7TUFBQTtRQUExQixLQUFBRCxTQUFBLENBQUFuUCxDQUFBLE1BQUFvUCxLQUFBLEdBQUFELFNBQUEsQ0FBQWhSLENBQUEsSUFBQWtELElBQUEsR0FBNEI7VUFBQSxJQUFuQmdPLElBQUksR0FBQUQsS0FBQSxDQUFBN1EsS0FBQTtVQUNYLElBQUksQ0FBQzhRLElBQUksRUFBRTtZQUNUVixRQUFRLEdBQUcsS0FBSztZQUNoQjtVQUNGO1FBQ0Y7TUFBQyxTQUFBekosR0FBQTtRQUFBaUssU0FBQSxDQUFBclIsQ0FBQSxDQUFBb0gsR0FBQTtNQUFBO1FBQUFpSyxTQUFBLENBQUFwUCxDQUFBO01BQUE7SUFDSCxDQUFDLE1BQU07TUFDTDRPLFFBQVEsR0FBRyxLQUFLO0lBQ2xCO0lBRUEsSUFBS0csUUFBUSxJQUFJQyxJQUFJLElBQUlDLElBQUksSUFBSUMsSUFBSSxFQUFHO01BQ3RDLElBQUFLLFdBQUEsR0FBZ0NMLElBQUksQ0FBQ3hFLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFBQThFLFlBQUEsR0FBQTdILGNBQUEsQ0FBQTRILFdBQUE7UUFBeENqRixVQUFVLEdBQUFrRixZQUFBO1FBQUVyRixTQUFTLEdBQUFxRixZQUFBO01BQzVCYixhQUFhLEdBQUdyRSxVQUFVLElBQUlILFNBQVM7SUFDekM7RUFDRixDQUFDLENBQUMsT0FBQXNGLE9BQUEsRUFBTTtJQUNOQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxtQkFBbUIsR0FBR3pELEdBQUcsQ0FBQztFQUN4QztFQUNBLE9BQU87SUFBRTBDLFFBQVEsRUFBUkEsUUFBUTtJQUFFRCxhQUFhLEVBQWJBO0VBQWMsQ0FBQztBQUNwQztBQUVBLE9BQU8sU0FBU2lCLHVCQUF1QkEsQ0FBQ0MsY0FBc0IsRUFBRTtFQUM5RCxJQUFJQyxPQUFPLEdBQUcsRUFBRTtFQUVoQixJQUFJRCxjQUFjLENBQUN0SCx5QkFBeUIsQ0FBQyxFQUFFO0lBQzdDdUgsT0FBTyxHQUFHM0csNEJBQTRCO0VBQ3hDLENBQUMsTUFBTSxJQUFJMEcsY0FBYyxDQUFDeEgsc0JBQXNCLENBQUMsRUFBRTtJQUNqRHlILE9BQU8sR0FBRzVHLDBCQUEwQjtFQUN0QyxDQUFDLE1BQU0sSUFBSTJHLGNBQWMsQ0FBQ3pILHVCQUF1QixDQUFDLEVBQUU7SUFDbEQwSCxPQUFPLEdBQUc5Ryx3QkFBd0I7RUFDcEMsQ0FBQyxNQUFNLElBQUk2RyxjQUFjLENBQUNySCwwQkFBMEIsQ0FBQyxFQUFFO0lBQ3JEc0gsT0FBTyxHQUFHckcsNkJBQTZCO0VBQ3pDO0VBQ0EsT0FBT3FHLE9BQU87QUFDaEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0Msa0JBQWtCQSxDQUFDRixjQUFzQixFQUFFOUUsTUFBYyxFQUFFUCxZQUFvQixFQUFFMkQsSUFBYSxFQUFFO0VBQzlHLElBQUkyQixPQUFPLEdBQUcsRUFBRTtFQUVoQixJQUFJRCxjQUFjLENBQUN2SCxhQUFhLENBQUMsRUFBRTtJQUNqQ3dILE9BQU8sR0FBRzdHLGdCQUFnQjtFQUM1QixDQUFDLE1BQU07SUFDTDZHLE9BQU8sR0FBR0YsdUJBQXVCLENBQUNDLGNBQWMsQ0FBQztJQUVqRCxJQUFJQyxPQUFPLEVBQUU7TUFDWEEsT0FBTyxHQUFHdkIsOEJBQThCLENBQUMvRCxZQUFZLEVBQUVPLE1BQU0sRUFBRStFLE9BQU8sRUFBRTNCLElBQUksQ0FBQztJQUMvRTtFQUNGO0VBQ0EsT0FBTzJCLE9BQU87QUFDaEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNFLHVCQUF1QkEsQ0FBQzNGLEtBQWEsRUFBRUMsVUFBa0IsRUFBRUgsU0FBaUIsRUFBRUgsR0FBVyxFQUFFO0VBQ3pHLHVCQUFBSSxNQUFBLENBQXVCQyxLQUFLLE9BQUFELE1BQUEsQ0FBSUUsVUFBVSxPQUFBRixNQUFBLENBQUlELFNBQVMsb0JBQUFDLE1BQUEsQ0FBaUJKLEdBQUc7QUFDN0U7QUFFQSxPQUFPLFNBQVNpRyxhQUFhQSxDQUFDQyxVQUFVLEVBQUU7RUFDeEMsSUFBSSxPQUFPQSxVQUFVLEtBQUssUUFBUSxFQUFFO0lBQ2xDLE9BQU9DLFFBQVEsQ0FBQ0QsVUFBVSxDQUFDO0VBQzdCO0VBQ0EsT0FBT0EsVUFBVTtBQUNuQjtBQUVBLE9BQU8sU0FBU0UsbUJBQW1CQSxDQUFDQyxZQUFZLEVBQUU7RUFDaEQsSUFBSUEsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRXhOLE1BQU0sRUFBRTtJQUN4QixJQUFNeU4sYUFBYSxHQUFBakwsa0JBQUEsQ0FBT2dMLFlBQVksQ0FBQztJQUV2QyxLQUFLLElBQUk1UixDQUFDLEdBQUcsQ0FBQyxFQUFFc0IsQ0FBQyxHQUFHdVEsYUFBYSxDQUFDek4sTUFBTSxFQUFFcEUsQ0FBQyxHQUFHc0IsQ0FBQyxFQUFFdEIsQ0FBQyxFQUFFLEVBQUU7TUFDcEQsSUFBTThSLEVBQUUsR0FBR0QsYUFBYSxDQUFDN1IsQ0FBQyxDQUFDO01BRTNCLElBQUk4UixFQUFFLENBQUM1USxJQUFJLEtBQUssTUFBTSxLQUFLNFEsRUFBRSxDQUFDTCxVQUFVLElBQUlLLEVBQUUsQ0FBQ0MsV0FBVyxDQUFDLEVBQUU7UUFDM0QsSUFBTUMsSUFBSSxHQUFBNUosYUFBQSxLQUFRMEosRUFBRSxDQUFFO1FBRXRCLElBQUlBLEVBQUUsQ0FBQ0wsVUFBVSxFQUFFO1VBQ2pCTyxJQUFJLENBQUNQLFVBQVUsR0FBR0QsYUFBYSxDQUFDTSxFQUFFLENBQUNMLFVBQVUsQ0FBQztRQUNoRDtRQUVBLElBQUlLLEVBQUUsQ0FBQ0MsV0FBVyxFQUFFO1VBQ2xCQyxJQUFJLENBQUNELFdBQVcsR0FBR1AsYUFBYSxDQUFDTSxFQUFFLENBQUNDLFdBQVcsQ0FBQztRQUNsRDtRQUNBRixhQUFhLENBQUM3UixDQUFDLENBQUMsR0FBR2dTLElBQUk7TUFDekIsQ0FBQyxNQUFNLElBQUlGLEVBQUUsQ0FBQ0csUUFBUSxFQUFFO1FBQ3RCLElBQU1BLFFBQVEsR0FBR04sbUJBQW1CLENBQUNHLEVBQUUsQ0FBQ0csUUFBUSxDQUFDO1FBQ2pELElBQU1DLEtBQUssR0FBQTlKLGFBQUEsQ0FBQUEsYUFBQSxLQUNOMEosRUFBRTtVQUNMRyxRQUFRLEVBQVJBO1FBQVEsRUFDVDtRQUNESixhQUFhLENBQUM3UixDQUFDLENBQUMsR0FBR2tTLEtBQUs7TUFDMUI7SUFDRjtJQUNBLE9BQU9MLGFBQWE7RUFDdEI7RUFDQSxPQUFPLEVBQUU7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTTSwyQkFBMkJBLENBQUNDLFFBQVEsRUFBRTtFQUFBLElBQUFDLGVBQUE7RUFDcEQsSUFBTUMsS0FBSyxHQUFHLGNBQWM7RUFDNUIsSUFBTUMsUUFBUSxHQUFHSCxRQUFRLGFBQVJBLFFBQVEsZ0JBQUFDLGVBQUEsR0FBUkQsUUFBUSxDQUFFSSxLQUFLLENBQUNGLEtBQUssQ0FBQyxjQUFBRCxlQUFBLHVCQUF0QkEsZUFBQSxDQUF5QixDQUFDLENBQUM7RUFDNUMsT0FBT0UsUUFBUTtBQUNqQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTRSwyQkFBMkJBLENBQUNDLFNBQVMsRUFBRTtFQUNyRCxJQUFNQyxRQUFRLEdBQUcsT0FBTztFQUN4QixJQUFNQyxLQUFLLEdBQUdGLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFRyxPQUFPLENBQUNGLFFBQVEsQ0FBQztFQUUxQyxJQUFJQyxLQUFLLElBQUksQ0FBQyxFQUFFO0lBQ2QsSUFBTUUsT0FBTyxHQUFHRixLQUFLLEdBQUdELFFBQVEsQ0FBQ3ZPLE1BQU07SUFDdkMsSUFBSTJPLFFBQVEsR0FBR0wsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUVNLFNBQVMsQ0FBRUYsT0FBTyxFQUFFQSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUNHLElBQUksQ0FBQyxDQUFDO0lBQ25FLElBQUlDLFlBQVksR0FBRyxJQUFJO0lBRXZCLElBQUksQ0FBQUgsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUUzTyxNQUFNLElBQUcsQ0FBQyxFQUFFO01BQUEsSUFBQStPLGFBQUE7TUFDeEJELFlBQVksR0FBR0gsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUU5RyxLQUFLLENBQUMsR0FBRyxDQUFDO01BQ25DaUgsWUFBWSxJQUFBQyxhQUFBLEdBQUdELFlBQVksY0FBQUMsYUFBQSx1QkFBWkEsYUFBQSxDQUFlLENBQUMsQ0FBQyxDQUFDRixJQUFJLENBQUMsQ0FBQztJQUN6QztJQUNBLE9BQU9DLFlBQVk7RUFDckI7RUFDQSxPQUFPLElBQUk7QUFDYjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTRSxxQkFBcUJBLENBQUN4QixZQUE4QixFQUFFO0VBQ3BFLElBQUlBLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUV4TixNQUFNLEVBQUU7SUFBQSxJQUFBaVAsVUFBQSxHQUFBOUwsMEJBQUEsQ0FDUHFLLFlBQVk7TUFBQTBCLE1BQUE7SUFBQTtNQUE3QixLQUFBRCxVQUFBLENBQUE3UixDQUFBLE1BQUE4UixNQUFBLEdBQUFELFVBQUEsQ0FBQTFULENBQUEsSUFBQWtELElBQUEsR0FBK0I7UUFBQSxJQUFwQmlQLEVBQUUsR0FBQXdCLE1BQUEsQ0FBQXZULEtBQUE7UUFDWCxJQUFJK1IsRUFBRSxDQUFDNVEsSUFBSSxLQUFLLE1BQU0sRUFBRTtVQUN0QixPQUFPLElBQUk7UUFDYixDQUFDLE1BQU0sSUFBSTRRLEVBQUUsQ0FBQ0csUUFBUSxFQUFFO1VBQ3RCLElBQU1zQixVQUFVLEdBQUdILHFCQUFxQixDQUFDdEIsRUFBRSxDQUFDRyxRQUFRLENBQUM7VUFFckQsSUFBSXNCLFVBQVUsRUFBRTtZQUNkLE9BQU8sSUFBSTtVQUNiO1FBQ0Y7TUFDRjtJQUFDLFNBQUE3TSxHQUFBO01BQUEyTSxVQUFBLENBQUEvVCxDQUFBLENBQUFvSCxHQUFBO0lBQUE7TUFBQTJNLFVBQUEsQ0FBQTlSLENBQUE7SUFBQTtFQUNIO0VBQ0EsT0FBTyxLQUFLO0FBQ2Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU2lTLHNCQUFzQkEsQ0FBQzVCLFlBQThCLEVBQUU7RUFDckUsSUFBSSxPQUFPQSxZQUFZLEtBQUssUUFBUSxFQUFFO0lBQ3BDO0lBQ0EsSUFBTTZCLFFBQVEsR0FBRzdCLFlBQVksQ0FBQ3FCLElBQUksQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDUSxRQUFRO0VBQ25COztFQUVBO0VBQ0EsSUFBSTdCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUVBLFlBQVksRUFBRTtJQUFFO0lBQ2hDO0lBQ0EsT0FBTzRCLHNCQUFzQixDQUFDNUIsWUFBWSxDQUFDQSxZQUFZLENBQUM7RUFDMUQ7RUFFQSxJQUFJQSxZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFeE4sTUFBTSxFQUFFO0lBQUEsSUFBQXNQLFVBQUEsR0FBQW5NLDBCQUFBLENBQ1BxSyxZQUFZO01BQUErQixNQUFBO0lBQUE7TUFBN0IsS0FBQUQsVUFBQSxDQUFBbFMsQ0FBQSxNQUFBbVMsTUFBQSxHQUFBRCxVQUFBLENBQUEvVCxDQUFBLElBQUFrRCxJQUFBLEdBQStCO1FBQUEsSUFBcEJpUCxFQUFFLEdBQUE2QixNQUFBLENBQUE1VCxLQUFBO1FBQ1gsSUFBSytSLEVBQUUsQ0FBQzVRLElBQUksS0FBSyxNQUFNLElBQU00USxFQUFFLENBQUM1USxJQUFJLEtBQUssTUFBTyxFQUFFO1VBQUEsSUFBQTBTLFFBQUE7VUFDaEQsSUFBTUMsSUFBSSxJQUFBRCxRQUFBLEdBQUc5QixFQUFFLENBQUMrQixJQUFJLGNBQUFELFFBQUEsdUJBQVBBLFFBQUEsQ0FBU1gsSUFBSSxDQUFDLENBQUM7VUFFNUIsSUFBSVksSUFBSSxFQUFFO1lBQ1IsT0FBTyxJQUFJO1VBQ2I7UUFDRixDQUFDLE1BQU0sSUFBSS9CLEVBQUUsQ0FBQ0csUUFBUSxFQUFFO1VBQ3RCLElBQU1zQixVQUFVLEdBQUdDLHNCQUFzQixDQUFDMUIsRUFBRSxDQUFDRyxRQUFRLENBQUM7VUFFdEQsSUFBSXNCLFVBQVUsRUFBRTtZQUNkLE9BQU8sSUFBSTtVQUNiO1FBQ0Y7TUFDRjtJQUFDLFNBQUE3TSxHQUFBO01BQUFnTixVQUFBLENBQUFwVSxDQUFBLENBQUFvSCxHQUFBO0lBQUE7TUFBQWdOLFVBQUEsQ0FBQW5TLENBQUE7SUFBQTtFQUNIO0VBRUEsT0FBTyxLQUFLO0FBQ2Q7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU3VTLGFBQWFBLENBQUNsQyxZQUE4QixFQUFtQjtFQUM3RSxJQUFNbUMsY0FBYyxHQUFHbkMsWUFBWSxDQUFDMUosTUFBTSxDQUFDLFVBQUE0SixFQUFFO0lBQUEsT0FBSUEsRUFBRSxDQUFDa0MsR0FBRyxLQUFLLE1BQU07RUFBQSxFQUFDOztFQUVuRTtFQUNBLEtBQUssSUFBSWhVLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBRytULGNBQWMsQ0FBQzNQLE1BQU0sRUFBRXBFLENBQUMsRUFBRSxFQUFFO0lBQzlDLElBQU1pVSxTQUFTLEdBQUdGLGNBQWMsQ0FBQy9ULENBQUMsQ0FBQztJQUVuQyxJQUFJaVUsU0FBUyxDQUFDQyxNQUFNLEVBQUU7TUFDcEIsSUFBTUMsVUFBVSxHQUFBL0wsYUFBQSxLQUFRNkwsU0FBUyxDQUFFO01BQ25DLE9BQU9FLFVBQVUsQ0FBQ0QsTUFBTTtNQUN4QkgsY0FBYyxDQUFDL1QsQ0FBQyxDQUFDLEdBQUdtVSxVQUFVO0lBQ2hDO0VBQ0Y7RUFDQSxPQUFPSixjQUFjO0FBQ3ZCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFzQkssa0JBQWtCQSxDQUFBQyxFQUFBO0VBQUEsT0FBQUMsbUJBQUEsQ0FBQTdOLEtBQUEsT0FBQUQsU0FBQTtBQUFBOztBQWlEeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQSxTQUFBOE4sb0JBQUE7RUFBQUEsbUJBQUEsR0FBQWxPLGlCQUFBLGVBQUEvRyxtQkFBQSxHQUFBb0YsSUFBQSxDQWpETyxTQUFBOFAsUUFBa0NDLFdBQTRCO0lBQUEsSUFBQUMsaUJBQUEsRUFBQUMsa0JBQUEsRUFBQUMsUUFBQSxFQUFBM0UsUUFBQSxFQUFBNEUsUUFBQSxFQUFBbEMsU0FBQSxFQUFBbUMsV0FBQSxFQUFBQyxTQUFBLEVBQUFDLEtBQUEsRUFBQXZRLElBQUEsRUFBQXdRLEdBQUEsRUFBQXZILEdBQUEsRUFBQXdILFVBQUE7SUFBQSxPQUFBNVYsbUJBQUEsR0FBQXVCLElBQUEsVUFBQXNVLFNBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBalEsSUFBQSxHQUFBaVEsUUFBQSxDQUFBNVIsSUFBQTtRQUFBO1VBQUE0UixRQUFBLENBQUFqUSxJQUFBO1VBRWpFK0wsT0FBTyxDQUFDQyxHQUFHLDBDQUFBdkYsTUFBQSxDQUEwQzZJLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFekksWUFBWSxHQUFJeUksV0FBVyxDQUFDOztVQUU5RjtVQUFBVyxRQUFBLENBQUE1UixJQUFBO1VBQUEsT0FDdUJ5RyxJQUFJLENBQUNvTCx3QkFBd0IsQ0FBQ1osV0FBVyxDQUFDO1FBQUE7VUFBM0RHLFFBQVEsR0FBQVEsUUFBQSxDQUFBbFMsSUFBQTtVQUFBLE1BRVYsRUFBQzBSLFFBQVEsYUFBUkEsUUFBUSxlQUFSQSxRQUFRLENBQUVVLFFBQVEsS0FBSSxFQUFDVixRQUFRLGFBQVJBLFFBQVEsZ0JBQUFGLGlCQUFBLEdBQVJFLFFBQVEsQ0FBRVcsT0FBTyxjQUFBYixpQkFBQSxlQUFqQkEsaUJBQUEsQ0FBbUJjLElBQUk7WUFBQUosUUFBQSxDQUFBNVIsSUFBQTtZQUFBO1VBQUE7VUFDM0N5TSxRQUFRLEdBQUcyRSxRQUFRLGFBQVJBLFFBQVEsZUFBUkEsUUFBUSxDQUFFVSxRQUFRLEdBQUcsMkJBQTJCLEdBQUcsMkJBQTJCO1VBQy9GcEUsT0FBTyxDQUFDdUUsSUFBSSxpQ0FBQTdKLE1BQUEsQ0FBaUNxRSxRQUFRLEdBQUl3RSxXQUFZLENBQUM7VUFBQSxPQUFBVyxRQUFBLENBQUEvUixNQUFBLFdBQy9EO1lBQUUrQyxLQUFLLEVBQUU2SixRQUFRO1lBQUV5RixhQUFhLEVBQUU7VUFBSyxDQUFDO1FBQUE7VUFHakR4RSxPQUFPLENBQUNDLEdBQUcsaUVBQUF2RixNQUFBLENBQWlFNkksV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUV6SSxZQUFZLEdBQUl5SSxXQUFXLENBQUM7VUFBQVcsUUFBQSxDQUFBNVIsSUFBQTtVQUFBLE9BQzlGb1IsUUFBUSxhQUFSQSxRQUFRLGdCQUFBRCxrQkFBQSxHQUFSQyxRQUFRLENBQUVXLE9BQU8sY0FBQVosa0JBQUEsdUJBQWpCQSxrQkFBQSxDQUFtQmEsSUFBSSxDQUFDLENBQUM7UUFBQTtVQUExQ1gsUUFBUSxHQUFBTyxRQUFBLENBQUFsUyxJQUFBO1VBQ2Q7VUFDTXlQLFNBQVMsR0FBR2tDLFFBQVEsSUFBSTVLLElBQUksQ0FBQzBMLGVBQWUsQ0FBQ2QsUUFBUSxDQUFDO1VBQUFPLFFBQUEsQ0FBQTVSLElBQUE7VUFBQSxPQUN0RDRILEtBQUssQ0FBQyxHQUFHLENBQUM7UUFBQTtVQUFDO1VBQ1gwSixXQUFXLEdBQUduQyxTQUFTLElBQUl6SSxNQUFNLENBQUMwTCxNQUFNLENBQUNqRCxTQUFTLENBQUMsRUFBQztVQUFBLElBRXJEbUMsV0FBVztZQUFBTSxRQUFBLENBQUE1UixJQUFBO1lBQUE7VUFBQTtVQUNSeU0sU0FBUSxHQUFHMEMsU0FBUyxHQUFHLDRCQUE0QixHQUFHLDJCQUEyQjtVQUN2RnpCLE9BQU8sQ0FBQ3VFLElBQUksaUNBQUE3SixNQUFBLENBQWlDcUUsU0FBUSxHQUFJd0UsV0FBWSxDQUFDO1VBQUEsT0FBQVcsUUFBQSxDQUFBL1IsTUFBQSxXQUMvRDtZQUFFK0MsS0FBSyxFQUFFNko7VUFBUyxDQUFDO1FBQUE7VUFBQStFLEtBQUEsR0FPeEIsQ0FBQUgsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUVnQixJQUFJLEtBQUksQ0FBQyxDQUFDLEVBSHRCcFIsSUFBSSxHQUFBdVEsS0FBQSxDQUFKdlEsSUFBSSxFQUNKd1EsR0FBRyxHQUFBRCxLQUFBLENBQUhDLEdBQUcsRUFDSHZILEdBQUcsR0FBQXNILEtBQUEsQ0FBSHRILEdBQUc7VUFHTHdELE9BQU8sQ0FBQ0MsR0FBRywrQ0FBQXZGLE1BQUEsQ0FBK0M2SSxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRXpJLFlBQVksR0FBSXlJLFdBQVcsQ0FBQztVQUFBLE9BQUFXLFFBQUEsQ0FBQS9SLE1BQUEsV0FBQWdGLGFBQUEsQ0FBQUEsYUFBQSxLQUU5RnVNLFFBQVE7WUFDWGpDLFNBQVMsRUFBVEEsU0FBUztZQUNUbUMsV0FBVyxFQUFYQSxXQUFXO1lBQ1hyUSxJQUFJLEVBQUpBLElBQUk7WUFDSm9RLFFBQVEsRUFBUkEsUUFBUTtZQUNSSSxHQUFHLEVBQUhBLEdBQUc7WUFDSHZILEdBQUcsRUFBSEE7VUFBRztRQUFBO1VBQUEwSCxRQUFBLENBQUFqUSxJQUFBO1VBQUFpUSxRQUFBLENBQUFVLEVBQUEsR0FBQVYsUUFBQTtVQUdDbkYsVUFBUSxHQUFHLDZCQUE2QjtVQUM5Q2lCLE9BQU8sQ0FBQzlLLEtBQUssMkJBQUF3RixNQUFBLENBQTJCcUUsVUFBUSxHQUFJd0UsV0FBVyxFQUFBVyxRQUFBLENBQUFVLEVBQUksQ0FBQztVQUFBLE9BQUFWLFFBQUEsQ0FBQS9SLE1BQUEsV0FDN0Q7WUFBRStDLEtBQUssRUFBRTZKO1VBQVMsQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBbUYsUUFBQSxDQUFBOVAsSUFBQTtNQUFBO0lBQUEsR0FBQWtQLE9BQUE7RUFBQSxDQUU3QjtFQUFBLE9BQUFELG1CQUFBLENBQUE3TixLQUFBLE9BQUFELFNBQUE7QUFBQTtBQVNELGdCQUFzQnNQLGNBQWNBLENBQUFDLEdBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7RUFBQSxPQUFBQyxlQUFBLENBQUExUCxLQUFBLE9BQUFELFNBQUE7QUFBQTtBQXVCbkMsU0FBQTJQLGdCQUFBO0VBQUFBLGVBQUEsR0FBQS9QLGlCQUFBLGVBQUEvRyxtQkFBQSxHQUFBb0YsSUFBQSxDQXZCTSxTQUFBMlIsU0FBOEI5SixNQUFjLEVBQUUrSixNQUF3QixFQUFFMUIsUUFBK0IsRUFBRTJCLFNBQWlDO0lBQUEsSUFBQUMsSUFBQSxFQUFBeEssWUFBQSxFQUFBeUksV0FBQSxFQUFBZ0MsT0FBQTtJQUFBLE9BQUFuWCxtQkFBQSxHQUFBdUIsSUFBQSxVQUFBNlYsVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUF4UixJQUFBLEdBQUF3UixTQUFBLENBQUFuVCxJQUFBO1FBQUE7VUFDL0kwTixPQUFPLENBQUNDLEdBQUcsMENBQTBDeUQsUUFBUSxDQUFDO1VBQ3hENEIsSUFBSSxHQUFHLENBQUE1QixRQUFRLGFBQVJBLFFBQVEsdUJBQVJBLFFBQVEsQ0FBRW5KLE1BQU0sTUFBSW1KLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFcEosR0FBRztVQUN4Q1EsWUFBWSxHQUFHVixlQUFlLENBQUFqRCxhQUFBLENBQUFBLGFBQUEsS0FDL0J1TSxRQUFRO1lBQ1hsSixVQUFVLEVBQUUsQ0FBQWtKLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFakosU0FBUyxLQUFJLEVBQUU7WUFDckNxQyxNQUFNLEVBQUUsQ0FBQXVJLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFdkksTUFBTSxLQUFJLEVBQUU7WUFDL0J4QyxHQUFHLEVBQUVnTDtVQUFJLEVBQ1YsQ0FBQztVQUVFL0IsV0FBNEIsR0FBRztZQUNqQzZCLE1BQU0sRUFBQWpPLGFBQUEsQ0FBQUEsYUFBQSxLQUNEaU8sTUFBTTtjQUNUL0osTUFBTSxFQUFOQTtZQUFNLEVBQ1A7WUFDRHFJLFFBQVEsRUFBUkEsUUFBUTtZQUNSMkIsU0FBUyxFQUFUQSxTQUFTO1lBQ1R2SyxZQUFZLEVBQVpBO1VBQ0YsQ0FBQztVQUFBMkssU0FBQSxDQUFBblQsSUFBQTtVQUFBLE9BRXFCNlEsa0JBQWtCLENBQUNJLFdBQVcsQ0FBQztRQUFBO1VBQS9DZ0MsT0FBTyxHQUFBRSxTQUFBLENBQUF6VCxJQUFBO1VBQ2JnTyxPQUFPLENBQUNDLEdBQUcsZ0RBQWdEeUQsUUFBUSxDQUFDO1VBQUEsT0FBQStCLFNBQUEsQ0FBQXRULE1BQUEsV0FDN0RvVCxPQUFPO1FBQUE7UUFBQTtVQUFBLE9BQUFFLFNBQUEsQ0FBQXJSLElBQUE7TUFBQTtJQUFBLEdBQUErUSxRQUFBO0VBQUEsQ0FDZjtFQUFBLE9BQUFELGVBQUEsQ0FBQTFQLEtBQUEsT0FBQUQsU0FBQTtBQUFBIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "single-scripture-rcl",
|
|
3
3
|
"description": "A React Component Library for Rendering a Single Scripture Resource.",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.34",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|