@syncfusion/ej2-base 20.1.56 → 20.1.58-106983

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.
Files changed (100) hide show
  1. package/.eslintrc.json +16 -1
  2. package/CHANGELOG.md +108 -4
  3. package/{README.md → ReadMe.md} +5 -6
  4. package/bin/syncfusion-license.js +2 -0
  5. package/dist/ej2-base.min.js +1 -0
  6. package/dist/ej2-base.umd.min.js +1 -10
  7. package/dist/ej2-base.umd.min.js.map +1 -1
  8. package/dist/es6/ej2-base.es2015.js +671 -315
  9. package/dist/es6/ej2-base.es2015.js.map +1 -1
  10. package/dist/es6/ej2-base.es5.js +448 -233
  11. package/dist/es6/ej2-base.es5.js.map +1 -1
  12. package/dist/global/ej2-base.min.js +1 -10
  13. package/dist/global/ej2-base.min.js.map +1 -1
  14. package/dist/global/index.d.ts +0 -9
  15. package/e2e/modified-protractor/protractor.config.js +316 -0
  16. package/e2e/protractor.config.js +56 -24
  17. package/helpers/e2e/base.js +62 -52
  18. package/helpers/e2e/index.js +8 -6
  19. package/package.json +78 -158
  20. package/src/animation.d.ts +13 -0
  21. package/src/animation.js +31 -4
  22. package/src/base.js +12 -12
  23. package/src/browser.js +9 -9
  24. package/src/child-property.js +10 -10
  25. package/src/component-model.d.ts +1 -1
  26. package/src/component.d.ts +1 -1
  27. package/src/component.js +30 -11
  28. package/src/dom.js +10 -10
  29. package/src/draggable-model.d.ts +21 -8
  30. package/src/draggable.d.ts +31 -6
  31. package/src/draggable.js +118 -21
  32. package/src/event-handler.js +6 -6
  33. package/src/hijri-parser.js +1 -1
  34. package/src/intl/date-parser.js +4 -4
  35. package/src/intl/intl-base.js +4 -4
  36. package/src/intl/number-formatter.js +3 -3
  37. package/src/intl/parser-base.js +2 -2
  38. package/src/keyboard.js +4 -4
  39. package/src/l10n.js +5 -5
  40. package/src/module-loader.js +2 -2
  41. package/src/notify-property-change.js +28 -28
  42. package/src/observer.js +9 -9
  43. package/src/sanitize-helper.js +3 -3
  44. package/src/template-engine.js +14 -14
  45. package/src/template.js +3 -2
  46. package/src/touch.js +4 -0
  47. package/src/util.js +30 -28
  48. package/src/validate-lic.d.ts +4 -0
  49. package/src/validate-lic.js +107 -42
  50. package/styles/_all.scss +1 -2
  51. package/styles/_bootstrap4-definition.scss +0 -1
  52. package/styles/_fusionnew-dark-definition.scss +9 -0
  53. package/styles/_fusionnew-definition.scss +9 -0
  54. package/styles/_highcontrast-light-definition.scss +0 -1
  55. package/styles/_material-dark-definition.scss +1 -1
  56. package/styles/_material-definition.scss +1 -1
  57. package/styles/_material3-dark-definition.scss +10 -0
  58. package/styles/_material3-definition.scss +9 -0
  59. package/styles/_tailwind-dark-definition.scss +1 -1
  60. package/styles/_tailwind-definition.scss +1 -1
  61. package/styles/animation/_all.scss +31 -30
  62. package/styles/bootstrap-dark.css +157 -1
  63. package/styles/bootstrap.css +157 -1
  64. package/styles/bootstrap4.css +157 -1
  65. package/styles/bootstrap5-dark.css +157 -1
  66. package/styles/bootstrap5.css +157 -1
  67. package/styles/common/_core.scss +16 -4
  68. package/styles/definition/_bootstrap-dark.scss +114 -0
  69. package/styles/definition/_bootstrap.scss +115 -1
  70. package/styles/definition/_bootstrap4.scss +114 -0
  71. package/styles/definition/_bootstrap5-dark.scss +132 -24
  72. package/styles/definition/_bootstrap5.scss +124 -14
  73. package/styles/definition/_fabric-dark.scss +114 -0
  74. package/styles/definition/_fabric.scss +114 -0
  75. package/styles/definition/_fluent-dark.scss +144 -22
  76. package/styles/definition/_fluent.scss +135 -14
  77. package/styles/definition/_fusionnew-dark.scss +360 -0
  78. package/styles/definition/_fusionnew.scss +361 -0
  79. package/styles/definition/_highcontrast-light.scss +112 -0
  80. package/styles/definition/_highcontrast.scss +114 -0
  81. package/styles/definition/_material-dark.scss +114 -0
  82. package/styles/definition/_material.scss +117 -0
  83. package/styles/definition/_material3-dark.scss +421 -0
  84. package/styles/definition/_material3.scss +361 -0
  85. package/styles/definition/_tailwind-dark.scss +128 -17
  86. package/styles/definition/_tailwind.scss +130 -19
  87. package/styles/fabric-dark.css +161 -2
  88. package/styles/fabric.css +161 -2
  89. package/styles/fluent-dark.css +157 -1
  90. package/styles/fluent.css +157 -1
  91. package/styles/highcontrast-light.css +164 -2
  92. package/styles/highcontrast.css +164 -2
  93. package/styles/material-dark.css +157 -1
  94. package/styles/material.css +157 -1
  95. package/styles/offline-theme/material-dark.css +2625 -0
  96. package/styles/offline-theme/material.css +2625 -0
  97. package/styles/offline-theme/tailwind-dark.css +1899 -0
  98. package/styles/offline-theme/tailwind.css +1899 -0
  99. package/styles/tailwind-dark.css +157 -1
  100. package/styles/tailwind.css +157 -1
@@ -66,7 +66,7 @@ function getValue(nameSpace, obj) {
66
66
  var value = obj;
67
67
  var splits = nameSpace.replace(/\[/g, '.').replace(/\]/g, '').split('.');
68
68
  for (var i = 0; i < splits.length && !isUndefined(value); i++) {
69
- value = value[splits[i]];
69
+ value = value[splits[parseInt(i.toString(), 10)]];
70
70
  }
71
71
  return value;
72
72
  }
@@ -90,14 +90,14 @@ function setValue(nameSpace, value, obj) {
90
90
  var length = keys.length;
91
91
  var key;
92
92
  for (i = 0; i < length; i++) {
93
- key = keys[i];
93
+ key = keys[parseInt(i.toString(), 10)];
94
94
  if (i + 1 === length) {
95
- fromObj[key] = value === undefined ? {} : value;
95
+ fromObj["" + key] = value === undefined ? {} : value;
96
96
  }
97
- else if (isNullOrUndefined(fromObj[key])) {
98
- fromObj[key] = {};
97
+ else if (isNullOrUndefined(fromObj["" + key])) {
98
+ fromObj["" + key] = {};
99
99
  }
100
- fromObj = fromObj[key];
100
+ fromObj = fromObj["" + key];
101
101
  }
102
102
  return start;
103
103
  }
@@ -111,12 +111,13 @@ function setValue(nameSpace, value, obj) {
111
111
  */
112
112
  // eslint-disable-next-line
113
113
  function deleteObject(obj, key) {
114
- delete obj[key];
114
+ delete obj["" + key];
115
115
  }
116
116
  /**
117
117
  *@private
118
118
  */
119
- var containerObject = typeof window !== "undefined" ? window : {};
119
+ // eslint-disable-next-line
120
+ var containerObject = typeof window !== 'undefined' ? window : {};
120
121
  /**
121
122
  * Check weather the given argument is only object.
122
123
  *
@@ -158,12 +159,12 @@ function merge(source, destination) {
158
159
  var deepmerge = 'deepMerge';
159
160
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
160
161
  var key = keys_1[_i];
161
- if (!isNullOrUndefined(temrObj[deepmerge]) && (temrObj[deepmerge].indexOf(key) !== -1) &&
162
- (isObject(tempProp[key]) || Array.isArray(tempProp[key]))) {
163
- extend(temrObj[key], temrObj[key], tempProp[key], true);
162
+ if (!isNullOrUndefined(temrObj["" + deepmerge]) && (temrObj["" + deepmerge].indexOf(key) !== -1) &&
163
+ (isObject(tempProp["" + key]) || Array.isArray(tempProp["" + key]))) {
164
+ extend(temrObj["" + key], temrObj["" + key], tempProp["" + key], true);
164
165
  }
165
166
  else {
166
- temrObj[key] = tempProp[key];
167
+ temrObj["" + key] = tempProp["" + key];
167
168
  }
168
169
  }
169
170
  }
@@ -192,8 +193,8 @@ function extend(copied, first, second, deep) {
192
193
  // eslint-disable-next-line
193
194
  var obj1 = arguments_1[i];
194
195
  Object.keys(obj1).forEach(function (key) {
195
- var src = result[key];
196
- var copy = obj1[key];
196
+ var src = result["" + key];
197
+ var copy = obj1["" + key];
197
198
  var clone;
198
199
  var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);
199
200
  // eslint-disable-next-line
@@ -206,17 +207,18 @@ function extend(copied, first, second, deep) {
206
207
  extend(clone, {}, copy, deep);
207
208
  }
208
209
  else {
209
- result[key] = extend(clone, {}, copy, deep);
210
+ result["" + key] = extend(clone, {}, copy, deep);
210
211
  }
211
212
  }
212
213
  else {
213
214
  /* istanbul ignore next */
214
215
  clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];
215
- result[key] = extend([], clone, copy, deep);
216
+ // eslint-disable-next-line
217
+ result["" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));
216
218
  }
217
219
  }
218
220
  else {
219
- result[key] = copy;
221
+ result["" + key] = copy;
220
222
  }
221
223
  });
222
224
  };
@@ -292,7 +294,7 @@ function queryParams(data) {
292
294
  var keys = Object.keys(data);
293
295
  for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {
294
296
  var key = keys_2[_i];
295
- array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[key]));
297
+ array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data["" + key]));
296
298
  }
297
299
  return array.join('&');
298
300
  }
@@ -362,7 +364,7 @@ function print(element, printWindow) {
362
364
  var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));
363
365
  if (blinks.length) {
364
366
  for (var l = 0, len = blinks.length; l < len; l++) {
365
- links.push(blinks[l]);
367
+ links.push(blinks[parseInt(l.toString(), 10)]);
366
368
  }
367
369
  }
368
370
  var reference = '';
@@ -371,7 +373,7 @@ function print(element, printWindow) {
371
373
  }
372
374
  div.appendChild(element.cloneNode(true));
373
375
  for (var i = 0, len = links.length; i < len; i++) {
374
- reference += links[i].outerHTML;
376
+ reference += links[parseInt(i.toString(), 10)].outerHTML;
375
377
  }
376
378
  printWindow.document.write('<!DOCTYPE html> <html><head>' + reference + '</head><body>' + div.innerHTML +
377
379
  '<script> (function() { window.ready = true; })(); </script>' + '</body></html>');
@@ -428,8 +430,8 @@ function isBlazor() {
428
430
  */
429
431
  function getElement(element) {
430
432
  var xPath = 'xPath';
431
- if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[xPath])) {
432
- return document.evaluate(element[xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
433
+ if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element["" + xPath])) {
434
+ return document.evaluate(element["" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
433
435
  }
434
436
  return element;
435
437
  }
@@ -445,8 +447,8 @@ function getElement(element) {
445
447
  function getInstance(element, component) {
446
448
  // eslint-disable-next-line
447
449
  var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;
448
- if (elem[instances]) {
449
- for (var _i = 0, _a = elem[instances]; _i < _a.length; _i++) {
450
+ if (elem["" + instances]) {
451
+ for (var _i = 0, _a = elem["" + instances]; _i < _a.length; _i++) {
450
452
  var inst = _a[_i];
451
453
  if (inst instanceof component) {
452
454
  return inst;
@@ -466,11 +468,11 @@ function getInstance(element, component) {
466
468
  function addInstance(element, instance) {
467
469
  // eslint-disable-next-line
468
470
  var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;
469
- if (elem[instances]) {
470
- elem[instances].push(instance);
471
+ if (elem["" + instances]) {
472
+ elem["" + instances].push(instance);
471
473
  }
472
474
  else {
473
- elem[instances] = [instance];
475
+ elem["" + instances] = [instance];
474
476
  }
475
477
  }
476
478
  /**
@@ -497,7 +499,7 @@ function uniqueID() {
497
499
  function combineArray(num) {
498
500
  var ret = '';
499
501
  for (var i = 0; i < 5; i++) {
500
- ret += (i ? ',' : '') + num[i];
502
+ ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];
501
503
  }
502
504
  return ret;
503
505
  }
@@ -608,10 +610,10 @@ var ParserBase = /** @__PURE__ @class */ (function () {
608
610
  var ret = '';
609
611
  for (var i = 0; i < len; i++) {
610
612
  if (i !== len - 1) {
611
- ret += val[i] + '|';
613
+ ret += val[parseInt(i.toString(), 10)] + '|';
612
614
  }
613
615
  else {
614
- ret += val[i];
616
+ ret += val[parseInt(i.toString(), 10)];
615
617
  }
616
618
  }
617
619
  return ret;
@@ -1023,7 +1025,7 @@ var HijriParser;
1023
1025
  var tempDay = z - Math.floor(29.5001 * im - 29);
1024
1026
  var i = 0;
1025
1027
  for (; i < dateCorrection.length; i++) {
1026
- if (dateCorrection[i] > modifiedJulianDate) {
1028
+ if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {
1027
1029
  break;
1028
1030
  }
1029
1031
  }
@@ -1386,7 +1388,7 @@ var errorText = {
1386
1388
  'ms': 'minimumSignificantDigits',
1387
1389
  'ls': 'maximumSignificantDigits',
1388
1390
  'mf': 'minimumFractionDigits',
1389
- 'lf': 'maximumFractionDigits',
1391
+ 'lf': 'maximumFractionDigits'
1390
1392
  };
1391
1393
  var percentSign = 'percentSign';
1392
1394
  var minusSign = 'minusSign';
@@ -1420,9 +1422,9 @@ var NumberFormat = /** @__PURE__ @class */ (function () {
1420
1422
  dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : IntlBase.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol);
1421
1423
  /* eslint-disable @typescript-eslint/no-explicit-any */
1422
1424
  dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :
1423
- dOptions.numberMapper.numberSymbols[percentSign];
1425
+ dOptions.numberMapper.numberSymbols["" + percentSign];
1424
1426
  dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :
1425
- dOptions.numberMapper.numberSymbols[minusSign];
1427
+ dOptions.numberMapper.numberSymbols["" + minusSign];
1426
1428
  var symbols = dOptions.numberMapper.numberSymbols;
1427
1429
  if ((option.format) && !(IntlBase.formatRegex.test(option.format))) {
1428
1430
  cOptions = IntlBase.customFormat(option.format, dOptions, dependable.numericObject);
@@ -1774,7 +1776,7 @@ var DateParser = /** @__PURE__ @class */ (function () {
1774
1776
  var numMapper = isBlazor() ? dependable.parserObject.numbers :
1775
1777
  ParserBase.getNumberMapper(dependable.parserObject, ParserBase.getNumberingSystem(cldr));
1776
1778
  for (var i = 0; i < length_1; i++) {
1777
- var str = patternMatch[i];
1779
+ var str = patternMatch[parseInt(i.toString(), 10)];
1778
1780
  var len = str.length;
1779
1781
  var char = (str[0] === 'K') ? 'h' : str[0];
1780
1782
  var isNumber = void 0;
@@ -1904,7 +1906,7 @@ var DateParser = /** @__PURE__ @class */ (function () {
1904
1906
  break;
1905
1907
  }
1906
1908
  if (canUpdate) {
1907
- parseOptions.evalposition[charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };
1909
+ parseOptions.evalposition["" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };
1908
1910
  }
1909
1911
  if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {
1910
1912
  parseOptions.parserRegex = new RegExp('^' + regexString + '$', 'i');
@@ -2028,7 +2030,7 @@ var DateParser = /** @__PURE__ @class */ (function () {
2028
2030
  var props = Object.keys(parseOptions.evalposition);
2029
2031
  for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {
2030
2032
  var prop = props_1[_i];
2031
- var curObject = parseOptions.evalposition[prop];
2033
+ var curObject = parseOptions.evalposition["" + prop];
2032
2034
  var matchString = matches[curObject.pos];
2033
2035
  if (curObject.isNumber) {
2034
2036
  // eslint-disable-next-line
@@ -2048,7 +2050,7 @@ var DateParser = /** @__PURE__ @class */ (function () {
2048
2050
  val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);
2049
2051
  }
2050
2052
  if (!isNullOrUndefined(val)) {
2051
- retOptions[prop] = val;
2053
+ retOptions["" + prop] = val;
2052
2054
  }
2053
2055
  }
2054
2056
  else {
@@ -2287,17 +2289,17 @@ var Observer = /** @__PURE__ @class */ (function () {
2287
2289
  }
2288
2290
  var cntxt = context || this.context;
2289
2291
  if (this.notExist(property)) {
2290
- this.boundedEvents[property] = [{ handler: handler, context: cntxt }];
2292
+ this.boundedEvents["" + property] = [{ handler: handler, context: cntxt }];
2291
2293
  return;
2292
2294
  }
2293
2295
  if (!isNullOrUndefined(id)) {
2294
2296
  if (this.ranArray.indexOf(id) === -1) {
2295
2297
  this.ranArray.push(id);
2296
- this.boundedEvents[property].push({ handler: handler, context: cntxt, id: id });
2298
+ this.boundedEvents["" + property].push({ handler: handler, context: cntxt, id: id });
2297
2299
  }
2298
2300
  }
2299
- else if (!this.isHandlerPresent(this.boundedEvents[property], handler)) {
2300
- this.boundedEvents[property].push({ handler: handler, context: cntxt });
2301
+ else if (!this.isHandlerPresent(this.boundedEvents["" + property], handler)) {
2302
+ this.boundedEvents["" + property].push({ handler: handler, context: cntxt });
2301
2303
  }
2302
2304
  };
2303
2305
  /**
@@ -2316,7 +2318,7 @@ var Observer = /** @__PURE__ @class */ (function () {
2316
2318
  if (handler) {
2317
2319
  for (var i = 0; i < curObject.length; i++) {
2318
2320
  if (id) {
2319
- if (curObject[i].id === id) {
2321
+ if (curObject[parseInt(i.toString(), 10)].id === id) {
2320
2322
  curObject.splice(i, 1);
2321
2323
  var indexLocation = this.ranArray.indexOf(id);
2322
2324
  if (indexLocation !== -1) {
@@ -2325,14 +2327,14 @@ var Observer = /** @__PURE__ @class */ (function () {
2325
2327
  break;
2326
2328
  }
2327
2329
  }
2328
- else if (handler === curObject[i].handler) {
2330
+ else if (handler === curObject[parseInt(i.toString(), 10)].handler) {
2329
2331
  curObject.splice(i, 1);
2330
2332
  break;
2331
2333
  }
2332
2334
  }
2333
2335
  }
2334
2336
  else {
2335
- delete this.boundedEvents[property];
2337
+ delete this.boundedEvents["" + property];
2336
2338
  }
2337
2339
  };
2338
2340
  /**
@@ -2356,7 +2358,7 @@ var Observer = /** @__PURE__ @class */ (function () {
2356
2358
  }
2357
2359
  var blazor = 'Blazor';
2358
2360
  var curObject = getValue(property, this.boundedEvents).slice(0);
2359
- if (window[blazor]) {
2361
+ if (window["" + blazor]) {
2360
2362
  return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);
2361
2363
  }
2362
2364
  else {
@@ -2373,7 +2375,7 @@ var Observer = /** @__PURE__ @class */ (function () {
2373
2375
  var _this = this;
2374
2376
  var isTrigger = index === objs.length - 1;
2375
2377
  if (index < objs.length) {
2376
- var obj_1 = objs[index];
2378
+ var obj_1 = objs[parseInt(index.toString(), 10)];
2377
2379
  var promise = obj_1.handler.call(obj_1.context, argument);
2378
2380
  if (promise && typeof promise.then === 'function') {
2379
2381
  if (!successHandler) {
@@ -3679,7 +3681,7 @@ var IntlBase;
3679
3681
  function isCurrencyPercent(parts, actual, symbol) {
3680
3682
  var options = { nlead: parts[0], nend: parts[1] };
3681
3683
  for (var i = 0; i < 2; i++) {
3682
- var part = parts[i];
3684
+ var part = parts[parseInt(i.toString(), 10)];
3683
3685
  var loc = part.indexOf(actual);
3684
3686
  if ((loc !== -1) && ((loc < part.indexOf('\'')) || (loc > part.lastIndexOf('\'')))) {
3685
3687
  // eslint-disable-next-line
@@ -3898,7 +3900,7 @@ var IntlBase;
3898
3900
  integer = hash + integer;
3899
3901
  pattern = '';
3900
3902
  for (var x = integer.length - 1; x > 0; x = x - 3) {
3901
- pattern = ',' + integer[x - 2] + integer[x - 1] + integer[x] + pattern;
3903
+ pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;
3902
3904
  }
3903
3905
  pattern = pattern.slice(1);
3904
3906
  return temp[1] ? (pattern + '.' + temp[1]) : pattern;
@@ -3919,9 +3921,9 @@ var IntlBase;
3919
3921
  }
3920
3922
  iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);
3921
3923
  if (mapper) {
3922
- firstDay = mapper[iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;
3924
+ firstDay = mapper["" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;
3923
3925
  }
3924
- return firstDayMapper[firstDay];
3926
+ return firstDayMapper["" + firstDay];
3925
3927
  }
3926
3928
  IntlBase.getWeekData = getWeekData;
3927
3929
  /**
@@ -4174,7 +4176,7 @@ var Browser = /** @__PURE__ @class */ (function () {
4174
4176
  var clientInfo = [];
4175
4177
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
4176
4178
  var key = keys_1[_i];
4177
- clientInfo = Browser.userAgent.match(REGX_BROWSER[key]);
4179
+ clientInfo = Browser.userAgent.match(REGX_BROWSER["" + key]);
4178
4180
  if (clientInfo) {
4179
4181
  browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());
4180
4182
  browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);
@@ -4216,9 +4218,9 @@ var Browser = /** @__PURE__ @class */ (function () {
4216
4218
  isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'
4217
4219
  }
4218
4220
  };
4219
- return (Browser.isPointer ? events[event].isPointer :
4220
- (Browser.isTouch ? events[event].isTouch + (!Browser.isDevice ? ' ' + events[event].isDevice : '')
4221
- : events[event].isDevice));
4221
+ return (Browser.isPointer ? events["" + event].isPointer :
4222
+ (Browser.isTouch ? events["" + event].isTouch + (!Browser.isDevice ? ' ' + events["" + event].isDevice : '')
4223
+ : events["" + event].isDevice));
4222
4224
  };
4223
4225
  /**
4224
4226
  * To get the Touch start event from browser
@@ -4260,17 +4262,17 @@ var Browser = /** @__PURE__ @class */ (function () {
4260
4262
  * @returns {Object} ?
4261
4263
  */
4262
4264
  Browser.getValue = function (key, regX) {
4263
- var browserDetails = window.browserDetails;
4264
- if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {
4265
+ var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};
4266
+ if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {
4265
4267
  browserDetails['isIos'] = true;
4266
4268
  browserDetails['isDevice'] = true;
4267
4269
  browserDetails['isTouch'] = true;
4268
4270
  browserDetails['isPointer'] = true;
4269
4271
  }
4270
- if ('undefined' === typeof browserDetails[key]) {
4271
- return browserDetails[key] = regX.test(Browser.userAgent);
4272
+ if ('undefined' === typeof browserDetails["" + key]) {
4273
+ return browserDetails["" + key] = regX.test(Browser.userAgent);
4272
4274
  }
4273
- return browserDetails[key];
4275
+ return browserDetails["" + key];
4274
4276
  };
4275
4277
  Object.defineProperty(Browser, "userAgent", {
4276
4278
  get: function () {
@@ -4566,15 +4568,15 @@ var EventHandler = /** @__PURE__ @class */ (function () {
4566
4568
  var event = eventName.split(' ');
4567
4569
  for (var i = 0; i < event.length; i++) {
4568
4570
  eventData.push({
4569
- name: event[i],
4571
+ name: event[parseInt(i.toString(), 10)],
4570
4572
  listener: listener,
4571
4573
  debounce: debounceListener
4572
4574
  });
4573
4575
  if (Browser.isIE) {
4574
- element.addEventListener(event[i], debounceListener);
4576
+ element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);
4575
4577
  }
4576
4578
  else {
4577
- element.addEventListener(event[i], debounceListener, { passive: false });
4579
+ element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });
4578
4580
  }
4579
4581
  }
4580
4582
  return debounceListener;
@@ -4595,7 +4597,7 @@ var EventHandler = /** @__PURE__ @class */ (function () {
4595
4597
  var debounceListener;
4596
4598
  if (eventData && eventData.length !== 0) {
4597
4599
  eventData.some(function (x, i) {
4598
- return x.name === event[j] && x.listener === listener ?
4600
+ return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?
4599
4601
  (index = i, debounceListener = x.debounce, true) : false;
4600
4602
  });
4601
4603
  }
@@ -4603,7 +4605,7 @@ var EventHandler = /** @__PURE__ @class */ (function () {
4603
4605
  eventData.splice(index, 1);
4604
4606
  }
4605
4607
  if (debounceListener) {
4606
- element.removeEventListener(event[j], debounceListener);
4608
+ element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);
4607
4609
  }
4608
4610
  };
4609
4611
  for (var j = 0; j < event.length; j++) {
@@ -4624,7 +4626,7 @@ var EventHandler = /** @__PURE__ @class */ (function () {
4624
4626
  // eslint-disable-next-line
4625
4627
  copyData = extend([], copyData, eventData);
4626
4628
  for (var i = 0; i < copyData.length; i++) {
4627
- element.removeEventListener(copyData[i].name, copyData[i].debounce);
4629
+ element.removeEventListener(copyData[parseInt(i.toString(), 10)].name, copyData[parseInt(i.toString(), 10)].debounce);
4628
4630
  eventData.shift();
4629
4631
  }
4630
4632
  };
@@ -4882,10 +4884,10 @@ function attributes(element, attributes) {
4882
4884
  if (key === 'tabindex') {
4883
4885
  iKey = 'tabIndex';
4884
4886
  }
4885
- ele.attributes[iKey] = attributes[key];
4887
+ ele.attributes["" + iKey] = attributes["" + key];
4886
4888
  }
4887
4889
  else {
4888
- ele.setAttribute(key, attributes[key]);
4890
+ ele.setAttribute(key, attributes["" + key]);
4889
4891
  }
4890
4892
  }
4891
4893
  return ele;
@@ -4933,20 +4935,20 @@ function querySelectId(selector) {
4933
4935
  if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {
4934
4936
  var idList = selector.split(',');
4935
4937
  for (var i = 0; i < idList.length; i++) {
4936
- var list = idList[i].split(' ');
4938
+ var list = idList[parseInt(i.toString(), 10)].split(' ');
4937
4939
  for (var j = 0; j < list.length; j++) {
4938
- if (list[j].indexOf('#') > -1) {
4939
- if (!list[j].match(/\[.*\]/)) {
4940
- var splitId = list[j].split('#');
4940
+ if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {
4941
+ if (!list[parseInt(j.toString(), 10)].match(/\[.*\]/)) {
4942
+ var splitId = list[parseInt(j.toString(), 10)].split('#');
4941
4943
  if (splitId[1].match(/^\d/) || splitId[1].match(charRegex)) {
4942
- var setId = list[j].split('.');
4944
+ var setId = list[parseInt(j.toString(), 10)].split('.');
4943
4945
  setId[0] = setId[0].replace(/#/, '[id=\'') + '\']';
4944
- list[j] = setId.join('.');
4946
+ list[parseInt(j.toString(), 10)] = setId.join('.');
4945
4947
  }
4946
4948
  }
4947
4949
  }
4948
4950
  }
4949
- idList[i] = list.join(' ');
4951
+ idList[parseInt(i.toString(), 10)] = list.join(' ');
4950
4952
  }
4951
4953
  return idList.join(',');
4952
4954
  }
@@ -5014,7 +5016,7 @@ function getAttributeOrDefault(element, property, value) {
5014
5016
  element.setAttribute(property, value.toString());
5015
5017
  }
5016
5018
  else {
5017
- element.attributes[property] = value;
5019
+ element.attributes["" + property] = value;
5018
5020
  }
5019
5021
  attrVal = value;
5020
5022
  }
@@ -5200,8 +5202,8 @@ var Base = /** @__PURE__ @class */ (function () {
5200
5202
  var keys = Object.keys(obj);
5201
5203
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
5202
5204
  var key = keys_1[_i];
5203
- if (parent[key] instanceof Array) {
5204
- for (var _a = 0, _b = parent[key]; _a < _b.length; _a++) {
5205
+ if (parent["" + key] instanceof Array) {
5206
+ for (var _a = 0, _b = parent["" + key]; _a < _b.length; _a++) {
5205
5207
  var obj_1 = _b[_a];
5206
5208
  if (obj_1.dataBind !== undefined) {
5207
5209
  obj_1.dataBind();
@@ -5209,7 +5211,7 @@ var Base = /** @__PURE__ @class */ (function () {
5209
5211
  }
5210
5212
  }
5211
5213
  else {
5212
- parent[key].dataBind();
5214
+ parent["" + key].dataBind();
5213
5215
  }
5214
5216
  }
5215
5217
  };
@@ -5244,8 +5246,8 @@ var Base = /** @__PURE__ @class */ (function () {
5244
5246
  newChanges = newChanges ? newChanges : {};
5245
5247
  extend(this.bulkChanges, {}, newChanges, true);
5246
5248
  var sfBlazor = 'sfBlazor';
5247
- if (this.allowServerDataBinding && window[sfBlazor].updateModel) {
5248
- window[sfBlazor].updateModel(this);
5249
+ if (this.allowServerDataBinding && window["" + sfBlazor].updateModel) {
5250
+ window["" + sfBlazor].updateModel(this);
5249
5251
  this.bulkChanges = {};
5250
5252
  }
5251
5253
  };
@@ -5254,14 +5256,14 @@ var Base = /** @__PURE__ @class */ (function () {
5254
5256
  if (isBlazor()) {
5255
5257
  // tslint:disable-next-line:no-any
5256
5258
  var newChanges = {};
5257
- newChanges[key] = newValue;
5259
+ newChanges["" + key] = newValue;
5258
5260
  this.serverDataBind(newChanges);
5259
5261
  }
5260
5262
  if (this.isProtectedOnChange) {
5261
5263
  return;
5262
5264
  }
5263
- this.oldProperties[key] = oldValue;
5264
- this.changedProperties[key] = newValue;
5265
+ this.oldProperties["" + key] = oldValue;
5266
+ this.changedProperties["" + key] = newValue;
5265
5267
  this.finalUpdate();
5266
5268
  this.finalUpdate = setImmediate(this.dataBind.bind(this));
5267
5269
  };
@@ -5307,7 +5309,7 @@ var Base = /** @__PURE__ @class */ (function () {
5307
5309
  var handler = getValue(eventName, this);
5308
5310
  if (handler) {
5309
5311
  var blazor = 'Blazor';
5310
- if (window[blazor]) {
5312
+ if (window["" + blazor]) {
5311
5313
  var promise = handler.call(this, eventProp);
5312
5314
  if (promise && typeof promise.then === 'function') {
5313
5315
  if (!successHandler) {
@@ -5397,7 +5399,7 @@ function getComponent(elem, comp) {
5397
5399
  var i;
5398
5400
  var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;
5399
5401
  for (i = 0; i < ele.ej2_instances.length; i++) {
5400
- instance = ele.ej2_instances[i];
5402
+ instance = ele.ej2_instances[parseInt(i.toString(), 10)];
5401
5403
  if (typeof comp === 'string') {
5402
5404
  var compName = instance.getModuleName();
5403
5405
  if (comp === compName) {
@@ -5425,9 +5427,9 @@ function removeChildInstance(element) {
5425
5427
  // tslint:disable-next-line:no-any
5426
5428
  var childEle = [].slice.call(element.getElementsByClassName('e-control'));
5427
5429
  for (var i = 0; i < childEle.length; i++) {
5428
- var compName = childEle[i].classList[1].split('e-')[1];
5430
+ var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];
5429
5431
  // tslint:disable-next-line:no-any
5430
- var compInstance = getComponent(childEle[i], compName);
5432
+ var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);
5431
5433
  if (!isUndefined(compInstance)) {
5432
5434
  compInstance.destroy();
5433
5435
  }
@@ -5447,9 +5449,9 @@ function removeChildInstance(element) {
5447
5449
  function getObject(instance, curKey, defaultValue, type) {
5448
5450
  // eslint-disable-next-line
5449
5451
  if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) {
5450
- instance.properties[curKey] = createInstance(type, [instance, curKey, defaultValue]);
5452
+ instance.properties["" + curKey] = createInstance(type, [instance, curKey, defaultValue]);
5451
5453
  }
5452
- return instance.properties[curKey];
5454
+ return instance.properties["" + curKey];
5453
5455
  }
5454
5456
  /**
5455
5457
  * Returns object array
@@ -5469,15 +5471,15 @@ function getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactor
5469
5471
  for (var i = 0; i < len; i++) {
5470
5472
  var curType = type;
5471
5473
  if (isFactory) {
5472
- curType = type(defaultValue[i], instance);
5474
+ curType = type(defaultValue[parseInt(i.toString(), 10)], instance);
5473
5475
  }
5474
5476
  if (isSetter) {
5475
5477
  var inst = createInstance(curType, [instance, curKey, {}, true]);
5476
- inst.setProperties(defaultValue[i], true);
5478
+ inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);
5477
5479
  result.push(inst);
5478
5480
  }
5479
5481
  else {
5480
- result.push(createInstance(curType, [instance, curKey, defaultValue[i], false]));
5482
+ result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));
5481
5483
  }
5482
5484
  }
5483
5485
  return result;
@@ -5493,9 +5495,9 @@ function propertyGetter(defaultValue, curKey) {
5493
5495
  return function () {
5494
5496
  // eslint-disable-next-line
5495
5497
  if (!this.properties.hasOwnProperty(curKey)) {
5496
- this.properties[curKey] = defaultValue;
5498
+ this.properties["" + curKey] = defaultValue;
5497
5499
  }
5498
- return this.properties[curKey];
5500
+ return this.properties["" + curKey];
5499
5501
  };
5500
5502
  }
5501
5503
  /**
@@ -5507,11 +5509,11 @@ function propertyGetter(defaultValue, curKey) {
5507
5509
  */
5508
5510
  function propertySetter(defaultValue, curKey) {
5509
5511
  return function (newValue) {
5510
- if (this.properties[curKey] !== newValue) {
5512
+ if (this.properties["" + curKey] !== newValue) {
5511
5513
  // eslint-disable-next-line
5512
5514
  var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;
5513
5515
  this.saveChanges(curKey, newValue, oldVal);
5514
- this.properties[curKey] = newValue;
5516
+ this.properties["" + curKey] = newValue;
5515
5517
  }
5516
5518
  };
5517
5519
  }
@@ -5555,7 +5557,7 @@ function complexFactoryGetter(defaultValue, curKey, type) {
5555
5557
  var curType = type({});
5556
5558
  // eslint-disable-next-line
5557
5559
  if (this.properties.hasOwnProperty(curKey)) {
5558
- return this.properties[curKey];
5560
+ return this.properties["" + curKey];
5559
5561
  }
5560
5562
  else {
5561
5563
  return getObject(this, curKey, defaultValue, curType);
@@ -5588,7 +5590,7 @@ function complexArrayGetter(defaultValue, curKey, type) {
5588
5590
  // eslint-disable-next-line
5589
5591
  if (!this.properties.hasOwnProperty(curKey)) {
5590
5592
  var defCollection = getObjectArray(this, curKey, defaultValue, type, false);
5591
- this.properties[curKey] = defCollection;
5593
+ this.properties["" + curKey] = defCollection;
5592
5594
  }
5593
5595
  var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)
5594
5596
  || this.ignoreCollectionWatch);
@@ -5596,17 +5598,17 @@ function complexArrayGetter(defaultValue, curKey, type) {
5596
5598
  if (!this.properties[curKey].hasOwnProperty('push') && !ignore) {
5597
5599
  ['push', 'pop'].forEach(function (extendFunc) {
5598
5600
  var descriptor = {
5599
- value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[curKey]).bind(_this),
5601
+ value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties["" + curKey]).bind(_this),
5600
5602
  configurable: true
5601
5603
  };
5602
- Object.defineProperty(_this.properties[curKey], extendFunc, descriptor);
5604
+ Object.defineProperty(_this.properties["" + curKey], extendFunc, descriptor);
5603
5605
  });
5604
5606
  }
5605
5607
  // eslint-disable-next-line
5606
5608
  if (!this.properties[curKey].hasOwnProperty('isComplexArray')) {
5607
- Object.defineProperty(this.properties[curKey], 'isComplexArray', { value: true });
5609
+ Object.defineProperty(this.properties["" + curKey], 'isComplexArray', { value: true });
5608
5610
  }
5609
- return this.properties[curKey];
5611
+ return this.properties["" + curKey];
5610
5612
  };
5611
5613
  }
5612
5614
  /**
@@ -5623,7 +5625,7 @@ function complexArraySetter(defaultValue, curKey, type) {
5623
5625
  var newValCollection = getObjectArray(this, curKey, newValue, type, true);
5624
5626
  this.isComplexArraySetter = false;
5625
5627
  this.saveChanges(curKey, newValCollection, oldValueCollection);
5626
- this.properties[curKey] = newValCollection;
5628
+ this.properties["" + curKey] = newValCollection;
5627
5629
  };
5628
5630
  }
5629
5631
  /**
@@ -5639,7 +5641,7 @@ function complexArrayFactorySetter(defaultValue, curKey, type) {
5639
5641
  var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;
5640
5642
  var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);
5641
5643
  this.saveChanges(curKey, newValCollection, oldValueCollection);
5642
- this.properties[curKey] = newValCollection;
5644
+ this.properties["" + curKey] = newValCollection;
5643
5645
  };
5644
5646
  }
5645
5647
  /**
@@ -5655,9 +5657,9 @@ function complexArrayFactoryGetter(defaultValue, curKey, type) {
5655
5657
  // eslint-disable-next-line
5656
5658
  if (!this.properties.hasOwnProperty(curKey)) {
5657
5659
  var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);
5658
- this.properties[curKey] = defCollection;
5660
+ this.properties["" + curKey] = defCollection;
5659
5661
  }
5660
- return this.properties[curKey];
5662
+ return this.properties["" + curKey];
5661
5663
  };
5662
5664
  }
5663
5665
  /**
@@ -5679,13 +5681,13 @@ function complexArrayDefinedCallback(dFunc, curKey, type, prop) {
5679
5681
  switch (dFunc) {
5680
5682
  case 'push':
5681
5683
  for (var i = 0; i < newValue.length; i++) {
5682
- Array.prototype[dFunc].apply(prop, [newValue[i]]);
5683
- var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[i], !this.controlParent, dFunc);
5684
- this.serverDataBind(model_1, newValue[i], false, dFunc);
5684
+ Array.prototype["" + dFunc].apply(prop, [newValue[parseInt(i.toString(), 10)]]);
5685
+ var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[parseInt(i.toString(), 10)], !this.controlParent, dFunc);
5686
+ this.serverDataBind(model_1, newValue[parseInt(i.toString(), 10)], false, dFunc);
5685
5687
  }
5686
5688
  break;
5687
5689
  case 'pop':
5688
- Array.prototype[dFunc].apply(prop);
5690
+ Array.prototype["" + dFunc].apply(prop);
5689
5691
  // eslint-disable-next-line
5690
5692
  var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);
5691
5693
  this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);
@@ -5706,10 +5708,10 @@ function getArrayModel(keyString, value, isControlParent, arrayFunction) {
5706
5708
  var modelObject = keyString;
5707
5709
  if (isControlParent) {
5708
5710
  modelObject = {};
5709
- modelObject[keyString] = value;
5711
+ modelObject["" + keyString] = value;
5710
5712
  if (value && typeof value === 'object') {
5711
5713
  var action = 'ejsAction';
5712
- modelObject[keyString][action] = arrayFunction;
5714
+ modelObject["" + keyString]["" + action] = arrayFunction;
5713
5715
  }
5714
5716
  }
5715
5717
  return modelObject;
@@ -5850,14 +5852,14 @@ function Event$1() {
5850
5852
  return function (target, key) {
5851
5853
  var eventDescriptor = {
5852
5854
  set: function (newValue) {
5853
- var oldValue = this.properties[key];
5855
+ var oldValue = this.properties["" + key];
5854
5856
  if (oldValue !== newValue) {
5855
5857
  var finalContext = getParentContext(this, key);
5856
5858
  if (isUndefined(oldValue) === false) {
5857
5859
  finalContext.context.removeEventListener(finalContext.prefix, oldValue);
5858
5860
  }
5859
5861
  finalContext.context.addEventListener(finalContext.prefix, newValue);
5860
- this.properties[key] = newValue;
5862
+ this.properties["" + key] = newValue;
5861
5863
  }
5862
5864
  },
5863
5865
  get: propertyGetter(undefined, key),
@@ -5973,7 +5975,7 @@ function getBuilderProperties(component) {
5973
5975
  };
5974
5976
  }
5975
5977
  };
5976
- for (var _b = 0, _c = component.prototype.propList[key]; _b < _c.length; _b++) {
5978
+ for (var _b = 0, _c = component.prototype.propList["" + key]; _b < _c.length; _b++) {
5977
5979
  var prop = _c[_b];
5978
5980
  _loop_1(prop);
5979
5981
  }
@@ -6129,11 +6131,21 @@ var Animation = /** @__PURE__ @class */ (function (_super) {
6129
6131
  * @returns {void}
6130
6132
  */
6131
6133
  Animation.delayAnimation = function (model) {
6132
- if (model.delay) {
6133
- setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);
6134
+ if (animationMode === 'Disable') {
6135
+ if (model.begin) {
6136
+ model.begin.call(this, model);
6137
+ }
6138
+ if (model.end) {
6139
+ model.end.call(this, model);
6140
+ }
6134
6141
  }
6135
6142
  else {
6136
- Animation_1.applyAnimation(model);
6143
+ if (model.delay) {
6144
+ setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);
6145
+ }
6146
+ else {
6147
+ Animation_1.applyAnimation(model);
6148
+ }
6137
6149
  }
6138
6150
  };
6139
6151
  /**
@@ -6296,7 +6308,9 @@ var Animation = /** @__PURE__ @class */ (function (_super) {
6296
6308
  function rippleEffect(element, rippleOptions, done) {
6297
6309
  var rippleModel = getRippleModel(rippleOptions);
6298
6310
  if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {
6299
- return (function () { });
6311
+ return (function () {
6312
+ // do nothing.
6313
+ });
6300
6314
  }
6301
6315
  element.setAttribute('data-ripple', 'true');
6302
6316
  EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });
@@ -6438,6 +6452,21 @@ function enableRipple(isRipple) {
6438
6452
  isRippleEnabled = isRipple;
6439
6453
  return isRippleEnabled;
6440
6454
  }
6455
+ /**
6456
+ * Defines the Modes of Global animation.
6457
+ *
6458
+ * @private
6459
+ */
6460
+ var animationMode = '';
6461
+ /**
6462
+ * Method for set the Global animation modes for Syncfusion Blazor components.
6463
+ *
6464
+ * @param {string} value - Specifies the animation mode.
6465
+ * @returns {void}
6466
+ */
6467
+ function setGlobalAnimation(value) {
6468
+ animationMode = value;
6469
+ }
6441
6470
 
6442
6471
  /**
6443
6472
  * Module loading operations
@@ -6465,11 +6494,11 @@ var ModuleLoader = /** @__PURE__ @class */ (function () {
6465
6494
  this.clearUnusedModule(requiredModules);
6466
6495
  }
6467
6496
  for (var i = 0; i < reqLength; i++) {
6468
- var modl = requiredModules[i];
6497
+ var modl = requiredModules[parseInt(i.toString(), 10)];
6469
6498
  for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {
6470
6499
  var module = moduleList_1[_i];
6471
6500
  var modName = modl.member;
6472
- if (module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {
6501
+ if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {
6473
6502
  var moduleObject = createInstance(module, modl.args);
6474
6503
  var memberName = this.getMemberName(modName);
6475
6504
  if (modl.isProperty) {
@@ -6577,10 +6606,10 @@ var ChildProperty = /** @__PURE__ @class */ (function () {
6577
6606
  */
6578
6607
  ChildProperty.prototype.updateChange = function (val, propName) {
6579
6608
  if (val === true) {
6580
- this.parentObj.childChangedProperties[propName] = val;
6609
+ this.parentObj.childChangedProperties["" + propName] = val;
6581
6610
  }
6582
6611
  else {
6583
- delete this.parentObj.childChangedProperties[propName];
6612
+ delete this.parentObj.childChangedProperties["" + propName];
6584
6613
  }
6585
6614
  if (this.parentObj.updateChange) {
6586
6615
  this.parentObj.updateChange(val, this.parentObj.propName);
@@ -6668,8 +6697,8 @@ var ChildProperty = /** @__PURE__ @class */ (function () {
6668
6697
  if (!restrictServerDataBind) {
6669
6698
  this.serverDataBind(key, newValue, true);
6670
6699
  }
6671
- this.oldProperties[key] = oldValue;
6672
- this.changedProperties[key] = newValue;
6700
+ this.oldProperties["" + key] = oldValue;
6701
+ this.changedProperties["" + key] = newValue;
6673
6702
  this.updateChange(true, this.propName);
6674
6703
  this.finalUpdate();
6675
6704
  this.updateTimeOut();
@@ -6685,19 +6714,19 @@ var ChildProperty = /** @__PURE__ @class */ (function () {
6685
6714
  parent_1 = newChanges;
6686
6715
  for (var i = 0; i < complexKeys.length; i++) {
6687
6716
  var isFinal = i === complexKeys.length - 1;
6688
- parent_1[complexKeys[i]] = isFinal ? value : {};
6689
- parent_1 = isFinal ? parent_1 : parent_1[complexKeys[i]];
6717
+ parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};
6718
+ parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];
6690
6719
  }
6691
6720
  }
6692
6721
  else {
6693
- newChanges[parentKey] = {};
6694
- parent_1 = newChanges[parentKey];
6695
- newChanges[parentKey][key] = value;
6722
+ newChanges["" + parentKey] = {};
6723
+ parent_1 = newChanges["" + parentKey];
6724
+ newChanges["" + parentKey]["" + key] = value;
6696
6725
  }
6697
6726
  /* istanbul ignore next */
6698
6727
  if (this.isParentArray) {
6699
6728
  var actionProperty = 'ejsAction';
6700
- parent_1[actionProperty] = action ? action : 'none';
6729
+ parent_1["" + actionProperty] = action ? action : 'none';
6701
6730
  }
6702
6731
  this.controlParent.serverDataBind(newChanges);
6703
6732
  }
@@ -6722,58 +6751,83 @@ var ChildProperty = /** @__PURE__ @class */ (function () {
6722
6751
  return ChildProperty;
6723
6752
  }());
6724
6753
 
6754
+ var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];
6725
6755
  var bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,
6726
6756
  111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,
6727
6757
  105, 100, 97, 116, 101, 100];
6758
+ var accountURL;
6728
6759
  /**
6729
6760
  * License validation module
6761
+ *
6730
6762
  * @private
6731
6763
  */
6732
6764
  var LicenseValidator = /** @__PURE__ @class */ (function () {
6733
6765
  function LicenseValidator(key) {
6734
6766
  this.isValidated = false;
6735
- this.version = '20.1';
6767
+ this.isLicensed = true;
6768
+ this.version = '20.4';
6736
6769
  this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats/i;
6737
6770
  this.errors = {
6738
- noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' +
6739
- ' Please include a valid license to permanently remove this license validation message.' +
6740
- ' You can also obtain a free 30 day evaluation license to temporarily remove this message ' +
6741
- 'during the evaluation period. Please refer to this <a style="color:yellow;text-decoration:none;"' +
6742
- 'href="https://help.syncfusion.com/common/essential-studio/licensing">help topic</a> for more information.',
6743
- trailExpired: 'Your Syncfusion trial license has expired. Please refer to this ' +
6744
- '<a style="color:yellow;text-decoration:none;"' +
6745
- 'href="https://help.syncfusion.com/common/essential-studio/licensing/licensing-errors#trial-expired">help topic</a> for more information.',
6746
- versionMismatched: 'The included Syncfusion license (v##LicenseVersion) is invalid for version ' +
6747
- '##Requireversion. Please refer to this <a style="color:yellow;text-decoration:none;" ' +
6748
- 'href="https://help.syncfusion.com/es/licensing/version-mismatch/">help topic</a> for more information.',
6749
- platformMismatched: 'The included Syncfusion license is invalid (Platform mismatch). Please refer' +
6750
- ' to this <a style="color:yellow;text-decoration:none;" ' +
6751
- 'href="https://help.syncfusion.com/common/essential-studio/licensing/licensing-errors#platform-mismatch">help topic</a> for more information.',
6752
- invalidKey: 'The included Syncfusion license is invalid. Please refer to this ' +
6753
- '<a style="color:yellow;text-decoration:none;" ' +
6754
- 'href="https://help.syncfusion.com/common/essential-studio/licensing/licensing-errors#invalid-key">help topic</a> for more information.'
6771
+ noLicense: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +
6772
+ ' To remove the license validation message permanently, a valid license key must be included.</span>',
6773
+ trailExpired: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +
6774
+ ' To remove the license validation message permanently, a valid license key must be included.</span>',
6775
+ versionMismatched: '<span>The included Syncfusion license key is invalid.</span>',
6776
+ platformMismatched: '<span>The included Syncfusion license key is invalid.</span>',
6777
+ invalidKey: '<span>The included Syncfusion license key is invalid.</span>'
6755
6778
  };
6756
6779
  /**
6757
6780
  * To manage licensing operation.
6758
6781
  */
6759
6782
  this.manager = (function () {
6760
6783
  var licKey = null;
6784
+ /**
6785
+ * Sets the license key.
6786
+ *
6787
+ * @param {string} key - Specifies the license key.
6788
+ * @returns {void}
6789
+ */
6761
6790
  function set(key) { licKey = key; }
6791
+ /**
6792
+ * Gets the license key.
6793
+ *
6794
+ * @returns {string} -Gets the license key.
6795
+ */
6762
6796
  function get() { return licKey; }
6763
6797
  return {
6764
6798
  setKey: set,
6765
6799
  getKey: get
6766
6800
  };
6767
6801
  })();
6802
+ /**
6803
+ * To manage npx licensing operation.
6804
+ */
6805
+ this.npxManager = (function () {
6806
+ var npxLicKey = 'npxKeyReplace';
6807
+ /**
6808
+ * Gets the license key.
6809
+ *
6810
+ * @returns {string} - Gets the license key.
6811
+ */
6812
+ function get() { return npxLicKey; }
6813
+ return {
6814
+ getKey: get
6815
+ };
6816
+ })();
6768
6817
  this.manager.setKey(key);
6769
6818
  }
6770
6819
  /**
6771
6820
  * To validate the provided license key.
6772
- */
6821
+ */
6773
6822
  LicenseValidator.prototype.validate = function () {
6823
+ var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,
6824
+ 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];
6825
+ var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,
6826
+ 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];
6774
6827
  if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {
6775
6828
  var validateMsg = void 0;
6776
- if (this.manager && this.manager.getKey()) {
6829
+ var validateURL = void 0;
6830
+ if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {
6777
6831
  var result = this.getInfoFromKey();
6778
6832
  if (result && result.length) {
6779
6833
  for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {
@@ -6803,28 +6857,28 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6803
6857
  }
6804
6858
  }
6805
6859
  else {
6806
- validateMsg = this.errors.noLicense;
6860
+ var licenseContent = getValue(convertToChar(contentKey), containerObject);
6861
+ validateURL = getValue(convertToChar(URLKey), containerObject);
6862
+ if (licenseContent && licenseContent !== '') {
6863
+ validateMsg = licenseContent;
6864
+ }
6865
+ else {
6866
+ validateMsg = this.errors.noLicense;
6867
+ }
6807
6868
  }
6808
- if (validateMsg && typeof document !== "undefined" && !isNullOrUndefined(document)) {
6869
+ if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {
6870
+ accountURL = (validateURL && validateURL !== '') ? validateURL : "https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjAuNA==";
6809
6871
  var errorDiv = createElement('div', {
6810
- innerHTML: validateMsg +
6811
- '<span style="position:absolute;right: 10px;top:27%;cursor:pointer;"' +
6812
- 'onClick=this.parentElement.remove();>' +
6813
- '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20">' +
6814
- '<line x1="5" y1="5" x2="15" y2="15" stroke="yellow" stroke-width="2.5" ' +
6815
- 'stroke-miterlimit="10" stroke-linecap="round"></line><line x1="15" y1="5" ' +
6816
- 'x2="5" y2="15" stroke="yellow" stroke-width="2.5" stroke-linecap="round" ' +
6817
- 'stroke-miterlimit="10"></line></svg></span>',
6818
- styles: 'position:fixed;top:0;left:0;right:0;font-family:"Segoe UI";font-size:16px;' +
6819
- 'background:repeating-linear-gradient(45deg,#d70f0f,#d70f0f 10px,#e12121 10px,#e12121 17px);' +
6820
- 'color:#ffffff;z-index:999999999;text-align:center;padding:10px 50px 10px 25px;'
6872
+ innerHTML: "<img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE5OV80KSI+CjxwYXRoIGQ9Ik0xMiAyMUMxNi45NzA2IDIxIDIxIDE2Ljk3MDYgMjEgMTJDMjEgNy4wMjk0NCAxNi45NzA2IDMgMTIgM0M3LjAyOTQ0IDMgMyA3LjAyOTQ0IDMgMTJDMyAxNi45NzA2IDcuMDI5NDQgMjEgMTIgMjFaIiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBmaWxsPSIjNjE2MDYzIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS44MTI1IDlDMTIuNDMzOCA5IDEyLjkzNzUgOC40OTYzMiAxMi45Mzc1IDcuODc1QzEyLjkzNzUgNy4yNTM2OCAxMi40MzM4IDYuNzUgMTEuODEyNSA2Ljc1QzExLjE5MTIgNi43NSAxMC42ODc1IDcuMjUzNjggMTAuNjg3NSA3Ljg3NUMxMC42ODc1IDguNDk2MzIgMTEuMTkxMiA5IDExLjgxMjUgOVoiIGZpbGw9IiM3MzczNzMiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTlfNCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K' style=\"top: 6px;\n position: absolute;\n left: 16px;\n width: 24px;\n height: 24px;\"/>" + validateMsg + ' ' + '<a style="text-decoration: none;color: #0D6EFD;font-weight: 500;" href=' + accountURL + '>Claim your free account</a>'
6821
6873
  });
6822
- errorDiv.setAttribute('id', 'js-licensing');
6874
+ errorDiv.setAttribute('style', "position: fixed;\n top: 10px;\n left: 10px;\n right: 10px;\n font-size: 14px;\n background: #EEF2FF;\n color: #222222;\n z-index: 999999999;\n text-align: left;\n border: 1px solid #EEEEEE;\n padding: 10px 11px 10px 50px;\n border-radius: 8px;\n font-family: Helvetica Neue, Helvetica, Arial;");
6823
6875
  document.body.appendChild(errorDiv);
6876
+ this.isLicensed = false;
6824
6877
  }
6825
6878
  this.isValidated = true;
6826
6879
  setValue(convertToChar(bypassKey), this.isValidated, containerObject);
6827
6880
  }
6881
+ return this.isLicensed;
6828
6882
  };
6829
6883
  LicenseValidator.prototype.getDecryptedData = function (key) {
6830
6884
  try {
@@ -6836,17 +6890,27 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6836
6890
  };
6837
6891
  /**
6838
6892
  * Get license information from key.
6893
+ *
6894
+ * @returns {IValidator} - Get license information from key.
6839
6895
  */
6840
6896
  LicenseValidator.prototype.getInfoFromKey = function () {
6841
6897
  try {
6842
- var licKey = this.manager.getKey();
6843
- var licKeySplit = licKey.split(';');
6898
+ var licKey = '';
6844
6899
  var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,
6845
6900
  6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,
6846
6901
  6356992, 7602176, 4587520, 7274496, 7471104, 7143424];
6847
6902
  var decryptedStr = [];
6848
6903
  var resultArray = [];
6849
6904
  var invalidPlatform = false;
6905
+ var isNpxKey = false;
6906
+ if (this.manager.getKey()) {
6907
+ licKey = this.manager.getKey();
6908
+ }
6909
+ else {
6910
+ isNpxKey = true;
6911
+ licKey = this.npxManager.getKey().split('npxKeyReplace')[1];
6912
+ }
6913
+ var licKeySplit = licKey.split(';');
6850
6914
  for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) {
6851
6915
  var lKey = licKeySplit_1[_i];
6852
6916
  var decodeStr = this.getDecryptedData(lKey);
@@ -6855,12 +6919,24 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6855
6919
  }
6856
6920
  var k = 0;
6857
6921
  var buffr = '';
6858
- for (var i = 0; i < decodeStr.length; i++, k++) {
6859
- if (k === pkey.length) {
6860
- k = 0;
6922
+ if (!isNpxKey) {
6923
+ for (var i = 0; i < decodeStr.length; i++, k++) {
6924
+ if (k === pkey.length) {
6925
+ k = 0;
6926
+ }
6927
+ var c = decodeStr.charCodeAt(i);
6928
+ buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));
6929
+ }
6930
+ }
6931
+ else {
6932
+ var charKey = decodeStr[decodeStr.length - 1];
6933
+ var decryptedKey = [];
6934
+ for (var i = 0; i < decodeStr.length; i++) {
6935
+ decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0);
6936
+ }
6937
+ for (var i = 0; i < decryptedKey.length; i++) {
6938
+ buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);
6861
6939
  }
6862
- var c = decodeStr.charCodeAt(i);
6863
- buffr += String.fromCharCode(c ^ (pkey[k] >> 16));
6864
6940
  }
6865
6941
  if (this.platform.test(buffr)) {
6866
6942
  decryptedStr = buffr.split(';');
@@ -6890,6 +6966,12 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6890
6966
  return LicenseValidator;
6891
6967
  }());
6892
6968
  var licenseValidator = new LicenseValidator();
6969
+ /**
6970
+ * Converts the given number to characters.
6971
+ *
6972
+ * @param {number} cArr - Specifies the license key as number.
6973
+ * @returns {string}
6974
+ */
6893
6975
  function convertToChar(cArr) {
6894
6976
  var ret = '';
6895
6977
  for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {
@@ -6900,7 +6982,9 @@ function convertToChar(cArr) {
6900
6982
  }
6901
6983
  /**
6902
6984
  * To set license key.
6985
+ *
6903
6986
  * @param {string} key - license key
6987
+ * @returns {void}
6904
6988
  */
6905
6989
  function registerLicense(key) {
6906
6990
  licenseValidator = new LicenseValidator(key);
@@ -6909,11 +6993,21 @@ var validateLicense = function (key) {
6909
6993
  if (key) {
6910
6994
  registerLicense(key);
6911
6995
  }
6912
- licenseValidator.validate();
6996
+ return licenseValidator.validate();
6913
6997
  };
6914
6998
  var getVersion = function () {
6915
6999
  return licenseValidator.version;
6916
7000
  };
7001
+ // Method for create overlay over the sample
7002
+ var createLicenseOverlay = function () {
7003
+ var bannerTemplate = "\n <div style=\"\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 99999;\n \">\n <div style=\"\n background: #FFFFFF;\n height: 455px;\n width: 840px;\n font-family: Helvetica Neue, Helvetica, Arial;\n color: #000000;\n box-shadow: 0px 4.8px 14.4px rgb(0 0 0 / 18%), 0px 25.6px 57.6px rgb(0 0 0 / 22%);\n display: block;\n margin: 8% auto;\n border-radius: 20px;\n \">\n <div style=\"\n position: absolute;\nwidth: 838px;\nheight: 62px;\nbackground-color: #F9F9F9;\nborder: 1px solid #EEEEEE;\nborder-top-left-radius: 20px;\nborder-top-right-radius: 20px;\n\">\n <img src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ2IiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMTQ2IDMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNDAuNTk2NSAxNS4wMDc4SDMyLjQyNUMzMS41NTU3IDE1LjAwNzggMzAuOTAzNyAxNS4xODEyIDMwLjUxMjUgMTUuNDg0NkMzMC4xMjEzIDE1LjgzMTQgMjkuOTA0IDE2LjMwODIgMjkuOTA0IDE3LjA0NTFDMjkuOTA0IDE3LjYwODYgMzAuMDc3OCAxOC4wNDIxIDMwLjQyNTYgMTguMzAyMkMzMC43NzMzIDE4LjYwNTYgMzEuMjk0OSAxOC43MzU2IDMxLjk5MDMgMTguNzM1NkgzNi4zMzY5QzM4LjExODkgMTguNzM1NiAzOS40MjI5IDE5LjA4MjQgNDAuMTYxOCAxOS43MzI2QzQwLjk0NDIgMjAuNDI2MiA0MS4yOTE5IDIxLjU1MzIgNDEuMjkxOSAyMy4xMTM3QzQxLjI5MTkgMjQuNzE3NiA0MC44NTcyIDI1Ljg4OCAzOS45ODc5IDI2LjY2ODJDMzkuMTE4NiAyNy40MDUxIDM3LjcyNzcgMjcuNzk1MyAzNS44NTg3IDI3Ljc5NTNIMjcuMDc4N1YyNS4wMjFIMzUuMzM3MkMzNi4yOTM0IDI1LjAyMSAzNi45NDU0IDI0Ljg5MSAzNy4zMzY2IDI0LjYzMDlDMzcuNzI3NyAyNC4zNzA4IDM3LjkwMTYgMjMuODk0IDM3LjkwMTYgMjMuMjg3MUMzNy45MDE2IDIyLjYzNjkgMzcuNzI3NyAyMi4xNjAxIDM3LjM4IDIxLjlDMzcuMDMyMyAyMS42Mzk5IDM2LjQyMzggMjEuNDY2NSAzNS41NTQ1IDIxLjQ2NjVIMzEuNjQyNkMyOS44NjA1IDIxLjQ2NjUgMjguNTEzMSAyMS4xMTk4IDI3LjY4NzMgMjAuMzgyOEMyNi44NjE0IDE5LjY0NTkgMjYuNDI2OCAxOC41MTg5IDI2LjQyNjggMTcuMDAxN0MyNi40MjY4IDE1LjM1NDUgMjYuODYxNCAxNC4xNDA4IDI3LjczMDcgMTMuMzYwNkMyOC42IDEyLjU4MDMgMjkuOTkwOSAxMi4yMzM1IDMxLjkwMzQgMTIuMjMzNUg0MC41OTY1VjE1LjAwNzhaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik00OC4wNzI3IDI1LjI4MTFINTAuNTA2OFYxNi4zOTQ5SDUzLjU0OTNWMjcuNTM1MkM1My41NDkzIDI5LjA1MjQgNTMuMjAxNiAzMC4xNzk0IDUyLjUwNjIgMzAuOTE2M0M1MS44MTA3IDMxLjY1MzIgNTAuNzI0MSAzMiA0OS4yNDYzIDMySDQzLjMzNVYyOS42NTkySDQ4LjcyNDdDNDkuMjg5NyAyOS42NTkyIDQ5Ljc2NzkgMjkuNTI5MiA1MC4wNzIxIDI5LjIyNThDNTAuMzc2NCAyOC45NjU3IDUwLjU1MDIgMjguNTMyMiA1MC41NTAyIDI4LjAxMlYyNy44Mzg2SDQ3Ljg5ODlDNDYuMjAzNyAyNy44Mzg2IDQ0Ljk0MzIgMjcuNDkxOSA0NC4yNDc4IDI2Ljg0MTZDNDMuNTA4OSAyNi4xNDgxIDQzLjE2MTEgMjUuMDY0NCA0My4xNjExIDIzLjQ2MDVWMTYuMzk0OUg0Ni4xNjAyVjIzLjIwMDVDNDYuMTYwMiAyNC4wNjc0IDQ2LjI5MDYgMjQuNjMwOSA0Ni41NTE0IDI0Ljg5MUM0Ni43MjUzIDI1LjE1MTEgNDcuMjQ2OSAyNS4yODExIDQ4LjA3MjcgMjUuMjgxMVoiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTU1Ljg5NjUgMTYuMzk0OUg2MS41OTA0QzYzLjMyOTEgMTYuMzk0OSA2NC41NDYxIDE2LjY5ODMgNjUuMjg1IDE3LjM0ODVDNjYuMDIzOSAxNy45OTg4IDY2LjM3MTYgMTkuMDgyNCA2Ni4zNzE2IDIwLjU1NjNWMjcuNzk1M0g2My4zMjkxVjIwLjk0NjRDNjMuMzI5MSAyMC4wNzk0IDYzLjE5ODcgMTkuNTE1OSA2Mi45Mzc5IDE5LjI5OTJDNjIuNjc3MSAxOS4wMzkxIDYyLjE1NTUgMTguOTA5MSA2MS4zMjk3IDE4LjkwOTFINTguODk1NlYyNy44Mzg2SDU1Ljg1M1YxNi4zOTQ5SDU1Ljg5NjVaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03NC45MzQyIDI1LjM2NzhINzguMTUwNlYyNy43OTUySDc0LjAyMTRDNzIuOTc4MiAyNy43OTUyIDcyLjEwODkgMjcuNjY1MiA3MS40NTcgMjcuNDkxOEM3MC44MDUgMjcuMjc1IDcwLjE5NjUgMjYuOTI4MyA2OS43MTgzIDI2LjQ1MTRDNjkuMTk2OCAyNS45MzEzIDY4Ljc2MjEgMjUuMjgxMSA2OC40NTc4IDI0LjU0NDJDNjguMTUzNiAyMy44MDcyIDY4LjAyMzIgMjIuOTgzNiA2OC4wMjMyIDIyLjE2QzY4LjAyMzIgMjEuMjkzMSA2OC4xNTM2IDIwLjQ2OTUgNjguNDU3OCAxOS42ODkyQzY4Ljc2MjEgMTguOTA5IDY5LjE1MzMgMTguMzAyMSA2OS43MTgzIDE3Ljc4MTlDNzAuMjM5OSAxNy4zMDUxIDcwLjgwNSAxNi45NTgzIDcxLjUwMDQgMTYuNzQxNkM3Mi4xOTU5IDE2LjUyNDkgNzMuMDIxNyAxNi40MzgyIDc0LjA2NDkgMTYuNDM4Mkg3OC4xOTQxVjE4LjkwOUg3NC45MzQyQzczLjQ5OTggMTguOTA5IDcyLjU0MzYgMTkuMTY5MSA3MS45Nzg1IDE5LjY0NTlDNzEuNDU2OSAyMC4xMjI3IDcxLjE1MjcgMjAuOTg5NyA3MS4xNTI3IDIyLjIwMzRDNzEuMTUyNyAyMi44OTY5IDcxLjI4MzEgMjMuNDYwNSA3MS41MDA0IDIzLjkzNzNDNzEuNzE3NyAyNC40MTQxIDcyLjA2NTUgMjQuNzYwOSA3Mi41MDAxIDI1LjA2NDNDNzIuNzE3NCAyNS4xOTQ0IDcyLjk3ODIgMjUuMjgxMSA3My4yODI1IDI1LjM2NzhDNzMuNjMwMiAyNS4zMjQ0IDc0LjE1MTggMjUuMzY3OCA3NC45MzQyIDI1LjM2NzhaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik04MC44NDU2IDE4LjY0ODlINzguNjcyNFYxNi4zNTE1SDgwLjg0NTZWMTUuMTgxMUM4MC44NDU2IDE0LjAxMDggODEuMDYzIDEzLjIzMDUgODEuNDk3NiAxMi44NDA0QzgxLjkzMjMgMTIuNDUwMyA4Mi43NTgxIDEyLjIzMzUgODMuOTc1MSAxMi4yMzM1SDg2Ljg0MzhWMTQuNDAwOUg4NS40MDk1Qzg0Ljg4NzkgMTQuNDAwOSA4NC41NDAyIDE0LjQ4NzYgODQuMzIyOSAxNC42NjFDODQuMTA1NSAxNC44MzQ0IDgzLjk3NTEgMTUuMDk0NSA4My45NzUxIDE1LjQ0MTJWMTYuMzUxNUg4Ni44NDM4VjE4LjY0ODlIODMuOTc1MVYyNy43OTUzSDgwLjg0NTZWMTguNjQ4OVoiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTk4LjQwNTYgMjcuNzk1M0g5Mi43MTE2QzkxLjAxNjUgMjcuNzk1MyA4OS44NDI5IDI3LjQ0ODUgODkuMDYwNSAyNi43OTgzQzg4LjMyMTYgMjYuMTQ4MSA4Ny45MzA0IDI1LjA2NDQgODcuOTMwNCAyMy41OTA2VjE2LjM5NDlIOTAuOTI5NVYyMy40MTcyQzkwLjkyOTUgMjQuMTk3NCA5MS4wNTk5IDI0LjY3NDMgOTEuMzIwNyAyNC45MzQ0QzkxLjU4MTUgMjUuMTk0NCA5Mi4xMDMxIDI1LjMyNDUgOTIuOTI4OSAyNS4zMjQ1SDk1LjM2M1YxNi4zOTQ5SDk4LjQwNTZWMjcuNzk1M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTEwMC42MjIgMjUuNDExMkgxMDcuMDExQzEwNy41NzcgMjUuNDExMiAxMDguMDExIDI1LjMyNDUgMTA4LjI3MiAyNS4xNTExQzEwOC41MzMgMjQuOTc3NyAxMDguNjYzIDI0LjY3NDMgMTA4LjY2MyAyNC4zMjc1QzEwOC42NjMgMjMuOTM3NCAxMDguNTMzIDIzLjY3NzMgMTA4LjI3MiAyMy40NjA1QzEwOC4wMTEgMjMuMjg3MSAxMDcuNTc3IDIzLjIwMDUgMTA3LjA1NSAyMy4yMDA1SDEwNC40NDdDMTAyLjg4MiAyMy4yMDA1IDEwMS44MzkgMjIuOTgzNyAxMDEuMzE4IDIyLjUwNjlDMTAwLjc1MiAyMi4wMzAxIDEwMC40OTIgMjEuMjA2NSAxMDAuNDkyIDE5Ljk5MjdDMTAwLjQ5MiAxOC43NzkgMTAwLjgzOSAxNy44Njg3IDEwMS40OTEgMTcuMjYxOEMxMDIuMTQzIDE2LjY5ODMgMTAzLjE4NyAxNi4zOTQ5IDEwNC41MzQgMTYuMzk0OUgxMTEuMDU0VjE4Ljc3OUgxMDUuNzA4QzEwNC44MzggMTguNzc5IDEwNC4yNzMgMTguODY1NyAxMDQuMDEyIDE4Ljk5NTdDMTAzLjc1MiAxOS4xNjkxIDEwMy42MjEgMTkuNDI5MiAxMDMuNjIxIDE5LjgxOTRDMTAzLjYyMSAyMC4xNjYxIDEwMy43NTIgMjAuNDI2MiAxMDMuOTY5IDIwLjU5OTZDMTA0LjE4NiAyMC43NzMgMTA0LjU3NyAyMC44NTk3IDEwNS4wNTYgMjAuODU5N0gxMDcuNzk0QzEwOS4wNTQgMjAuODU5NyAxMTAuMDExIDIxLjE2MzEgMTEwLjY2MyAyMS43MjY2QzExMS4zMTUgMjIuMjkwMiAxMTEuNjYyIDIzLjE1NzEgMTExLjY2MiAyNC4yNDA4QzExMS42NjIgMjUuMjgxMSAxMTEuMzU4IDI2LjE0ODEgMTEwLjc5MyAyNi43OTgzQzExMC4yMjggMjcuNDQ4NSAxMDkuNDQ2IDI3Ljc5NTMgMTA4LjUzMyAyNy43OTUzSDEwMC43MDlWMjUuNDExMkgxMDAuNjIyWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTE2LjU3NCAxNS4wOTQ0SDExMy40MDFWMTIuMjc2OUgxMTYuNTc0VjE1LjA5NDRaTTExNi41NzQgMjcuNzk1M0gxMTMuNDAxVjE2LjM5NDlIMTE2LjU3NFYyNy43OTUzWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTMwLjMwOSAyMi4xMTY3QzEzMC4zMDkgMjMuODkzOSAxMjkuNzQ0IDI1LjMyNDQgMTI4LjY1NyAyNi40MDgxQzEyNy41NzEgMjcuNDkxOCAxMjYuMDkzIDI4LjAxMiAxMjQuMjI0IDI4LjAxMkMxMjIuMzU1IDI4LjAxMiAxMjAuODc3IDI3LjQ5MTggMTE5Ljc5IDI2LjQwODFDMTE4LjcwNCAyNS4zMjQ0IDExOC4xMzkgMjMuODkzOSAxMTguMTM5IDIyLjExNjdDMTE4LjEzOSAyMC4zMzk0IDExOC43MDQgMTguOTA5IDExOS43OSAxNy44MjUzQzEyMC44NzcgMTYuNzQxNiAxMjIuMzk4IDE2LjIyMTQgMTI0LjIyNCAxNi4yMjE0QzEyNi4wNDkgMTYuMjIxNCAxMjcuNTI3IDE2Ljc0MTYgMTI4LjY1NyAxNy44MjUzQzEyOS43NDQgMTguODY1NiAxMzAuMzA5IDIwLjI5NjEgMTMwLjMwOSAyMi4xMTY3Wk0xMjEuMjY4IDIyLjExNjdDMTIxLjI2OCAyMy4yMDA0IDEyMS41MjkgMjQuMDY3MyAxMjIuMDUxIDI0LjY3NDJDMTIyLjU3MiAyNS4yODExIDEyMy4yNjggMjUuNTg0NSAxMjQuMTggMjUuNTg0NUMxMjUuMDkzIDI1LjU4NDUgMTI1Ljc4OSAyNS4yODExIDEyNi4zMSAyNC42NzQyQzEyNi44MzIgMjQuMDY3MyAxMjcuMDkzIDIzLjIwMDQgMTI3LjA5MyAyMi4xMTY3QzEyNy4wOTMgMjEuMDMzIDEyNi44MzIgMjAuMTY2MSAxMjYuMzEgMTkuNjAyNUMxMjUuNzg5IDE4Ljk5NTcgMTI1LjA5MyAxOC42OTIyIDEyNC4xMzcgMTguNjkyMkMxMjMuMjI0IDE4LjY5MjIgMTIyLjUyOSAxOC45OTU3IDEyMi4wMDcgMTkuNjAyNUMxMjEuNTI5IDIwLjE2NjEgMTIxLjI2OCAyMS4wMzMgMTIxLjI2OCAyMi4xMTY3WiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTMxLjc4NyAxNi4zOTQ5SDEzNy40ODFDMTM5LjIxOSAxNi4zOTQ5IDE0MC40MzYgMTYuNjk4MyAxNDEuMTc1IDE3LjM0ODVDMTQxLjkxNCAxNy45OTg4IDE0Mi4yNjIgMTkuMDgyNCAxNDIuMjYyIDIwLjU1NjNWMjcuNzk1M0gxMzkuMjE5VjIwLjk0NjRDMTM5LjIxOSAyMC4wNzk0IDEzOS4wODkgMTkuNTE1OSAxMzguODI4IDE5LjI5OTJDMTM4LjU2NyAxOS4wMzkxIDEzOC4wNDYgMTguOTA5MSAxMzcuMjIgMTguOTA5MUgxMzQuNzg2VjI3LjgzODZIMTMxLjc0M1YxNi4zOTQ5SDEzMS43ODdaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03LjEyODMxIDMuNzM3NDNIMFYxMC44NDY0SDcuMTI4MzFWMy43Mzc0M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTIzLjI1MTMgLTIuMTU3MjVlLTA1TDE4LjU1MTMgNS41MTY4NUwyNC4wODMxIDEwLjIwNDFMMjguNzgzMSA0LjY4NzI1TDIzLjI1MTMgLTIuMTU3MjVlLTA1WiIgZmlsbD0iI0ZGODYwMCIvPgo8cGF0aCBkPSJNMTUuNjA0MSAzLjczNzQzSDguNDc1ODNWMTAuODQ2NEgxNS42MDQxVjMuNzM3NDNaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03LjEyODMxIDEyLjE5MDJIMFYxOS4yOTkySDcuMTI4MzFWMTIuMTkwMloiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTE1LjYwNDEgMTIuMTkwMkg4LjQ3NTgzVjE5LjI5OTJIMTUuNjA0MVYxMi4xOTAyWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMjQuMDc5NyAxMi4xOTAySDE2Ljk1MTRWMTkuMjk5MkgyNC4wNzk3VjEyLjE5MDJaIiBmaWxsPSIjRkY4NjAwIi8+CjxwYXRoIGQ9Ik03LjEyODMxIDIwLjY4NjNIMFYyNy43OTUzSDcuMTI4MzFWMjAuNjg2M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTE1LjYwNDEgMjAuNjg2M0g4LjQ3NTgzVjI3Ljc5NTNIMTUuNjA0MVYyMC42ODYzWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMjQuMTIzMiAyMC42ODYzSDE2Ljk5NDlWMjcuNzk1M0gyNC4xMjMyVjIwLjY4NjNaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik0xNDYgMTUuODMxM0MxNDYgMTYuODcxNyAxNDUuMTc0IDE3LjY5NTMgMTQ0LjEzMSAxNy42OTUzQzE0My4wODggMTcuNjk1MyAxNDIuMjYyIDE2Ljg3MTcgMTQyLjI2MiAxNS44MzEzQzE0Mi4yNjIgMTQuNzkxIDE0My4wODggMTQuMDEwNyAxNDQuMTMxIDE0LjAxMDdDMTQ1LjEzMSAxMy45Njc0IDE0NiAxNC43OTEgMTQ2IDE1LjgzMTNaTTE0Mi45NTcgMTQuNzkxQzE0Mi42OTcgMTUuMDUxMSAxNDIuNTY2IDE1LjQ0MTIgMTQyLjU2NiAxNS44MzEzQzE0Mi41NjYgMTYuNjk4MyAxNDMuMjYyIDE3LjM5MTggMTQ0LjEzMSAxNy4zOTE4QzE0NSAxNy4zOTE4IDE0NS42OTYgMTYuNjk4MyAxNDUuNjk2IDE1LjgzMTNDMTQ1LjY5NiAxNS4wMDc3IDE0NSAxNC4yNzA4IDE0NC4xNzQgMTQuMjcwOEMxNDMuNjUzIDE0LjI3MDggMTQzLjI2MiAxNC40NDQyIDE0Mi45NTcgMTQuNzkxWk0xNDQuODcgMTYuOTE1SDE0NC40NzlMMTQzLjkxNCAxNi4wOTE0VjE2LjkxNUgxNDMuNjA5VjE0Ljc0NzZIMTQzLjk1N0MxNDQuNDM1IDE0Ljc0NzYgMTQ0LjY1MyAxNC45NjQ0IDE0NC42NTMgMTUuMzU0NUMxNDQuNjUzIDE1LjY1NzkgMTQ0LjQ3OSAxNS44NzQ3IDE0NC4xNzQgMTUuOTYxNEwxNDQuODcgMTYuOTE1Wk0xNDQuMDQ0IDE1LjY1NzlDMTQ0LjI2MSAxNS42NTc5IDE0NC4zOTIgMTUuNTI3OSAxNDQuMzkyIDE1LjM1NDVDMTQ0LjM5MiAxNS4xMzc4IDE0NC4yNjEgMTUuMDUxMSAxNDQuMDAxIDE1LjA1MTFIMTQzLjkxNFYxNS42NTc5SDE0NC4wNDRaIiBmaWxsPSIjMzU0M0E4Ii8+Cjwvc3ZnPgo=\" style=\"\n text-align: left;\n width: 146px;\n position: absolute;\n top: 14px;\n left: 31px;\n\">\n </div>\n <div style=\"\n position: relative;\n top: 80px;\n left: 32px;\n font-size: 20px;\n text-align: left;\n font-weight: 700;\n letter-spacing: 0.02em;\n font-style: normal;\n line-height: 125%;\n \">Claim your FREE account and get a key in less than a minute</div>\n <ul style=\"\n font-size: 15px;\n font-weight: 400;\n color: #333333;\n letter-spacing: 0.01em;\n position: relative;\n left: 32px;\n top: 88px;\n line-height: 180%;\n \">\n <li><span>Access to a 30-day free trial of any of our products.</span></li>\n <li><span>Access to 24x5 support by developers via the <a href=\"https://support.syncfusion.com/create\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">support tickets</a>, <a href=\"https://www.syncfusion.com/forums\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">forum</a>, <a href=\"https://www.syncfusion.com/feedback\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">feature &amp; feedback page</a> and chat.</span></li>\n <li><span>200+ <a href=\"https://www.syncfusion.com/succinctly-free-ebooks\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">ebooks </a>on the latest technologies, industry trends, and research topics.</span>\n </li>\n <li><span>Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion <a href=\"https://www.syncfusion.com/succinctly-free-ebooks\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">Metro Studio.</a></span></li>\n <li><span>Free and unlimited access to Syncfusion technical <a href=\"https://www.syncfusion.com/blogs/\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">blogs</a> and <a href=\"https://www.syncfusion.com/resources/techportal/whitepapers\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">whitepapers.</a></span></li>\n </ul>\n <div style=\"\n font-size: 18px;\n font-weight: 700;\n position: relative;\n line-height: 125%;\n letter-spacing: 0.02em;\n top: 90px;\n left: 32px;\n \">Syncfusion is trusted by 29,000+ businesses worldwide</div>\n <img src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODIwIiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgODIwIDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MjcuNjE3IDIyLjU2NTlWMjQuNzIyNkM0MjYuNTU4IDI0LjM2MzggNDI1LjM5OCAyNC4xNTQ0IDQyNC40NzQgMjQuMTU0NEM0MjMuMzMzIDI0LjE1NDQgNDIyLjY5OCAyNC40OTEyIDQyMi42OTggMjUuMDk2M0M0MjIuNjk4IDI1LjQ4MjQgNDIyLjk3NiAyNS43MzgzIDQyMy43NzMgMjYuMDg1NEw0MjUuOTE3IDI3LjAxNzRDNDI3LjYzMyAyNy43NjM5IDQyOC40OTcgMjguODUzIDQyOC40OTcgMzAuMjY4MUM0MjguNDk3IDMyLjQ1MjIgNDI2LjU0NiAzMy44MyA0MjMuNDUyIDMzLjgzQzQyMi4zMjQgMzMuODMgNDIxLjAxOCAzMy42NzM2IDQxOS42MzYgMzMuMzcwOVYzMS4xNDE2QzQyMS4wMDYgMzEuNTAyOCA0MjIuMjYyIDMxLjY5NTcgNDIzLjIzOSAzMS42OTU3QzQyNC41MTggMzEuNjk1NyA0MjUuMjAzIDMxLjM1MDYgNDI1LjIwMyAzMC43MDc0QzQyNS4yMDMgMzAuMzIwOCA0MjQuOTM1IDMwLjAzNjcgNDI0LjMyMiAyOS43NzE3TDQyMS45NzUgMjguNzU5M0M0MjAuMjM2IDI4LjAwNzggNDE5LjQzMyAyNi45OTU0IDQxOS40MzMgMjUuNTUyMUM0MTkuNDMzIDIzLjQ4MzcgNDIxLjMxNCAyMi4xNjQ5IDQyNC4yNjUgMjIuMTY0OUM0MjUuMjk4IDIyLjE2NDkgNDI2LjU3IDIyLjMxNzEgNDI3LjYxNyAyMi41NjU5VjIyLjU2NTlaTTQzMC4xNjcgMjIuMzkwOUg0MzMuNjM1VjMzLjYwMzlINDMwLjE2N1YyMi4zOTA5Wk00NDQuOTExIDIyLjM5MDlWMjQuNDQ1MUg0MzkuNjc1VjI2Ljk3NDJINDQ0LjI0OVYyOC44MzIzSDQzOS42NzVWMzEuNDU0M0g0NDQuOTc4VjMzLjYwMzlINDM2LjMwNVYyMi4zOTA5SDQ0NC45MTFaTTQ2MS4yOTQgMjIuMzkwOVYzMy42MDM5SDQ1Ny45MzlWMjYuMjIzNkw0NTQuNjUyIDMzLjY5MTVINDUyLjUzMUw0NDkuMjY2IDI2LjIyMzZWMzMuNjAzOUg0NDYuOTQ5VjIyLjM5MDlINDUxLjE4NEw0NTQuMTc4IDI5LjIxMTRMNDU3LjE1NiAyMi4zOTA5SDQ2MS4yOTRWMjIuMzkwOVpNNDcyLjU3OSAyMi4zOTA5VjI0LjQ0NTFINDY3LjMzNVYyNi45NzQySDQ3MS45MDhWMjguODMyM0g0NjcuMzM1VjMxLjQ1NDNINDcyLjYzOFYzMy42MDM5SDQ2My45NTdWMjIuMzkwOUg0NzIuNTc5Wk00ODQuNzk0IDIyLjM5MDlWMzMuNjAzOUg0ODEuMDkzTDQ3Ni45MjYgMjYuNDEyM1YzMy42MDM5SDQ3NC42MDhWMjIuMzkwOUg0NzguNDA3TDQ4Mi40ODQgMjkuNDg3NlYyMi4zOTA5SDQ4NC43OTRaTTQ5NC44NTggMjIuNTY1OVYyNC43MjI2QzQ5My44MDcgMjQuMzY2MyA0OTIuNjQgMjQuMTU0NCA0OTEuNzMyIDI0LjE1NDRDNDkwLjU3MyAyNC4xNTQ0IDQ4OS45MzkgMjQuNDg1OCA0ODkuOTM5IDI1LjA5M0M0ODkuOTM5IDI1LjQ4ODYgNDkwLjE5OCAyNS43MjUgNDkxLjAyMyAyNi4wODU5TDQ5My4xNTcgMjcuMDE3OEM0OTQuODg1IDI3Ljc3MjIgNDk1LjczOSAyOC44NTE4IDQ5NS43MzkgMzAuMjgzNUM0OTUuNzM5IDMyLjQ1NTkgNDkzLjc4NiAzMy44MzA4IDQ5MC42OTkgMzMuODMwOEM0ODkuNTY5IDMzLjgzMDggNDg4LjI1OSAzMy42NzM2IDQ4Ni44NzggMzMuMzcxN1YzMS4xNDI0QzQ4OC4yNDcgMzEuNTAyOCA0ODkuNDk5IDMxLjY5NjUgNDkwLjQ3IDMxLjY5NjVDNDkxLjc0IDMxLjY5NjUgNDkyLjQ0NCAzMS4zNTE1IDQ5Mi40NDQgMzAuNzI4NUM0OTIuNDQ0IDMwLjMxNjMgNDkyLjE5NyAzMC4wNTA0IDQ5MS41NTUgMjkuNzcyNUw0ODkuMjE4IDI4Ljc2MDFDNDg3LjQ2NyAyOC4wMDI4IDQ4Ni42NzQgMjcuMDAyIDQ4Ni42NzQgMjUuNTUzM0M0ODYuNjc0IDIzLjQ4NjIgNDg4LjU1NiAyMi4xNjY1IDQ5MS41IDIyLjE2NjVDNDkyLjUzNiAyMi4xNjUzIDQ5My44MTMgMjIuMzE3MSA0OTQuODU4IDIyLjU2NTlWMjIuNTY1OVoiIGZpbGw9IiMwMEEwQjAiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzUyLjQxMyAyNi44MTlDMzUwLjk5MiAyNS4yNzU5IDM0OS42MzggMjMuODMxNSAzNDguMzQ5IDIyLjE1NzRMMzQ3LjkyIDIxLjU5OTVDMzQ5LjQwNiAyMS4zNjkzIDM1MC42OTUgMjAuMzg0OCAzNTAuNjk1IDE4Ljc0MzNDMzUwLjY5NSAxNy4yMzMxIDM0OS41MzkgMTYuMjQ4MiAzNDcuODIxIDE2LjI0ODJDMzQ2LjU5OCAxNi4yNDgyIDM0NS43MDYgMTYuMzEzNyAzNDUuMjQzIDE2LjMxMzdDMzQ0LjcxNSAxNi4zMTM3IDM0NC4yODUgMTYuMzEzNyAzNDMuNzkgMTYuMjgwOEMzNDMuODU2IDE4LjE1MjEgMzQzLjg4OSAxOC4yODM0IDM0My44ODkgMTkuNDMyMlYyMy42MzQzQzM0My44ODkgMjQuNDU1MyAzNDMuODU2IDI1LjI3NTkgMzQzLjc5IDI2LjgxODZDMzQ0LjE1MyAyNi43MjAyIDM0NC41MTcgMjYuNzIwMiAzNDQuNzgxIDI2LjcyMDJDMzQ1LjA0NSAyNi43MjAyIDM0NS40MDkgMjYuNzUzMSAzNDUuNzA2IDI2LjgxODZDMzQ1LjY0IDI1Ljc2NzkgMzQ1LjYwNyAyNC4wMjgzIDM0NS42MDcgMjMuNjM0M1YyMS4yMDUxQzM0Ny4xNiAyMy4yMDc3IDM0OS4yMDkgMjUuNjY5NSAzNTAuMDAxIDI2LjgxODZDMzUwLjM5OCAyNi43MjAyIDM1MC43MjggMjYuNzIwMiAzNTEuMTI0IDI2LjcyMDJDMzUxLjQ1NSAyNi43MjA2IDM1MS45MTggMjYuNzIwNiAzNTIuNDEzIDI2LjgxOVYyNi44MTlaTTM0OC44NzggMTkuMDA2QzM0OC44NzggMjAuMDIzNCAzNDguMzE3IDIxLjIwNTQgMzQ2Ljc5NyAyMS4yMDU0QzM0Ni40IDIxLjIwNTQgMzQ2LjAwMyAyMS4yMDU0IDM0NS42MDcgMjEuMTcyNVYxNy4wNjg4QzM0Ni4wMDMgMTYuOTcwNCAzNDYuNDk5IDE2LjkwNDYgMzQ2Ljc2MyAxNi45MDQ2QzM0OC4wODUgMTYuOTA0OSAzNDguODc4IDE3LjY2IDM0OC44NzggMTkuMDA2VjE5LjAwNlpNMzgyLjM4IDI2Ljg4NDVDMzgxLjgxOSAyNi4yOTM2IDM4MC45NiAyNS4zNDE3IDM4MC4xMzQgMjQuNDIyM0MzODAuODI4IDIzLjY2NzIgMzgxLjU1NSAyMi41NTEgMzgxLjk4NCAyMS41OTkxQzM4MS43MTkgMjEuNDY3OCAzODEuMzU2IDIxLjIwNTEgMzgxLjA5MiAyMC45NzUzQzM4MC45OTMgMjEuNzk1OSAzODAuNDMyIDIyLjg3OTIgMzc5LjYzOSAyMy44MzE1QzM3OC41MTUgMjIuNTE4NSAzNzguMjE4IDIyLjE1NzQgMzc3LjE5MyAyMC43Nzg1QzM3OC41ODEgMTkuODkyMSAzNzkuMjQyIDE4Ljg3NDMgMzc5LjI0MiAxOC4wNTM3QzM3OS4yNDIgMTcuMTAxNyAzNzguNTgxIDE2LjExNjkgMzc2Ljk2MiAxNi4xMTY5QzM3NS4yMTEgMTYuMTE2OSAzNzQuMzUyIDE3LjIwMDIgMzc0LjM1MiAxOC40ODAzQzM3NC4zNTIgMTkuMjM1NCAzNzQuNTUgMTkuODkxNyAzNzUuMzc2IDIwLjk3NTNDMzc0LjA1NCAyMS42OTc1IDM3Mi43NjYgMjIuNzQ3OSAzNzIuNzY2IDI0LjQyMjNDMzcyLjc2NiAyNi4wNjM5IDM3NC4wODcgMjYuOTE3NCAzNzUuNzA3IDI2LjkxNzRDMzc3LjE5MyAyNi45MTc0IDM3OC4xNTEgMjYuMzI2NiAzNzguOTEyIDI1LjYzNjlMMzc5LjkwMiAyNi44MTlDMzgwLjIgMjYuNzg2MSAzODAuNTMxIDI2LjcyMDYgMzgwLjg2MSAyNi43MjA2QzM4MS4zMjQgMjYuNzIwNiAzODEuODUyIDI2Ljc4NjEgMzgyLjM4IDI2Ljg4NDVWMjYuODg0NVpNMzgzLjM3MiA0MC4wMTU4QzM4MS45MTggMzguNDczIDM4MC41OTcgMzcuMDYxMiAzNzkuMzA4IDM1LjM4NzFMMzc4Ljg3OCAzNC44Mjg4QzM4MC4zMzIgMzQuNTk5MSAzODEuNjU0IDMzLjYxNSAzODEuNjU0IDMxLjk0MDFDMzgxLjY1NCAzMC40NjMyIDM4MC40OTggMjkuNDQ1NCAzNzguNzc5IDI5LjQ0NTRDMzc3LjU1NyAyOS40NDU0IDM3Ni42MzIgMjkuNTQzNSAzNzYuMTY5IDI5LjU0MzVDMzc1LjY3MyAyOS41NDM1IDM3NS4yNDQgMjkuNTQzNSAzNzQuNzQ4IDI5LjQ3NzZDMzc0LjgxNCAzMS4zODIyIDM3NC44NDggMzEuNDgwMiAzNzQuODQ4IDMyLjYyOTRWMzYuODMxMUMzNzQuODQ4IDM3LjY1MjQgMzc0LjgxNCAzOC41MDUyIDM3NC43NDggNDAuMDE1NEMzNzUuMTEyIDM5Ljk0OTYgMzc1LjQ3NSAzOS45NDk2IDM3NS43MDcgMzkuOTQ5NkMzNzYuMDA0IDM5Ljk0OTYgMzc2LjM2OCAzOS45NDk2IDM3Ni42MzIgNDAuMDE1NEMzNzYuNTY1IDM4Ljk5OCAzNzYuNTMzIDM3LjI1ODEgMzc2LjUzMyAzNi44MzExVjM0LjQzNDhDMzc4LjExOSAzNi40MDQyIDM4MC4xNjcgMzguODk5NiAzODAuOTYgNDAuMDE1NEMzODEuMzU2IDM5Ljk0OTYgMzgxLjY4NyAzOS45NDk2IDM4Mi4wODMgMzkuOTQ5NkMzODIuMzggMzkuOTUgMzgyLjg3NiAzOS45NSAzODMuMzcyIDQwLjAxNThaTTM2Mi4xNiAyNi44MTlDMzYwLjk3MSAyNS41NzE1IDM1OC44ODkgMjIuOTc4IDM1OC4wNjMgMjEuOTkzNUwzNTcuMjM3IDIwLjk3NTdDMzU4LjA5NiAxOS45NTgzIDM1OC42OSAxOS4zMzQxIDM1OS4zMTkgMTguNTc5QzM2MC4wNDUgMTcuNzkxIDM2MC43MDYgMTYuOTcwNCAzNjEuNDk5IDE2LjI0ODJDMzYxLjEzNiAxNi4zMTM3IDM2MC45MzcgMTYuMzEzNyAzNjAuNzM5IDE2LjMxMzdDMzYwLjU0MSAxNi4zMTM3IDM2MC4zNDMgMTYuMzEzNyAzNjAuMTQ0IDE2LjI0ODJDMzU5LjkxMyAxNi42MDkzIDM1OS41NSAxNy4wNjg4IDM1OS4xNTMgMTcuNTI4N0MzNTguNzU2IDE3Ljk1NTYgMzU4LjM2IDE4LjM4MjIgMzU4LjA2MyAxOC43NDMzQzM1Ny4yMzYgMTkuNjk1MiAzNTYuNzc0IDIwLjE1NDcgMzU1LjU4NSAyMS4yNzA5VjE5LjQ2NTVDMzU1LjU4NSAxOC40MTUxIDM1NS41ODUgMTcuNzI1NSAzNTUuNjUxIDE2LjI0ODJDMzU1LjMyMSAxNi4zMTM3IDM1NC45NTcgMTYuMzEzNyAzNTQuNzI2IDE2LjMxMzdDMzU0LjQ2MSAxNi4zMTM3IDM1NC4wMzIgMTYuMzEzNyAzNTMuNzY4IDE2LjI0ODJDMzUzLjgzMyAxNy44MjM5IDM1My44NjcgMTguMjgzNCAzNTMuODY3IDE5LjQzMjVWMjMuNjM0N0MzNTMuODY3IDI0LjY4NSAzNTMuODMzIDI1LjMwODggMzUzLjc2OCAyNi44MTlDMzU0LjE2NCAyNi43MjA2IDM1NC40OTUgMjYuNzIwNiAzNTQuNzI2IDI2LjcyMDZDMzU0Ljk1NyAyNi43MjA2IDM1NS4zNTMgMjYuNzUzNSAzNTUuNjUxIDI2LjgxOUMzNTUuNTg1IDI1LjE0NDkgMzU1LjU4NSAyNC4xNTk3IDM1NS41ODUgMjMuNjM0N1YyMS40MzUyQzM1Ni44MDcgMjIuODc5NiAzNTguNjkgMjUuMjQzMyAzNTkuNzQ4IDI2LjgxOUMzNjAuMTMgMjYuNzU2MyAzNjAuNTE3IDI2LjcyMzQgMzYwLjkwNSAyNi43MjA2QzM2MS4yMDIgMjYuNzIwNiAzNjEuNjY1IDI2LjcyMDYgMzYyLjE2IDI2LjgxOVYyNi44MTlaTTM3Mi42MDEgNDAuMDE1OEMzNzIuNTY4IDM5Ljg1MTkgMzcyLjUzNSAzOS43MjA2IDM3Mi41MzUgMzkuNTIzNEMzNzIuNTM1IDM5LjM5MjggMzcyLjU2OCAzOS4yMjgxIDM3Mi42MDEgMzkuMDk2NEMzNzEuMjggMzkuMTI5NyAzNjguOTAxIDM5LjE5NTIgMzY4LjM3MiAzOS4xOTUyVjM0LjY2NDlDMzY5LjY5NCAzNC42NjQ5IDM3MC45ODIgMzQuNjY0OSAzNzIuMjcgMzQuNzk2M0MzNzIuMjM4IDM0LjYzMjQgMzcyLjIwNCAzNC40Njc3IDM3Mi4yMDQgMzQuMzM2NEMzNzIuMjA0IDM0LjIwNTggMzcyLjIwNCAzNC4wNDE5IDM3Mi4yNyAzMy44NDQ3QzM3MS4zNDYgMzMuOTQyOCAzNjkuMTk4IDMzLjk3NiAzNjguMzcyIDMzLjk3NlYzMC4yNjZDMzY5LjgyNiAzMC4yNjYgMzcwLjY4NSAzMC4yNjYgMzcxLjE4IDMwLjI5OTNMMzcyLjUwMiAzMC4zNjUxQzM3Mi40MzYgMzAuMTY3OSAzNzIuNDM2IDMwLjA2OTIgMzcyLjQzNiAyOS45MDUzQzM3Mi40MzYgMjkuNzQxNCAzNzIuNDM2IDI5LjcwODEgMzcyLjUwMiAyOS40NDU4QzM3MS40MTEgMjkuNDc4MyAzNjkuOTI1IDI5LjU0MzggMzY5LjI2NCAyOS41NDM4QzM2OC44MDIgMjkuNTQzOCAzNjcuMzQ4IDI5LjUxMTMgMzY2LjU4NyAyOS40NDU4QzM2Ni42NTQgMzAuMjY2NCAzNjYuNjg2IDMxLjYxMjMgMzY2LjY4NiAzMi41NjQyVjM2Ljg2NTFDMzY2LjY4NiAzNy40ODg1IDM2Ni42MiAzOC43MzU3IDM2Ni41ODcgNDAuMDE2MkMzNjcuNTEzIDM5Ljk1MDMgMzY4LjgwMiAzOS45NTAzIDM2OS4yNjQgMzkuOTUwM0MzNzAuMDI0IDM5Ljk1IDM3MS42NDMgMzkuOTUgMzcyLjYwMSA0MC4wMTU4Wk0zNjQuNjA1IDM5LjEyOTRDMzY0LjQ0IDM4LjgwMDggMzY0LjM0MSAzOC4zMDg4IDM2NC4yNzUgMzguMDQ2MUMzNjIuOTIgMzkuMTYxOSAzNjEuOTk1IDM5LjM5MjQgMzYwLjkzOCAzOS4zOTI0QzM1OC41OTIgMzkuMzkyNCAzNTcuMzM3IDM3LjI5MTMgMzU3LjMzNyAzNC42NjQ5QzM1Ny4zMzcgMzEuNzQzNiAzNTguNzU3IDMwLjAzNjIgMzYxLjE2OSAzMC4wMzYyQzM2Mi40MjUgMzAuMDM2MiAzNjMuNjE0IDMwLjU5NDUgMzY0LjE3NiAzMS4xNTI4QzM2NC4yMDggMzAuODg5OCAzNjQuMzA4IDMwLjM2NDggMzY0LjQ3MyAzMC4wNjg4QzM2My4zMTYgMjkuNTExMyAzNjIuMjU5IDI5LjM0NjYgMzYxLjEwMiAyOS4zNDY2QzM1Ny4yMzcgMjkuMzQ2NiAzNTUuNDUzIDMxLjc0MzYgMzU1LjQ1MyAzNC44Mjg4QzM1NS40NTMgMzguMzA5MSAzNTcuNzk4IDQwLjE0NzEgMzYwLjczOSA0MC4xNDcxQzM2Mi40MjUgNDAuMTQ3MSAzNjMuODEyIDM5LjYyMjIgMzY0LjYwNSAzOS4xMjk0VjM5LjEyOTRaTTM0Mi4zMDMgMjYuODE5QzM0MC41MTkgMjMuNDA0OSAzMzguOCAxOS4xMzczIDMzNy41NzggMTYuMTE2OUgzMzcuMzhDMzM2LjU4NyAxOC4wMjA3IDMzNS4xMzMgMjEuMjcwOSAzMzQuNzM3IDIyLjE4OTlDMzM0LjI3NCAyMy4zMDYxIDMzMy4yNSAyNS41MDU2IDMzMi41ODkgMjYuODE4NkMzMzIuODAzIDI2Ljc1MzggMzMzLjAyNiAyNi43MjA2IDMzMy4yNSAyNi43MjAyQzMzMy40NDggMjYuNzIwMiAzMzMuNjEzIDI2Ljc1MzEgMzMzLjg0NSAyNi44MTg2QzMzNC4xNzUgMjUuOTMyMiAzMzQuNjM4IDI0LjgxNiAzMzUuMTMzIDIzLjYzNDNDMzM1Ljc5NCAyMy42MDE0IDMzNi4zODkgMjMuNTY4OCAzMzYuOTg0IDIzLjU2ODhDMzM3LjYxMiAyMy41Njg4IDMzOC4yNzIgMjMuNjAxNCAzMzguOTMzIDIzLjYzNDNMMzM5LjU5NCAyNS4yMUwzNDAuMjU1IDI2LjgxODZDMzQwLjcxNyAyNi43MjAyIDM0MS4wOCAyNi43MjAyIDM0MS4zMTIgMjYuNzIwMkMzNDEuNjA5IDI2LjcyMDYgMzQxLjg3MyAyNi43MjA2IDM0Mi4zMDMgMjYuODE5VjI2LjgxOVpNMzUzLjYzNiAyOS40NDU0QzM1My40MzggMjkuNTExMyAzNTMuMjczIDI5LjU0MzUgMzUzLjEwNyAyOS41NDM1QzM1Mi45MDkgMjkuNTQzNSAzNTIuNzQ0IDI5LjUxMDkgMzUyLjU0NiAyOS40NDU0QzM1Mi42NDQgMzAuNzU4NCAzNTIuNjc4IDMyLjA3MTQgMzUyLjY3OCAzMy4zNTE5VjM2LjczMzRDMzUyLjE0OSAzNi4yNzM2IDM1MC44NiAzNS4wOTE5IDM0OS4zNzQgMzMuNzEzQzM0Ny44NiAzMi4zMDc0IDM0Ni4zOTQgMzAuODUxMSAzNDQuOTc5IDI5LjM0NjZIMzQ0Ljc0OEMzNDQuNzgxIDMwLjgyNDMgMzQ0LjgxNCAzMi40IDM0NC44MTQgMzMuODExNFYzNS44Nzk5QzM0NC44MTQgMzcuNjUyOCAzNDQuODE0IDM4LjYwNDcgMzQ0LjcxNSA0MC4wMTYyQzM0NC45OCAzOS45NTAzIDM0NS4xMTIgMzkuOTUwMyAzNDUuMzEgMzkuOTUwM0MzNDUuNDQyIDM5Ljk1MDMgMzQ1LjU3NSAzOS45NTAzIDM0NS44MDYgNDAuMDE2MkMzNDUuNzQgMzguNjcwNiAzNDUuNzA3IDM2LjQ3MDggMzQ1LjcwNyAzNS44Nzk5VjMyLjU5NjhDMzQ4LjE4NSAzNC44NjI1IDM1MS4yMjQgMzcuODgyNiAzNTMuNDcxIDQwLjE0NzVIMzUzLjYwM0MzNTMuNjAzIDM4LjkzMjkgMzUzLjUzNyAzNy43MTc5IDM1My41MzcgMzYuNTA0VjM0LjYzMjdDMzUzLjUzNiAzMi40MzI1IDM1My41MzYgMzEuMzQ5MyAzNTMuNjM2IDI5LjQ0NTRaTTM0Mi41NjcgNDAuMDE1OEMzNDIuNTM0IDM5Ljg1MTkgMzQyLjUwMSAzOS43MjA2IDM0Mi41MDEgMzkuNTIzNEMzNDIuNTAxIDM5LjM5MjggMzQyLjUzNCAzOS4yMjgxIDM0Mi41NjcgMzkuMDk2NEMzNDEuMjQ2IDM5LjEyOTcgMzM4Ljg2NyAzOS4xOTUyIDMzOC4zNzEgMzkuMTk1MlYzNC42NjQ5QzMzOS42NiAzNC42NjQ5IDM0MC45NDggMzQuNjY0OSAzNDIuMjM3IDM0Ljc5NjNDMzQyLjIwNCAzNC42MzI0IDM0Mi4xNzEgMzQuNDY3NyAzNDIuMTcxIDM0LjMzNjRDMzQyLjE3MSAzNC4yMDU4IDM0Mi4xNzEgMzQuMDQxOSAzNDIuMjM3IDMzLjg0NDdDMzQxLjMxMiAzMy45NDI4IDMzOS4xOTcgMzMuOTc2IDMzOC4zNzEgMzMuOTc2VjMwLjI2NkMzMzkuNzkyIDMwLjI2NiAzNDAuNjUxIDMwLjI2NiAzNDEuMTc5IDMwLjI5OTNMMzQyLjQ2OCAzMC4zNjUxQzM0Mi40MzUgMzAuMTY3OSAzNDIuNDM1IDMwLjA2OTIgMzQyLjQzNSAyOS45MDUzQzM0Mi40MzUgMjkuNzQxNCAzNDIuNDM1IDI5LjY3NTUgMzQyLjQ2OCAyOS40NDU4QzM0MS4zNzggMjkuNDc4MyAzMzkuODkxIDI5LjU0MzggMzM5LjIzIDI5LjU0MzhDMzM4Ljc2NyAyOS41NDM4IDMzNy4zMTQgMjkuNTExMyAzMzYuNTU0IDI5LjQ0NThDMzM2LjYyIDMwLjI2NjQgMzM2LjY1MyAzMS42MTIzIDMzNi42NTMgMzIuNTY0MlYzNi44NjUxQzMzNi42NTMgMzcuNDg4NSAzMzYuNTg3IDM4LjczNTcgMzM2LjU1NCA0MC4wMTYyQzMzNy41MTIgMzkuOTUwMyAzMzguNzY3IDM5Ljk1MDMgMzM5LjIzIDM5Ljk1MDNDMzM5Ljk5IDM5Ljk1IDM0MS42NDIgMzkuOTUgMzQyLjU2NyA0MC4wMTU4VjQwLjAxNThaTTMzMS4yMDEgMjYuODE5QzMzMC42NzMgMjMuMjQwNiAzMzAuMjEgMTkuNDk4NCAzMjkuODQ3IDE2LjExNjlDMzI5Ljc0OCAxNi4xNDk4IDMyOS43MTQgMTYuMTQ5OCAzMjkuNjQ5IDE2LjExNjlDMzI4Ljk1NSAxNy4zMzE1IDMyOC4xNjIgMTguNjQ0NSAzMjcuNTY3IDE5LjU2MzlDMzI3LjAwNiAyMC40NTAzIDMyNi4zNDUgMjEuNTAwNyAzMjUuNTg1IDIyLjYxNjlDMzIzLjk5OSAyMC41ODE3IDMyMi4zNDcgMTguMDIxMSAzMjEuMjU2IDE2LjExNjlDMzIxLjE5IDE2LjE0OTggMzIxLjE1NyAxNi4xMTY5IDMyMS4wOTEgMTYuMTE2OUMzMjAuNzI4IDE5LjQ5OCAzMjAuMjMyIDIzLjI3MzIgMzE5LjczNiAyNi44MTlDMzIwLjAwMSAyNi43MjA2IDMyMC4xNjYgMjYuNzIwNiAzMjAuMjk4IDI2LjcyMDZDMzIwLjQ5NiAyNi43MjA2IDMyMC42MjggMjYuNzUzNSAzMjAuODU5IDI2LjgxOUMzMjAuOTkyIDI0LjQ1NTMgMzIxLjI1NiAyMi4xMjQ0IDMyMS41NTMgMTkuNjYyM0MzMjIuODQyIDIxLjUzMzYgMzIzLjk2NSAyMy4xNDIyIDMyNS4yMjEgMjQuODQ5M0MzMjYuMjc4IDIzLjIwNzcgMzI3LjM2OCAyMS40MzQ4IDMyOC41NTggMTkuNjI5NEMzMjguODg4IDIyLjE1NyAzMjkuMTg2IDI0LjQ1NTMgMzI5LjM1MSAyNi44MTlDMzI5Ljc4IDI2LjcyMDYgMzMwLjA3OCAyNi43MjA2IDMzMC4yNzYgMjYuNzIwNkMzMzAuNTQgMjYuNzIwNiAzMzAuODA1IDI2LjcyMDYgMzMxLjIwMSAyNi44MTlWMjYuODE5Wk0zMzQuOTY4IDMyLjIwMjhDMzM0Ljk2OCAzMC4yOTg5IDMzMy40NDggMjkuNDQ1NCAzMzEuNTk4IDI5LjQ0NTRDMzMwLjc3MiAyOS40NDU0IDMyOS44OCAyOS41NDM1IDMyOS4yNTIgMjkuNTQzNUMzMjkuMDIxIDI5LjU0MzUgMzI4LjUyNSAyOS41NDM1IDMyNy45OTcgMjkuNDc3NkMzMjguMDMgMzAuNTI4MyAzMjguMDk2IDMxLjQxNDggMzI4LjA5NiAzMi40MzIyVjM2LjkyOTVDMzI4LjA5NiAzNy45MTQ4IDMyOC4wMyAzOC45OTggMzI3Ljk5NyA0MC4wMTU0QzMyOC40MjYgMzkuOTQ5NiAzMjguNzI0IDM5Ljk0OTYgMzI4LjkyMiAzOS45NDk2QzMyOS4xNTMgMzkuOTQ5NiAzMjkuNDg0IDM5Ljk0OTYgMzI5Ljg4IDQwLjAxNTRDMzI5LjgxNSAzOS4wMzE5IDMyOS43ODIgMzguMDQ2NSAzMjkuNzgxIDM3LjA2MDlWMzUuNDJDMzMwLjE0NSAzNS40NTI2IDMzMC41MDggMzUuNDUyNiAzMzAuOTA1IDM1LjQ1MjZDMzMyLjgyIDM1LjQ1MjYgMzM0Ljk2OCAzNC43MzA0IDMzNC45NjggMzIuMjAyOFYzMi4yMDI4Wk0zMjYuMDE0IDM2Ljg5NzNDMzI2LjAxNCAzNS4yNTU4IDMyNC45MjQgMzQuNTMzNiAzMjMuMDQgMzMuNzQ1NkMzMjEuNjg2IDMzLjE4OCAzMjAuOTkyIDMyLjY5NTYgMzIwLjk5MiAzMS42NDQ1QzMyMC45OTIgMzAuNjYgMzIxLjc1MiAzMC4wMzYyIDMyMy4wMDggMzAuMDM2MkMzMjMuODM0IDMwLjAzNjIgMzI0LjU2MSAzMC4zMzE1IDMyNS4yMjIgMzAuODU2OEMzMjUuMjg3IDMwLjQ5NTcgMzI1LjQ1MyAzMC4xMzQ3IDMyNS42NTEgMjkuODM5NEMzMjQuODU4IDI5LjQ3ODMgMzIzLjk5OSAyOS4zNDcgMzIzLjA3NCAyOS4zNDdDMzIwLjM2NSAyOS4zNDcgMzE5LjUwNSAzMC44OTA1IDMxOS41MDUgMzIuMjAzNUMzMTkuNTA1IDMzLjgxMTggMzIwLjI5OSAzNC41NjcyIDMyMi4zNDcgMzUuMzU1M0MzMjMuNjM2IDM1Ljg0NyAzMjQuMjk2IDM2LjQ3MTEgMzI0LjI5NiAzNy41NTQ0QzMyNC4yOTYgMzguNzAzNSAzMjMuNDM3IDM5LjQyNTcgMzIyLjI0OCAzOS40MjU3QzMyMS41NTQgMzkuNDI1NyAzMjAuMzY1IDM5LjA2NDYgMzE5LjUzOSAzOC4zMDk5QzMxOS41MDUgMzguNzM2MSAzMTkuNTA1IDM5LjEzMDQgMzE5LjM3MyAzOS40OTE1QzMxOS45MDIgMzkuNzU0NiAzMjEuMTI1IDQwLjE0NzkgMzIyLjIxNSA0MC4xNDc5QzMyNC45OSA0MC4xNDcxIDMyNi4wMTQgMzguNDM5NyAzMjYuMDE0IDM2Ljg5NzNWMzYuODk3M1pNMzc4LjE1MiAxNy45ODgyQzM3OC4xNTIgMTguOTczIDM3Ny40NTggMTkuNjYyMyAzNzYuNzY0IDIwLjIyMDJDMzc2LjMwMSAxOS41NjM5IDM3NS43NCAxOC42NzcxIDM3NS43NCAxNy45ODgyQzM3NS43NCAxNy4yMzMxIDM3Ni4yNjggMTYuODA2MSAzNzYuOTk1IDE2LjgwNjFDMzc3Ljk4NyAxNi44MDY1IDM3OC4xNTIgMTcuNjkyNiAzNzguMTUyIDE3Ljk4ODJWMTcuOTg4MlpNMzc4LjQ4MiAyNS4wMTMyQzM3OC4xMTkgMjUuMzQxNyAzNzcuMjYgMjUuOTY1NSAzNzYuNTMzIDI1Ljk2NTVDMzc1LjU3NCAyNS45NjU1IDM3NC40MTggMjUuMjc1OSAzNzQuNDE4IDIzLjc5ODZDMzc0LjQxOCAyMi40ODU1IDM3NS4yNzcgMjEuODk0NyAzNzUuODA2IDIxLjU2NjVDMzc3LjAyOCAyMy4yNDA2IDM3Ny4wOTUgMjMuMzM5MSAzNzguNDgyIDI1LjAxMzJaTTM3OS44MDQgMzIuMjAyOEMzNzkuODA0IDMzLjI1MzUgMzc5LjI3NSAzNC40MDI2IDM3Ny43NTUgMzQuNDAyNkMzNzcuMzI2IDM0LjQwMjYgMzc2LjkyOSAzNC40MDI2IDM3Ni41MzMgMzQuMzY5M1YzMC4yNjU2QzM3Ni45MjkgMzAuMTY3NiAzNzcuNDI1IDMwLjEzNDMgMzc3LjcyMiAzMC4xMzQzQzM3OS4wMTEgMzAuMTM0MyAzNzkuODA0IDMwLjg4OTggMzc5LjgwNCAzMi4yMDI4Wk0zMzguNjAyIDIyLjgxNDFDMzM3LjkwOSAyMi44NDY2IDMzNy41NDUgMjIuODQ2NiAzMzcuMDgyIDIyLjg0NjZDMzM2LjUyMSAyMi44NDY2IDMzNi4xOSAyMi44NDY2IDMzNS40NjMgMjIuODE0MUwzMzcuMDgyIDE5LjAwNkwzMzguNjAyIDIyLjgxNDFaTTMzMy4xNTEgMzIuMzAwOEMzMzMuMTUxIDMzLjgxMTEgMzMyLjI1OCAzNC43OTU5IDMzMC44MDUgMzQuNzk1OUMzMzAuNTA3IDM0Ljc5NTkgMzMwLjE3NyAzNC43OTU5IDMyOS43OCAzNC43MzAxVjMwLjIzMjdDMzMwLjI0MyAzMC4xNjY5IDMzMC42MzkgMzAuMTMzOSAzMzEuMDM2IDMwLjEzMzlDMzMyLjQyNCAzMC4xMzQzIDMzMy4xNTEgMzEuMDIxMSAzMzMuMTUxIDMyLjMwMDhaTTM2OS41MjggMjMuNjY3NkMzNjkuNTI4IDIyLjAyNiAzNjguNDM4IDIxLjMwMzkgMzY2LjU1NSAyMC41MTYyQzM2NS4yIDE5Ljk1ODMgMzY0LjUwNiAxOS40OTg4IDM2NC41MDYgMTguNDE1MUMzNjQuNTA2IDE3LjQ2MzIgMzY1LjI2NiAxNi44MDY1IDM2Ni41MjEgMTYuODA2NUMzNjcuMzQ4IDE2LjgwNjUgMzY4LjA3NSAxNy4xMDE3IDM2OC43MzUgMTcuNjI3NUMzNjguODAyIDE3LjI2NjQgMzY4Ljk2NyAxNi45MDQ5IDM2OS4xMzEgMTYuNjQyMkMzNjguMzcyIDE2LjI4MTEgMzY3LjQ3OSAxNi4xMTcyIDM2Ni41ODcgMTYuMTE3MkMzNjMuOTQ0IDE2LjExNzIgMzYyLjk4NiAxNy42NiAzNjIuOTg2IDE5LjAwNkMzNjIuOTg2IDIwLjU4MTcgMzYzLjgxMiAyMS4zMzY4IDM2NS44NjEgMjIuMTI0NEMzNjcuMTQ5IDIyLjYxNjkgMzY3LjgxIDIzLjI0MDYgMzY3LjgxIDI0LjM1NjhDMzY3LjgxIDI1LjQ3MyAzNjYuOTUxIDI2LjE5NTIgMzY1Ljc2MiAyNi4xOTUyQzM2NS4wMzUgMjYuMTk1MiAzNjMuODc5IDI1LjgzNDEgMzYzLjA1MiAyNS4xMTE5QzM2My4wMiAyNS41Mzg5IDM2Mi45ODYgMjUuOSAzNjIuODg3IDI2LjI2MTFDMzYzLjM4MyAyNi41MjM4IDM2NC42MDYgMjYuOTE3NCAzNjUuNzI5IDI2LjkxNzRDMzY4LjUwNCAyNi45MTc0IDM2OS41MjggMjUuMjQzMyAzNjkuNTI4IDIzLjY2NzZWMjMuNjY3NloiIGZpbGw9IiMwMzY1NTUiLz4NCjxwYXRoIGQ9Ik02NDAuNDE2IDIwLjU1NzNDNjM4LjY3MSAxOS44MzU0IDYzNy42MzEgMTkuNTU1MSA2MzYuNTk4IDE5LjU1NTFDNjM1LjUxNCAxOS41NTUxIDYzNC44MTkgMTkuOTE3IDYzNC44MTkgMjAuNDc2NUM2MzQuODE5IDIyLjE2NDUgNjQwLjk2MiAyMS42ODkzIDY0MC45NjIgMjUuNTkzNkM2NDAuOTYyIDI3Ljc0NjQgNjM5LjAyNCAyOC45OTc0IDYzNi4zMzIgMjguOTk3NEM2MzQuMjIgMjguOTk3NCA2MzMuMTggMjguNDg4IDYzMS45ODMgMjcuOTExNlYyNS40OTYyQzYzMy43MSAyNi41NjM1IDYzNC43NjggMjYuOTQwMSA2MzYuMTAxIDI2Ljk0MDFDNjM3LjI1NiAyNi45NDAxIDYzNy44NzkgMjYuNTYzNSA2MzcuODc5IDI1LjkwNjNDNjM3Ljg3OSAyNC4wNjg1IDYzMS43MzcgMjQuNzQxNSA2MzEuNzM3IDIwLjcyMTNDNjMxLjczNyAxOC43ODI3IDYzMy41MzQgMTcuNDk5IDYzNi4zMzIgMTcuNDk5QzYzNy42ODIgMTcuNDk5IDYzOC45MDEgMTcuNzYzNSA2NDAuNDE2IDE4LjM3MDdWMjAuNTU3M1pNNjQ5LjAxNiAyOC40ODQxQzY0Ny45OTIgMjguODMwNiA2NDcuMTI2IDI4Ljk5NTQgNjQ2LjI2MiAyOC45OTU0QzY0My40MDIgMjguOTk1NCA2NDEuNTUyIDI3LjQ0MjIgNjQxLjU1MiAyNS4wNzkyQzY0MS41NTIgMjIuNzU5NCA2NDMuNDczIDIxLjEyMDIgNjQ2LjE1NiAyMS4xMjAyQzY0Ni45ODUgMjEuMTIwMiA2NDguMDQ0IDIxLjMxODIgNjQ4Ljg5MSAyMS42MTIzVjIzLjM4ODFDNjQ4LjIyMSAyMy4wNTYyIDY0Ny40NDQgMjIuODc0MSA2NDYuODA5IDIyLjg3NDFDNjQ1LjI3MyAyMi44NzQxIDY0NC4yODYgMjMuNzM0MyA2NDQuMjg2IDI1LjA2MTlDNjQ0LjI4NiAyNi40MDggNjQ1LjI1NiAyNy4yOTQgNjQ2LjcyIDI3LjI5NEM2NDcuMzM3IDI3LjI5NCA2NDcuODg2IDI3LjE2MjMgNjQ5LjAxNiAyNi43NjhMNjQ5LjAxNiAyOC40ODQxWk02NzEuMzIgMjQuMjA5QzY3MS40MjUgMjMuMTU0OCA2NzIuMDgxIDIyLjU0NTcgNjczLjA4NyAyMi41NDU3QzY3NC4wNzYgMjIuNTQ1NyA2NzQuNzQ2IDIzLjE3MjEgNjc0Ljg1MiAyNC4yMDlINjcxLjMyWk02NzIuOTEgMjEuMTIyOUM2NzAuNCAyMS4xMjI5IDY2OC42MTQgMjIuNzc1NSA2NjguNjE0IDI1LjEwMTJDNjY4LjYxNCAyNy40NDQxIDY3MC40NzEgMjguOTk1NCA2NzMuMzM1IDI4Ljk5NTRDNjczLjk3IDI4Ljk5NTQgNjc1LjUwNCAyOC45OTU0IDY3Ni45NjYgMjcuOTg3VjI2LjUwNDJDNjc1Ljc2OSAyNy4yOTkzIDY3NC45NzcgMjcuNTczMSA2NzMuOTU1IDI3LjU3MzFDNjcyLjM0MSAyNy41NzMxIDY3MS4zNTQgMjYuNzk0OSA2NzEuMjY1IDI1LjQ2NjZINjc3LjExQzY3Ny4yMzIgMjIuNjkzOSA2NzUuMjc5IDIxLjEyMjkgNjcyLjkxIDIxLjEyMjlWMjEuMTIyOVpNNjc4LjA5OSAyOC44NTcySDY4MC42NTRWMjEuMjYyN0g2NzguMDk5VjI4Ljg1NzJaTTY4Ny43NjcgMjYuNzgxNUM2ODcuMjM0IDI3LjIyODEgNjg2Ljc5MiAyNy40MDcyIDY4Ni4yNDYgMjcuNDA3MkM2ODUuMDQzIDI3LjQwNzIgNjg0LjI4MSAyNi40ODM4IDY4NC4yODEgMjUuMTAwNEM2ODQuMjgxIDIzLjU4NDEgNjg1LjA0MyAyMi43MTAxIDY4Ni4zMzEgMjIuNzEwMUM2ODYuNzkyIDIyLjcxMDEgNjg3LjM5NCAyMi45MDggNjg3Ljc2NyAyMy4xNTU5VjI2Ljc4MTVaTTY4Ny43NjcgMTcuNjM5MVYyMS41OTU4QzY4Ny4wNzYgMjEuMjg0NyA2ODYuMzg4IDIxLjEyMDIgNjg1LjY0NCAyMS4xMjAyQzY4My4zMTMgMjEuMTIwMiA2ODEuNyAyMi43MjY2IDY4MS43IDI1LjA1MDdDNjgxLjcgMjcuMzI0OCA2ODMuMzEzIDI4Ljk5NzQgNjg1LjUgMjguOTk3NEM2ODYuMzY3IDI4Ljk5NzQgNjg3LjAzNyAyOC43ODU2IDY4Ny43NjcgMjguMjQzNVYyOC44NTQ5SDY5MC4zMjJWMTcuNjM5MUg2ODcuNzY3Wk02OTQuMTA1IDI0LjIwOUM2OTQuMjExIDIzLjE1NDggNjk0Ljg2NCAyMi41NDU3IDY5NS44NjggMjIuNTQ1N0M2OTYuODU4IDIyLjU0NTcgNjk3LjUzNSAyMy4xNzIxIDY5Ny42NDEgMjQuMjA5SDY5NC4xMDVaTTY5NS42OTQgMjEuMTIyOUM2OTMuMTg0IDIxLjEyMjkgNjkxLjQgMjIuNzc1NSA2OTEuNCAyNS4xMDEyQzY5MS40IDI3LjQ0NDEgNjkzLjI1OSAyOC45OTU0IDY5Ni4xMTkgMjguOTk1NEM2OTYuNzUzIDI4Ljk5NTQgNjk4LjI5IDI4Ljk5NTQgNjk5Ljc1NSAyNy45ODdWMjYuNTA0MkM2OTguNTU3IDI3LjI5OTMgNjk3Ljc2MyAyNy41NzMxIDY5Ni43MzYgMjcuNTczMUM2OTUuMTMxIDI3LjU3MzEgNjk0LjE0IDI2Ljc5NDkgNjk0LjA1MSAyNS40NjY2SDY5OS44OTRDNzAwLjAxNSAyMi42OTM5IDY5OC4wNjEgMjEuMTIyOSA2OTUuNjk0IDIxLjEyMjkiIGZpbGw9IiMwMDlFNEQiLz4NCjxwYXRoIGQ9Ik03MDMuNzIxIDIzLjQzNjhINzAzLjc1OEM3MDQuNTE3IDIxLjg1NjIgNzA1LjM2NiAyMS4xMTUgNzA2LjM1MiAyMS4xMTVDNzA2Ljg2MiAyMS4xMTUgNzA3LjMwMyAyMS4yOTY0IDcwOC4wNDQgMjEuODA3Nkw3MDcuMzQxIDIzLjkxMzNDNzA2LjY3IDIzLjUxODYgNzA2LjIyOSAyMy4zNTM1IDcwNS44MjMgMjMuMzUzNUM3MDQuODg2IDIzLjM1MzUgNzA0LjI4NiAyNC4xNzc1IDcwMy43MjEgMjUuNTcwNFYyOC44NDY2SDcwMS4xNjJWMjEuMjU0MUg3MDMuNzIxVjIzLjQzNjhaTTY4MC43NzUgMTguMDY3NEM2ODEuMDE1IDE4LjY1NzUgNjgwLjU4MyAxOS40ODA1IDY3OS44MTQgMTkuOTA0QzY3OS4wNDEgMjAuMzI3MSA2NzguMjI0IDIwLjE5MjggNjc3Ljk4NiAxOS42MDI3QzY3Ny43NDMgMTkuMDExNyA2NzguMTczIDE4LjE4NzcgNjc4Ljk0NSAxNy43NjY2QzY3OS43MTYgMTcuMzQxMSA2ODAuNTMzIDE3LjQ3NTkgNjgwLjc3NSAxOC4wNjc0WiIgZmlsbD0iIzAwOUU0RCIvPg0KPHBhdGggZD0iTTY1OC4yMiAyNC4wMjMxQzY1OC4yMiAyMS45NjUxIDY1Ni43MTkgMjEuMTIyNiA2NTUuMjM5IDIxLjEyMjZDNjU0LjIzMiAyMS4xMjI2IDY1My40MDQgMjEuNTE4NCA2NTIuNjY0IDIyLjM5MjFINjUyLjYyOVYxNy42MzkySDY1MC4wNzFWMjguODM1M0g2NTIuNjI5VjI0LjAyMzFDNjUzLjIyOCAyMy4yMTYxIDY1My43MzggMjIuODcxMSA2NTQuMzM4IDIyLjg3MTFDNjU1LjEzNCAyMi44NzExIDY1NS42NjIgMjMuMzk4NiA2NTUuNjYyIDI0LjUzMjlWMjcuMjAwOEM2NTYuNTIgMjYuNzg5NiA2NTcuMzkzIDI2LjUzNzQgNjU4LjIyIDI2LjQ0MzhWMjQuMDIzMVpNNjY0LjYzNiAyMS4xMTk5QzY2My41OTQgMjEuMTE5OSA2NjIuNzk5IDIxLjQ4MTEgNjYxLjk4NCAyMi4zNDkzVjIxLjI2MjRINjU5LjQyOFYyNi40MjM0QzY2MC4zMTMgMjYuNTA1OCA2NjEuNDQzIDI2Ljg4NDcgNjYxLjk4NCAyNy41MTA0VjIzLjk2MzRDNjYyLjY1NyAyMy4wMjMyIDY2My4xMzQgMjIuNzA5NyA2NjMuNzcgMjIuNzA5N0M2NjQuNDk0IDIyLjcwOTcgNjY1LjA0NSAyMy4xNTU2IDY2NS4wNDUgMjQuMjI2NFYyOC44MzcySDY2Ny42MDJWMjQuMDI4OUM2NjcuNjAyIDIxLjc5MjYgNjY1LjkwOCAyMS4xMTk5IDY2NC42MzYgMjEuMTE5OVYyMS4xMTk5Wk02NjkuMDE1IDMxLjAxODFINjY2LjA0M1YzMi45ODY0SDY2OC45MDlWMzMuODMxMkg2NjYuMDQzVjM1Ljg2MTlINjY5LjEwM1YzNi43MDU1SDY2NS4wNDZWMzAuMTc1Mkg2NjkuMDE1TDY2OS4wMTUgMzEuMDE4MVpNNjcxLjQ0MiAzNi43MDkzSDY3Mi4zNTJWMzAuMTczM0g2NzEuNDQyVjM2LjcwOTNaTTY3Ni44NTkgMzMuMDQ4NEM2NzcuNTA0IDMzLjA0ODQgNjc3LjkwNCAzMy40NjMxIDY3Ny45MzUgMzQuMTE0Mkg2NzUuNjE2QzY3NS43NDIgMzMuNDM0MiA2NzYuMTYxIDMzLjA0ODQgNjc2Ljg1OSAzMy4wNDg0Wk02NzUuNiAzNC42ODFINjc4Ljg0MkM2NzguODQyIDMzLjA4NjkgNjc4LjA2MiAzMi4zMTggNjc2LjgzOCAzMi4zMThDNjc1LjU2OSAzMi4zMTggNjc0LjY4OCAzMy4xOTI0IDY3NC42ODggMzQuNDk2OUM2NzQuNjg4IDM1LjY4OSA2NzUuNDg0IDM2Ljc4OTggNjc2LjkxNyAzNi43ODk4QzY3Ny42OTggMzYuNzg5OCA2NzguMjAzIDM2LjYyODEgNjc4Ljc2MyAzNi4yODJWMzUuNDU2QzY3OC4yMjIgMzUuNzg1NiA2NzcuNjk4IDM1Ljk3NTggNjc3LjE0NyAzNS45NzU4QzY3Ni4yNjUgMzUuOTc1OCA2NzUuNzQyIDM1LjUzNSA2NzUuNiAzNC42ODA2VjM0LjY4MVpNNjg0Ljc4NiAzMy41MzA5QzY4NC4yNjMgMzMuMTk2NiA2ODMuOTE0IDMzLjA5ODUgNjgzLjUxNSAzMy4wOTg1QzY4Mi42ODIgMzMuMDk4NSA2ODIuMTA1IDMzLjY5NDUgNjgyLjEwNSAzNC41NjdDNjgyLjEwNSAzNS40NTYgNjgyLjcxOSAzNS45OTE2IDY4My42NjggMzUuOTkxNkM2ODQuMDU4IDM1Ljk5MTYgNjg0LjQzIDM1Ljg5NzMgNjg0Ljg4OCAzNS43MDU5VjM2LjU0MjZDNjg0LjU4MiAzNi42Nzc0IDY4My45OTcgMzYuNzg5OCA2ODMuNTE1IDM2Ljc4OThDNjgyLjEzNiAzNi43ODk4IDY4MS4xOCAzNS45MDYyIDY4MS4xOCAzNC42NDMyQzY4MS4xOCAzMy4yMTc4IDY4Mi4wNTQgMzIuMzE4IDY4My40NTMgMzIuMzE4QzY4My45ODcgMzIuMzE4IDY4NC4zNDYgMzIuNDMzOSA2ODQuNzg3IDMyLjYxNDVMNjg0Ljc4NiAzMy41MzA5Wk02ODguOTM0IDMyLjQwMDRINjkwLjM5NVYzMy4xNjUxSDY4OC45MzRWMzUuMzc1MkM2ODguOTM0IDM1Ljg4MTEgNjg5LjMyNyAzNi4wMjc0IDY4OS41OTMgMzYuMDI3NEM2ODkuOTIyIDM2LjAyNzQgNjkwLjI2MiAzNS45MiA2OTAuNjMgMzUuNzA3OVYzNi41MDM3QzY5MC4zMSAzNi42Njc4IDY4OS44MiAzNi43ODk4IDY4OS41MTkgMzYuNzg5OEM2ODguNTI4IDM2Ljc4OTggNjg4LjAyNyAzNi4yMTYxIDY4OC4wMjcgMzUuNDM5MVYzMy4xNjUxSDY4Ny4yMjRWMzMuMDcwM0w2ODguOTM0IDMxLjUxMDJWMzIuNDAwNFpNNjkzLjg3NiAzMi40MDA0VjMzLjM5NjlINjkzLjg5NUM2OTQuMzU5IDMyLjYzNDUgNjk0LjggMzIuMzE4IDY5NS4yMyAzMi4zMThDNjk1LjYwMSAzMi4zMTggNjk1Ljk0NyAzMi40ODAxIDY5Ni4zMjkgMzIuODE2Nkw2OTUuODQ3IDMzLjU2NDRDNjk1LjU3IDMzLjMwOTEgNjk1LjIxMSAzMy4xMzMxIDY5NC45OTUgMzMuMTMzMUM2OTQuMzY4IDMzLjEzMzEgNjkzLjg3NiAzMy43MjY4IDY5My44NzYgMzQuNDYyNlYzNi43MDkzSDY5Mi45NjdWMzIuNDAwNEg2OTMuODc2Wk03MDUuNjU3IDMzLjUzMDlDNzA1LjEzMSAzMy4xOTY2IDcwNC43ODIgMzMuMDk4NSA3MDQuMzgxIDMzLjA5ODVDNzAzLjU0OSAzMy4wOTg1IDcwMi45NzcgMzMuNjk0NSA3MDIuOTc3IDM0LjU2N0M3MDIuOTc3IDM1LjQ1NiA3MDMuNTkyIDM1Ljk5MTYgNzA0LjUzNSAzNS45OTE2QzcwNC45MjUgMzUuOTkxNiA3MDUuMjk1IDM1Ljg5NzMgNzA1Ljc2IDM1LjcwNTlWMzYuNTQyNkM3MDUuNDQ3IDM2LjY3NzQgNzA0Ljg2MiAzNi43ODk4IDcwNC4zOCAzNi43ODk4QzcwMy4wMDQgMzYuNzg5OCA3MDIuMDQ0IDM1LjkwNjIgNzAyLjA0NCAzNC42NDMyQzcwMi4wNDQgMzMuMjE3OCA3MDIuOTIyIDMyLjMxOCA3MDQuMzIgMzIuMzE4QzcwNC44NTUgMzIuMzE4IDcwNS4yMTIgMzIuNDMzOSA3MDUuNjU3IDMyLjYxNDVMNzA1LjY1NyAzMy41MzA5Wk02OTguNzQyIDM2LjcwOTNINjk5LjY1MlYzMi40MDA4SDY5OC43NDJWMzYuNzA5M1oiIGZpbGw9IiMwMDlFNEQiLz4NCjxwYXRoIGQ9Ik02OTkuNjg0IDMwLjg1MjVDNjk5Ljc3MyAzMS4wNjA0IDY5OS42MTggMzEuMzU0NCA2OTkuMzQ0IDMxLjUwNDFDNjk5LjA2OCAzMS42NTQzIDY5OC43NzYgMzEuNjA2MiA2OTguNjkzIDMxLjM5NzhDNjk4LjYxIDMxLjE4NzQgNjk4Ljc2MSAzMC44OTU4IDY5OS4wMzggMzAuNzQ1NkM2OTkuMzExIDMwLjU5MzUgNjk5LjYwMSAzMC42NDIxIDY5OS42ODQgMzAuODUyNVYzMC44NTI1Wk02NTguOTQgMzEuMjAwOUM2NTguNzc5IDMxLjIwMDkgNjU4LjcxMSAzMS4yMjU1IDY1OC42NDYgMzEuMjkzOEM2NTguNjIgMzEuMzIwMyA2NTguNjEgMzEuMzQ3MiA2NTguNiAzMS40MDExTDY1Ny43ODQgMzQuMjg3QzY1Ny41OTMgMzUuMjk5MiA2NTYuMjU5IDM2LjMwOTkgNjU0LjUyMSAzNi4zMDk5SDY1Mi4xMDRMNjUyLjUyMyAzNC44MjdINjU0LjA3NkM2NTQuMjM0IDM0LjgyNyA2NTQuMzU4IDM0Ljc3MjEgNjU0LjQ2MiAzNC42NjQzQzY1NC41IDM0LjYyMjUgNjU0LjU1IDM0LjU1NyA2NTQuNTU2IDM0LjQ4OTZMNjU1LjIwMSAzMS45NjgxQzY1NS4zOTEgMzAuOTU1NSA2NTYuNTM4IDI5LjgzNjkgNjU4LjI3NiAyOS44MzY5SDY2MC43NTFMNjYwLjQzNSAzMS4yMDA5SDY1OC45NFpNNjU5LjQ5NyAzMi45NTk2TDY1OS43NzMgMzIuMDI1OUg2NjIuMjg4QzY2Mi41OTggMzAuNjcyIDY2Mi4zNTQgMjkuNDE3NyA2NjEuNDczIDI4LjU5NjFDNjU5LjY4OSAyNi45MzMyIDY1NS45NTcgMjcuNDk4MyA2NTMuMTc3IDI5Ljk3NzlDNjUyLjc0MyAzMC4zNjMgNjUyLjM3NiAzMC43NzkzIDY1Mi4wNDIgMzEuMjA0OEg2NTMuNTU2TDY1My4yMDQgMzIuMTQwNEg2NTEuMzk1QzY1MS4yMjIgMzIuNDM1NCA2NTEuMDYgMzIuNzI4MSA2NTAuOTM2IDMzLjAyNUg2NTMuMDgxTDY1Mi43MzcgMzMuOTYwN0g2NTAuNjNDNjUwLjI2OSAzNS4zOTAxIDY1MC40OTkgMzYuNzIzMyA2NTEuNDA2IDM3LjU2OTlDNjUzLjE2NyAzOS4yMTE2IDY1Ni44ODggMzguNjM0NiA2NTkuNjY3IDM2LjE1NTRDNjYwLjE1MyAzNS43MjQyIDY2MC41NTUgMzUuMjU4NyA2NjAuOTE4IDM0Ljc4MDhINjU4Ljk3M0w2NTkuMjY5IDMzLjg0NzFINjYxLjU0M0M2NjEuNzEgMzMuNTUwMSA2NjEuODYzIDMzLjI1NjUgNjYxLjk4MyAzMi45NTk2SDY1OS40OTdaIiBmaWxsPSIjMDA5RTREIi8+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNThfMTExKSI+DQo8cGF0aCBkPSJNNzc1LjA2OCA0MS4yMjc0Qzc2Ni4yODUgNDIuMDQ2MyA3NTcuMTMxIDQwLjc1NjQgNzU1Ljg0OCAzMy44MTlDNzU1LjIyMSAzMC4zOTkgNzU2Ljc2NSAyNi43NzI1IDc1OC44MSAyNC41MTg0VjIzLjMxNDhDNzU1LjEyNiAyNi41OCA3NTMuMTMgMzAuNzExNSA3NTQuMjggMzUuNTkyQzc1NS43NDggNDEuODUxOCA3NjMuNjAzIDQ1LjM5NjcgNzc1LjU5NSA0NC4yMTk1Qzc4MC4zNDIgNDMuNzU0NSA3ODYuNTUgNDIuMjEyIDc5MC44NjkgMzkuODE0NFYzNi40MTA5Qzc4Ni45NDkgMzguNzcxMyA3ODAuNDY4IDQwLjcyMTEgNzc1LjA2OCA0MS4yMjc0VjQxLjIyNzRaTTc5OC4yMDUgMjMuMjMzNUM3OTYuMTIyIDEyLjk1MzMgNzc2LjM3MyAxMi4zMDE2IDc2My42NDMgMjAuMTMzOFYyMC45OTg5Qzc3Ni4zNTkgMTQuMzkxNSA3OTQuMzk1IDE0LjQzMTcgNzk2LjAzNyAyMy45MDE2Qzc5Ni41ODkgMjcuMDM0MiA3OTQuODQzIDMwLjI5NzggNzkxLjcyMyAzMi4xNzdWMzQuNjM0MkM3OTUuNDc2IDMzLjI0MzIgNzk5LjMyNCAyOC43NDQyIDc5OC4yMDUgMjMuMjMzNVYyMy4yMzM1WiIgZmlsbD0iIzBFN0RDMiIvPg0KPHBhdGggZD0iTTc5MC4xNTkgMjEuNzM2OEg3ODcuODU2VjMyLjEwM0M3ODcuODU2IDMzLjMxNzkgNzg4LjQzNyAzNC4zNzQ0IDc5MC4xNTkgMzQuNTQzMlYyMS43MzY4Wk03NjIuNzM5IDI1LjUyMTdINzYwLjQzMkw3NjAuNDMxIDMyLjI5NDNDNzYwLjQzMSAzMy41MTM0IDc2MS4wMTMgMzQuNTY4OCA3NjIuNzM5IDM0LjczNDRWMjUuNTIxN1YyNS41MjE3Wk03NjAuNDMyIDIyLjA1MjFINzYyLjczMlYyNC4yNTg0SDc2MC40MzJWMjIuMDUyMVpNNzc2LjUzIDM0LjYyNzJDNzc0LjY2NiAzNC42MjcyIDc3My44NzcgMzMuMzE3NyA3NzMuODc3IDMyLjAyOFYyMy4wMzU1SDc3Ni4xNlYyNS41MjE3SDc3Ny44NzlWMjcuMzg1M0g3NzYuMTZWMzEuODg1NEM3NzYuMTYgMzIuNDExMyA3NzYuNDA3IDMyLjcwNDQgNzc2Ljk1IDMyLjcwNDRINzc3Ljg3OVYzNC42MjcyTDc3Ni41MyAzNC42MjcyVjM0LjYyNzJaTTc4MC43MzEgMzAuNzk2MUM3ODAuNzMxIDMxLjk3NjggNzgxLjQ2MSAzMi44NDQ2IDc4Mi43NTQgMzIuODQ0NkM3ODMuNzY2IDMyLjg0NDYgNzg0LjI2NiAzMi41NjA1IDc4NC44NSAzMS45NzY4TDc4Ni4yNjEgMzMuMzM0OUM3ODUuMzU3IDM0LjIzNzkgNzg0LjQwOSAzNC43ODcgNzgyLjczNyAzNC43ODdDNzgwLjU1MiAzNC43ODcgNzc4LjQ1OSAzMy41ODE5IDc3OC40NTkgMzAuMDY4NkM3NzguNDU5IDI3LjA2NTEgNzgwLjI4OCAyNS4zNjczIDc4Mi42ODYgMjUuMzY3M0M3ODUuMTI0IDI1LjM2NzMgNzg2LjUyNSAyNy4zNTQ5IDc4Ni41MjUgMjkuOTYzOVYzMC43OTYzSDc4MC43MzFWMzAuNzk2MVpNNzgyLjU4NiAyNy4yNzU2Qzc4MS44MDUgMjcuMjc1NiA3ODEuMjA0IDI3LjY4MjMgNzgwLjk1IDI4LjIzMDlDNzgwLjgwMiAyOC41NjA3IDc4MC43NDcgMjguODE3NyA3ODAuNzMxIDI5LjIyMjlINzg0LjI0OUM3ODQuMjA0IDI4LjIzMDkgNzgzLjc1OSAyNy4yNzU2IDc4Mi41ODYgMjcuMjc1NlpNNzY4LjkzOSAyNy4zODUzQzc2OS42MDggMjcuMzg1MyA3NjkuODg3IDI3LjcxOTggNzY5Ljg4NyAyOC4yNjI2VjM0LjY0MDZINzcyLjE3VjI4LjI0OTJDNzcyLjE3IDI2Ljk1NDIgNzcxLjQ4NyAyNS41MjQxIDc2OS40ODIgMjUuNTI0MUw3NjQuNzY2IDI1LjUyMTdWMzQuNjQwNkg3NjcuMDVWMjcuMzg1M0g3NjguOTM5VjI3LjM4NTNaTTc5Mi42MzcgMjMuNTg5MUM3OTIuMTI5IDIzLjU4OTEgNzkxLjcyNCAyMy4xNzU0IDc5MS43MjQgMjIuNjYyOUM3OTEuNzI0IDIyLjE1MjkgNzkyLjEyOSAyMS43MzY4IDc5Mi42MzcgMjEuNzM2OEM3OTMuMTQyIDIxLjczNjggNzkzLjU1NiAyMi4xNTI5IDc5My41NTYgMjIuNjYyOUM3OTMuNTU2IDIzLjE3NTQgNzkzLjE0MiAyMy41ODkxIDc5Mi42MzcgMjMuNTg5MVpNNzkyLjYzNyAyMS44OTEyQzc5Mi4yMTggMjEuODkxMiA3OTEuODgyIDIyLjI0MDcgNzkxLjg4MiAyMi42NjI5Qzc5MS44ODIgMjMuMDg3NiA3OTIuMjE4IDIzLjQzMDkgNzkyLjYzNyAyMy40MzA5Qzc5My4wNTUgMjMuNDMwOSA3OTMuNDAyIDIzLjA4NzYgNzkzLjQwMiAyMi42NjI5Qzc5My40MDIgMjIuMjQwNyA3OTMuMDU1IDIxLjg5MTIgNzkyLjYzNyAyMS44OTEyWk03OTMuMDQzIDIzLjIxOEg3OTIuODcyQzc5Mi44NjQgMjMuMjE3OSA3OTIuODU3IDIzLjIxNTcgNzkyLjg1MSAyMy4yMTE2Qzc5Mi44NDUgMjMuMjA3NSA3OTIuODQgMjMuMjAxNyA3OTIuODM3IDIzLjE5NDlMNzkyLjYwNSAyMi43OTdDNzkyLjU5OCAyMi43ODg1IDc5Mi41NzkgMjIuNzc4OCA3OTIuNTczIDIyLjc3ODhINzkyLjQ2N1YyMy4xNzU0Qzc5Mi40NjcgMjMuMTk1IDc5Mi40NTMgMjMuMjE4MSA3OTIuNDI4IDIzLjIxODFINzkyLjI3NEM3OTIuMjUxIDIzLjIxODEgNzkyLjIzNSAyMy4xOTUgNzkyLjIzNSAyMy4xNzU0VjIyLjE3NDlDNzkyLjIzNSAyMi4xMTY0IDc5Mi4yNTQgMjIuMDkyNCA3OTIuMzA1IDIyLjA4NUM3OTIuMzYxIDIyLjA3OSA3OTIuNTA1IDIyLjA3MTYgNzkyLjU4NiAyMi4wNzE2Qzc5Mi44NzIgMjIuMDcxNiA3OTMuMDM5IDIyLjE1NjYgNzkzLjAzOSAyMi40MjQ0VjIyLjQ0NEM3OTMuMDM5IDIyLjYwOTQgNzkyLjk1OSAyMi42OTk1IDc5Mi44MzMgMjIuNzM5N0w3OTMuMDc0IDIzLjE1NDdDNzkzLjA3OCAyMy4xNjQgNzkzLjA4IDIzLjE3MzkgNzkzLjA4IDIzLjE4NEM3OTMuMDggMjMuMTk5NyA3OTMuMDcyIDIzLjIxOCA3OTMuMDQzIDIzLjIxOFYyMy4yMThaTTc5Mi44MjEgMjIuNDI0NEM3OTIuODIxIDIyLjMxMjcgNzkyLjc1MiAyMi4yNzczIDc5Mi42MDUgMjIuMjc3M0g3OTIuNDU5VjIyLjU5NDdDNzkyLjQ4MiAyMi41OTQ3IDc5Mi41ODYgMjIuNTk5NiA3OTIuNjA1IDIyLjU5OTZDNzkyLjc1MiAyMi41OTk2IDc5Mi44MjEgMjIuNTUgNzkyLjgyMSAyMi40NDRWMjIuNDI0NFoiIGZpbGw9IiMwRTdEQzIiLz4NCjwvZz4NCjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMV81OF8xMTEpIj4NCjxwYXRoIGQ9Ik01MzMuNzczIDIwLjk5MTFDNTI5LjI2MyAyMC45OTExIDUyNS41OTkgMjQuNjU0NyA1MjUuNTk5IDI5LjE2NDRDNTI1LjU5OSAzMy42NzQxIDUyOS4yNjMgMzcuMzM3NyA1MzMuNzczIDM3LjMzNzdDNTM4LjI4MiAzNy4zMzc3IDU0MS45NDYgMzMuNjc0MSA1NDEuOTQ2IDI5LjE2NDRDNTQxLjk0NiAyNC42NTQ3IDUzOC4yODIgMjAuOTkxMSA1MzMuNzczIDIwLjk5MTFaTTUzMy43NzMgMzYuNTE4NkM1MjkuNzEzIDM2LjUxODYgNTI2LjQxOSAzMy4yMTUgNTI2LjQxOSAyOS4xNjQ0QzUyNi40MTkgMjUuMTEzNyA1MjkuNzEzIDIxLjgxMDIgNTMzLjc3MyAyMS44MTAyQzUzNy44MzIgMjEuODEwMiA1NDEuMTI3IDI1LjExMzcgNTQxLjEyNyAyOS4xNjQ0QzU0MS4xMjcgMzMuMjE1IDUzNy44MzIgMzYuNTE4NiA1MzMuNzczIDM2LjUxODZaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTUzNi42OSAyMy45MjUyQzUzNi42NjMgMjMuOTA3MiA1MzYuNjI3IDIzLjg5ODIgNTM2LjU5MSAyMy44OTgyQzUzNi40ODMgMjMuODk4MiA1MzYuNDAyIDIzLjk3OTIgNTM2LjQwMiAyNC4wODczVjI2LjY0MzdDNTM2LjQwMiAyNi43MzM3IDUzNi4zMyAyNi44MDU3IDUzNi4yNCAyNi44MDU3SDUzMS4yOUM1MzEuMiAyNi44MDU3IDUzMS4xMzcgMjYuNzMzNyA1MzEuMTI4IDI2LjY0MzdWMjQuMDg3M0M1MzEuMTI4IDI0LjA1MTMgNTMxLjExOSAyNC4wMjQyIDUzMS4xMDEgMjMuOTg4MkM1MzEuMDQ3IDIzLjg5ODIgNTMwLjkzIDIzLjg3MTIgNTMwLjgzOSAyMy45MjUyQzUyOS4wMTIgMjUuMDUwNCA1MjcuOTA1IDI3LjAwMzcgNTI3LjkwNSAyOS4xNjQxQzUyNy45MDUgMzEuMzI0NCA1MjkuMDEyIDMzLjI3NzcgNTMwLjg1NyAzNC40MDI5QzUzMC44ODUgMzQuNDIwOSA1MzAuOTIxIDM0LjQyOTkgNTMwLjk1NyAzNC40Mjk5QzUzMS4wNjUgMzQuNDI5OSA1MzEuMTQ2IDM0LjM0ODkgNTMxLjE0NiAzNC4yNDA5VjMxLjY4NDVDNTMxLjE0NiAzMS41OTQ0IDUzMS4yMTggMzEuNTMxNCA1MzEuMzA4IDMxLjUyMjRINTM2LjI1OEM1MzYuMzQ4IDMxLjUyMjQgNTM2LjQyIDMxLjU5NDQgNTM2LjQyIDMxLjY4NDVWMzQuMjQwOUM1MzYuNDIgMzQuMjc2OSA1MzYuNDI5IDM0LjMwMzkgNTM2LjQ0NyAzNC4zMzk5QzUzNi41MDEgMzQuNDI5OSA1MzYuNjE4IDM0LjQ1NjkgNTM2LjcwOCAzNC40MDI5QzUzOC41NTQgMzMuMjc3NyA1MzkuNjYxIDMxLjMyNDQgNTM5LjY2MSAyOS4xNjQxQzUzOS42NjEgMjcuMDAzNyA1MzguNTM2IDI1LjA1MDQgNTM2LjY5IDIzLjkyNTJWMjMuOTI1MlpNNTMwLjE5MSAzMi4zNjg2TDUzMC4yMTggMzIuNjc0Nkw1MzAuMDIgMzIuNDMxNkM1MjguNDk5IDMwLjUxNDMgNTI4LjQ5OSAyNy44MDQ4IDUzMC4wMiAyNS44ODc1TDUzMC4xOTEgMjUuNjcxNUw1MzAuMjE4IDI1LjY0NDVMNTMwLjE5MSAyNS45NTk2QzUzMC4xNjQgMjYuMjExNiA1MzAuMTU1IDI2LjQ3MjYgNTMwLjE1NSAyNi43MzM3VjMxLjU4NTRDNTMwLjE1NSAzMS44NDY1IDUzMC4xNzMgMzIuMTA3NSA1MzAuMTkxIDMyLjM2ODZaTTUzNi40MDIgMzAuMzg4M0M1MzYuNDAyIDMwLjQ3ODMgNTM2LjMzIDMwLjU1MDMgNTM2LjI0IDMwLjU1MDNINTMxLjI5QzUzMS4yIDMwLjU1MDMgNTMxLjEzNyAzMC40NzgzIDUzMS4xMjggMzAuMzg4M1YyNy45Mzk5QzUzMS4xMjggMjcuODQ5OSA1MzEuMiAyNy43Nzc4IDUzMS4yOSAyNy43Nzc4SDUzNi4yNEM1MzYuMzMgMjcuNzc3OCA1MzYuNDAyIDI3Ljg0OTkgNTM2LjQwMiAyNy45Mzk5VjMwLjM4ODNaTTUzNy41MTkgMzIuNDMxNkw1MzcuMzIxIDMyLjY3NDZMNTM3LjM0OCAzMi4zNjg2QzUzNy4zNzUgMzIuMTE2NSA1MzcuMzg0IDMxLjg1NTUgNTM3LjM4NCAzMS41OTQ0VjI2LjczMzdDNTM3LjM4NCAyNi40NzI2IDUzNy4zNzUgMjYuMjExNiA1MzcuMzQ4IDI1Ljk1OTZMNTM3LjMzOSAyNS44MjQ1TDUzNy4zMyAyNS42ODA1VjI1LjY0NDVMNTM3LjUxOSAyNS44ODc1QzUzOC4yNTcgMjYuODA1NyA1MzguNjYyIDI3Ljk3NTkgNTM4LjY2MiAyOS4xNTUxQzUzOC42NjIgMzAuMzM0MiA1MzguMjU3IDMxLjUxMzQgNTM3LjUxOSAzMi40MzE2VjMyLjQzMTZaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTU1NC4yNzYgMjkuMDIwMkM1NTQuMjMxIDI5LjAwMjIgNTU0LjE3NyAyOC45ODQyIDU1NC4xNzcgMjguOTMwMkM1NTQuMTc3IDI4Ljg5NDIgNTU0LjE5NSAyOC44NjcyIDU1NC4yMzEgMjguODQ5MkM1NTQuMjk0IDI4LjgyMjIgNTU1Ljg1MSAyOC4yNjQxIDU1NS44NTEgMjYuNDI3OEM1NTUuODUxIDI0LjM4NDUgNTU0LjQ3NCAyMy4xNjkzIDU1Mi4xNTIgMjMuMTY5M0g1NDYuNTI2VjM1LjE3NzJINTUyLjY2NUM1NTQuNDU2IDM1LjE3NzIgNTU2LjM4MiAzMy45MDggNTU2LjM4MiAzMS44NjQ2QzU1Ni4zODIgMjkuOTExMyA1NTQuOTA2IDI5LjIyNzIgNTU0LjI3NiAyOS4wMjAyVjI5LjAyMDJaTTU0OS4zNjEgMjUuNjI2N0M1NDkuMzYxIDI1LjU4MTcgNTQ5LjM5NyAyNS41NDU2IDU0OS40NDIgMjUuNTQ1Nkg1NTEuNjc1QzU1Mi40MTMgMjUuNTQ1NiA1NTIuOTE3IDI2LjA0MDcgNTUyLjkxNyAyNi43Nzg4QzU1Mi45MTcgMjcuMzU0OSA1NTIuNDY3IDI3Ljk3NiA1NTEuNjIxIDI3Ljk3Nkg1NDkuNDQyQzU0OS4zOTcgMjcuOTc2IDU0OS4zNjEgMjcuOTQgNTQ5LjM2MSAyNy44OTVWMjUuNjI2N1pNNTUxLjY3NSAzMi44MDk4SDU0OS40NDJDNTQ5LjM5NyAzMi44MDk4IDU0OS4zNjEgMzIuNzczOCA1NDkuMzYxIDMyLjcyODhWMzAuMzM0NEM1NDkuMzYxIDMwLjI4OTQgNTQ5LjM5NyAzMC4yNTM0IDU0OS40NDIgMzAuMjUzNEg1NTEuNjIxQzU1Mi42OTIgMzAuMjUzNCA1NTMuMzA0IDMwLjcxMjUgNTUzLjMwNCAzMS41MjI2QzU1My4zMDQgMzIuMzU5NyA1NTIuNzM3IDMyLjgwOTggNTUxLjY3NSAzMi44MDk4VjMyLjgwOThaTTU3NS4zODQgMjcuOTQ5TDU3NC45NTIgMjcuODU5QzU3My45OCAyNy42NTIgNTczLjAzNSAyNy4zOTA5IDU3My4wMzUgMjYuNTUzOEM1NzMuMDM1IDI1LjcxNjcgNTczLjgxOCAyNS4zMzg2IDU3NC41OTIgMjUuMzM4NkM1NzUuNTAxIDI1LjMzODYgNTc2LjQwMSAyNS43NDM3IDU3Ny4wODYgMjYuNDQ1OEw1NzguODY4IDI0LjY4MTVDNTc4LjEwMyAyMy44MzU0IDU3Ni43NDQgMjIuODYzMiA1NzQuNTQ3IDIyLjg2MzJDNTcxLjkwMSAyMi44NjMyIDU3MC4xMTggMjQuMzY2NSA1NzAuMTE4IDI2LjYwNzhDNTcwLjExOCAyOC45NzUyIDU3MS45ODIgMjkuODY2MyA1NzMuNTQ4IDMwLjE5OTRMNTczLjk3MSAzMC4yODk0QzU3NS40OTIgMzAuNjEzNSA1NzYuMjEyIDMwLjg1NjUgNTc2LjIxMiAzMS43MjA2QzU3Ni4yMTIgMzIuNDk0NyA1NzUuNTE5IDMzLjAwNzggNTc0LjQ5MyAzMy4wMDc4QzU3My4yODcgMzMuMDA3OCA1NzIuMjE2IDMyLjQ3NjcgNTcxLjQwNiAzMS40Nzc2TDU2OS41NzggMzMuMjY4OUM1NzAuNTUxIDM0LjQyMTEgNTcxLjgzOCAzNS40NjUyIDU3NC41MjkgMzUuNDY1MkM1NzYuODI1IDM1LjQ2NTIgNTc5LjE1NiAzNC4xMzMgNTc5LjE1NiAzMS41NzY2QzU3OS4xNDcgMjguOTU3MiA1NzcuMzY1IDI4LjM2MzEgNTc1LjM4NCAyNy45NDlWMjcuOTQ5Wk01OTkuMTAzIDIzLjE2OTNWMjcuNTYyQzU5OS4xMDMgMjcuNjA3IDU5OS4wNjcgMjcuNjQzIDU5OS4wMjIgMjcuNjQzSDU5NS4zMzFDNTk1LjI4NiAyNy42NDMgNTk1LjI1IDI3LjYwNyA1OTUuMjUgMjcuNTYyVjIzLjE2OTNINTkyLjIyNlYzNS4xNzcySDU5NS4yNVYzMC40NjA0QzU5NS4yNSAzMC40MTU0IDU5NS4yODYgMzAuMzc5NCA1OTUuMzMxIDMwLjM3OTRINTk5LjAyMkM1OTkuMDY3IDMwLjM3OTQgNTk5LjEwMyAzMC40MTU0IDU5OS4xMDMgMzAuNDYwNFYzNS4xNzcySDYwMi4xNDZWMjMuMTY5M0g1OTkuMTAzWk01ODYuMTQxIDMyLjcxOThDNTg0Ljc4MiAzMi43MTk4IDU4My4zMTUgMzEuNTg1NiA1ODMuMzE1IDI5LjA5MjJDNTgzLjMxNSAyNi44MTQ4IDU4NC42OTIgMjUuNjI2NyA1ODYuMDUxIDI1LjYyNjdDNTg3LjA0MSAyNS42MjY3IDU4Ny43MzQgMjYuMDQwNyA1ODguMjgzIDI2Ljk1ODlMNTkwLjYwNiAyNS40MTk2QzU4OS40MTggMjMuNjczMyA1ODguMDA0IDIyLjg4MTIgNTg2LjAzMyAyMi44ODEyQzU4Mi4xNzEgMjIuODgxMiA1ODAuNDQzIDI2LjAwNDcgNTgwLjQ0MyAyOS4wOTIyQzU4MC40NDMgMzIuODQ1OCA1ODIuNzI5IDM1LjQ2NTIgNTg1Ljk5NyAzNS40NjUyQzU4OC40MjcgMzUuNDY1MiA1ODkuNTM1IDM0LjU3NDEgNTkwLjY5NiAzMi45MjY4TDU4OC4zNTUgMzEuMzUxNkM1ODcuODMzIDMyLjE5NzcgNTg3LjI2NiAzMi43MTk4IDU4Ni4xNDEgMzIuNzE5OFpNNTYzLjE3OCAyMi44NjMyQzU1OS44NzUgMjIuODYzMiA1NTcuNjYxIDI1LjM5MjYgNTU3LjY2MSAyOS4xNjQyQzU1Ny42NjEgMzIuOTM1OCA1NTkuODc1IDM1LjQ2NTIgNTYzLjE3OCAzNS40NjUyQzU2Ni40ODIgMzUuNDY1MiA1NjguNjk2IDMyLjkzNTggNTY4LjY5NiAyOS4xNjQyQzU2OC42OTYgMjUuMzkyNiA1NjYuNDgyIDIyLjg2MzIgNTYzLjE3OCAyMi44NjMyVjIyLjg2MzJaTTU2My4xNzggMzIuNzE5OEM1NjEuNTU4IDMyLjcxOTggNTYwLjUxNCAzMS4zMjQ2IDU2MC41MTQgMjkuMTY0MkM1NjAuNTE0IDI3LjAxMjkgNTYxLjU1OCAyNS42MjY3IDU2My4xNzggMjUuNjI2N0M1NjQuODA4IDI1LjYyNjcgNTY1Ljg2MSAyNy4wMTI5IDU2NS44NjEgMjkuMTY0MkM1NjUuODYxIDMxLjMyNDYgNTY0LjgwOCAzMi43MTk4IDU2My4xNzggMzIuNzE5OFoiIGZpbGw9IiNGODAwMDAiLz4NCjwvZz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTQ2LjM0NCAyMi4xODExQzE0Ny41OTUgMjIuMjg1NCAxNDguODQ1IDIxLjU1NTMgMTQ5LjYyNyAyMC42Mjk4QzE1MC4zOTUgMTkuNjc4MSAxNTAuOTAzIDE4LjQwMDUgMTUwLjc3MyAxNy4wOTY5QzE0OS42NjYgMTcuMTQ5MSAxNDguMjk4IDE3LjgyNjkgMTQ3LjUxNyAxOC43Nzg2QzE0Ni44IDE5LjU5OTkgMTQ2LjE4OCAyMC45Mjk2IDE0Ni4zNDQgMjIuMTgxMVpNMTQ3Ljg0MSAyMy4wNzk3QzE0OC42NTMgMjIuNzYwNiAxNDkuNjU4IDIyLjM2NTYgMTUwLjc2IDIyLjQyOTFDMTUxLjQ2MyAyMi40ODEyIDE1My40OTUgMjIuNjg5OCAxNTQuNzk4IDI0LjYxOTJDMTU0Ljc5MiAyNC42MjM3IDE1NC43NzggMjQuNjMyMyAxNTQuNzU5IDI0LjY0NUMxNTQuNDM2IDI0Ljg1NDggMTUyLjM5IDI2LjE4NzEgMTUyLjQxNCAyOC44MTY5QzE1Mi40MzkgMzEuOTQ5OSAxNTQuOTg4IDMzLjExODMgMTU1LjMyMiAzMy4yNzExQzE1NS4zNDQgMzMuMjgxMSAxNTUuMzU2IDMzLjI4NjcgMTU1LjM1OCAzMy4yODgzQzE1NS4zNTYgMzMuMjkyNiAxNTUuMzU0IDMzLjMwMSAxNTUuMzUgMzMuMzEzM0MxNTUuMjgzIDMzLjUyODggMTU0Ljg0NSAzNC45NDg5IDE1My44NDcgMzYuNDA0QzE1Mi45MjIgMzcuNzU5OCAxNTEuOTcxIDM5LjA4OTUgMTUwLjQ2IDM5LjExNTZDMTQ5Ljc0OSAzOS4xMjgzIDE0OS4yNyAzOC45MjExIDE0OC43NzIgMzguNzA1NEMxNDguMjQ3IDM4LjQ3ODUgMTQ3LjcwMSAzOC4yNDIyIDE0Ni44NCAzOC4yNDIyQzE0NS45NDcgMzguMjQyMiAxNDUuMzc2IDM4LjQ4NDggMTQ0LjgyNiAzOC43MTg0QzE0NC4zNDggMzguOTIxNCAxNDMuODg3IDM5LjExNzQgMTQzLjI0NSAzOS4xNDE3QzE0MS43ODYgMzkuMTkzOCAxNDAuNjc5IDM3LjcwNzcgMTM5Ljc1NCAzNi4zNTE5QzEzNy44NjYgMzMuNjE0MyAxMzYuNDIgMjguNjM0NCAxMzguMzc0IDI1LjI3MUMxMzkuMzI1IDIzLjU4OTMgMTQxLjA1NyAyMi41MzM0IDE0Mi45MTkgMjIuNTA3M0MxNDMuNzMyIDIyLjQ5MjUgMTQ0LjUwNyAyMi44MDA2IDE0NS4xODQgMjMuMDcwMUMxNDUuNzAyIDIzLjI3NTggMTQ2LjE2MiAyMy40NTg5IDE0Ni41NCAyMy40NTg5QzE0Ni44NzcgMjMuNDU4OSAxNDcuMzE5IDIzLjI4NTEgMTQ3Ljg0MSAyMy4wNzk3WiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik0zNi44NTg3IDM3LjUyNDFIMzEuOTg3NEwzNS4wMzQyIDE5LjY2NjhIMzkuOTA1MkwzNi44NTg3IDM3LjUyNDFaIiBmaWxsPSIjMDA1NzlGIi8+DQo8cGF0aCBkPSJNNTQuNTE1NyAyMC4xMDQxQzUzLjU1NDkgMTkuNzQyOCA1Mi4wMzA5IDE5LjM0MzggNTAuMTQ2NiAxOS4zNDM4QzQ1LjMzNjEgMTkuMzQzOCA0MS45NDg2IDIxLjc3NTMgNDEuOTI3OCAyNS4yNTE2QzQxLjg4NzggMjcuODE2NSA0NC4zNTMxIDI5LjI0MSA0Ni4xOTcgMzAuMDk2MkM0OC4wODE2IDMwLjk3MDEgNDguNzIyMyAzMS41NDA1IDQ4LjcyMjMgMzIuMzE5NEM0OC43MDMxIDMzLjUxNTcgNDcuMTk5NCAzNC4wNjcyIDQ1Ljc5NjkgMzQuMDY3MkM0My44NTIxIDM0LjA2NzIgNDIuODEgMzMuNzgyOSA0MS4yMjY0IDMzLjExNzNMNDAuNTg1IDMyLjgzMkwzOS45MDMzIDM2Ljg0MDZDNDEuMDQ1OCAzNy4zMzM5IDQzLjE1MDcgMzcuNzcxNyA0NS4zMzYxIDM3Ljc5MDlDNTAuNDQ3MyAzNy43OTA5IDUzLjc3NDkgMzUuMzk3MSA1My44MTQzIDMxLjY5MjVDNTMuODMzOCAyOS42NTk3IDUyLjUzMiAyOC4xMDIgNDkuNzI1NCAyNi44MjkyQzQ4LjAyMTcgMjYuMDEyMSA0Ni45NzgzIDI1LjQ2MTIgNDYuOTc4MyAyNC42MjUyQzQ2Ljk5ODMgMjMuODY1MiA0Ny44NjA4IDIzLjA4NjggNDkuNzg0IDIzLjA4NjhDNTEuMzY3NyAyMy4wNDg2IDUyLjUzMTIgMjMuNDA5NCA1My40MTI2IDIzLjc3MDVMNTMuODUzMiAyMy45NjAxTDU0LjUxNTcgMjAuMTA0MVoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik02MC45OTI0IDMxLjE5NzlDNjEuMzkzNiAzMC4xNzIgNjIuOTM3MiAyNi4yMDE2IDYyLjkzNzIgMjYuMjAxNkM2Mi45MTcgMjYuMjM5NyA2My4zMzc2IDI1LjE1NjggNjMuNTc4MSAyNC40OTE5TDYzLjkxODYgMjYuMDMwNkM2My45MTg2IDI2LjAzMDYgNjQuODQxIDMwLjMwNTEgNjUuMDQxNCAzMS4xOTc5QzY0LjI4IDMxLjE5NzkgNjEuOTU0NiAzMS4xOTc5IDYwLjk5MjQgMzEuMTk3OVpNNjcuMDA1NCAxOS42NjY4SDYzLjIzNzRDNjIuMDc1NSAxOS42NjY4IDYxLjE5MjcgMTkuOTg5NSA2MC42OTE0IDIxLjE0ODRMNTMuNDU1OCAzNy41MjM5SDU4LjU2NzFDNTguNTY3MSAzNy41MjM5IDU5LjQwODUgMzUuMzE5OSA1OS41ODk0IDM0Ljg0NTJDNjAuMTUwMSAzNC44NDUyIDY1LjEyMjMgMzQuODQ1MiA2NS44NDM3IDM0Ljg0NTJDNjUuOTgzNSAzNS40NzIxIDY2LjQyNDkgMzcuNTIzOSA2Ni40MjQ5IDM3LjUyMzlINzAuOTM1Mkw2Ny4wMDU0IDE5LjY2NjhWMTkuNjY2OFoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik0yNy45MTggMTkuNjY2OEwyMy4xNDc1IDMxLjg0MzhMMjIuNjI2MiAyOS4zNzQxQzIxLjc0NDIgMjYuNTI0NSAxOC45NzgxIDIzLjQyODQgMTUuODkxNCAyMS44ODlMMjAuMjYxIDM3LjUwNTJIMjUuNDEyMkwzMy4wNjkgMTkuNjY2OEgyNy45MThWMTkuNjY2OFoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik0xOC43MTg0IDE5LjY2NjhIMTAuODgxMUwxMC44MDA5IDIwLjAyNzZDMTYuOTE0NSAyMS41MDk1IDIwLjk2MzUgMjUuMDgxNSAyMi42MjcgMjkuMzc0OUwyMC45MjMyIDIxLjE2NzlDMjAuNjQyNyAyMC4wMjc0IDE5Ljc4MDcgMTkuNzA0NCAxOC43MTg0IDE5LjY2NjhaIiBmaWxsPSIjRkFBNjFBIi8+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDJfNThfMTExKSI+DQo8cGF0aCBkPSJNMjIxLjE1OCAxNy40OTlWMTguOTM1NkgyMzEuMzA2VjE3LjQ5OUgyMjEuMTU4Wk0yMzIuNzQ0IDE3LjQ5OVYxOC45MzU2SDI0Ny4yMDZDMjQ3LjIwNiAxOC45MzU2IDI0NS43MjkgMTcuNDk5IDI0My43NzMgMTcuNDk5SDIzMi43NDRaTTI1MC4wNDMgMTcuNDk5VjE4LjkzNTZIMjU4Ljc5M0wyNTguMjczIDE3LjQ5OUgyNTAuMDQzWk0yNjUuMDY1IDE3LjQ5OUwyNjQuNTQ2IDE4LjkzNTZIMjczLjIxNlYxNy40OTlIMjY1LjA2NVpNMjIxLjE1OCAyMC4yOTI5VjIxLjcyOTZIMjMxLjMwNlYyMC4yOTI5SDIyMS4xNThaTTIzMi43NDQgMjAuMjk1VjIxLjcyOTdIMjQ4Ljg4NEMyNDguODg0IDIxLjcyOTcgMjQ4LjY5NiAyMC42MjM5IDI0OC4zNjcgMjAuMjk1SDIzMi43NDRaTTI1MC4wNDMgMjAuMjk1VjIxLjcyOTdIMjU5Ljc1MkwyNTkuMjcxIDIwLjI5NUgyNTAuMDQzWk0yNjQuMDI3IDIwLjI5NUwyNjMuNTQ2IDIxLjcyOTdIMjczLjIxNlYyMC4yOTVIMjY0LjAyN1YyMC4yOTVaTTIyNC4wNzQgMjMuMDg2OVYyNC41MjU3SDIyOC40NjlWMjMuMDg2OUgyMjQuMDc0VjIzLjA4NjlaTTIzNS42NjEgMjMuMDg2OVYyNC41MjU3SDI0MC4wNTZWMjMuMDg2OUgyMzUuNjYxVjIzLjA4NjlaTTI0NC4zMzEgMjMuMDg2OVYyNC41MjU3SDI0OC43MjZDMjQ4LjcyNiAyNC41MjU3IDI0OS4wMDUgMjMuNzY1OSAyNDkuMDA1IDIzLjA4NjlIMjQ0LjMzMVYyMy4wODY5Wk0yNTIuOTYgMjMuMDg2OVYyNC41MjU3SDI2MC43NTJMMjYwLjIzMiAyMy4wODY5SDI1Mi45NlYyMy4wODY5Wk0yNjMuMDY5IDIzLjA4NjlMMjYyLjU0OCAyNC41MjU3SDI3MC4zNzlWMjMuMDg2OUgyNjMuMDY5VjIzLjA4NjlaTTIyNC4wNzQgMjUuODgzVjI3LjMxOTdIMjI4LjQ2OVYyNS44ODNIMjI0LjA3NFYyNS44ODNaTTIzNS42NjEgMjUuODgzVjI3LjMxOTdIMjQ2Ljg4N0MyNDYuODg3IDI3LjMxOTcgMjQ3LjgyNiAyNi41ODI1IDI0OC4xMjUgMjUuODgzSDIzNS42NjFaTTI1Mi45NiAyNS44ODNWMjcuMzE5N0gyNTcuMzU1VjI2LjUyTDI1Ny42MzQgMjcuMzE5N0gyNjUuNjg0TDI2NS45ODQgMjYuNTJWMjcuMzE5N0gyNzAuMzc5VjI1Ljg4M0gyNjIuMTI5TDI2MS42OTEgMjcuMDk5OUwyNjEuMjUxIDI1Ljg4M0gyNTIuOTZaTTIyNC4wNzQgMjguNjc3VjMwLjExMzdIMjI4LjQ2OVYyOC42NzdIMjI0LjA3NFpNMjM1LjY2MSAyOC42NzdWMzAuMTEzN0gyNDguMTI1QzI0Ny44MjYgMjkuNDE2NSAyNDYuODg3IDI4LjY3NyAyNDYuODg3IDI4LjY3N0gyMzUuNjYxWk0yNTIuOTYgMjguNjc3VjMwLjExMzdIMjU3LjM1NVYyOC42NzdIMjUyLjk2Wk0yNTguMTUzIDI4LjY3N0wyNTguNjg1IDMwLjExMzdIMjY0LjcyMUwyNjUuMjI2IDI4LjY3N0gyNTguMTUzWk0yNjUuOTg0IDI4LjY3N1YzMC4xMTM3SDI3MC4zNzlWMjguNjc3SDI2NS45ODRaTTIyNC4wNzQgMzEuNDcxVjMyLjkwNzZIMjI4LjQ2OVYzMS40NzFIMjI0LjA3NFpNMjM1LjY2MSAzMS40NzFWMzIuOTA3NkgyNDAuMDU2VjMxLjQ3MUgyMzUuNjYxWk0yNDQuMzMxIDMxLjQ3MVYzMi45MDc2SDI0OS4wMDVDMjQ5LjAwNSAzMi4yMjk2IDI0OC43MjYgMzEuNDcxIDI0OC43MjYgMzEuNDcxSDI0NC4zMzFWMzEuNDcxWk0yNTIuOTYgMzEuNDcxVjMyLjkwNzZIMjU3LjM1NVYzMS40NzFIMjUyLjk2Wk0yNTkuMTUxIDMxLjQ3MUwyNTkuNjY2IDMyLjkwNzZIMjYzLjcxM0wyNjQuMjMyIDMxLjQ3MUgyNTkuMTUxWk0yNjUuOTg0IDMxLjQ3MVYzMi45MDc2SDI3MC4zNzlWMzEuNDcxSDI2NS45ODRaTTIyMS4yMzcgMzQuMjY1VjM1LjcwMzdIMjMxLjM4NlYzNC4yNjVIMjIxLjIzN1pNMjMyLjc0NCAzNC4yNjVWMzUuNzAzN0gyNDguMzY3QzI0OC42OTYgMzUuMzc0MyAyNDguODg0IDM0LjI2NSAyNDguODg0IDM0LjI2NUgyMzIuNzQ0VjM0LjI2NVpNMjUwLjEyMyAzNC4yNjVWMzUuNzAzN0gyNTcuMzU1VjM0LjI2NUgyNTAuMTIzWk0yNjAuMTUxIDM0LjI2NUwyNjAuNjggMzUuNzAzN0gyNjIuNzM5TDI2My4yMzYgMzQuMjY1SDI2MC4xNTFaTTI2NS45ODQgMzQuMjY1VjM1LjcwMzdIMjczLjI5NVYzNC4yNjVIMjY1Ljk4NFpNMjIxLjIzNyAzNy4wNjFWMzguNDk3N0gyMzEuMzg2VjM3LjA2MUgyMjEuMjM3Wk0yMzIuNzQ0IDM3LjA2MVYzOC40OTU2SDI0My43NzNDMjQ1LjcyOSAzOC40OTU2IDI0Ny4yMDYgMzcuMDYxIDI0Ny4yMDYgMzcuMDYxSDIzMi43NDRaTTI1MC4xMjMgMzcuMDYxVjM4LjQ5NzdIMjU3LjM1NVYzNy4wNjFIMjUwLjEyM1pNMjYxLjE1NSAzNy4wNjFMMjYxLjY2NCAzOC40OTM2TDI2MS43NTIgMzguNDk1NkwyNjIuMjY5IDM3LjA2MUgyNjEuMTU1VjM3LjA2MVpNMjY1Ljk4NCAzNy4wNjFWMzguNDk3N0gyNzMuMjk1VjM3LjA2MUgyNjUuOTg0WiIgZmlsbD0iIzFGNzBDMSIvPg0KPC9nPg0KPGRlZnM+DQo8Y2xpcFBhdGggaWQ9ImNsaXAwXzU4XzExMSI+DQo8cmVjdCB3aWR0aD0iNDQuNDQ3MyIgaGVpZ2h0PSIyOS42MzE1IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUzLjk1NSAxNC44MTU1KSIvPg0KPC9jbGlwUGF0aD4NCjxjbGlwUGF0aCBpZD0iY2xpcDFfNThfMTExIj4NCjxyZWN0IHdpZHRoPSI3Ni41NDgxIiBoZWlnaHQ9IjE2LjM1MDciIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MjUuNTk5IDIwLjk4ODkpIi8+DQo8L2NsaXBQYXRoPg0KPGNsaXBQYXRoIGlkPSJjbGlwMl81OF8xMTEiPg0KPHJlY3Qgd2lkdGg9IjUyLjEzNzIiIGhlaWdodD0iMjAuOTk4NyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyMS4xNTggMTcuNDk5KSIvPg0KPC9jbGlwUGF0aD4NCjwvZGVmcz4NCjwvc3ZnPg0K\" style=\"\n width: 742.5px;\n position: relative;\n top: 107px;\n left: 32px;\n \">\n <a href=" + accountURL + " style=\"\n float: left;\n border-radius: 56px;\n background: #0D6EFD;\n padding-top: 8px;\n width: 280px;\n height: 38px;\n text-align: center;\n position: relative;\n top: 127px;\n left: 274px;\n font-size: 16px;\n color: white;\n text-decoration: none;\n letter-spacing: 0.02em;\n \">Claim your FREE account</a>\n <div style=\"\n font-size: 14px;\n position: relative;\n top: 180px;\n left: 19px;\n letter-spacing: 0.02em;\n font-weight: 500;\n line-height: 125%;\n\">have a Syncfusion account? <a href=\"https://www.syncfusion.com/account/login?ReturnUrl=/account/login\" style=\"text-decoration: none;\ncolor: #0D6EFD;\nfont-weight: 500;\">Sign In</a></div>\n </div>\n </div>";
7004
+ if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {
7005
+ var errorBackground = createElement('div', {
7006
+ innerHTML: bannerTemplate
7007
+ });
7008
+ document.body.appendChild(errorBackground);
7009
+ }
7010
+ };
6917
7011
 
6918
7012
  var __extends$1 = (undefined && undefined.__extends) || (function () {
6919
7013
  var extendStatics = function (d, b) {
@@ -6937,6 +7031,12 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
6937
7031
  var componentCount = 0;
6938
7032
  var lastPageID;
6939
7033
  var lastHistoryLen = 0;
7034
+ // Decalre the static variable to count the instance
7035
+ var instancecount = 0;
7036
+ // Decalre the static variable to find if control limit exceed or not
7037
+ var isvalid = true;
7038
+ // We have added styles to inline type so here declare the static variable to detect if banner is added or not
7039
+ var isBannerAdded = false;
6940
7040
  var versionBasedStatePersistence = false;
6941
7041
  /**
6942
7042
  * To enable or disable version based statePersistence functionality for all components globally.
@@ -6979,8 +7079,14 @@ var Component = /** @__PURE__ @class */ (function (_super) {
6979
7079
  _this.localObserver = new Observer(_this);
6980
7080
  // tslint:disable-next-line:no-function-constructor-with-string-args
6981
7081
  onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);
6982
- if (typeof window !== "undefined" && typeof document !== "undefined") {
6983
- validateLicense();
7082
+ // Based on the considered control list we have count the instance
7083
+ if (typeof window !== "undefined" && typeof document !== "undefined" && !validateLicense()) {
7084
+ if (componentList.indexOf(_this.getModuleName()) !== -1) {
7085
+ instancecount = instancecount + 1;
7086
+ if (instancecount > 5) {
7087
+ isvalid = false;
7088
+ }
7089
+ }
6984
7090
  }
6985
7091
  if (!isUndefined(selector)) {
6986
7092
  _this.appendTo();
@@ -7092,6 +7198,11 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7092
7198
  }
7093
7199
  this.preRender();
7094
7200
  this.injectModules();
7201
+ // Checked weather cases are valid or not. If control leads to more than five counts
7202
+ if (!isvalid && !isBannerAdded) {
7203
+ createLicenseOverlay();
7204
+ isBannerAdded = true;
7205
+ }
7095
7206
  this.render();
7096
7207
  if (!this.mount) {
7097
7208
  this.trigger('created');
@@ -7201,8 +7312,8 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7201
7312
  this.prototype.injectedModules = [];
7202
7313
  }
7203
7314
  for (var i = 0; i < moduleList.length; i++) {
7204
- if (this.prototype.injectedModules.indexOf(moduleList[i]) === -1) {
7205
- this.prototype.injectedModules.push(moduleList[i]);
7315
+ if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {
7316
+ this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);
7206
7317
  }
7207
7318
  }
7208
7319
  };
@@ -7269,9 +7380,11 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7269
7380
  }
7270
7381
  }
7271
7382
  };
7272
- //tslint:disable-next-line
7273
- Component.prototype.renderReactTemplates = function () {
7274
- //No Code
7383
+ // eslint-disable-next-line
7384
+ Component.prototype.renderReactTemplates = function (callback) {
7385
+ if (!isNullOrUndefined(callback)) {
7386
+ callback();
7387
+ }
7275
7388
  };
7276
7389
  // eslint-disable-next-line
7277
7390
  Component.prototype.clearTemplate = function (templateName, index) {
@@ -7339,10 +7452,10 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7339
7452
  }).map(function (str) {
7340
7453
  return str.replace(key + '.', '');
7341
7454
  });
7342
- newObj[key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);
7455
+ newObj["" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);
7343
7456
  }
7344
7457
  else {
7345
- newObj[key] = value;
7458
+ newObj["" + key] = value;
7346
7459
  }
7347
7460
  }
7348
7461
  };
@@ -7443,8 +7556,8 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7443
7556
  _this.prevLeft = 0;
7444
7557
  _this.prevTop = 0;
7445
7558
  _this.dragProcessStarted = false;
7446
- /* tslint:disable no-any */
7447
7559
  _this.eleTop = 0;
7560
+ /* eslint-disable @typescript-eslint/no-explicit-any */
7448
7561
  _this.tapHoldTimer = 0;
7449
7562
  _this.externalInitialize = false;
7450
7563
  _this.diffY = 0;
@@ -7503,7 +7616,7 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7503
7616
  if (isNullOrUndefined(element)) {
7504
7617
  return null;
7505
7618
  }
7506
- if (element[scroll[axis]] > element[client[axis]]) {
7619
+ if (element[scroll["" + axis]] > element[client["" + axis]]) {
7507
7620
  if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {
7508
7621
  if (axis === 'vertical') {
7509
7622
  this.parentScrollY = this.parentScrollY +
@@ -7555,7 +7668,7 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7555
7668
  abortSelectors = [abortSelectors];
7556
7669
  }
7557
7670
  for (var i = 0; i < abortSelectors.length; i++) {
7558
- if (!isNullOrUndefined(closest(evt.target, abortSelectors[i]))) {
7671
+ if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {
7559
7672
  /* istanbul ignore next */
7560
7673
  if (this.isDragStarted()) {
7561
7674
  this.isDragStarted(true);
@@ -7602,9 +7715,6 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7602
7715
  if (isChangeTouch && (evt.changedTouches.length !== 1)) {
7603
7716
  return;
7604
7717
  }
7605
- if (isChangeTouch) {
7606
- evt.preventDefault();
7607
- }
7608
7718
  var intCordinate = this.getCoordinates(evt);
7609
7719
  var pos;
7610
7720
  var styleProp = getComputedStyle(this.element);
@@ -7612,7 +7722,7 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7612
7722
  left: parseInt(styleProp.marginLeft, 10),
7613
7723
  top: parseInt(styleProp.marginTop, 10),
7614
7724
  right: parseInt(styleProp.marginRight, 10),
7615
- bottom: parseInt(styleProp.marginBottom, 10),
7725
+ bottom: parseInt(styleProp.marginBottom, 10)
7616
7726
  };
7617
7727
  var element = this.element;
7618
7728
  if (this.clone && this.dragTarget) {
@@ -7635,6 +7745,9 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7635
7745
  if (!ele || isNullOrUndefined(ele)) {
7636
7746
  return;
7637
7747
  }
7748
+ if (isChangeTouch) {
7749
+ evt.preventDefault();
7750
+ }
7638
7751
  var dragTargetElement = this.helperElement = ele;
7639
7752
  this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);
7640
7753
  if (this.dragStart) {
@@ -7681,6 +7794,9 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7681
7794
  top: (pos.top - this.diffY) + 'px',
7682
7795
  left: (pos.left - this.diffX) + 'px'
7683
7796
  });
7797
+ if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {
7798
+ pos.top += this.dragArea.scrollTop;
7799
+ }
7684
7800
  this.dragElePosition = { top: pos.top, left: pos.left };
7685
7801
  setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));
7686
7802
  EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);
@@ -7831,14 +7947,27 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7831
7947
  }
7832
7948
  var draEleTop;
7833
7949
  var draEleLeft;
7834
- if (this.dragArea) {
7835
- this.dragLimit.top = this.clone ? this.dragLimit.top : 0;
7836
- draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);
7837
- draEleLeft = (left - iLeft) < 0 ? this.dragElePosition.left : (left - iLeft);
7950
+ if (this.helperElement.classList.contains('e-treeview')) {
7951
+ if (this.dragArea) {
7952
+ this.dragLimit.top = this.clone ? this.dragLimit.top : 0;
7953
+ draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);
7954
+ draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);
7955
+ }
7956
+ else {
7957
+ draEleTop = top - this.borderWidth.top;
7958
+ draEleLeft = left - this.borderWidth.left;
7959
+ }
7838
7960
  }
7839
7961
  else {
7840
- draEleTop = top - iTop;
7841
- draEleLeft = left - iLeft;
7962
+ if (this.dragArea) {
7963
+ this.dragLimit.top = this.clone ? this.dragLimit.top : 0;
7964
+ draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);
7965
+ draEleLeft = (left - iLeft) < 0 ? this.dragElePosition.left : (left - iLeft);
7966
+ }
7967
+ else {
7968
+ draEleTop = top - iTop;
7969
+ draEleLeft = left - iLeft;
7970
+ }
7842
7971
  }
7843
7972
  var marginTop = parseFloat(getComputedStyle(this.element).marginTop);
7844
7973
  // when drag-element has margin-top
@@ -7871,6 +8000,11 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7871
8000
  }
7872
8001
  }
7873
8002
  }
8003
+ if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {
8004
+ var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)
8005
+ + parseFloat(styles.marginBottom));
8006
+ draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;
8007
+ }
7874
8008
  /* istanbul ignore next */
7875
8009
  // if(this.eleTop > 0) {
7876
8010
  // draEleTop += this.eleTop;
@@ -7879,11 +8013,33 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7879
8013
  draEleTop -= this.parentScrollY;
7880
8014
  draEleLeft -= this.parentScrollX;
7881
8015
  }
8016
+ if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {
8017
+ draEleTop += this.dragArea.scrollTop;
8018
+ }
7882
8019
  var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });
7883
8020
  setStyleAttribute(helperElement, this.getDragPosition(dragValue));
7884
- if (!this.elementInViewport(helperElement) && this.enableAutoScroll) {
8021
+ if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {
7885
8022
  this.helperElement.scrollIntoView();
7886
8023
  }
8024
+ var elements = document.querySelectorAll(':hover');
8025
+ if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {
8026
+ if (elements.length === 0) {
8027
+ elements = this.getPathElements(evt);
8028
+ }
8029
+ /* tslint:disable no-any */
8030
+ var scrollParent = this.getScrollParent(elements, false);
8031
+ if (this.elementInViewport(this.helperElement)) {
8032
+ this.getScrollPosition(scrollParent, draEleTop);
8033
+ }
8034
+ else if (!this.elementInViewport(this.helperElement)) {
8035
+ elements = [].slice.call(document.querySelectorAll(':hover'));
8036
+ if (elements.length === 0) {
8037
+ elements = this.getPathElements(evt);
8038
+ }
8039
+ scrollParent = this.getScrollParent(elements, true);
8040
+ this.getScrollPosition(scrollParent, draEleTop);
8041
+ }
8042
+ }
7887
8043
  this.dragProcessStarted = true;
7888
8044
  this.prevLeft = left;
7889
8045
  this.prevTop = top;
@@ -7892,6 +8048,48 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7892
8048
  this.pageX = pagex;
7893
8049
  this.pageY = pagey;
7894
8050
  };
8051
+ /* tslint:disable no-any */
8052
+ Draggable.prototype.getScrollParent = function (node, reverse) {
8053
+ /* tslint:disable no-any */
8054
+ var nodeEl = reverse ? node.reverse() : node;
8055
+ var hasScroll;
8056
+ for (var i = nodeEl.length - 1; i >= 0; i--) {
8057
+ hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];
8058
+ if ((hasScroll === 'auto' || hasScroll === 'scroll')
8059
+ && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {
8060
+ return nodeEl[parseInt(i.toString(), 10)];
8061
+ }
8062
+ }
8063
+ hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];
8064
+ if (hasScroll === 'visible') {
8065
+ document.scrollingElement.style.overflow = 'auto';
8066
+ return document.scrollingElement;
8067
+ }
8068
+ };
8069
+ Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {
8070
+ if (nodeEle && nodeEle === document.scrollingElement) {
8071
+ if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop
8072
+ && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) {
8073
+ nodeEle.scrollTop += this.helperElement.clientHeight;
8074
+ }
8075
+ else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) {
8076
+ nodeEle.scrollTop -= this.helperElement.clientHeight;
8077
+ }
8078
+ }
8079
+ else if (nodeEle && nodeEle !== document.scrollingElement) {
8080
+ if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop) < draEleTop) {
8081
+ nodeEle.scrollTop += this.helperElement.clientHeight;
8082
+ }
8083
+ else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight - document.scrollingElement.scrollTop)) {
8084
+ nodeEle.scrollTop -= this.helperElement.clientHeight;
8085
+ }
8086
+ }
8087
+ };
8088
+ Draggable.prototype.getPathElements = function (evt) {
8089
+ var elementTop = evt.clientX > 0 ? evt.clientX : 0;
8090
+ var elementLeft = evt.clientY > 0 ? evt.clientY : 0;
8091
+ return document.elementsFromPoint(elementTop, elementLeft);
8092
+ };
7895
8093
  Draggable.prototype.triggerOutFunction = function (evt, eleObj) {
7896
8094
  this.hoverObject.instance.intOut(evt, eleObj.target);
7897
8095
  this.hoverObject.instance.dragData[this.scope] = null;
@@ -7985,18 +8183,23 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7985
8183
  if (ele) {
7986
8184
  var elementArea = ele.getBoundingClientRect();
7987
8185
  eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;
7988
- eleHeightBound = ele.scrollHeight ? ele.scrollHeight : elementArea.bottom - elementArea.top;
8186
+ eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;
7989
8187
  var keys = ['Top', 'Left', 'Bottom', 'Right'];
7990
8188
  var styles = getComputedStyle(ele);
7991
8189
  for (var i = 0; i < keys.length; i++) {
7992
- var key = keys[i];
8190
+ var key = keys[parseInt(i.toString(), 10)];
7993
8191
  var tborder = styles['border' + key + 'Width'];
7994
8192
  var tpadding = styles['padding' + key];
7995
8193
  var lowerKey = key.toLowerCase();
7996
- this.borderWidth[lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);
7997
- this.padding[lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);
8194
+ this.borderWidth["" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);
8195
+ this.padding["" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);
8196
+ }
8197
+ if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {
8198
+ top = elementArea.top + document.scrollingElement.scrollTop;
8199
+ }
8200
+ else {
8201
+ top = elementArea.top;
7998
8202
  }
7999
- top = elementArea.top;
8000
8203
  left = elementArea.left;
8001
8204
  this.dragLimit.left = left + this.borderWidth.left + this.padding.left;
8002
8205
  this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;
@@ -8008,7 +8211,8 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
8008
8211
  var intCoord = this.getCoordinates(evt);
8009
8212
  var ele;
8010
8213
  var prevStyle = this.helperElement.style.pointerEvents || '';
8011
- if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1) {
8214
+ var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version) > 12;
8215
+ if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {
8012
8216
  this.helperElement.style.pointerEvents = 'none';
8013
8217
  ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);
8014
8218
  this.helperElement.style.pointerEvents = prevStyle;
@@ -8047,6 +8251,12 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
8047
8251
  pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;
8048
8252
  pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;
8049
8253
  }
8254
+ if (this.element && this.element.classList.length > 0 && this.element.classList.value.indexOf("e-dialog") === -1 && document.scrollingElement) {
8255
+ var isVerticalScroll = document.scrollingElement.scrollHeight > 0 && document.scrollingElement.scrollHeight > document.scrollingElement.clientHeight && document.scrollingElement.scrollTop > 0;
8256
+ var isHorrizontalScroll = document.scrollingElement.scrollWidth > 0 && document.scrollingElement.scrollWidth > document.scrollingElement.clientWidth && document.scrollingElement.scrollLeft > 0;
8257
+ pageX = isHorrizontalScroll ? pageX - document.scrollingElement.scrollLeft : pageX;
8258
+ pageY = isVerticalScroll ? pageY - document.scrollingElement.scrollTop : pageY;
8259
+ }
8050
8260
  return {
8051
8261
  left: pageX - (this.margin.left + this.cursorAt.left),
8052
8262
  top: pageY - (this.margin.top + this.cursorAt.top)
@@ -8099,7 +8309,7 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
8099
8309
  if (eleInst) {
8100
8310
  for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {
8101
8311
  var inst = eleInst_1[_i];
8102
- if (inst[name]() === 'droppable') {
8312
+ if (inst["" + name]() === 'droppable') {
8103
8313
  drop = inst;
8104
8314
  break;
8105
8315
  }
@@ -8428,7 +8638,7 @@ var KeyboardEvents = /** @__PURE__ @class */ (function (_super) {
8428
8638
  var keys = Object.keys(_this.keyConfigs);
8429
8639
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
8430
8640
  var key = keys_1[_i];
8431
- var configCollection = _this.keyConfigs[key].split(',');
8641
+ var configCollection = _this.keyConfigs["" + key].split(',');
8432
8642
  for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {
8433
8643
  var rconfig = configCollection_1[_a];
8434
8644
  var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());
@@ -8505,7 +8715,7 @@ var KeyboardEvents = /** @__PURE__ @class */ (function (_super) {
8505
8715
  */
8506
8716
  KeyboardEvents.getKeyConfigData = function (config) {
8507
8717
  if (config in this.configCache) {
8508
- return this.configCache[config];
8718
+ return this.configCache["" + config];
8509
8719
  }
8510
8720
  var keys = config.toLowerCase().split('+');
8511
8721
  var keyData = {
@@ -8520,12 +8730,12 @@ var KeyboardEvents = /** @__PURE__ @class */ (function (_super) {
8520
8730
  else {
8521
8731
  keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);
8522
8732
  }
8523
- KeyboardEvents_1.configCache[config] = keyData;
8733
+ KeyboardEvents_1.configCache["" + config] = keyData;
8524
8734
  return keyData;
8525
8735
  };
8526
8736
  // Return the keycode value as string
8527
8737
  KeyboardEvents.getKeyCode = function (keyVal) {
8528
- return keyCode[keyVal] || keyVal.toUpperCase().charCodeAt(0);
8738
+ return keyCode["" + keyVal] || keyVal.toUpperCase().charCodeAt(0);
8529
8739
  };
8530
8740
  var KeyboardEvents_1;
8531
8741
  KeyboardEvents.configCache = {};
@@ -8607,11 +8817,11 @@ var L10n = /** @__PURE__ @class */ (function () {
8607
8817
  */
8608
8818
  L10n.prototype.getConstant = function (prop) {
8609
8819
  // Removed conditional operator because this method does not return correct value when passing 0 as value in localization
8610
- if (!isNullOrUndefined(this.currentLocale[prop])) {
8611
- return this.currentLocale[prop];
8820
+ if (!isNullOrUndefined(this.currentLocale["" + prop])) {
8821
+ return this.currentLocale["" + prop];
8612
8822
  }
8613
8823
  else {
8614
- return this.localeStrings[prop] || '';
8824
+ return this.localeStrings["" + prop] || '';
8615
8825
  }
8616
8826
  };
8617
8827
  /**
@@ -8622,8 +8832,8 @@ var L10n = /** @__PURE__ @class */ (function () {
8622
8832
  * @returns {Object} ?
8623
8833
  */
8624
8834
  L10n.prototype.intGetControlConstant = function (curObject, locale) {
8625
- if ((curObject)[locale]) {
8626
- return (curObject)[locale][this.controlName];
8835
+ if ((curObject)["" + locale]) {
8836
+ return (curObject)["" + locale][this.controlName];
8627
8837
  }
8628
8838
  return null;
8629
8839
  };
@@ -8783,6 +8993,10 @@ var Touch = /** @__PURE__ @class */ (function (_super) {
8783
8993
  diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);
8784
8994
  diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);
8785
8995
  _this.isTouchMoved = diffX > 1 || diffY > 1;
8996
+ var isFirefox = (/Firefox/).test(Browser.userAgent);
8997
+ if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') {
8998
+ _this.isTouchMoved = false;
8999
+ }
8786
9000
  _this.endPoint = point;
8787
9001
  _this.calcPoints(evt);
8788
9002
  var swipeArgs = {
@@ -9035,8 +9249,9 @@ var WINDOWFUNC = /\window\./gm;
9035
9249
  function compile$1(template, helper, ignorePrefix) {
9036
9250
  var argName = 'data';
9037
9251
  var evalExpResult = evalExp(template, argName, helper, ignorePrefix);
9252
+ // eslint-disable-next-line
9038
9253
  var condtion = "var valueRegEx = (/value=\\'([A-Za-z0-9 _]*)((.)([\\w)(!-;?-\u25A0\\s]+)['])/g);\n var hrefRegex = (/(?:href)([\\s='\"./]+)([\\w-./?=&\\\\#\"]+)((.)([\\w)(!-;/?-\u25A0\\s]+)['])/g);\n if(str.match(valueRegEx)){\n var check = str.match(valueRegEx);\n var str1 = str;\n for (var i=0; i < check.length; i++) {\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;\n change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;\n str1 = str1.replace(check1, change);\n }\n str = str.replace(str, str1);\n }\n else if (str.match(/(?:href='')/) === null) {\n if(str.match(hrefRegex)) {\n var check = str.match(hrefRegex);\n var str1 = str;\n for (var i=0; i < check.length; i++) {\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\n if (check1) {\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;\n change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;\n str1 = str1.replace(check1, change);\n }\n }\n str = str.replace(str, str1);\n }\n }\n ";
9039
- var fnCode = "var str=\"" + evalExpResult + "\";" + condtion + " return str;";
9254
+ var fnCode = 'var str=\"' + evalExpResult + '\";' + condtion + ' return str;';
9040
9255
  var fn = new Function(argName, fnCode);
9041
9256
  return fn.bind(helper);
9042
9257
  }
@@ -9149,7 +9364,7 @@ function evalExp(str, nameSpace, helper, ignorePrefix) {
9149
9364
  }
9150
9365
  else {
9151
9366
  // evaluate normal expression
9152
- cnt = '"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+"';
9367
+ cnt = cnt !== '' ? '"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+"' : ' ';
9153
9368
  }
9154
9369
  }
9155
9370
  return cnt;
@@ -9268,24 +9483,24 @@ function compile$$1(templateString, helper, ignorePrefix) {
9268
9483
  if (isBlazor() && !isStringTemplate) {
9269
9484
  var randomId = getRandomId();
9270
9485
  var blazorId = templateId + randomId;
9271
- if (!blazorTemplates[templateId]) {
9272
- blazorTemplates[templateId] = [];
9486
+ if (!blazorTemplates["" + templateId]) {
9487
+ blazorTemplates["" + templateId] = [];
9273
9488
  }
9274
9489
  if (!isNullOrUndefined(index)) {
9275
- var keys = Object.keys(blazorTemplates[templateId][index]);
9490
+ var keys = Object.keys(blazorTemplates["" + templateId][parseInt(index.toString(), 10)]);
9276
9491
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
9277
9492
  var key = keys_1[_i];
9278
- if (key !== blazorTemplateId && data[key]) {
9279
- blazorTemplates[templateId][index][key] = data[key];
9493
+ if (key !== blazorTemplateId && data["" + key]) {
9494
+ blazorTemplates["" + templateId][parseInt(index.toString(), 10)]["" + key] = data["" + key];
9280
9495
  }
9281
9496
  if (key === blazorTemplateId) {
9282
- blazorId = blazorTemplates[templateId][index][key];
9497
+ blazorId = blazorTemplates["" + templateId][parseInt(index.toString(), 10)]["" + key];
9283
9498
  }
9284
9499
  }
9285
9500
  }
9286
9501
  else {
9287
- data[blazorTemplateId] = blazorId;
9288
- blazorTemplates[templateId].push(data);
9502
+ data["" + blazorTemplateId] = blazorId;
9503
+ blazorTemplates["" + templateId].push(data);
9289
9504
  }
9290
9505
  // eslint-disable-next-line
9291
9506
  return propName === 'rowTemplate' ? [createElement('tr', { id: blazorId, className: 'e-blazor-template' })] :
@@ -9319,9 +9534,9 @@ function compile$$1(templateString, helper, ignorePrefix) {
9319
9534
  function updateBlazorTemplate(templateId, templateName, comp, isEmpty, callBack) {
9320
9535
  if (isBlazor()) {
9321
9536
  var ejsIntrop = 'sfBlazor';
9322
- window[ejsIntrop].updateTemplate(templateName, blazorTemplates[templateId], templateId, comp, callBack);
9537
+ window["" + ejsIntrop].updateTemplate(templateName, blazorTemplates["" + templateId], templateId, comp, callBack);
9323
9538
  if (isEmpty !== false) {
9324
- blazorTemplates[templateId] = [];
9539
+ blazorTemplates["" + templateId] = [];
9325
9540
  }
9326
9541
  }
9327
9542
  }
@@ -9340,21 +9555,21 @@ function resetBlazorTemplate(templateId, templateName, index) {
9340
9555
  for (var i = 0; i < innerTemplates.length; i++) {
9341
9556
  var tempId = ' ';
9342
9557
  if (!isNullOrUndefined(index)) {
9343
- tempId = innerTemplates[index].getAttribute('data-templateId');
9558
+ tempId = innerTemplates[parseInt(index.toString(), 10)].getAttribute('data-templateId');
9344
9559
  }
9345
9560
  else {
9346
- tempId = innerTemplates[i].getAttribute('data-templateId');
9561
+ tempId = innerTemplates[parseInt(i.toString(), 10)].getAttribute('data-templateId');
9347
9562
  }
9348
9563
  var tempElement = document.getElementById(tempId);
9349
9564
  if (tempElement) {
9350
9565
  var length_1 = tempElement.childNodes.length;
9351
9566
  for (var j = 0; j < length_1; j++) {
9352
9567
  if (!isNullOrUndefined(index)) {
9353
- innerTemplates[index].appendChild(tempElement.childNodes[0]);
9568
+ innerTemplates[parseInt(index.toString(), 10)].appendChild(tempElement.childNodes[0]);
9354
9569
  i = innerTemplates.length;
9355
9570
  }
9356
9571
  else {
9357
- innerTemplates[i].appendChild(tempElement.childNodes[0]);
9572
+ innerTemplates[parseInt(i.toString(), 10)].appendChild(tempElement.childNodes[0]);
9358
9573
  }
9359
9574
  }
9360
9575
  }
@@ -9530,15 +9745,15 @@ var SanitizeHtmlHelper = /** @__PURE__ @class */ (function () {
9530
9745
  this.removeXssAttrs();
9531
9746
  var tempEleValue = this.wrapElement.innerHTML;
9532
9747
  this.removeElement();
9533
- return tempEleValue;
9748
+ return tempEleValue.replace('&amp;', '&');
9534
9749
  };
9535
9750
  SanitizeHtmlHelper.removeElement = function () {
9536
9751
  // Removes an element's attibute to avoid html tag validation
9537
9752
  var nodes = this.wrapElement.children;
9538
9753
  for (var j = 0; j < nodes.length; j++) {
9539
- var attribute = nodes[j].attributes;
9754
+ var attribute = nodes[parseInt(j.toString(), 10)].attributes;
9540
9755
  for (var i = 0; i < attribute.length; i++) {
9541
- this.wrapElement.children[j].removeAttribute(attribute[i].localName);
9756
+ this.wrapElement.children[parseInt(j.toString(), 10)].removeAttribute(attribute[parseInt(i.toString(), 10)].localName);
9542
9757
  }
9543
9758
  }
9544
9759
  };
@@ -9587,5 +9802,5 @@ var SanitizeHtmlHelper = /** @__PURE__ @class */ (function () {
9587
9802
  * Base modules
9588
9803
  */
9589
9804
 
9590
- export { blazorCultureFormats, IntlBase, Ajax, Animation, rippleEffect, isRippleEnabled, enableRipple, Base, getComponent, removeChildInstance, Browser, versionBasedStatePersistence, enableVersionBasedPersistence, Component, ChildProperty, Position, Draggable, Droppable, EventHandler, onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject, KeyboardEvents, L10n, ModuleLoader, Property, Complex, ComplexFactory, Collection, CollectionFactory, Event$1 as Event, NotifyPropertyChanges, CreateBuilder, SwipeSettings, Touch, HijriParser, blazorTemplates, getRandomId, compile$$1 as compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID, createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode, Observer, SanitizeHtmlHelper, registerLicense, validateLicense, getVersion };
9805
+ export { blazorCultureFormats, IntlBase, Ajax, Animation, rippleEffect, isRippleEnabled, enableRipple, animationMode, setGlobalAnimation, Base, getComponent, removeChildInstance, Browser, versionBasedStatePersistence, enableVersionBasedPersistence, Component, ChildProperty, Position, Draggable, Droppable, EventHandler, onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject, KeyboardEvents, L10n, ModuleLoader, Property, Complex, ComplexFactory, Collection, CollectionFactory, Event$1 as Event, NotifyPropertyChanges, CreateBuilder, SwipeSettings, Touch, HijriParser, blazorTemplates, getRandomId, compile$$1 as compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID, createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode, Observer, SanitizeHtmlHelper, componentList, registerLicense, validateLicense, getVersion, createLicenseOverlay };
9591
9806
  //# sourceMappingURL=ej2-base.es5.js.map