bkui-vue 0.0.1-beta.76 → 0.0.1-beta.79

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.
package/dist/index.esm.js CHANGED
@@ -33,7 +33,7 @@ var __publicField = (obj, key, value) => {
33
33
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
34
34
  return value;
35
35
  };
36
- import { createVNode, h as h$1, mergeProps, defineComponent, reactive, ref, computed, watch, onMounted, onBeforeUnmount, getCurrentInstance, nextTick, Transition, provide, inject, createTextVNode, withDirectives, vShow, isVNode, Fragment, toRefs, customRef, onBeforeMount, toRef, unref, resolveDirective, vModelText, watchEffect, onUpdated, render, onUnmounted, Teleport } from "vue";
36
+ import { createVNode, h as h$1, mergeProps, defineComponent, reactive, ref, computed, watch, onMounted, onBeforeUnmount, getCurrentInstance, nextTick, Transition, provide, inject, createTextVNode, withDirectives, vShow, isVNode, Fragment, toRefs, customRef, onBeforeMount, toRef, unref, resolveDirective, vModelText, watchEffect, onUpdated, render, onUnmounted, Teleport, withModifiers } from "vue";
37
37
  var reset = "";
38
38
  var alert = "";
39
39
  var affix = "";
@@ -2815,7 +2815,7 @@ const warn = (props, context) => {
2815
2815
  warn.displayName = "warn";
2816
2816
  warn.inheritAttrs = false;
2817
2817
  JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 1024 1024","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;"},"elements":[{"type":"element","name":"path","attributes":{"d":"M603.52 348.8c0 26.496-22.357333333333333 48-49.919999999999995 48s-49.919999999999995-21.503999999999998-49.919999999999995-48c0-26.496 22.357333333333333-48 49.919999999999995-48s49.919999999999995 21.503999999999998 49.919999999999995 48z"}},{"type":"element","name":"path","attributes":{"d":"M357.11999999999995 348.8c0 26.496-22.357333333333333 48-49.919999999999995 48s-49.919999999999995-21.503999999999998-49.919999999999995-48c0-26.496 22.357333333333333-48 49.919999999999995-48s49.919999999999995 21.503999999999998 49.919999999999995 48z"}},{"type":"element","name":"path","attributes":{"d":"M693.12 604.16c0 15.914666666666665-13.184 28.8-29.439999999999998 28.8s-29.439999999999998-12.885333333333332-29.439999999999998-28.8c0-15.914666666666665 13.184-28.8 29.439999999999998-28.8s29.439999999999998 12.885333333333332 29.439999999999998 28.8z"}},{"type":"element","name":"path","attributes":{"d":"M951.68 832c43.775999999999996-42.410666666666664 71.29599999999999-101.41866666666665 72.32-166.86933333333332-4.608-109.696-77.35466666666666-201.0453333333333-176.72533333333334-233.30133333333333 5.674666666666667-12.117333333333331 10.154666666666666-26.282666666666664 10.154666666666666-41.471999999999994 0-4.522666666666666-0.38399999999999995-8.959999999999999-1.152-13.226666666666667-33.834666666666664-181.29066666666665-212.39466666666664-313.1306666666667-425.5146666666667-313.1306666666667-238.71999999999997 0-430.72 167.04-430.72 372.48 1.2799999999999998 107.56266666666666 50.56 203.30666666666664 127.40266666666668 267.05066666666664l-16.682666666666666 55.50933333333333c-2.1759999999999997 6.784-3.456 14.634666666666668-3.456 22.741333333333333 0 42.410666666666664 34.38933333333333 76.8 76.8 76.8 12.458666666666666 0 24.191999999999997-2.944 34.602666666666664-8.234666666666666l101.33333333333333-52.906666666666666c32.81066666666666 7.722666666666666 70.52799999999999 12.159999999999998 109.22666666666666 12.159999999999998 0.08533333333333333 0 0.17066666666666666 0 0.21333333333333332 0h28.16c13.098666666666666-0.7679999999999999 25.130666666666663-4.693333333333333 35.54133333333333-11.050666666666666 54.22933333333333 73.55733333333333 140.672 120.53333333333333 238.07999999999998 120.53333333333333 1.664 0 3.3706666666666667 0 5.034666666666666-0.042666666666666665 21.077333333333332-0.08533333333333333 41.855999999999995-2.1759999999999997 61.99466666666667-6.101333333333333l49.10933333333333 26.581333333333333c9.941333333333333 5.034666666666666 21.717333333333332 8.021333333333333 34.176 8.021333333333333 42.410666666666664 0 76.8-34.38933333333333 76.8-76.8 0-8.106666666666666-1.2799999999999998-15.957333333333333-3.584-23.296zM430.72 752.64c-0.17066666666666666 0-0.38399999999999995 0-0.5973333333333333 0-40.831999999999994 0-80.29866666666666-5.8453333333333335-117.58933333333331-16.72533333333333l-3.456 0.7253333333333334-131.2 67.19999999999999 35.199999999999996-113.27999999999999h-3.1999999999999997c-86.10133333333332-52.05333333333333-143.40266666666668-144.17066666666665-145.92-249.89866666666666 0-172.50133333333332 165.76-312.66133333333335 366.72-312.66133333333335 5.717333333333333-0.3413333333333333 12.415999999999999-0.512 19.157333333333334-0.512 163.32799999999997 0 300.58666666666664 111.40266666666668 340.0106666666667 262.4l-14.805333333333332 2.432c-183.04 0-327.03999999999996 112-327.03999999999996 285.44 0.512 26.709333333333333 5.1626666666666665 52.181333333333335 13.312 75.98933333333332zM872.96 812.8v0l21.759999999999998 67.84-81.28-40.959999999999994h-3.84c-21.119999999999997 6.101333333333333-45.397333333333336 9.6-70.48533333333333 9.6-0.17066666666666666 0-0.38399999999999995 0-0.5546666666666666 0-5.888 0.5973333333333333-12.757333333333332 0.9386666666666665-19.712 0.9386666666666665-107.09333333333332 0-195.2853333333333-80.93866666666666-206.71999999999997-184.95999999999998 10.367999999999999-106.96533333333333 99.072-189.1413333333333 206.976-189.1413333333333 5.973333333333334 0 11.861333333333334 0.256 17.706666666666663 0.7253333333333334 4.309333333333333-0.512 10.197333333333333-0.7253333333333334 16.170666666666666-0.7253333333333334 107.904 0 196.60799999999998 82.17599999999999 206.976 187.34933333333333-1.7066666666666666 63.82933333333333-35.79733333333333 118.44266666666665-86.18666666666667 148.90666666666667z"}},{"type":"element","name":"path","attributes":{"d":"M839.68 604.16c0 15.914666666666665-13.184 28.8-29.439999999999998 28.8s-29.439999999999998-12.885333333333332-29.439999999999998-28.8c0-15.914666666666665 13.184-28.8 29.439999999999998-28.8s29.439999999999998 12.885333333333332 29.439999999999998 28.8z"}}]}');
2818
- var Component$B = defineComponent({
2818
+ var Component$C = defineComponent({
2819
2819
  name: "Alert",
2820
2820
  props: {
2821
2821
  theme: PropTypes.theme(["info", "success", "warning", "error"]).def("info"),
@@ -2871,8 +2871,8 @@ var Component$B = defineComponent({
2871
2871
  }, [this.closeText])])]);
2872
2872
  }
2873
2873
  });
2874
- const BkAlert = withInstall(Component$B);
2875
- var Component$A = defineComponent({
2874
+ const BkAlert = withInstall(Component$C);
2875
+ var Component$B = defineComponent({
2876
2876
  name: "AnimateNumber",
2877
2877
  props: {
2878
2878
  value: PropTypes.number.def(0),
@@ -2920,7 +2920,7 @@ var Component$A = defineComponent({
2920
2920
  return () => createVNode("span", null, [formatValue.value]);
2921
2921
  }
2922
2922
  });
2923
- const BkAnimateNumber = withInstall(Component$A);
2923
+ const BkAnimateNumber = withInstall(Component$B);
2924
2924
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
2925
2925
  var lodash = { exports: {} };
2926
2926
  /**
@@ -8361,7 +8361,7 @@ const off$1 = (() => {
8361
8361
  }
8362
8362
  };
8363
8363
  })();
8364
- var Component$z = defineComponent({
8364
+ var Component$A = defineComponent({
8365
8365
  name: "Affix",
8366
8366
  props: {
8367
8367
  offsetTop: PropTypes.number.def(0),
@@ -8486,8 +8486,8 @@ var Component$z = defineComponent({
8486
8486
  };
8487
8487
  }
8488
8488
  });
8489
- const BkAffix = withInstall(Component$z);
8490
- var Component$y = defineComponent({
8489
+ const BkAffix = withInstall(Component$A);
8490
+ var Component$z = defineComponent({
8491
8491
  name: "Backtop",
8492
8492
  props: {
8493
8493
  visibilityHeight: PropTypes.number.def(200),
@@ -8554,8 +8554,8 @@ var Component$y = defineComponent({
8554
8554
  });
8555
8555
  }
8556
8556
  });
8557
- const BkBacktop = withInstall(Component$y);
8558
- var Component$x = defineComponent({
8557
+ const BkBacktop = withInstall(Component$z);
8558
+ var Component$y = defineComponent({
8559
8559
  name: "Badge",
8560
8560
  props: {
8561
8561
  theme: PropTypes.string.def("primary"),
@@ -8631,8 +8631,8 @@ var Component$x = defineComponent({
8631
8631
  }, [(_f = (_e = (_d = this.$slots).icon) == null ? void 0 : _e.call(_d)) != null ? _f : number]) : ""]);
8632
8632
  }
8633
8633
  });
8634
- const BkBadge = withInstall(Component$x);
8635
- var Component$w = defineComponent({
8634
+ const BkBadge = withInstall(Component$y);
8635
+ var Component$x = defineComponent({
8636
8636
  name: "Breadcrumb",
8637
8637
  props: {
8638
8638
  extCls: PropTypes.string,
@@ -8731,7 +8731,7 @@ var BreadcrumbItem = defineComponent({
8731
8731
  };
8732
8732
  }
8733
8733
  });
8734
- const BkBreadcrumb = withInstallProps(Component$w, { Item: BreadcrumbItem });
8734
+ const BkBreadcrumb = withInstallProps(Component$x, { Item: BreadcrumbItem });
8735
8735
  let BkLoadingMode;
8736
8736
  (function(BkLoadingMode2) {
8737
8737
  BkLoadingMode2["Default"] = "default";
@@ -8759,7 +8759,7 @@ const loadingTypes = {
8759
8759
  size: PropTypes.commonType(Object.values(BkLoadingSize)).def(BkLoadingSize.Normal),
8760
8760
  mode: PropTypes.commonType(Object.values(BkLoadingMode)).def("default")
8761
8761
  };
8762
- var Component$v = defineComponent({
8762
+ var Component$w = defineComponent({
8763
8763
  name: "Loading",
8764
8764
  props: loadingTypes,
8765
8765
  setup(props, ctx) {
@@ -8804,7 +8804,7 @@ var Component$v = defineComponent({
8804
8804
  };
8805
8805
  }
8806
8806
  });
8807
- const BkLoading = withInstallProps(Component$v, { setDefaultIndicator, BkLoadingMode, BkLoadingSize }, true);
8807
+ const BkLoading = withInstallProps(Component$w, { setDefaultIndicator, BkLoadingMode, BkLoadingSize }, true);
8808
8808
  const btnSizes = ["", "small", "large"];
8809
8809
  const buttonProps = {
8810
8810
  theme: PropTypes.theme().def(""),
@@ -8818,11 +8818,12 @@ const buttonProps = {
8818
8818
  loadingMode: PropTypes.commonType(Object.values(BkLoadingMode)),
8819
8819
  outline: PropTypes.bool,
8820
8820
  text: PropTypes.bool,
8821
+ circle: PropTypes.bool,
8821
8822
  nativeType: {
8822
8823
  type: String
8823
8824
  }
8824
8825
  };
8825
- var Component$u = defineComponent({
8826
+ var Component$v = defineComponent({
8826
8827
  name: "Button",
8827
8828
  props: buttonProps,
8828
8829
  emits: ["click", "mouseover"],
@@ -8844,6 +8845,7 @@ var Component$u = defineComponent({
8844
8845
  "is-disabled": props.disabled,
8845
8846
  "is-outline": props.outline,
8846
8847
  "is-text": isText.value,
8848
+ "is-circle": props.circle,
8847
8849
  [`${btnClsPrefix}-${props.size}`]: props.size && btnSizes.includes(props.size),
8848
8850
  "no-slot": !showSlot
8849
8851
  }, `${themeCls} ${btnClsPrefix} ${hoverTheme}`);
@@ -8911,7 +8913,7 @@ var ButtonGroup = defineComponent({
8911
8913
  };
8912
8914
  }
8913
8915
  });
8914
- const BkButton = withInstallProps(Component$u, { ButtonGroup });
8916
+ const BkButton = withInstallProps(Component$v, { ButtonGroup });
8915
8917
  const inputType = {
8916
8918
  type: PropTypes.string.def("text"),
8917
8919
  clearable: PropTypes.bool,
@@ -8977,7 +8979,7 @@ const inputEmitEventsType = {
8977
8979
  [EVENTS$2.COMPOSITIONUPDATE]: CompositionEventFunction,
8978
8980
  [EVENTS$2.COMPOSITIONEND]: CompositionEventFunction
8979
8981
  };
8980
- var Component$t = defineComponent({
8982
+ var Component$u = defineComponent({
8981
8983
  name: "Input",
8982
8984
  inheritAttrs: false,
8983
8985
  props: inputType,
@@ -9152,8 +9154,8 @@ var Component$t = defineComponent({
9152
9154
  };
9153
9155
  }
9154
9156
  });
9155
- const BkInput = withInstall(Component$t);
9156
- var Component$s = defineComponent({
9157
+ const BkInput = withInstall(Component$u);
9158
+ var Component$t = defineComponent({
9157
9159
  name: "Card",
9158
9160
  props: {
9159
9161
  title: PropTypes.string,
@@ -9246,7 +9248,7 @@ var Component$s = defineComponent({
9246
9248
  }, [(_l = (_k = (_j = this.$slots).footer) == null ? void 0 : _k.call(_j)) != null ? _l : "Footer"]) : ""]) : ""]);
9247
9249
  }
9248
9250
  });
9249
- const BkCard = withInstall(Component$s);
9251
+ const BkCard = withInstall(Component$t);
9250
9252
  const checkboxGroupKey = Symbol("CheckboxGroup");
9251
9253
  function useFocus$2() {
9252
9254
  const isFocus = ref(false);
@@ -9344,7 +9346,7 @@ const checkboxProps = {
9344
9346
  beforeChange: PropTypes.func,
9345
9347
  size: PropTypes.size()
9346
9348
  };
9347
- var Component$r = defineComponent({
9349
+ var Component$s = defineComponent({
9348
9350
  name: "Checkbox",
9349
9351
  props: checkboxProps,
9350
9352
  emits: ["update:modelValue", "change"],
@@ -9447,7 +9449,7 @@ var BkCheckboxGroup = defineComponent({
9447
9449
  }, [(_a = this.$slots) == null ? void 0 : _a.default()]);
9448
9450
  }
9449
9451
  });
9450
- const BkCheckbox = withInstallProps(Component$r, { Group: BkCheckboxGroup });
9452
+ const BkCheckbox = withInstallProps(Component$s, { Group: BkCheckboxGroup });
9451
9453
  const trimArr$1 = function(s2) {
9452
9454
  return (s2 || "").split(" ").filter((item) => !!item.trim());
9453
9455
  };
@@ -9527,7 +9529,7 @@ const collapseMotion$1 = (emit) => ({
9527
9529
  emit("after-leave");
9528
9530
  }
9529
9531
  });
9530
- var Component$q = defineComponent({
9532
+ var Component$r = defineComponent({
9531
9533
  name: "Collapse",
9532
9534
  props: {
9533
9535
  list: PropTypes.arrayOf(PropTypes.any).def([]),
@@ -9615,7 +9617,7 @@ var Component$q = defineComponent({
9615
9617
  }, [renderItems()]);
9616
9618
  }
9617
9619
  });
9618
- const BkCollapse = withInstall(Component$q);
9620
+ const BkCollapse = withInstall(Component$r);
9619
9621
  const propsMixin$1 = {
9620
9622
  isShow: PropTypes.bool.def(false),
9621
9623
  width: PropTypes.oneOfType([String, Number]).def("50%"),
@@ -9640,7 +9642,7 @@ const propsMixin$1 = {
9640
9642
  dialogType: PropTypes.commonType(["show", "operation", "confirm", "process"], "dialogType").def("operation"),
9641
9643
  multiInstance: PropTypes.bool.def(true)
9642
9644
  };
9643
- var Component$p = defineComponent({
9645
+ var Component$q = defineComponent({
9644
9646
  name: "Modal",
9645
9647
  props: __spreadValues({}, propsMixin$1),
9646
9648
  data() {
@@ -9731,11 +9733,11 @@ var Component$p = defineComponent({
9731
9733
  })]);
9732
9734
  }
9733
9735
  });
9734
- const BkModal = withInstallProps(Component$p, { propsMixin: propsMixin$1 }, true);
9736
+ const BkModal = withInstallProps(Component$q, { propsMixin: propsMixin$1 }, true);
9735
9737
  function _isSlot$5(s2) {
9736
9738
  return typeof s2 === "function" || Object.prototype.toString.call(s2) === "[object Object]" && !isVNode(s2);
9737
9739
  }
9738
- var Component$o = defineComponent({
9740
+ var Component$p = defineComponent({
9739
9741
  name: "Dialog",
9740
9742
  components: {
9741
9743
  BkModal,
@@ -9942,15 +9944,15 @@ var Component$o = defineComponent({
9942
9944
  });
9943
9945
  }
9944
9946
  });
9945
- const BkDialog = withInstall(Component$o);
9947
+ const BkDialog = withInstall(Component$p);
9946
9948
  var permissions = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOm5vbmU7fQoJLnN0MXtmaWxsOiNDNEM2Q0M7fQoJLnN0MntmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qze2ZpbGw6dXJsKCPnn6nlvaJfNF8pO30KCS5zdDR7ZmlsbDojOTc5QkE1O30KCS5zdDV7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3Q2e2ZpbGw6I0Y4RjlGQTt9Cgkuc3Q3e2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfMV8pO30KCS5zdDh7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF82Xyk7fQoJLnN0OXtmaWxsOiNEQ0RFRTA7fQo8L3N0eWxlPgo8ZyBpZD0i6aG16Z2iLTEiPgoJPGcgaWQ9IkV4Y2VwdGlvbl94MkZf5byC5bi45o+Q56S6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODcwLjAwMDAwMCwgLTIzODEuMDAwMDAwKSI+CgkJPGcgaWQ9IuaXoOadg+mZkOexuyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzU3LjAwMDAwMCwgMjI4Ny4wMDAwMDApIj4KCQkJPGcgaWQ9Iue8lue7hC0xMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDczLjAwMDAwMCkiPgoJCQkJPGcgaWQ9IuaXoOadg+mZkOexuy3mj5Llm74iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUxMy4wMDAwMDAsIDIxLjAwMDAwMCkiPgoJCQkJCTxnIGlkPSLmsqHmnInmnYPpmZAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyOC4wMDAwMDAsIDQyLjAwMDAwMCkiPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2iXzFfIiBjbGFzcz0ic3QwIiB3aWR0aD0iMjI0IiBoZWlnaHQ9IjE4MyIvPgoJCQkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaIiIGNsYXNzPSJzdDEiIGN4PSIxMzIiIGN5PSIxMSIgcj0iMSIvPgoJCQkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaJfMV8iIGNsYXNzPSJzdDEiIGN4PSIxNzMiIGN5PSI5NCIgcj0iMiIvPgoJCQkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaJfMl8iIGNsYXNzPSJzdDEiIGN4PSI1OSIgY3k9IjY2IiByPSIyIi8+CgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjExNi4zNTg3IiB5MT0iMTI5LjQwNzUiIHgyPSIxMTkuMzMxNCIgeTI9IjE1Ny42OTA2Ij4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGQkZDRkQiLz4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAuOTk4OCIgc3R5bGU9InN0b3AtY29sb3I6I0YyRjRGNyIvPgoJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQk8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QyIiBkPSJNNjAuNSwxMzYuMWMxNi4yLTMuNSw0MC42LTQuNyw1Ni41LTMuOWMxNS44LDAuOCwzMy4xLDMuMSwzMy4xLDMuMXM0LjUtMS45LDQuMS0xLjIKCQkJCQkJCWMtMC4zLDAuOC0yLjQsMS45LTEsMi4zYzEuNCwwLjQsMTUuNSwxLjksMjEuNCwzLjFzOC42LDIuMyw4LjYsMi4zczMuOC02LjYsMTIuMy01LjhjMCwwLjYtMy4xLDEuNC00LjIsMy4xUzE4OCwxNDIsMTg4LDE0MgoJCQkJCQkJczEuOC0xLDQuOSwwLjVzNi4xLDIsNi4xLDIuMnMtMS40LDMuNS0xMi43LDEuMmMtNC42LTEuMi02LjksNS4xLTI5LjMsNi42cy02MC4zLDIuNy02MC4zLDIuN3MxLjcsMi4zLDUuMiwzLjEKCQkJCQkJCWMwLDAtMi40LDIuMy03LjIsMS42Yy00LjgtMC44LTEwLTQuNy0xMC00LjdzLTEyLjctMC44LTE3LjYtMS42cy0xMC4zLTIuNy0xNC4xLTMuMWMtMy44LTAuNC0yMS0yLjMtMTQuNS02LjYKCQkJCQkJCUMzOC41LDE0My45LDQ0LjMsMTM5LjYsNjAuNSwxMzYuMXoiLz4KCgkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol80XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNTYuMTY2NyIgeTE9Ii0yLjUxNDMiIHgyPSIxNTYuMTY2NyIgeTI9Ii0xLjUxNDMiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoOTYgMCAwIDcwIC0xNDg3OSAyNTIpIj4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMkYzRjUiLz4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFNUU4RUIiLz4KCQkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQkJPHBhdGggaWQ9IuefqeW9ol8yXyIgY2xhc3M9InN0MyIgZD0iTTcwLDc2aDg2YzIuOCwwLDUsMi4yLDUsNXY2MGMwLDIuOC0yLjIsNS01LDVINzBjLTIuOCwwLTUtMi4yLTUtNVY4MQoJCQkJCQkJQzY1LDc4LjIsNjcuMiw3Niw3MCw3NnoiLz4KCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiCIgY2xhc3M9InN0MSIgZD0iTTU5LjMsMTM4djExLjdINzF2Mi4zSDU5LjNsMCwwSDU3di0xNEg1OS4zeiIvPgoJCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9LTQiIGNsYXNzPSJzdDEiIGQ9Ik0xNjYuNywxMzh2MTEuN0gxNTV2Mi4zaDExLjdsMCwwaDIuM3YtMTRIMTY2Ljd6Ii8+CgkJCQkJCTxnPgoJCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiF81XyIgY2xhc3M9InN0NCIgZD0iTTExNi41LDExNi44bDEuNiw3LjljMC4yLDAuOC0wLjQsMS42LTEuMiwxLjhjLTAuMSwwLTAuMiwwLTAuMywwaC03LjIKCQkJCQkJCQljLTAuOCwwLTEuNS0wLjctMS41LTEuNWMwLTAuMSwwLTAuMiwwLTAuM2wxLjYtNy45Yy0zLTEuMy01LTQuMS01LTcuM2MwLTQuNCwzLjgtOCw4LjUtOHM4LjUsMy42LDguNSw4CgkJCQkJCQkJQzEyMS41LDExMi43LDExOS41LDExNS41LDExNi41LDExNi44eiIvPgoKCQkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEzNi4wMjk0IiB5MT0iLTYuODAxMSIgeDI9IjEzNi4wMjk0IiB5Mj0iLTYuMjc4OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNyAwIDAgMjUgLTIxOTkuNSAyNzcuNSkiPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMUUyRTYiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRUVGMEYyIi8+CgkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExNywxMjcuNWgtNy42Yy0xLjQsMC0yLjUtMS4xLTIuNS0yLjVsMC0wLjVsMS40LTcuMWMtMy0xLjYtNC45LTQuNi00LjktNy45YzAtNSw0LjMtOSw5LjUtOQoJCQkJCQkJCXM5LjUsNCw5LjUsOWMwLDMuMy0xLjksNi4zLTQuOSw3LjlsMS40LDcuMWMwLjMsMS4yLTAuNiwyLjYtMS45LDNMMTE3LDEyNy41eiBNMTA4LjksMTI0Ljh2MC4yYzAsMC4yLDAuMywwLjUsMC41LDAuNWg3LjMKCQkJCQkJCQljMC4yLTAuMSwwLjQtMC40LDAuNC0wLjZsLTEuOC04LjdsMC43LTAuM2MyLjctMS4yLDQuNC0zLjYsNC40LTYuNGMwLTMuOS0zLjQtNy03LjUtN3MtNy41LDMuMS03LjUsN2MwLDIuOCwxLjcsNS4yLDQuNCw2LjQKCQkJCQkJCQlsMC43LDAuM0wxMDguOSwxMjQuOHoiLz4KCQkJCQkJPC9nPgoJCQkJCQk8cGF0aCBpZD0i55+p5b2iXzNfIiBjbGFzcz0ic3Q2IiBkPSJNNzAsNzZoODZjMi44LDAsNSwyLjIsNSw1bDAsMGMwLDIuOC0yLjIsNS01LDVINzBjLTIuOCwwLTUtMi4yLTUtNWwwLDAKCQkJCQkJCUM2NSw3OC4yLDY3LjIsNzYsNzAsNzZ6Ii8+CgoJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTU1LjAyNjMiIHkxPSItMi42NjY3IiB4Mj0iMTU1LjAyNjMiIHkyPSItMS42NzI3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDc2IDAgMCA2NiAtMTE2NjkgMTkyKSI+CgkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjNGNEY1Ii8+CgkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFOEVCIi8+CgkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMl8iIGNsYXNzPSJzdDciIGQ9Ik0xNDEuNSw1NC42YzAtMTYtMTIuOC0yOS0yOC41LTI5cy0yOC41LDEzLTI4LjUsMjlsMCwwdjI1LjhjMCwwLjktMi4xLDEuNi00LjgsMS42CgkJCQkJCQljLTIuNSwwLTQuNi0wLjctNC43LTEuNXYtMC4xVjU0LjZDNzUsMzMuMyw5MiwxNiwxMTMsMTZzMzgsMTcuMywzOCwzOC42bDAsMHYyNS44YzAsMC45LTIuMSwxLjYtNC44LDEuNnMtNC44LTAuNy00LjgtMS42CgkJCQkJCQlsMCwwVjU0LjZIMTQxLjV6Ii8+CgoJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfNl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTUzLjc5MDMiIHkxPSItMy4yMzg1IiB4Mj0iMTUzLjc5MDMiIHkyPSItMi4yNTkyIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDYyIDAgMCA1NCAtOTQyMiAyMDEpIj4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFN0U5RUIiLz4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFN0U5RUIiLz4KCQkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiF8zXyIgY2xhc3M9InN0OCIgZD0iTTgyLDU0LjVDODIuMywzOC4yLDk2LDI1LDExMywyNWMxNy4xLDAsMzEsMTMuNCwzMSwzMGgtMy4xYzAtMTQuOS0xMi41LTI3LTI3LjktMjcKCQkJCQkJCVM4NS4xLDQwLjEsODUuMSw1NXYyNEg4MlY1NVY1NC41eiBNMTQ0LDU1djI0aC0zLjFWNTVIMTQ0eiIvPgoJCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzRfIiBjbGFzcz0ic3Q5IiBkPSJNODAsNzhjMi43LDAsNC45LTAuOCw1LTEuOVY3NnY0YzAsMS4xLTIuMiwyLTUsMmMtMi43LDAtNC45LTAuOC01LTEuOVY4MHYtNAoJCQkJCQkJQzc1LDc3LjEsNzcuMiw3OCw4MCw3OHoiLz4KCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiOWkh+S7vS0zIiBjbGFzcz0ic3Q5IiBkPSJNMTQ2LDc4YzIuNywwLDQuOS0wLjgsNS0xLjlWNzZ2NGMwLDEuMS0yLjIsMi01LDJjLTIuNywwLTQuOS0wLjgtNS0xLjlWODB2LTQKCQkJCQkJCUMxNDEsNzcuMSwxNDMuMiw3OCwxNDYsNzh6Ii8+CgkJCQkJPC9nPgoJCQkJPC9nPgoJCQk8L2c+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=";
9947
9949
  var notFound = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCPnn6nlvaJfOV8pO30KCS5zdDJ7ZmlsbDp1cmwoI+efqeW9ol8xMF8pO30KCS5zdDN7ZmlsbDojRjBGMkY1O3N0cm9rZTp1cmwoI+efqeW9ol8xMV8pO30KCS5zdDR7ZmlsbDojOTc5QkE1O3N0cm9rZTp1cmwoI+efqeW9ol8xMl8pO30KCS5zdDV7ZmlsbDojOTc5QkE1O3N0cm9rZTp1cmwoI+efqeW9ouWkh+S7vS05XzFfKTt9Cgkuc3Q2e2ZpbGw6Izk3OUJBNTtzdHJva2U6dXJsKCPlvaLnirbnu5PlkIhfNl8pO30KCS5zdDd7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF84Xyk7fQoJLnN0OHtmaWxsOnVybCgj5b2i54q257uT5ZCI5aSH5Lu9LTNfMV8pO30KCS5zdDl7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF85Xyk7fQoJLnN0MTB7ZmlsbDojRTFFM0U2O30KCS5zdDExe2ZpbGw6I0YwRjJGNTt9Cgkuc3QxMntmaWxsOiNGNEY0RjQ7fQoJLnN0MTN7ZmlsbDp1cmwoI+i3r+W+hC01XzFfKTt9Cgkuc3QxNHtmaWxsOnVybCgj5b2i54q257uT5ZCIXzEwXyk7fQoJLnN0MTV7ZmlsbDp1cmwoI+W9oueKtue7k+WQiOWkh+S7vS00XzFfKTt9Cgkuc3QxNntmaWxsOiNDN0M5Q0M7fQoJLnN0MTd7ZmlsbDojRTVFN0U5O30KCS5zdDE4e2ZpbGw6I0VDRUVGMDt9Cgkuc3QxOXtmaWxsOiNDNEM2Q0M7fQoJLnN0MjB7ZmlsbDojRURFRUYzO30KCS5zdDIxe2ZpbGw6IzM0MzQzNDtmaWxsLW9wYWNpdHk6My4wMDAwMDBlLTAyO30KPC9zdHlsZT4KPGcgaWQ9IkV4Y2VwdGlvbl94MkZf5byC5bi45o+Q56S6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODcwLjAwMDAwMCwgLTEzMzUuMDAwMDAwKSI+Cgk8ZyBpZD0iX3gzNF8wNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzU3LjAwMDAwMCwgMTIxNi4wMDAwMDApIj4KCQk8ZyBpZD0iX3gzNF8wNC3mj5Llm74iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUxMy4wMDAwMDAsIDExOS4wMDAwMDApIj4KCQkJPGcgaWQ9Iue8lue7hC0xMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuMDAwMDAwLCAxMS4wMzY2NDgpIj4KCQkJCTxnIGlkPSJfeDM0XzA05Li75L2TIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5NC4zMjQwMjIsIDQyLjUzODc3MSkiPgoJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjE0MS4zOTEyIiB5MT0iNTUuNjg2OSIgeDI9IjE1Mi4zMzA3IiB5Mj0iMTE3LjcyNzciPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjhGQ0ZEIi8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMkY0RjciLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxwYXRoIGlkPSJGaWxsLTEiIGNsYXNzPSJzdDAiIGQ9Ik00NS4zLDcyLjljMjkuMy02LjYsNzEuNS05LjYsMTAwLjItOC4xczUyLjQsNi41LDU0LjEsNS4zYzUuNy0zLjgsMTcuOS01LjUsMTcuMy00CgkJCQkJCXMtOC41LDYuMS02LDYuOGMyLjUsMC43LDI4LDMuNywzOC42LDUuOWMxMC42LDIuMiwxNy40LDQuNCwxOS43LDQuNGMyLjMsMCw1LjktMy4xLDIxLjMtMS42YzAuMywwLjYtMy40LDAuOC02LjgsMi41CgkJCQkJCXMtNS45LDEuNi01LjksMnMxLjktMC42LDUuOSwyYzQsMi41LDExLDMuNCwxMSw0cy04LjksMy42LTIzLjgtMS4xYy0zLjgtMS4yLTEyLjYsOS4yLTUzLjEsMTIuMXMtMTA5LjEsNS4yLTEwOS4xLDUuMgoJCQkJCQlzNC4xLDUuMywxMC4xLDYuOGMwLjMsMC41LTIuNCwyLjUtMTQsMC4zcy0xNy45LTcuMS0xNy45LTcuMXMtMjMuMS0xLjUtMzEuOC0yLjlzLTE4LjctNS4yLTI1LjYtNS45Uy04LjUsOTUsMy4zLDg2LjkKCQkJCQkJQzMuMyw4Ni45LDE2LDc5LjUsNDUuMyw3Mi45eiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaJfOV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzA0Ljg0NjciIHkxPSIxMDEuMjQ5MiIgeDI9IjMwNC44NDY3IiB5Mj0iMTAwLjI1NDYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoOTMuMzkwNyAwIDAgLTkzLjQ2MjcgLTI4MzM1Ljk0NTMgOTQ2My4wMjczKSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFQ0VFRjAiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0Q3RDlEQiIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9IuefqeW9ol8xXyIgY2xhc3M9InN0MSIgZD0iTTg5LjIsMGg4OS40YzEuMSwwLDIsMC45LDIsMnY4OS41YzAsMS4xLTAuOSwyLTIsMkg4OS4yYy0xLjEsMC0yLTAuOS0yLTJWMgoJCQkJCQlDODcuMiwwLjksODguMSwwLDg5LjIsMHoiLz4KCgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iXzEwXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIzMDMuODkxNSIgeTE9IjEwMS42NTMyIiB4Mj0iMzAzLjg5MTUiIHkyPSIxMDAuNjUzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDgxLjcxNjkgMCAwIC04MS43Nzk5IC0yNDY5OS4yMjQ2IDgzMTguOTkwMikiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjVGN0ZBIi8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFQkVERjAiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxwYXRoIGlkPSLnn6nlvaJfMl8iIGNsYXNzPSJzdDIiIGQ9Ik05NCw1LjhoNzkuN2MwLjYsMCwxLDAuNCwxLDF2NzkuOGMwLDAuNi0wLjQsMS0xLDFIOTRjLTAuNiwwLTEtMC40LTEtMVY2LjgKCQkJCQkJQzkzLDYuMyw5My41LDUuOCw5NCw1Ljh6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol8xMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjk5LjQxODYiIHkxPSIxMDMuNTA1MiIgeDI9IjI5OS40MTg2IiB5Mj0iMTAyLjU1OTkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNTEuNTMyMyAwIDAgLTUxLjU3MjggLTE1Mjk1Ljg3NyA1MzYwLjk3MzYpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTJFNiIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjdGOUZDIi8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i55+p5b2iXzNfIiBjbGFzcz0ic3QzIiBkPSJNMTA5LjEsMjAuOWg0OS41YzAuNiwwLDEsMC40LDEsMXY0OS42YzAsMC42LTAuNCwxLTEsMWgtNDkuNWMtMC42LDAtMS0wLjQtMS0xVjIxLjkKCQkJCQkJQzEwOC4xLDIxLjQsMTA4LjYsMjAuOSwxMDkuMSwyMC45eiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaJfMTJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjE5NS40ODc5IiB5MT0iMTE5LjIyMzciIHgyPSIxOTUuNDg3OSIgeTI9IjExOC4yNTY2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDUuMzc3NyAwIDAgLTEyLjY4MjggLTkyOC4zNzU1IDE1NDYuODUxNikiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTFFMkU2Ii8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMEYyRjUiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxyZWN0IGlkPSLnn6nlvaJfNF8iIHg9IjEyMC4yIiB5PSIzNC41IiBjbGFzcz0ic3Q0IiB3aWR0aD0iNS40IiBoZWlnaHQ9IjEyLjciLz4KCgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2i5aSH5Lu9LTlfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTk1LjQ5MDEiIHkxPSIxMTkuMjIzNyIgeDI9IjE5NS40OTAxIiB5Mj0iMTE4LjI1NjYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNS4zNzc3IDAgMCAtMTIuNjgyOCAtOTA2LjQ4NzEgMTU0Ni44NTE2KSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMUUyRTYiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0YwRjJGNSIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS05IiB4PSIxNDIuMSIgeT0iMzQuNSIgY2xhc3M9InN0NSIgd2lkdGg9IjUuNCIgaGVpZ2h0PSIxMi43Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF82XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDcuNTY2IiB5MT0iMTI1LjQ1MTQiIHgyPSIyNDcuNTY2IiB5Mj0iMTI0LjQ4NDQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoOS43NTU0IDAgMCAtOS43NjIxIC0yMjgxLjIwNTEgMTI3Ni45MDYpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTJFNiIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjBGMkY1Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIIiBjbGFzcz0ic3Q2IiBkPSJNMTI5LDU2LjdMMTI5LDU2LjdjMC4xLTIuNiwyLjMtNC43LDQuOS00LjdjMi42LDAsNC43LDIsNC45LDQuN3YwLjJ2NC45SDEyOXYtMC41di00LjQKCQkJCQkJVjU2Ljd6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF84XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIzMDIuOTc2MSIgeTE9IjEwMS4yMzc1IiB4Mj0iMzAyLjk3NjEiIHkyPSIxMDAuMzAxNiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg3Mi45NjE1IDAgMCAtOTMuNDYyNyAtMjE4NzkuNzQ0MSA5NDYzLjAyNzMpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VCRURGMDtzdG9wLW9wYWNpdHk6MC45OTE3Ii8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMUUzRTYiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDciIGQ9Ik0yNDQuOCwwaDIuOXY1OC40aDE0LjZ2MTcuNWgtMTQuNnYxNy41aC0yMC40Vjc1LjloLTM3LjlWNTguNEwyMjcuMywwSDI0NC44egoJCQkJCQkgTTIyNy4zLDI4LjJsLTE4LjgsMzAuM2gxOC44VjI4LjJ6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiOWkh+S7vS0zXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwMi45NzU2IiB5MT0iMTAxLjIzNzUiIHgyPSIzMDIuOTc1NiIgeTI9IjEwMC4zMDE2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDcyLjk2MTUgMCAwIC05My40NjI3IC0yMjA2My42MDc0IDk0NjMuMDI3MykiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRUJFREYwO3N0b3Atb3BhY2l0eTowLjk5MTciLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTNFNiIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiOWkh+S7vS0zIiBjbGFzcz0ic3Q4IiBkPSJNNjAuOSwwaDIuOXY1OC40aDE0LjZ2MTcuNUg2My44djE3LjVINDMuNFY3NS45SDUuNVY1OC40TDQzLjQsMEg2MC45egoJCQkJCQkgTTQzLjQsMjguMkwyNC42LDU4LjRoMTguOFYyOC4yeiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfOV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjk5LjA0NjYiIHkxPSIxMDcuMjgyNyIgeDI9IjI5OS4wNTM1IiB5Mj0iMTA3LjAxMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg1MC4wMDM1IDAgMCAtMjguNjA1MyAtMTQ4NTcuNzUyOSAzMjE2LjczOTUpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZCRkNGRCIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjBGMkY1Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzJfIiBjbGFzcz0ic3Q5IiBkPSJNOTkuNiwxMzcuM2MxMS43LDAsMjEuMiw1LjYsMjEuMiwxMi40YzAsNi45LTkuNSwxMi40LTIxLjIsMTIuNAoJCQkJCQljLTQuNCwwLTguNS0wLjgtMTEuOS0yLjFsLTcsNS45bC0xLjktMi4ybDYtNS4xYy0zLjktMi4zLTYuNC01LjQtNi40LTguOWMwLTAuMiwwLTAuNSwwLTAuN2wtNS44LDUuMWwtMS45LTIuMmwxNS40LTEzLjQKCQkJCQkJbDEuMSwxLjJDOTAuNywxMzguMSw5NSwxMzcuMyw5OS42LDEzNy4zeiIvPgoJCQkJCTxyZWN0IGlkPSLnn6nlvaJfNV8iIHg9IjIyNS44IiB5PSI4Ny42IiBjbGFzcz0ic3QxMCIgd2lkdGg9IjIzLjMiIGhlaWdodD0iNS44Ii8+CgkJCQkJPHJlY3QgaWQ9IuefqeW9ol82XyIgeD0iMjI3LjMiIHk9Ijg2LjIiIGNsYXNzPSJzdDExIiB3aWR0aD0iMjAuNCIgaGVpZ2h0PSIxLjUiLz4KCQkJCQk8cmVjdCBpZD0i55+p5b2iXzdfIiB4PSI0MS45IiB5PSI4Ny42IiBjbGFzcz0ic3QxMCIgd2lkdGg9IjIzLjMiIGhlaWdodD0iNS44Ii8+CgkJCQkJPHJlY3QgaWQ9IuefqeW9ol84XyIgeD0iNDMuNCIgeT0iODYuMiIgY2xhc3M9InN0MTEiIHdpZHRoPSIyMC40IiBoZWlnaHQ9IjEuNSIvPgoJCQkJCTxwYXRoIGlkPSLot6/lvoQtNCIgY2xhc3M9InN0MTEiIGQ9Ik0wLDAiLz4KCQkJCQk8cGF0aCBpZD0i6Lev5b6ELTgiIGNsYXNzPSJzdDEyIiBkPSJNMTE1LjYsMTM0LjljMi40LTIuMiw5LjctMy40LDIxLjktMy40YzYuNCwwLDExLDAuNywzOS45LDUuN2MyLjksMC41LDUuMywwLjksNy43LDEuMwoJCQkJCQljMjUuOCw0LjMsNDAuOCw1LjcsNDguNiwzLjNsLTAuNC0xLjRjLTcuNSwyLjItMjIuNSwwLjktNDgtMy40Yy0yLjMtMC40LTQuOC0wLjgtNy42LTEuM2MtMjkuMS01LjEtMzMuNi01LjgtNDAuMi01LjgKCQkJCQkJYy0xMi42LDAtMjAuMSwxLjItMjIuOSwzLjhMMTE1LjYsMTM0Ljl6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9Iui3r+W+hC01XzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwNy4xMTA1IiB5MT0iMTAzLjQ4MSIgeDI9IjMwNy4xMTA1IiB5Mj0iMTAyLjQ5MjIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTQxLjI1IDAgMCAtNTIuMDk2MiAtNDMyMDEuNzIyNyA1NDgxLjM2MTMpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0RDREVFNSIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojOTc5QkE1Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i6Lev5b6ELTUiIGNsYXNzPSJzdDEzIiBkPSJNMjI1LjgsODkuOGgtMjBjLTYuOSwwLTEwLjcsMy4xLTgsNy41YzIuNyw0LjYsMTEuOSw5LjcsMjcuMSwxNC40CgkJCQkJCWMxNS41LDQuOCwyNC45LDE1LjUsMjEsMjIuNWMtNC41LDguMS0yNC40LDguOS01Ni4zLTAuOGMtNDguNC0xNC42LTc1LjgtMTYuMS04Mi42LTQuMWwxLjMsMC43YzYuMi0xMS4xLDMzLjItOS43LDgwLjksNC43CgkJCQkJCWMzMi41LDkuOCw1Myw5LjEsNTgsMC4xYzQuNS04LTUuNi0xOS41LTIxLjktMjQuNmMtMTQuOC00LjYtMjMuOC05LjYtMjYuMi0xMy43Yy0xLjgtMy4xLDAuOC01LjMsNi44LTUuM2gyMHYtMS40SDIyNS44eiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfMTBfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI5NC4xODM1IiB5MT0iMTAxLjQ1NzgiIHgyPSIyOTQuNzA3NCIgeTI9IjEwMS40MDIyIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDM3Ljc5OTMgNy4zNDc0IDcuNjMzNyAtMzkuMjcyIC0xMTgwMy44MjUyIDE5NTkuNDUyKSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFN0U5RUI7c3RvcC1vcGFjaXR5OjAuOTM2NSIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQ0RDRkQxIi8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzNfIiBjbGFzcz0ic3QxNCIgZD0iTTExMS43LDEyNS4yYzQsNC45LDQuNywxMS4zLDIuNCwxMy41bC0wLjEsMC4xbC01LjUsNS42YzAuNiwyLjksMC41LDUuMy0xLjEsNi43CgkJCQkJCWwwLDBsMCwwbC04LjIsOC43bC0yMS44LTMwLjZsOC4zLTQuOHYwLjFjMS43LTAuOSw0LjEtMC42LDYuNywwLjRsNi44LTQuMmwwLjEtMC4xQzEwMiwxMTguNywxMDcuOCwxMjAuMywxMTEuNywxMjUuMnoiLz4KCgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9LTRfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjk1LjQwNTQiIHkxPSI4Mi4zMTk3IiB4Mj0iMjk2LjEyODciIHkyPSI4Mi4yOTk0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDIzLjgyNDMgMjkuNDIwNiAxNS44NjE0IC0xMi44NDQzIC04MjU1Ljg0MzggLTc1MDQuODQ1NykiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRUJFREVGIi8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNEOERBREMiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIjlpIfku70tNCIgY2xhc3M9InN0MTUiIGQ9Ik0xMDMuMywxMzIuNGM1LjksNy4yLDcuMiwxNS40LDQsMTguOWwwLDBsLTguMSw4LjVMNzYsMTI5LjlsOS40LTUuNWwwLDAKCQkJCQkJQzg5LjUsMTIyLjEsOTcuNSwxMjUuMiwxMDMuMywxMzIuNHoiLz4KCgkJCQkJCTxlbGxpcHNlIGlkPSLmpK3lnIblvaLlpIfku70tMiIgdHJhbnNmb3JtPSJtYXRyaXgoMC43NzcxIC0wLjYyOTMgMC42MjkzIDAuNzc3MSAtNzEuNzU3MyA4Ny4zODA5KSIgY2xhc3M9InN0MTYiIGN4PSI4Ny41IiBjeT0iMTQ1IiByeD0iOS41IiByeT0iMTkiLz4KCgkJCQkJCTxnIGlkPSLnvJbnu4QtNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODUuMjg4NzA1LCAxNTUuNjk1NDY1KSByb3RhdGUoNi4wMDAwMDApIHRyYW5zbGF0ZSgtODUuMjg4NzA1LCAtMTU1LjY5NTQ2NSkgdHJhbnNsYXRlKDc5LjE0MzQ1MywgMTQ2Ljc1NjkxNykiPgoJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTkiIGNsYXNzPSJzdDE3IiBwb2ludHM9IjEyLjIsMS4xIDEyLjIsNi4xIDEuMiwxNy41IDEuMiwxMi41IAkJCQkJCSIvPgoJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTEwIiBjbGFzcz0ic3QxMSIgcG9pbnRzPSIxMi4yLDEuMSAxMS4zLDAgMC4zLDExLjEgMS4yLDEyLjUgCQkJCQkJIi8+CgkJCQkJCTxwb2x5Z29uIGlkPSLot6/lvoQtMTEiIGNsYXNzPSJzdDE4IiBwb2ludHM9IjAuMywxMS4xIDEuMiwxMi41IDEuMiwxNy41IDAuMywxNi4xIAkJCQkJCSIvPgoJCQkJCTwvZz4KCgkJCQkJCTxnIGlkPSLnvJbnu4QtNeWkh+S7vSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzYuODI2Mjc3LCAxNDMuODg1MTA1KSByb3RhdGUoNi4wMDAwMDApIHRyYW5zbGF0ZSgtNzYuODI2Mjc3LCAtMTQzLjg4NTEwNSkgdHJhbnNsYXRlKDcwLjY4MTAyNSwgMTM0Ljk0NjU1OCkiPgoJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTlfMV8iIGNsYXNzPSJzdDE3IiBwb2ludHM9IjEyLjIsMS4xIDEyLjIsNi4xIDEuMiwxNy41IDEuMiwxMi41IAkJCQkJCSIvPgoJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTEwXzFfIiBjbGFzcz0ic3QxMSIgcG9pbnRzPSIxMi4yLDEuMSAxMS4zLDAgMC4zLDExLjEgMS4yLDEyLjUgCQkJCQkJIi8+CgkJCQkJCTxwb2x5Z29uIGlkPSLot6/lvoQtMTFfMV8iIGNsYXNzPSJzdDE4IiBwb2ludHM9IjAuMywxMS4xIDEuMiwxMi41IDEuMiwxNy41IDAuMywxNi4xIAkJCQkJCSIvPgoJCQkJCTwvZz4KCgkJCQkJCTxnIGlkPSLnvJbnu4QtNV8xXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODQuNjQzMzQ5LCAxNTYuMjAzMTgzKSByb3RhdGUoNi4wMDAwMDApIHRyYW5zbGF0ZSgtODQuNjQzMzQ5LCAtMTU2LjIwMzE4MykgdHJhbnNsYXRlKDc4LjEzNjYxMiwgMTQ2LjYyOTc5NikiPgoJCQkJCTwvZz4KCgkJCQkJCTxnIGlkPSLnvJbnu4QtNeWkh+S7vV8xXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzYuMjU3OTg1LCAxNDQuMjkxOTQyKSByb3RhdGUoNi4wMDAwMDApIHRyYW5zbGF0ZSgtNzYuMjU3OTg1LCAtMTQ0LjI5MTk0MikgdHJhbnNsYXRlKDY5Ljc1MTI0OCwgMTM0LjcxODU1NSkiPgoJCQkJCTwvZz4KCQkJCTwvZz4KCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9oiIgY2xhc3M9InN0MTkiIGN4PSIxLjciIGN5PSI4MCIgcj0iMS43Ii8+CgkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzRfIiBjbGFzcz0ic3QyMCIgZD0iTTEyMy43LDYyLjlsLTEuMiwxLjhjLTU4LjQsMTQuNi05Ny4zLDM0LjgtOTUuMiw1MS44YzEuMiwxMCwxNi41LDE3LjYsNDEsMjIuMgoJCQkJCWM3LjktOC42LDE4LjMtMTcuOSwzMC43LTI3LjV2MS45Qzg3LjQsMTIyLjIsNzcuNiwxMzEsNzAsMTM5YzkuMiwxLjYsMTkuNywyLjksMzEuMiwzLjdjMS41LDAuNywzLjQsMS4zLDUuNSwxLjgKCQkJCQljLTE0LjEtMC44LTI2LjktMi4yLTM3LjgtNC4yQzU1LDE1NS4xLDQ5LDE2Ny41LDUzLDE3NS40YzguNiwxNi45LDYxLjIsOC44LDEyNi44LTE3LjZjMC41LDAuMywxLDAuNiwxLjYsMQoJCQkJCWMtNjYuOCwyNy0xMjAuNSwzNS4yLTEyOS42LDE3LjNjLTQuMi04LjMsMS43LTIxLjEsMTUuNC0zNi4yYy0yNC43LTQuOC00MC0xMi43LTQxLjMtMjMuMkMyMy42LDk4LjUsNjMuNyw3Ny43LDEyMy43LDYyLjl6CgkJCQkJIE0zMTMuMywxMTguNGg1LjFjLTYuOCwyLjEtMTMuOSw0LjEtMjEuNCw2Yy0xLjQtMC4yLTIuOC0wLjQtMy45LTAuNUMzMDAuMiwxMjIuMSwzMDYuOSwxMjAuMywzMTMuMywxMTguNHogTTI4My4xLDEwNS44djEuNwoJCQkJCWMtMi45LDEuOC01LjgsMy41LTguOCw1LjN2LTEuN0MyNzcuMywxMDkuMywyODAuMiwxMDcuNiwyODMuMSwxMDUuOHogTTM3OC41LDkuNmM0LjcsOS4yLTMuMSwyNC0yMC4yLDQxLjMKCQkJCQljMTguOSw0LjksMzAuNCwxMiwzMS42LDIxYzEuMywxMC40LTExLjQsMjEuNi0zMy43LDMyLjJ2LTEuNmMyMS40LTEwLjEsMzMuNC0yMC44LDMyLjMtMzAuNGMtMS4xLTguNi0xMi41LTE1LjQtMzEuMy0yMC4xCgkJCQkJbC0wLjMsMC4zYy00LjUsNC41LTkuNiw5LjEtMTUuMywxMy45di0xLjljNS00LjMsOS42LTguNCwxMy43LTEyLjRsMC4zLTAuM2MtNC4zLTEtOS0xLjktMTQtMi43di0xLjVjNS40LDAuOSwxMC41LDEuOSwxNS4xLDMKCQkJCQljMTcuMS0xNy4xLDI1LTMxLjUsMjAuNi00MC4zYy0xMC0xOS43LTc5LjktNS40LTE2MC40LDMyLjJoLTMuNEMyOTUuOSwzLjQsMzY3LjgtMTEuNSwzNzguNSw5LjZ6IE0xMzYuOSw4NC41djEuOAoJCQkJCWMtNS44LDMuNy0xMS40LDcuNC0xNi43LDExLjFsMi0zLjFDMTI3LDkwLjksMTMxLjksODcuNywxMzYuOSw4NC41eiBNMzIxLjEsODAuNHYxLjhjLTQuMiwzLTguNSw2LjEtMTMsOS4ybDItMy4xCgkJCQkJQzMxMy45LDg1LjYsMzE3LjUsODMsMzIxLjEsODAuNHogTTE4MC44LDU4Ljl2MS43Yy04LjEsNC4zLTE1LjksOC43LTIzLjQsMTMuMVY3MkMxNjQuOSw2Ny42LDE3Mi43LDYzLjIsMTgwLjgsNTguOXoKCQkJCQkgTTE4MC44LDUxLjZ2MS41Yy04LDEuMi0xNS44LDIuNi0yMy40LDR2LTEuNUMxNjUsNTQuMSwxNzIuOCw1Mi44LDE4MC44LDUxLjZ6IE0zMTkuNSw0NC45bC0wLjksMS40CgkJCQkJYy0xMy40LTEuMS0yOC4zLTEuNS00NC4zLTEuM3YtMC41YzAtMC4zLTAuMS0wLjctMC4yLTAuOUMyOTAuNSw0My4zLDMwNS44LDQzLjcsMzE5LjUsNDQuOXoiLz4KCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfNV8iIGNsYXNzPSJzdDIxIiBkPSJNMzc4LjUsOS42YzQuNyw5LjItMy4xLDI0LTIwLjIsNDEuM2MxOC45LDQuOSwzMC40LDEyLDMxLjYsMjEKCQkJCQljMi45LDI0LTY4LjYsNTIuOC0xNjIuNCw2Ni4xYy04Ni45LDQyLjktMTY0LjYsNTkuOS0xNzUuOCwzOGMtNC4yLTguMywxLjctMjEuMSwxNS40LTM2LjJjLTI0LjctNC44LTQwLTEyLjctNDEuMy0yMy4yCgkJCQkJYy0xLjctMTMuOCwyMS4xLTI5LjEsNTguNS00Mi4ybDAuMywxLjRjLTM2LjYsMTIuOC01OSwyNy42LTU3LjQsNDAuNmMxLjIsMTAsMTYuNSwxNy42LDQxLDIyLjJjNi44LTcuMywxNS40LTE1LjIsMjUuNS0yMy40CgkJCQkJbDAuMywxLjJsMC44LTAuMmMtOS44LDcuOS0xOC4yLDE1LjUtMjQuOSwyMi42YzM0LjQsNi4xLDg2LjIsNi42LDE0My4zLTAuNGM0LjctMC42LDkuMy0xLjIsMTMuOC0xLjhjMi43LTEuNCw1LjUtMi43LDguMy00LjEKCQkJCQljNTEuOC0yNi40LDk1LTU2LjEsMTE5LjktODAuNmwwLjMtMC4zYy0yLjctMC42LTUuNS0xLjItOC40LTEuOGwtMC40LTEuNWMzLjUsMC42LDYuOCwxLjQsMTAsMi4xYzE3LjEtMTcuMSwyNS0zMS41LDIwLjYtNDAuMwoJCQkJCWMtNC4yLTguMy0xOS4yLTEwLjYtNDEuMS03LjZsLTAuMy0xLjRDMzU4LjUtMS44LDM3NCwwLjcsMzc4LjUsOS42eiBNMjIyLjksMTM4LjdsLTAuNCwwLjFjLTMsMC40LTYsMC44LTksMS4yCgkJCQkJYy01Ny43LDcuMS0xMTAsNi43LTE0NC43LDAuMkM1NSwxNTUuMSw0OSwxNjcuNSw1MywxNzUuNEM2My40LDE5NS45LDEzOC40LDE3OS43LDIyMi45LDEzOC43eiBNMzU3LjEsNTJsLTAuMywwLjMKCQkJCQljLTI1LDI0LjgtNjguNSw1NC44LTEyMC44LDgxLjRjLTEuNCwwLjctMi45LDEuNS00LjMsMi4yYzkwLjYtMTMuNSwxNTkuNS00MS41LDE1Ni43LTYzLjlDMzg3LjQsNjMuNSwzNzUuOSw1Ni43LDM1Ny4xLDUyeiIvPgoJCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzFfIiBjbGFzcz0ic3QxOSIgY3g9IjEzNS4yIiBjeT0iMTQ0LjIiIHI9IjIuMiIvPgoJCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2i5aSH5Lu9LTQiIGNsYXNzPSJzdDE5IiBjeD0iMzU3IiBjeT0iNTAuOSIgcj0iMy45Ii8+CgkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaLlpIfku70iIGNsYXNzPSJzdDE5IiBjeD0iNDMuNiIgY3k9IjkzLjkiIHI9IjIuMiIvPgoJCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzJfIiBjbGFzcz0ic3QxOSIgY3g9IjM3Mi4xIiBjeT0iMy40IiByPSIyLjIiLz4KCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol8zXyIgY2xhc3M9InN0MTkiIGN4PSI3My4yIiBjeT0iNTAuOSIgcj0iMS43Ii8+CgkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaJfNF8iIGNsYXNzPSJzdDE5IiBjeD0iMjkzLjMiIGN5PSIxNjkuNCIgcj0iMS43Ii8+CgkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaJfNV8iIGNsYXNzPSJzdDE5IiBjeD0iMzk4LjMiIGN5PSIxNS4yIiByPSIxLjciLz4KCQkJPC9nPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K";
9948
9950
  var maintain = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6I0M0QzZDQzt9Cgkuc3Qye2ZpbGw6dXJsKCPnn6nlvaItMl8xXyk7fQoJLnN0M3tmaWxsOnVybCgj55+p5b2iXzZfKTt9Cgkuc3Q0e2ZpbGw6I0RDREVFMDt9Cgkuc3Q1e2ZpbGw6I0QxRDNENjt9Cgkuc3Q2e2ZpbGw6dXJsKCPnn6nlvaItM18xXyk7fQoJLnN0N3tmaWxsOiNFNUU3RUM7fQoJLnN0OHtmaWxsOnVybCgj5LiJ6KeS5b2iXzFfKTt9Cgkuc3Q5e2ZpbGw6Izk3OUJBNTt9Cjwvc3R5bGU+CjxnIGlkPSLpobXpnaItMSI+Cgk8ZyBpZD0iRXhjZXB0aW9uX3gyRl/lvILluLjmj5DnpLoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NjkuMDAwMDAwLCAtMjkxOC4wMDAwMDApIj4KCQk8ZyBpZD0i5byC5bi45aSx6LSl57G7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNTcuMDAwMDAwLCAyODIzLjAwMDAwMCkiPgoJCQk8ZyBpZD0i5byC5bi45aSx6LSl57G7LeaPkuWbviIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTEyLjAwMDAwMCwgOTUuMDAwMDAwKSI+CgkJCQk8ZyBpZD0i57yW57uELTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMy4wMDAwMDAsIDMzLjAwMDAwMCkiPgoJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEyNi41Njk5IiB5MT0iMTM0Ljk4ODkiIHgyPSIxMzAuMTYzOCIgeTI9IjE2OS4xODI3Ij4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZCRkNGRCIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjJGNEY3Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QwIiBkPSJNNjAsMTQzYzE5LjMtNC4yLDQ4LjQtNS43LDY3LjMtNC43czM5LjQsMy44LDM5LjQsMy44czUuMy0yLjQsNC45LTEuNAoJCQkJCQljLTAuNCwwLjktMi45LDIuNC0xLjIsMi44YzEuNiwwLjUsMTguNSwyLjQsMjUuNCwzLjhjNywxLjQsMTAuMywyLjgsMTAuMywyLjhzNC42LTgsMTQuNy03LjFjMCwwLjgtMy43LDEuNy01LDMuOAoJCQkJCQljLTEuMiwyLjEtNCwzLjMtNCwzLjNzMi4yLTEuMiw1LjksMC42czcuMywyLjQsNy4zLDIuN3MtMS42LDQuMi0xNS4yLDEuNGMtNS41LTEuNC04LjIsNi4xLTM0LjksOHMtNzEuOCwzLjMtNzEuOCwzLjMKCQkJCQkJczIuMSwyLjgsNi4yLDMuOGMwLDAtMi45LDIuOC04LjYsMS45Yy01LjctMC45LTExLjktNS43LTExLjktNS43cy0xNS4yLTAuOS0yMC45LTEuOXMtMTIuMy0zLjMtMTYuOC0zLjhzLTI1LTIuOC0xNy4yLTgKCQkJCQkJQzMzLjgsMTUyLjQsNDAuNywxNDcuMyw2MCwxNDN6Ii8+CgkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiCIgY2xhc3M9InN0MSIgZD0iTTYwLjgsMTQ3djkuMkg3MHYxLjhINTl2LTExSDYwLjh6Ii8+CgkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiOWkh+S7vSIgY2xhc3M9InN0MSIgZD0iTTY2LDMxLjhoLTkuMlY0MUg1NXYtOS4ybDAsMFYzMGgxMVYzMS44eiIvPgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIjlpIfku70tMiIgY2xhc3M9InN0MSIgZD0iTTE1Ny4yLDQxdi05LjJIMTQ4VjMwaDkuMmwwLDBoMS44djExSDE1Ny4yeiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaItMl8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNjUuNzcyNyIgeTE9Ii0xLjU1OTciIHgyPSIxNjUuNzcyNyIgeTI9Ii0wLjYyMzgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoODggMCAwIDExMiAtMTQ0ODAgMjE0KSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFQkVERjA7c3RvcC1vcGFjaXR5OjAuOTkxNyIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTFFM0U2Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i55+p5b2iLTIiIGNsYXNzPSJzdDIiIGQ9Ik02NSwzOGg4NmMwLjYsMCwxLDAuNCwxLDF2MTEwYzAsMC42LTAuNCwxLTEsMUg2NWMtMC42LDAtMS0wLjQtMS0xVjM5CgkJCQkJCUM2NCwzOC40LDY0LjQsMzgsNjUsMzh6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol82XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNjQuODAxNCIgeTE9Ii0xLjgxNDQiIHgyPSIxNjQuODAxNCIgeTI9Ii0wLjgyNTkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNzMgMCAwIDk3IC0xMTkyMyAyMjEpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRiIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjJGNEY3Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cmVjdCBpZD0i55+p5b2iXzFfIiB4PSI3MSIgeT0iNDUiIGNsYXNzPSJzdDMiIHdpZHRoPSI3MyIgaGVpZ2h0PSI5NyIvPgoJCQkJCTxyZWN0IGlkPSLnn6nlvaJfMl8iIHg9Ijg2IiB5PSI0OSIgY2xhc3M9InN0NCIgd2lkdGg9IjQzIiBoZWlnaHQ9IjIiLz4KCQkJCQk8cmVjdCBpZD0i55+p5b2iXzNfIiB4PSI3MSIgeT0iMTQwIiBjbGFzcz0ic3Q1IiB3aWR0aD0iNzMiIGhlaWdodD0iMiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaItM18xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNjAuODI1NiIgeTE9Ii0xMS43MzMzIiB4Mj0iMTYwLjgyNTYiIHkyPSItMTAuNzQxMiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg0MyAwIDAgMTUgLTY4MDggMjEwKSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFREVGRjIiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0U4RUFFRCIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHJlY3QgaWQ9IuefqeW9oi0zIiB4PSI4NiIgeT0iMzQiIGNsYXNzPSJzdDYiIHdpZHRoPSI0MyIgaGVpZ2h0PSIxNSIvPgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDUiIGQ9Ik0xNTIsMTA1djQ0YzAsMC42LTAuNCwxLTEsMWgtMjQuNkwxNTIsMTA1eiIvPgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMl8iIGNsYXNzPSJzdDciIGQ9Ik0xNDQsMTE5LjJWMTQwaC0xMkwxNDQsMTE5LjJ6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuS4ieinkuW9ol8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNjMuOTE0MyIgeTE9Ii0zLjA4MTIiIHgyPSIxNjMuOTE0MyIgeTI9Ii0yLjE0NTMiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNjMuMTc5OSAwIDAgNTYuOTAzMyAtMTAxOTguMTcxOSAyNzcuMDk0NSkiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFOEVCO3N0b3Atb3BhY2l0eTowLjk5MTciLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0Q0RDZEOSIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9IuS4ieinkuW9oiIgY2xhc3M9InN0OCIgZD0iTTE1OS43LDEwMi4xbDEuNSwyLjZsMCwwbDI4LjEsNTAuM2MwLjUsMSwwLjIsMi4yLTAuOCwyLjdjLTAuMywwLjItMC42LDAuMy0xLDAuM2gtNTkuMgoJCQkJCQljLTEuMSwwLTItMC45LTItMmMwLTAuMywwLjEtMC43LDAuMy0xbDI5LjYtNTIuOWMwLjUtMSwxLjgtMS4zLDIuNy0wLjhDMTU5LjMsMTAxLjUsMTU5LjYsMTAxLjgsMTU5LjcsMTAyLjF6Ii8+CgkJCQkJPHBhdGggaWQ9Il94MjFfIiBjbGFzcz0ic3Q5IiBkPSJNMTYwLjcsMTI0bC0wLjYsMTYuNGgtNC4ybC0wLjYtMTYuNEMxNTUuMywxMjQsMTYwLjcsMTI0LDE2MC43LDEyNHogTTE1NSwxNDUuOAoJCQkJCQljMC0wLjksMC4zLTEuNiwwLjktMi4yczEuMy0wLjgsMi4xLTAuOGMwLjksMCwxLjYsMC4zLDIuMSwwLjhjMC42LDAuNiwwLjgsMS4zLDAuOCwyLjFzLTAuMywxLjYtMC44LDIuMQoJCQkJCQljLTAuNiwwLjYtMS4yLDAuOS0yLDAuOWMtMSwwLTEuNy0wLjMtMi4zLTAuOUMxNTUuMywxNDcuMywxNTUsMTQ2LjYsMTU1LDE0NS44eiIvPgoJCQkJCTxnIGlkPSLnvJbnu4QtMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAxLjAwMDAwMCwgNzQuMDAwMDAwKSI+CgkJCQkJCTxyZWN0IGlkPSLnn6nlvaJfNF8iIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9IiB4PSI3LjYiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTIiIHg9IjE1LjEiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTMiIHg9IjIyLjciIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTQiIHg9IjMwLjIiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCTwvZz4KCQkJCQk8ZyBpZD0i57yW57uELTNfMV8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyNC4wMDAwMDAsIDkxLjAwMDAwMCkiPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2iXzVfIiB4PSI3LjgiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjkiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTUiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjkiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9XzFfIiB4PSIxNS42IiBjbGFzcz0ic3QxIiB3aWR0aD0iMy45IiBoZWlnaHQ9IjEiLz4KCQkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS0yXzFfIiB4PSIyMy41IiBjbGFzcz0ic3QxIiB3aWR0aD0iMy45IiBoZWlnaHQ9IjEiLz4KCQkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS0zXzFfIiB4PSIzMS4zIiBjbGFzcz0ic3QxIiB3aWR0aD0iMy45IiBoZWlnaHQ9IjEiLz4KCQkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00XzFfIiB4PSIzOS4xIiBjbGFzcz0ic3QxIiB3aWR0aD0iMy45IiBoZWlnaHQ9IjEiLz4KCQkJCQk8L2c+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==";
9949
9951
  var Building = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCPmpK3lnIblvaLlpIfku70tNV8yXyk7fQoJLnN0MntmaWxsOnVybCgj55+p5b2iXzE5Xyk7fQoJLnN0M3tmaWxsOnVybCgj55+p5b2i5aSH5Lu9LTIxXzFfKTt9Cgkuc3Q0e2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfNl8pO30KCS5zdDV7ZmlsbDojRUFFQ0VGO30KCS5zdDZ7ZmlsbDp1cmwoI+efqeW9ol8yMF8pO30KCS5zdDd7ZmlsbDojRjRGNEY1O30KCS5zdDh7ZmlsbDojRjlGOUZBO30KCS5zdDl7ZmlsbDojOTc5Nzk3O30KCS5zdDEwe2ZpbGw6I0U4RUFFQzt9Cgkuc3QxMXtmaWxsOiNGN0Y4RkE7fQoJLnN0MTJ7ZmlsbDp1cmwoI+efqeW9ol8yMV8pO30KCS5zdDEze2ZpbGw6dXJsKCPnn6nlvaLlpIfku70tMjJfMV8pO30KCS5zdDE0e2ZpbGw6dXJsKCPot6/lvoQtMjNfMV8pO30KCS5zdDE1e2ZpbGw6dXJsKCPnn6nlvaJfMjJfKTt9Cgkuc3QxNntmaWxsOiNEQ0RERTA7fQoJLnN0MTd7ZmlsbDp1cmwoI+i3r+W+hC0xOV8xXyk7fQoJLnN0MTh7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF85Xyk7fQoJLnN0MTl7ZmlsbDojQ0RDRUQxO30KCS5zdDIwe2ZpbGw6bm9uZTtzdHJva2U6dXJsKCPot6/lvoQtMjFfMV8pO30KCS5zdDIxe2ZpbGw6I0M2QzdDQjt9Cgkuc3QyMntmaWxsOiNEMUQyRDY7c3Ryb2tlOiNFQUVERjA7c3Ryb2tlLXdpZHRoOjI7fQoJLnN0MjN7ZmlsbDojRjlGQUZDO30KCS5zdDI0e2ZpbGw6dXJsKCPnn6nlvaJfMjNfKTt9Cgkuc3QyNXtmaWxsOiNGMUYzRjU7fQoJLnN0MjZ7ZmlsbDojRTZFOEVCO30KCS5zdDI3e2ZpbGw6I0QxRDJENjt9Cgkuc3QyOHtmaWxsOnVybCgj5qSt5ZyG5b2i5aSH5Lu9LThfMV8pO30KCS5zdDI5e2ZpbGw6I0VFRUZGMzt9Cgkuc3QzMHtmaWxsOiNENEQ2REE7fQoJLnN0MzF7ZmlsbDojRThFQUVEO3N0cm9rZTojRDlEQkRFO30KCS5zdDMye2ZpbGw6I0Q4RDhEODtzdHJva2U6I0NGRDBEMzt9Cgkuc3QzM3tmaWxsOiNERERFRTA7fQoJLnN0MzR7ZmlsbDojRUVGMEYyO30KCS5zdDM1e2ZpbGw6bm9uZTtzdHJva2U6dXJsKCPnn6nlvaJfMjRfKTtzdHJva2Utd2lkdGg6Mjt9Cgkuc3QzNntmaWxsOm5vbmU7c3Ryb2tlOnVybCgj55+p5b2iXzI1Xyk7c3Ryb2tlLXdpZHRoOjAuNzt9Cgkuc3QzN3tmaWxsOnVybCgj55+p5b2iXzI2Xyk7fQoJLnN0Mzh7ZmlsbDp1cmwoI+efqeW9ol8yN18pO30KCS5zdDM5e2ZpbGw6dXJsKCPnn6nlvaJfMjhfKTt9Cgkuc3Q0MHtmaWxsOiM5NTk2OTk7ZmlsbC1vcGFjaXR5OjAuMTI7fQoJLnN0NDF7ZmlsbDojQzRDNkNDO30KPC9zdHlsZT4KPGcgaWQ9Iumhtemdoi0xIj4KCTxnIGlkPSJFeGNlcHRpb25feDJGX+W8guW4uOaPkOekuiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg3MC4wMDAwMDAsIC0xODgyLjAwMDAwMCkiPgoJCTxnIGlkPSLlip/og73lu7rorr7nsbsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM1Ny4wMDAwMDAsIDE3NTEuMDAwMDAwKSI+CgkJCTxnIGlkPSLnvJbnu4QtMTEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLCA3My4wMDAwMDApIj4KCQkJCTxnIGlkPSLlip/og73lu7rorr7nsbst5o+S5Zu+IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MTMuMDAwMDAwLCA1OC4wMDAwMDApIj4KCQkJCQk8ZyBpZD0i5Zu+5qGIIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1OC4wMDAwMDAsIDE3LjAwMDAwMCkiPgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IkZpbGwtMV8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyMDYuMzkyNyIgeTE9IjE1OC41MjkiIHgyPSIyMDkuODg5IiB5Mj0iMTkxLjc5NDgiPgoJCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZCRkNGRCIvPgoJCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0YyRjRGNyIvPgoJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQk8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QwIiBkPSJNMTQzLjQsMTY2LjRjMTguNi00LjIsNDUuNS02LjEsNjMuNy01LjFjMTguMiwwLjksMzMuMyw0LjEsMzQuNCwzLjQKCQkJCQkJCWMzLjYtMi40LDExLjQtMy41LDExLTIuNnMtNS40LDMuOS0zLjgsNC4zczE3LjgsMi4zLDI0LjYsMy43YzYuNywxLjQsMTEuMSwyLjgsMTIuNSwyLjhjMS41LDAsMy44LTIsMTMuNS0xCgkJCQkJCQljMC4yLDAuNC0yLjIsMC41LTQuMywxLjZjLTIuMiwxLjEtMy43LDEtMy43LDEuM3MxLjItMC40LDMuNywxLjNjMi41LDEuNiw3LDIuMSw3LDIuNmMwLDAuNC01LjcsMi4zLTE1LjEtMC43CgkJCQkJCQljLTIuNC0wLjgtOCw1LjgtMzMuOCw3LjdzLTY5LjQsMy4zLTY5LjQsMy4zczIuNiwzLjQsNi40LDQuM2MwLjIsMC4zLTEuNSwxLjYtOC45LDAuMmMtNy40LTEuNC0xMS40LTQuNS0xMS40LTQuNQoJCQkJCQkJcy0xNC43LTAuOS0yMC4yLTEuOWMtNS42LTAuOS0xMS45LTMuMy0xNi4zLTMuN3MtMjQuMi0yLjgtMTYuNy04QzExNi43LDE3NS4zLDEyNC43LDE3MC42LDE0My40LDE2Ni40eiIvPgoJCQkJCQk8ZyBpZD0i57yW57uELTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM3LjAwMDAwMCwgMC4wMDAwMDApIj4KCgkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLmpK3lnIblvaLlpIfku70tNV8yXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxOTcuNDMyOCIgeTE9Ii05Ljk3MjYiIHgyPSIxOTcuNDMyOCIgeTI9Ii04Ljk3MjYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTQuMzExNCAwIDAgMTcuNjQ4NSAtMjgxMi4yOTAzIDI1OC43NTkxKSI+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VBRUNFRSIvPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNDRENGRDEiLz4KCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQk8cGF0aCBpZD0i5qSt5ZyG5b2i5aSH5Lu9LTUiIGNsYXNzPSJzdDEiIGQ9Ik0xMy4yLDEwMC40YzMuMSwwLDcuMi02LjUsNy4yLTEwLjVzLTMuMi03LjItNy4yLTcuMlM2LjEsODYsNi4xLDg5LjkKCQkJCQkJCQlDNi4xLDkzLjksMTAuMSwxMDAuNCwxMy4yLDEwMC40eiIvPgoKCQkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol8xOV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTE1MS4zNjY0IiB5MT0iLTIuMjE1NiIgeDI9Ii0xNTEuMzY2NCIgeTI9Ii0xLjIxNTgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4xMDA5IDAgMCA3OS40MTgyIDE3Ny42ODkzIDE4NS45NTkzKSI+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0RDREVFNSIvPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCMkI1QkUiLz4KCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQk8cmVjdCBpZD0i55+p5b2iXzFfIiB4PSIxMC41IiB5PSIxMCIgY2xhc3M9InN0MiIgd2lkdGg9IjEuMSIgaGVpZ2h0PSI3OS40Ii8+CgoJCQkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2i5aSH5Lu9LTIxXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii0xNTEuMzY4OSIgeTE9Ii0yLjIxNTYiIHgyPSItMTUxLjM2ODkiIHkyPSItMS4yMTU4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMTAwOSAwIDAgNzkuNDE4MiAxODAuOTkyIDE4NS45NTkzKSI+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0RDREVFNSIvPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCMkI1QkUiLz4KCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTIxIiB4PSIxMy44IiB5PSIxMCIgY2xhc3M9InN0MyIgd2lkdGg9IjEuMSIgaGVpZ2h0PSI3OS40Ii8+CgoJCQkJCQkJCTxnIGlkPSLnvJbnu4QtMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjIuOTQxNzI1LCA3My44NDE3OTMpIHJvdGF0ZSgtMzkuMDAwMDAwKSB0cmFuc2xhdGUoLTYyLjk0MTcyNSwgLTczLjg0MTc5MykgdHJhbnNsYXRlKDUwLjQ0MTcyNSwgLTEwLjY1ODIwNykiPgoJCQkJCQkJCTxnIGlkPSLnvJbnu4QtMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDM4LjUxMzU0OCkiPgoKCQkJCQkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCIXzZfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjkzLjY5OTEiIHkxPSIzMy4xMTMzIiB4Mj0iOTMuNjk5MSIgeTI9IjM0LjA5MjQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMjQuNTE2MyAtNy41NzQ3MzJlLTA1IDcuMjY0MTQ3ZS0wNSAxMjkuNTQ1NiAtMjI3OC45OTU4IC00MjYzLjUyMzkpIj4KCQkJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFNEU2RTkiLz4KCQkJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNDQkNFRDYiLz4KCQkJCQkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiCIgY2xhc3M9InN0NCIgZD0iTTI0LjUsMGwwLDEwMi43bDAsMTRsMCwxMi44SDBMMCwwTDI0LjUsMHogTTEyLjMsMTIzLjFsLTEwLDUuM2gyMC4xTDEyLjMsMTIzLjF6CgkJCQkJCQkJCQkgTTIzLjMsMTE3LjNsLTkuOCw1LjFsOS44LDUuMUwyMy4zLDExNy4zeiBNMS4yLDExNy4zbDAsMTAuM2w5LjgtNS4xTDEuMiwxMTcuM3ogTTIyLDExNi43SDIuNWw5LjcsNS4xTDIyLDExNi43egoJCQkJCQkJCQkJIE0xMi4zLDExMC40bC05LjcsNS4xSDIyTDEyLjMsMTEwLjR6IE0xLjIsMTA0LjZsMCwxMC4zbDkuOC01LjFMMS4yLDEwNC42eiBNMjMuMywxMDQuNmwtOS44LDUuMWw5LjgsNS4xTDIzLjMsMTA0LjZ6CgkJCQkJCQkJCQkgTTIyLjMsMTAzLjlsLTIwLjEsMGwxMCw1LjNMMjIuMywxMDMuOXogTTEyLjMsOTcuNWwtMTAsNS4zbDIwLjEsMEwxMi4zLDk3LjV6IE0xLjIsOTEuNmwwLDEwLjNsOS44LTUuMUwxLjIsOTEuNnoKCQkJCQkJCQkJCSBNMjMuMyw5MS42bC05LjgsNS4xbDkuOCw1LjFMMjMuMyw5MS42eiBNMjIsOTFMMi41LDkxbDkuNyw1LjFMMjIsOTF6IE0xMi4zLDg0LjhsLTkuNyw1LjFsMTkuNSwwTDEyLjMsODQuOHogTTEuMiw3OQoJCQkJCQkJCQkJbDAsMTAuM2w5LjgtNS4xTDEuMiw3OXogTTIzLjMsNzlsLTkuOCw1LjFsOS44LDUuMUwyMy4zLDc5eiBNMjIuMyw3OC4ySDIuMmwxMCw1LjNMMjIuMyw3OC4yeiBNMTIuMyw3MS44TDIuMiw3N2wyMC4xLDAKCQkJCQkJCQkJCUwxMi4zLDcxLjh6IE0xLjIsNjZsMCwxMC4zbDkuOC01LjFMMS4yLDY2eiBNMjMuMyw2NmwtOS44LDUuMWw5LjgsNS4xTDIzLjMsNjZ6IE0yMiw2NS40bC0xOS41LDBsOS43LDUuMUwyMiw2NS40egoJCQkJCQkJCQkJIE0xMi4zLDU5LjFsLTkuNyw1LjFsMTkuNSwwTDEyLjMsNTkuMXogTTEuMiw1My4zbDAsMTAuM2w5LjgtNS4xTDEuMiw1My4zeiBNMjMuMyw1My4zbC05LjgsNS4xbDkuOCw1LjFMMjMuMyw1My4zegoJCQkJCQkJCQkJIE0yMi4zLDUyLjVsLTIwLjEsMGwxMCw1LjNMMjIuMyw1Mi41eiBNMTIuMyw0Ni4xbC0xMCw1LjNsMjAuMSwwTDEyLjMsNDYuMXogTTIzLjMsNDAuM2wtOS44LDUuMWw5LjgsNS4xTDIzLjMsNDAuM3oKCQkJCQkJCQkJCSBNMS4yLDQwLjNsMCwxMC4zbDkuOC01LjFMMS4yLDQwLjN6IE0yMiwzOS43bC0xOS41LDBsOS43LDUuMUwyMiwzOS43eiBNMTIuMywzMy40bC05LjcsNS4xbDE5LjUsMEwxMi4zLDMzLjR6IE0xLjIsMjcuNgoJCQkJCQkJCQkJbDAsMTAuM2w5LjgtNS4xTDEuMiwyNy42eiBNMjMuMywyNy42bC05LjgsNS4xbDkuOCw1LjFMMjMuMywyNy42eiBNMjIuMywyNi44bC0yMC4xLDBsMTAsNS4zTDIyLjMsMjYuOHogTTEyLjMsMjAuNAoJCQkJCQkJCQkJbC0xMCw1LjNsMjAuMSwwTDEyLjMsMjAuNHogTTEuMiwxNC42bDAsMTAuM2w5LjgtNS4xTDEuMiwxNC42eiBNMjMuMywxNC42bC05LjgsNS4xbDkuOCw1LjFMMjMuMywxNC42eiBNMjIsMTRMMi41LDE0CgkJCQkJCQkJCQlsOS43LDUuMUwyMiwxNHogTTEyLjMsNy43bC05LjcsNS4xbDE5LjUsMEwxMi4zLDcuN3ogTTEuMiwxLjlsMCwxMC4zTDExLDcuMUwxLjIsMS45eiBNMjMuMywxLjlMMTMuNSw3bDkuOCw1LjFMMjMuMywxLjl6CgkJCQkJCQkJCQkgTTIyLjMsMS4ybC0yMC4xLDBsMTAsNS4zTDIyLjMsMS4yeiIvPgoJCQkJCQkJCTwvZz4KCgkJCQkJCQkJCTxlbGxpcHNlIGlkPSLmpK3lnIblvaIiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjc3NzEgLTAuNjI5MyAwLjYyOTMgLTAuNzc3MSAxOS4xNDkxIDE0LjkyMDEpIiBjbGFzcz0ic3Q1IiBjeD0iMTIuMiIgY3k9IjQuMSIgcng9IjQuMSIgcnk9IjQuMSIvPgoKCQkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaJfMjBfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjExNS45NzExIiB5MT0iMzIuMTc3NCIgeDI9IjExNS45NzExIiB5Mj0iMzMuMTc3NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxOS44NDY1IDMuNjY3NjMxZS0wNSAtOC42NDUwMzZlLTA2IDMxLjUxMTEgLTIyODMuMTA0NyAtMTAwMC4wNzA5KSI+CgkJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFQkVERjAiLz4KCQkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0U0RTZFOSIvPgoJCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQkJPHBvbHlnb24gaWQ9IuefqeW9ol8yXyIgY2xhc3M9InN0NiIgcG9pbnRzPSI3LDUuOCAxNy41LDUuOCAyMi4yLDM3LjMgMi4zLDM3LjMgCQkJCQkJCQkiLz4KCQkJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTE3IiBjbGFzcz0ic3Q3IiBwb2ludHM9IjAsMzguNSAyLjMsMzcuMyAyMi4yLDM3LjMgMjQuNSwzOC41IAkJCQkJCQkJIi8+CgkJCQkJCQkJPHBvbHlnb24gaWQ9Iui3r+W+hC0xOCIgY2xhc3M9InN0OCIgcG9pbnRzPSI4LjIsNS44IDguMiw0LjYgMTYuMyw0LjYgMTYuMyw1LjggCQkJCQkJCQkiLz4KCQkJCQkJCTwvZz4KCQkJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDkiIGQ9Ik0xMi43LDk5LjN2Ny4ydjAuMWMtMC4yLDAtMC40LTAuMS0wLjYtMC4xYy0xLjUsMC0yLjgsMS4zLTIuOCwzczEuMiwzLDIuOCwzCgkJCQkJCQkJYzEuMywwLDIuNS0xLDIuNy0yLjRoMS4xYy0wLjMsMi0xLjksMy42LTMuOCwzLjZjLTIuMSwwLTMuOS0xLjktMy45LTQuMmMwLTIuMSwxLjQtMy44LDMuMy00LjF2LTZMMTIuNyw5OS4zTDEyLjcsOTkuM3oiLz4KCQkJCQkJCTxwYXRoIGlkPSLmpK3lnIblvaJfMV8iIGNsYXNzPSJzdDEwIiBkPSJNMTIuMSwxMDAuNGMzLjEsMCw3LjItNi41LDcuMi0xMC41cy0zLjItNy4yLTcuMi03LjJTNSw4Niw1LDg5LjkKCQkJCQkJCQlDNSw5My45LDksMTAwLjQsMTIuMSwxMDAuNHoiLz4KCQkJCQkJCTxyZWN0IGlkPSLnn6nlvaJfM18iIHg9IjEyMi44IiB5PSIxMjEuNCIgY2xhc3M9InN0MTEiIHdpZHRoPSIxMDIuNCIgaGVpZ2h0PSIyLjIiLz4KCgkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaJfMjFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwMC4wMTg3IiB5MT0iLTEuMTk2NiIgeDI9IjEwMC4wMTg3IiB5Mj0iLTAuMjE2NiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgzLjQzMDEgMC43MjkxIC0xNC42NDAzIDY4Ljg3NzQgLTE2Ny45MTYxIDY1LjM3MjIpIj4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRUFFREYwIi8+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0U3RTdFQiIvPgoJCQkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQkJCTxwYXRoIGlkPSLnn6nlvaJfNF8iIGNsYXNzPSJzdDEyIiBkPSJNMTkxLjMsNTQuMWwzLjQsMC43bC0xNC42LDY4LjVjLTAuNywwLjEtMS4zLDAuMS0xLjksMGMtMC41LTAuMS0xLjEtMC40LTEuNS0wLjcKCQkJCQkJCQlMMTkxLjMsNTQuMXoiLz4KCgkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaLlpIfku70tMjJfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTI2LjUyOTciIHkxPSI1Ljk2NiIgeDI9IjEyNi41Mjk3IiB5Mj0iNi45NDYyIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuNjQ2NyAzLjA5NzEgLTQyLjI3MjQgMjIuNDc2NiAyODEuMjI3MSAtNDIzLjY4NzkpIj4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRUZGMkY1Ii8+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0U3RTdFQiIvPgoJCQkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQkJCTxwYXRoIGlkPSLnn6nlvaLlpIfku70tMjIiIGNsYXNzPSJzdDEzIiBkPSJNMjM3LjQsMTAwLjNsMS42LDMuMWwtMzkuNSwyMC43Yy0wLjQsMC0xLjItMC4xLTIuNC0wLjNjLTEuMi0wLjItMS45LTAuNi0yLTEKCQkJCQkJCQlMMjM3LjQsMTAwLjN6Ii8+CgoJCQkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i6Lev5b6ELTIzXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwMC41MTkxIiB5MT0iLTUzLjE4NjciIHgyPSIxMDAuNTE5MSIgeTI9Ii01Mi4xODY3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMzAyNiAwIDAgMy4zMDkxIC05OC42MjQzIDI3OC42MTQ2KSI+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0U3RThFQiIvPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNDQUNERDEiLz4KCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQk8cGF0aCBpZD0i6Lev5b6ELTIzIiBjbGFzcz0ic3QxNCIgZD0iTTIzMy40LDEwMi42bC0xLjcsMC43YzAsMC40LDAuMiwwLjksMC42LDEuNWMwLjQsMC41LDAuOCwwLjksMS4zLDEuMWwxLjQtMC42CgkJCQkJCQkJTDIzMy40LDEwMi42eiIvPgoKCQkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol8yMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjIxLjUyODEiIHkxPSItOC44NjUzIiB4Mj0iMjIxLjUyODEiIHkyPSItNy44NjUzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDgzLjY2NjcgMCAwIDE5Ljg1NDUgLTE4MzUxLjE3NTggMzEyLjgxNjEpIj4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTNFNUU4Ii8+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMC45NzEzIiBzdHlsZT0ic3RvcC1jb2xvcjojQ0RDRUQxIi8+CgkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJPHJlY3QgaWQ9IuefqeW9ol81XyIgeD0iMTQxLjUiIHk9IjEzNi44IiBjbGFzcz0ic3QxNSIgd2lkdGg9IjgzLjciIGhlaWdodD0iMTkuOSIvPgoJCQkJCQkJPHBhdGggaWQ9Iui3r+W+hC0yMCIgY2xhc3M9InN0MTYiIGQ9Ik0xNDAuNCwxNTYuN2gxMC4yYy0wLjEtMy4xLDItNS4yLDYuNC02LjNzMjcuMS0zLjcsNjguMi03Ljl2LTMuMXYtOS4yaC04NC44CgkJCQkJCQkJTDE0MC40LDE1Ni43TDE0MC40LDE1Ni43eiIvPgoKCQkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9Iui3r+W+hC0xOV8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyMjMuMDY1NCIgeTE9Ii01LjMxNzkiIHgyPSIyMjMuMDY1NCIgeTI9Ii00LjMyNjQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTIxLjA5NjUgMCAwIDMzLjA5MDkgLTI2ODQ3Ljc0MjIgMjk5LjU3NTEpIj4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxLjE4NzcxMWUtMDIiIHN0eWxlPSJzdG9wLWNvbG9yOiNGM0YzRjUiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTFFM0U2Ii8+CgkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJPHBhdGggaWQ9Iui3r+W+hC0xOSIgY2xhc3M9InN0MTciIGQ9Ik0yMjUuMiwxMjMuNkgxMDQuMXYzMy4xSDE0NGMxLTQuMSwyLjgtNi42LDUuNC03LjVjMi42LTAuOSwyNy45LTMuMiw3NS45LTYuOQoJCQkJCQkJCUwyMjUuMiwxMjMuNkwyMjUuMiwxMjMuNnoiLz4KCgkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfOV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjE2LjI4NzQiIHkxPSItNS4zMDUyIiB4Mj0iMjE2LjI4NzQiIHkyPSItNC4zMjU1IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQwLjczMTYgMCAwIDMzLjA5MDkgLTg2ODUuMjgxMiAyOTkuNTc1MSkiPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFNEU3RUIiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRDhEQURDIi8+CgkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiF8yXyIgY2xhc3M9InN0MTgiIGQ9Ik0xNDQuOCwxMjMuNnYyNS42YzAsMS0wLjcsMS44LTEuNiwybC0zMC41LDUuNWgtOC42di0zMy4xSDE0NC44eiIvPgoJCQkJCQkJPHJlY3QgaWQ9IuefqeW9ol82XyIgeD0iMTI5LjQiIHk9IjE1Ni43IiBjbGFzcz0ic3QxOSIgd2lkdGg9IjM3LjQiIGhlaWdodD0iMi4yIi8+CgoJCQkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i6Lev5b6ELTIxXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjIyNC4yODg2IiB5MT0iLTEuNjQxOSIgeDI9IjIyNS4wNzM4IiB5Mj0iLTEuNDcwMiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgyMTkuMDc0NiAwIDAgODkuMzQ1NSAtNDkwNzYuNjYwMiAxODguMTYxNikiPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNENUQ4REYiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQjVCOEMxIi8+CgkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJPHBvbHlsaW5lIGlkPSLot6/lvoQtMjEiIGNsYXNzPSJzdDIwIiBwb2ludHM9IjE4LjIsMTIuMiAxOTIuOSw1My43IDIzNy4zLDEwMS41IAkJCQkJCQkiLz4KCQkJCQkJCTxwYXRoIGlkPSLot6/lvoQtMjIiIGNsYXNzPSJzdDIxIiBkPSJNMTg5LjksNTkuOWMwLjQsMC4zLDAuOSwwLjUsMS40LDAuN3MxLDAuMiwxLjYsMC4xbDAuMy0xLjRsLTMtMC44TDE4OS45LDU5Ljl6Ii8+CgkJCQkJCQk8ZWxsaXBzZSBpZD0i5qSt5ZyG5b2iXzJfIiBjbGFzcz0ic3QyMiIgY3g9IjE5My4yIiBjeT0iNTQuMSIgcng9IjQuNSIgcnk9IjQuNSIvPgoJCQkJCQkJPHJlY3QgaWQ9IuefqeW9oi00IiB4PSIxMjIuOCIgeT0iMTIzLjYiIGNsYXNzPSJzdDIzIiB3aWR0aD0iMTAyLjQiIGhlaWdodD0iMS4xIi8+CgoJCQkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iXzIzXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyMTAuNDAzNSIgeTE9Ii0zLjY5ODIiIHgyPSIyMTEuMTExMSIgeTI9Ii0zLjY5ODIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMjYuNDIxMSAwIDAgNDEuOTE1MSAtNTMzMS4xMDMgMjkyLjk2MikiPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFRkYwRjIiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwLjQ3MjQiIHN0eWxlPSJzdG9wLWNvbG9yOiNGNEY1RjciLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRUVGMEYyIi8+CgkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJPHJlY3QgaWQ9IuefqeW9ol83XyIgeD0iMjI0LjEiIHk9IjExNyIgY2xhc3M9InN0MjQiIHdpZHRoPSIyNi40IiBoZWlnaHQ9IjQxLjkiLz4KCQkJCQkJCTxyZWN0IGlkPSLnn6nlvaJfOF8iIHg9IjIyMyIgeT0iMTIxLjQiIGNsYXNzPSJzdDI1IiB3aWR0aD0iMS4xIiBoZWlnaHQ9IjMuMyIvPgoJCQkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS0yMyIgeD0iMjIzIiB5PSIxMjQuNyIgY2xhc3M9InN0MjYiIHdpZHRoPSIxLjEiIGhlaWdodD0iMTcuNiIvPgoJCQkJCQkJPHJlY3QgaWQ9IuefqeW9ol85XyIgeD0iMjIzIiB5PSIxNDIuMyIgY2xhc3M9InN0MjciIHdpZHRoPSIxLjEiIGhlaWdodD0iMTQuMyIvPgoJCQkJCQkJPGVsbGlwc2UgaWQ9IuakreWchuW9ol8zXyIgY2xhc3M9InN0MjMiIGN4PSIyMzcuMyIgY3k9IjExNyIgcng9IjEzLjIiIHJ5PSIyLjIiLz4KCgkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLmpK3lnIblvaLlpIfku70tOF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyMTAuNDAzNSIgeTE9Ii0zOS4zODQzIiB4Mj0iMjExLjExMTEiIHkyPSItMzkuMzg0MyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgyNi40MjExIDAgMCA0LjQxMjEgLTUzMzEuMTAzIDMzMi42Njc0KSI+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VGRjBGMiIvPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAuNDcyNCIgc3R5bGU9InN0b3AtY29sb3I6I0Y0RjVGNyIvPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFRUYwRjIiLz4KCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQk8ZWxsaXBzZSBpZD0i5qSt5ZyG5b2i5aSH5Lu9LTgiIGNsYXNzPSJzdDI4IiBjeD0iMjM3LjMiIGN5PSIxNTguOSIgcng9IjEzLjIiIHJ5PSIyLjIiLz4KCQkJCQkJCTxwYXRoIGlkPSLnn6nlvaJfMTBfIiBjbGFzcz0ic3QyOSIgZD0iTTIzNi4yLDEwNS45aDMuM3YxMC41Yy0wLjYsMC4zLTEuMSwwLjUtMS43LDAuNXMtMS4xLTAuMi0xLjctMC41TDIzNi4yLDEwNS45CgkJCQkJCQkJTDIzNi4yLDEwNS45eiIvPgoJCQkJCQkJPHBhdGggaWQ9Iui3r+W+hC0yNCIgY2xhc3M9InN0MzAiIGQ9Ik0yMzYuMiwxMDZ2MS43YzAuNCwwLjMsMSwwLjQsMS43LDAuNHMxLjItMC4xLDEuNy0wLjR2LTEuOEwyMzYuMiwxMDZ6Ii8+CgkJCQkJCQk8ZWxsaXBzZSBpZD0i5qSt5ZyG5b2i5aSH5Lu9LTkiIGNsYXNzPSJzdDIyIiBjeD0iMjM3LjMiIGN5PSIxMDIuNiIgcng9IjQuNSIgcnk9IjQuNSIvPgoJCQkJCQkJPGcgaWQ9Iue8lue7hC02IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2OS45Mzc1MTYsIDE1OC44NzA1OTQpIj4KCQkJCQkJCQk8ZWxsaXBzZSBpZD0i5qSt5ZyG5b2iXzRfIiBjbGFzcz0ic3QzMSIgY3g9IjExLjEiIGN5PSIxMSIgcng9IjguOCIgcnk9IjguNyIvPgoJCQkJCQkJCTxlbGxpcHNlIGlkPSLmpK3lnIblvaLlpIfku70tMTAiIGNsYXNzPSJzdDMxIiBjeD0iMTQxLjkiIGN5PSIxMSIgcng9IjguOCIgcnk9IjguNyIvPgoJCQkJCQkJCTxwYXRoIGlkPSLnn6nlvaJfMTFfIiBjbGFzcz0ic3QzMiIgZD0iTTExLjEsMTAuOWg3YzAuNywwLDEuMiwwLjYsMS4yLDEuMmwwLDBjMCwwLjctMC42LDEuMi0xLjIsMS4yaC03CgkJCQkJCQkJCWMtMC43LDAtMS4yLTAuNi0xLjItMS4ybDAsMEM5LjgsMTEuNSwxMC40LDEwLjksMTEuMSwxMC45eiIvPgoJCQkJCQkJCTxwYXRoIGlkPSLnn6nlvaJfMTJfIiBjbGFzcz0ic3QzMiIgZD0iTTEzNC45LDEwLjloN2MwLjcsMCwxLjIsMC42LDEuMiwxLjJsMCwwYzAsMC43LTAuNiwxLjItMS4yLDEuMmgtNwoJCQkJCQkJCQljLTAuNywwLTEuMi0wLjYtMS4yLTEuMmwwLDBDMTMzLjcsMTEuNSwxMzQuMywxMC45LDEzNC45LDEwLjl6Ii8+CgkJCQkJCQkJPHBhdGggaWQ9IuefqeW9ol8xM18iIGNsYXNzPSJzdDMzIiBkPSJNMTAuOSw5LjhoMTMxLjNjMC44LDAsMS41LDAuNywxLjUsMS41djAuNWMwLDAuOC0wLjcsMS41LTEuNSwxLjVIMTAuOQoJCQkJCQkJCQljLTAuOCwwLTEuNS0wLjctMS41LTEuNXYtMC41QzkuNCwxMC41LDEwLjEsOS44LDEwLjksOS44eiIvPgoJCQkJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfM18iIGNsYXNzPSJzdDM0IiBkPSJNMTQyLjIsOS44YzAuNywwLDEuMywwLjUsMS41LDEuMkg5LjRjMC4yLTAuNywwLjctMS4yLDEuNS0xLjJIMTQyLjJ6Ii8+CgoJCQkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol8yNF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iODMuODcwMyIgeTE9Ii04Ljc1ODciIHgyPSI4My44NzAzIiB5Mj0iLTcuNzczNCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNTEuMDIxOSAwIDAgMjAuMDYwNiAtMTI1ODkuNzU3OCAxNzYuOTk5OSkiPgoJCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRDdEOERCIi8+CgkJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNEMEQzRDYiLz4KCQkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJCTxwYXRoIGlkPSLnn6nlvaJfMTRfIiBjbGFzcz0ic3QzNSIgZD0iTTEwLjUsMWgxMzJjNS4yLDAsOS41LDQuMyw5LjUsOS41djEuMWMwLDUuMi00LjMsOS41LTkuNSw5LjVoLTEzMgoJCQkJCQkJCQljLTUuMiwwLTkuNS00LjMtOS41LTkuNXYtMS4xQzEsNS4zLDUuMywxLDEwLjUsMXoiLz4KCgkJCQkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iXzI1XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI4My44MTI5IiB5MT0iLTEwLjM4NDQiIHgyPSI4My44MTI5IiB5Mj0iLTkuNDI0MiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNDcuOTE4NCAwIDAgMTYuOTQ4NSAtMTIzMjAuOTE3IDE3OC41NTY0KSI+CgkJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNDRENFRDEiLz4KCQkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0VFRUZGMSIvPgoJCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQkJPHBhdGggaWQ9IuefqeW9ol8xNV8iIGNsYXNzPSJzdDM2IiBkPSJNMTAuMSwyLjZIMTQzYzQuMSwwLDcuNSwzLjQsNy41LDcuNVYxMmMwLDQuMS0zLjQsNy41LTcuNSw3LjVIMTAuMQoJCQkJCQkJCQljLTQuMSwwLTcuNS0zLjQtNy41LTcuNXYtMS45QzIuNiw1LjksNS45LDIuNiwxMC4xLDIuNnoiLz4KCQkJCQkJCTwvZz4KCgkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaJfMjZfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjIxNi41NTc1IiB5MT0iLTQuMzU0IiB4Mj0iMjE2LjU1NzUiIHkyPSItMy4zNTQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNDEuODMzMyAwIDAgNDAuNDIyNyAtODkzNi40NjY4IDI5MS44NDkyKSI+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0YwRjFGMiIvPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFNkU4RUIiLz4KCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQk8cGF0aCBpZD0i55+p5b2iXzE2XyIgY2xhc3M9InN0MzciIGQ9Ik0xMTUuOSwxMTUuOWgyNS44YzEuMSwwLDIsMC45LDIsMnYyOS43YzAsMS0wLjcsMS44LTEuNiwybC0zNy44LDYuOAoJCQkJCQkJCWMtMS4xLDAuMi0yLjEtMC41LTIuMy0xLjZjMC0wLjEsMC0wLjIsMC0wLjRWMTMwQzEwMS45LDEyMi4xLDEwOC4xLDExNS45LDExNS45LDExNS45eiIvPgoKCQkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol8yN18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjA0LjI3MzIiIHkxPSItNy45NzgiIHgyPSIyMDQuMjczMiIgeTI9Ii02Ljk3OCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxOC43MTQ5IDAgMCAyMi4wNjA2IC0zNzA4LjQwMzEgMjk1LjE2MTUpIj4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFOEVCIi8+CgkJCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0Q3RDlEQyIvPgoJCQkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQkJCTxwYXRoIGlkPSLnn6nlvaJfMTdfIiBjbGFzcz0ic3QzOCIgZD0iTTExNS4yLDExOS4yaDguN2wwLDB2MjAuOWwtMTguNywxLjJ2LTEyLjFDMTA1LjIsMTIzLjYsMTA5LjYsMTE5LjIsMTE1LjIsMTE5LjJ6Ii8+CgoJCQkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iXzI4XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxOTcuNDMzMiIgeTE9Ii04LjM5OCIgeDI9IjE5Ny40MzMyIiB5Mj0iLTcuMzk4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDE0LjMxMTQgMCAwIDIwLjk1NzYgLTI2OTIuMjk1MiAyOTUuMTU3OSkiPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFNkU4RUIiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRDdEOURDIi8+CgkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJPHBhdGggaWQ9IuefqeW9ol8xOF8iIGNsYXNzPSJzdDM5IiBkPSJNMTI2LjEsMTE5LjJoMTMuM2MwLjYsMCwxLDAuNCwxLDFWMTM5bDAsMGwtMTQuMywxLjIKCQkJCQkJCQlDMTI2LjEsMTQwLjIsMTI2LjEsMTE5LjIsMTI2LjEsMTE5LjJ6Ii8+CgkJCQkJCTwvZz4KCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiF80XyIgY2xhc3M9InN0NDAiIGQ9Ik0xOTIuMiwxNjkuOGM4Ny41LTcuNywxNTYuOC0zMywxNTQuNy01Ni43Yy0yLjEtMjMuNi03NC43LTM2LjYtMTYyLjItMjkKCQkJCQkJCVMyOCwxMTcuMiwzMCwxNDAuOVMxMDQuNywxNzcuNSwxOTIuMiwxNjkuOHogTTE5Mi4yLDE2OC44Yy04Ni45LDcuNi0xNTkuMS01LjMtMTYxLjEtMjhzNjYuOS00OCwxNTMuOC01NS42CgkJCQkJCQlzMTU5LjEsNS4zLDE2MS4xLDI4QzM0Ny45LDEzNiwyNzksMTYxLjIsMTkyLjIsMTY4Ljh6Ii8+CgkJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfNV8iIGNsYXNzPSJzdDQwIiBkPSJNMjM1LjMsNTEuOWM0NS4xLTE3LjMsNzkuOS0yMS4yLDg4LTcuM2MxMiwyMC44LTQwLjIsNzMuNC0xMTYuNSwxMTcuNQoJCQkJCQkJcy0xNDgsNjMtMTYwLDQyLjFTODcsMTMwLjgsMTYzLjMsODYuN0MxODQuNiw3NC41LDIwNS42LDY0LjEsMjI1LDU2YzAuMSwwLjMsMC4zLDAuNiwwLjQsMC45QzIwNiw2NSwxODUsNzUuMywxNjMuNyw4Ny42CgkJCQkJCQlDODcuOSwxMzEuNSwzNiwxODMuOCw0Ny42LDIwMy44czgyLjgsMS4zLDE1OC43LTQyLjVTMzM0LDY1LjIsMzIyLjQsNDUuMmMtNy43LTEzLjQtNDIuMi05LjQtODYuOCw3LjgKCQkJCQkJCUMyMzUuNSw1Mi42LDIzNS40LDUyLjMsMjM1LjMsNTEuOUwyMzUuMyw1MS45eiIvPgoJCQkJCQk8ZyBpZD0i57yW57uELTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLCAzOC4wMDAwMDApIj4KCQkJCQkJCTxlbGxpcHNlIGlkPSLmpK3lnIblvaJfNV8iIGNsYXNzPSJzdDQxIiBjeD0iMzAzLjEiIGN5PSI1MC4yIiByeD0iMi44IiByeT0iMi44Ii8+CgkJCQkJCQk8ZWxsaXBzZSBpZD0i5qSt5ZyG5b2iXzZfIiBjbGFzcz0ic3Q0MSIgY3g9IjMxNi4zIiBjeT0iMS43IiByeD0iMS43IiByeT0iMS43Ii8+CgkJCQkJCQk8ZWxsaXBzZSBpZD0i5qSt5ZyG5b2iXzdfIiBjbGFzcz0ic3Q0MSIgY3g9IjEyMS42IiBjeT0iMTM2LjIiIHJ4PSIyLjgiIHJ5PSIyLjgiLz4KCQkJCQkJCTxlbGxpcHNlIGlkPSLmpK3lnIblvaJfOF8iIGNsYXNzPSJzdDQxIiBjeD0iMzMiIGN5PSI5MC40IiByeD0iMS4xIiByeT0iMS4xIi8+CgkJCQkJCQk8ZWxsaXBzZSBpZD0i5qSt5ZyG5b2iXzlfIiBjbGFzcz0ic3Q0MSIgY3g9IjI5MC41IiBjeT0iMTE0LjciIHJ4PSIxLjEiIHJ5PSIxLjEiLz4KCQkJCQkJCTxlbGxpcHNlIGlkPSLmpK3lnIblvaJfMTBfIiBjbGFzcz0ic3Q0MSIgY3g9IjcwLjQiIGN5PSIzNS4zIiByeD0iMi4yIiByeT0iMi4yIi8+CgkJCQkJCQk8ZWxsaXBzZSBpZD0i5qSt5ZyG5b2i5aSH5Lu9LTYiIGNsYXNzPSJzdDQxIiBjeD0iMS43IiBjeT0iNjguOSIgcng9IjEuNyIgcnk9IjEuNyIvPgoJCQkJCQkJPGVsbGlwc2UgaWQ9IuakreWchuW9ouWkh+S7vS01XzFfIiBjbGFzcz0ic3Q0MSIgY3g9IjIzMy44IiBjeT0iMTU5LjMiIHJ4PSIxLjciIHJ5PSIxLjciLz4KCQkJCQkJPC9nPgoJCQkJCTwvZz4KCQkJCTwvZz4KCQkJPC9nPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K";
9950
- var empty$1 = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCPot6/lvoQtM18xXyk7fQoJLnN0MntmaWxsOnVybCgj5b2i54q257uT5ZCIXzJfKTt9Cgkuc3Qze2ZpbGw6I0M0QzZDQzt9Cjwvc3R5bGU+CjxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI0MS40NDI3IiB5MT0iODQuOTYwMSIgeDI9IjI0Ny41MTg0IiB5Mj0iNTAuNTAyOCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI0MCkiPgoJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZCRkNGRCIvPgoJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0YwRjJGNSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QwIiBkPSJNMTg4LDE2NC43YzE2LjMtMy43LDM5LjctNS4zLDU1LjYtNC41czI5LjEsMy42LDMwLDIuOWMzLjItMi4xLDEwLTMsOS42LTIuMgoJYy0wLjMsMC44LTQuNywzLjQtMy4zLDMuOGMxLjQsMC40LDE1LjYsMiwyMS41LDMuM2M1LjksMS4yLDkuNywyLjQsMTEsMi40czMuMy0xLjcsMTEuOC0wLjljMC4yLDAuMy0xLjksMC40LTMuOCwxLjQKCXMtMy4zLDAuOS0zLjMsMS4xczEuMS0wLjMsMy4zLDEuMWMyLjIsMS40LDYuMSwxLjksNi4xLDIuMnMtNC45LDItMTMuMi0wLjZjLTIuMS0wLjctNyw1LjEtMjkuNSw2LjdzLTYwLjUsMi45LTYwLjUsMi45CglzMi4zLDIuOSw1LjYsMy44YzAuMiwwLjMtMS4zLDEuNC03LjgsMC4ycy05LjktMy45LTkuOS0zLjlzLTEyLjgtMC44LTE3LjYtMS42cy0xMC40LTIuOS0xNC4yLTMuM2MtMy44LTAuNC0yMS4xLTIuNC0xNC41LTYuOQoJQzE2NC43LDE3Mi41LDE3MS43LDE2OC40LDE4OCwxNjQuN3oiLz4KPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtM18xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI0MTIuNTYwNiIgeTE9Ii0zLjExMzMiIHgyPSI0MTIuNTYwNiIgeTI9Ii0yLjE3NzMiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTA1LjYgMCAwIDU2LjMyIC00MzMyNi40MDIzIDI3OC40MDAxKSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFOEVCO3N0b3Atb3BhY2l0eTowLjk5MTciLz4KCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNENEQ2RDkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHBvbHlnb24gaWQ9Iui3r+W+hC0zIiBjbGFzcz0ic3QxIiBwb2ludHM9IjE4Ny4yLDEzNy42IDIxMC43LDEwMi40IDI2OS4zLDEwMi40IDI5Mi44LDEzNy42IDI5Mi44LDE1OC43IDE4Ny4yLDE1OC43ICIvPgo8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF8yXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI0MTIuNTYwNiIgeTE9Ii01IiB4Mj0iNDEyLjU2MDYiIHkyPSItNC4wMDc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEwNS42IDAgMCAzNS4yIC00MzMyNi40MDIzIDMxMy42MDA0KSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRURFRkYyIi8+Cgk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRThFQUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxwYXRoIGlkPSLlvaLnirbnu5PlkIgiIGNsYXNzPSJzdDIiIGQ9Ik0yMTIuNiwxNzIuOGgtMjMuNGMtMS4xLDAtMi0wLjktMi0ydi0zMy4yaDIzLjRjMS4xLDAsMiwwLjksMiwydjcuNGMwLDEuMSwwLjgsMS45LDEuOSwyCgloMC4xaDUwLjhjMS4xLDAsMS45LTAuOCwyLTEuOVYxNDd2LTcuNGMwLTEuMSwwLjktMiwyLTJoMjMuNHYzMy4yYzAsMS4xLTAuOSwyLTIsMmgtMjMuNEgyMTIuNnoiLz4KPHBhdGggaWQ9IuW9oueKtue7k+WQiF8xXyIgY2xhc3M9InN0MyIgZD0iTTE4Mi40LDE2OS42djhoOHYxLjZoLTkuNnYtOS42SDE4Mi40eiIvPgo8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9IiBjbGFzcz0ic3QzIiBkPSJNMjg5LjYsMTc3LjZoOHYtOGgxLjZ2OS42aC05LjZWMTc3LjZ6Ii8+CjxnIGlkPSLnvJbnu4QtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTEuNjg4ODkwLCAxMS44NzQ5MzYpIHJvdGF0ZSgyMS4wMDAwMDApIHRyYW5zbGF0ZSgtOTEuNjg4ODkwLCAtMTEuODc0OTM2KSB0cmFuc2xhdGUoOTAuODg4ODkwLCAwLjY3NDkzNikiPgoKCQk8cmVjdCBpZD0i55+p5b2iXzFfIiB4PSIxODMuMSIgeT0iMjQuNSIgdHJhbnNmb3JtPSJtYXRyaXgoNS40NDk4OTllLTA2IDEgLTEgNS40NDk4OTllLTA2IDIwOS45Mzc5IC0xNTkuMzkzOCkiIGNsYXNzPSJzdDMiIHdpZHRoPSIzLjIiIGhlaWdodD0iMS42Ii8+CgoJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70tNiIgeD0iMTgzLjEiIHk9IjMwLjkiIHRyYW5zZm9ybT0ibWF0cml4KDUuNDQ5ODk4ZS0wNiAxIC0xIDUuNDQ5ODk4ZS0wNiAyMTYuMzM3OCAtMTUyLjk5MzkpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjEuNiIvPgoKCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTciIHg9IjE4My4xIiB5PSIzNy4zIiB0cmFuc2Zvcm09Im1hdHJpeCg1LjQ0OTg5OGUtMDYgMSAtMSA1LjQ0OTg5OGUtMDYgMjIyLjczNzkgLTE0Ni41OTM5KSIgY2xhc3M9InN0MyIgd2lkdGg9IjMuMiIgaGVpZ2h0PSIxLjYiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS04IiB4PSIxODMuMSIgeT0iNDMuNyIgdHJhbnNmb3JtPSJtYXRyaXgoNS40NDk4OTllLTA2IDEgLTEgNS40NDk4OTllLTA2IDIyOS4xMzc5IC0xNDAuMTkzOSkiIGNsYXNzPSJzdDMiIHdpZHRoPSIzLjIiIGhlaWdodD0iMS42Ii8+CjwvZz4KPGcgaWQ9Iue8lue7hC0zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNi4wMDAwMDAsIDI3LjIwMDAwMCkgcm90YXRlKC0zMi4wMDAwMDApIHRyYW5zbGF0ZSgtMzYuMDAwMDAwLCAtMjcuMjAwMDAwKSB0cmFuc2xhdGUoMzUuMjAwMDAwLCAxMi44MDAwMDApIj4KCgkJPHJlY3QgaWQ9IuefqeW9ol8yXyIgeD0iOTEuNyIgeT0iMTYxLjEiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDUuNDI2MzM3ZS0wNiAtNS40MjYzMzdlLTA2IC0xIDE4NS4wNzUzIDMyNS40NDM4KSIgY2xhc3M9InN0MyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjIiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS0yIiB4PSI5MS43IiB5PSIxNjcuNSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgNS40MjYzMzZlLTA2IC01LjQyNjMzNmUtMDYgLTEgMTg1LjA3NTUgMzM4LjI0MzgpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuMiIvPgoKCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTMiIHg9IjkxLjciIHk9IjE3My45IiB0cmFuc2Zvcm09Im1hdHJpeCgtMSA1LjQyNjMzNmUtMDYgLTUuNDI2MzM2ZS0wNiAtMSAxODUuMDc1NSAzNTEuMDQzOSkiIGNsYXNzPSJzdDMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy4yIi8+CgoJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70tNCIgeD0iOTEuNyIgeT0iMTgwLjMiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDUuNDI2MzM2ZS0wNiAtNS40MjYzMzZlLTA2IC0xIDE4NS4wNzU1IDM2My44NDM4KSIgY2xhc3M9InN0MyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjIiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS01IiB4PSI5MS43IiB5PSIxODYuNyIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgNS40MjYzMzdlLTA2IC01LjQyNjMzN2UtMDYgLTEgMTg1LjA3NTUgMzc2LjY0MzgpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuMiIvPgo8L2c+CjxjaXJjbGUgaWQ9IuakreWchuW9oiIgY2xhc3M9InN0MyIgY3g9IjI2OC44IiBjeT0iOTQuNCIgcj0iMS42Ii8+CjxjaXJjbGUgaWQ9IuakreWchuW9ouWkh+S7vSIgY2xhc3M9InN0MyIgY3g9IjIyNy4yIiBjeT0iMTIwIiByPSIxLjYiLz4KPC9zdmc+Cg==";
9952
+ var empty = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCPot6/lvoQtM18xXyk7fQoJLnN0MntmaWxsOnVybCgj5b2i54q257uT5ZCIXzJfKTt9Cgkuc3Qze2ZpbGw6I0M0QzZDQzt9Cjwvc3R5bGU+CjxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI0MS40NDI3IiB5MT0iODQuOTYwMSIgeDI9IjI0Ny41MTg0IiB5Mj0iNTAuNTAyOCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI0MCkiPgoJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZCRkNGRCIvPgoJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0YwRjJGNSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QwIiBkPSJNMTg4LDE2NC43YzE2LjMtMy43LDM5LjctNS4zLDU1LjYtNC41czI5LjEsMy42LDMwLDIuOWMzLjItMi4xLDEwLTMsOS42LTIuMgoJYy0wLjMsMC44LTQuNywzLjQtMy4zLDMuOGMxLjQsMC40LDE1LjYsMiwyMS41LDMuM2M1LjksMS4yLDkuNywyLjQsMTEsMi40czMuMy0xLjcsMTEuOC0wLjljMC4yLDAuMy0xLjksMC40LTMuOCwxLjQKCXMtMy4zLDAuOS0zLjMsMS4xczEuMS0wLjMsMy4zLDEuMWMyLjIsMS40LDYuMSwxLjksNi4xLDIuMnMtNC45LDItMTMuMi0wLjZjLTIuMS0wLjctNyw1LjEtMjkuNSw2LjdzLTYwLjUsMi45LTYwLjUsMi45CglzMi4zLDIuOSw1LjYsMy44YzAuMiwwLjMtMS4zLDEuNC03LjgsMC4ycy05LjktMy45LTkuOS0zLjlzLTEyLjgtMC44LTE3LjYtMS42cy0xMC40LTIuOS0xNC4yLTMuM2MtMy44LTAuNC0yMS4xLTIuNC0xNC41LTYuOQoJQzE2NC43LDE3Mi41LDE3MS43LDE2OC40LDE4OCwxNjQuN3oiLz4KPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtM18xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI0MTIuNTYwNiIgeTE9Ii0zLjExMzMiIHgyPSI0MTIuNTYwNiIgeTI9Ii0yLjE3NzMiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTA1LjYgMCAwIDU2LjMyIC00MzMyNi40MDIzIDI3OC40MDAxKSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFOEVCO3N0b3Atb3BhY2l0eTowLjk5MTciLz4KCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNENEQ2RDkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHBvbHlnb24gaWQ9Iui3r+W+hC0zIiBjbGFzcz0ic3QxIiBwb2ludHM9IjE4Ny4yLDEzNy42IDIxMC43LDEwMi40IDI2OS4zLDEwMi40IDI5Mi44LDEzNy42IDI5Mi44LDE1OC43IDE4Ny4yLDE1OC43ICIvPgo8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF8yXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI0MTIuNTYwNiIgeTE9Ii01IiB4Mj0iNDEyLjU2MDYiIHkyPSItNC4wMDc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEwNS42IDAgMCAzNS4yIC00MzMyNi40MDIzIDMxMy42MDA0KSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRURFRkYyIi8+Cgk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRThFQUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxwYXRoIGlkPSLlvaLnirbnu5PlkIgiIGNsYXNzPSJzdDIiIGQ9Ik0yMTIuNiwxNzIuOGgtMjMuNGMtMS4xLDAtMi0wLjktMi0ydi0zMy4yaDIzLjRjMS4xLDAsMiwwLjksMiwydjcuNGMwLDEuMSwwLjgsMS45LDEuOSwyCgloMC4xaDUwLjhjMS4xLDAsMS45LTAuOCwyLTEuOVYxNDd2LTcuNGMwLTEuMSwwLjktMiwyLTJoMjMuNHYzMy4yYzAsMS4xLTAuOSwyLTIsMmgtMjMuNEgyMTIuNnoiLz4KPHBhdGggaWQ9IuW9oueKtue7k+WQiF8xXyIgY2xhc3M9InN0MyIgZD0iTTE4Mi40LDE2OS42djhoOHYxLjZoLTkuNnYtOS42SDE4Mi40eiIvPgo8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9IiBjbGFzcz0ic3QzIiBkPSJNMjg5LjYsMTc3LjZoOHYtOGgxLjZ2OS42aC05LjZWMTc3LjZ6Ii8+CjxnIGlkPSLnvJbnu4QtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTEuNjg4ODkwLCAxMS44NzQ5MzYpIHJvdGF0ZSgyMS4wMDAwMDApIHRyYW5zbGF0ZSgtOTEuNjg4ODkwLCAtMTEuODc0OTM2KSB0cmFuc2xhdGUoOTAuODg4ODkwLCAwLjY3NDkzNikiPgoKCQk8cmVjdCBpZD0i55+p5b2iXzFfIiB4PSIxODMuMSIgeT0iMjQuNSIgdHJhbnNmb3JtPSJtYXRyaXgoNS40NDk4OTllLTA2IDEgLTEgNS40NDk4OTllLTA2IDIwOS45Mzc5IC0xNTkuMzkzOCkiIGNsYXNzPSJzdDMiIHdpZHRoPSIzLjIiIGhlaWdodD0iMS42Ii8+CgoJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70tNiIgeD0iMTgzLjEiIHk9IjMwLjkiIHRyYW5zZm9ybT0ibWF0cml4KDUuNDQ5ODk4ZS0wNiAxIC0xIDUuNDQ5ODk4ZS0wNiAyMTYuMzM3OCAtMTUyLjk5MzkpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjEuNiIvPgoKCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTciIHg9IjE4My4xIiB5PSIzNy4zIiB0cmFuc2Zvcm09Im1hdHJpeCg1LjQ0OTg5OGUtMDYgMSAtMSA1LjQ0OTg5OGUtMDYgMjIyLjczNzkgLTE0Ni41OTM5KSIgY2xhc3M9InN0MyIgd2lkdGg9IjMuMiIgaGVpZ2h0PSIxLjYiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS04IiB4PSIxODMuMSIgeT0iNDMuNyIgdHJhbnNmb3JtPSJtYXRyaXgoNS40NDk4OTllLTA2IDEgLTEgNS40NDk4OTllLTA2IDIyOS4xMzc5IC0xNDAuMTkzOSkiIGNsYXNzPSJzdDMiIHdpZHRoPSIzLjIiIGhlaWdodD0iMS42Ii8+CjwvZz4KPGcgaWQ9Iue8lue7hC0zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNi4wMDAwMDAsIDI3LjIwMDAwMCkgcm90YXRlKC0zMi4wMDAwMDApIHRyYW5zbGF0ZSgtMzYuMDAwMDAwLCAtMjcuMjAwMDAwKSB0cmFuc2xhdGUoMzUuMjAwMDAwLCAxMi44MDAwMDApIj4KCgkJPHJlY3QgaWQ9IuefqeW9ol8yXyIgeD0iOTEuNyIgeT0iMTYxLjEiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDUuNDI2MzM3ZS0wNiAtNS40MjYzMzdlLTA2IC0xIDE4NS4wNzUzIDMyNS40NDM4KSIgY2xhc3M9InN0MyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjIiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS0yIiB4PSI5MS43IiB5PSIxNjcuNSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgNS40MjYzMzZlLTA2IC01LjQyNjMzNmUtMDYgLTEgMTg1LjA3NTUgMzM4LjI0MzgpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuMiIvPgoKCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTMiIHg9IjkxLjciIHk9IjE3My45IiB0cmFuc2Zvcm09Im1hdHJpeCgtMSA1LjQyNjMzNmUtMDYgLTUuNDI2MzM2ZS0wNiAtMSAxODUuMDc1NSAzNTEuMDQzOSkiIGNsYXNzPSJzdDMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy4yIi8+CgoJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70tNCIgeD0iOTEuNyIgeT0iMTgwLjMiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDUuNDI2MzM2ZS0wNiAtNS40MjYzMzZlLTA2IC0xIDE4NS4wNzU1IDM2My44NDM4KSIgY2xhc3M9InN0MyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjIiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS01IiB4PSI5MS43IiB5PSIxODYuNyIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgNS40MjYzMzdlLTA2IC01LjQyNjMzN2UtMDYgLTEgMTg1LjA3NTUgMzc2LjY0MzgpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuMiIvPgo8L2c+CjxjaXJjbGUgaWQ9IuakreWchuW9oiIgY2xhc3M9InN0MyIgY3g9IjI2OC44IiBjeT0iOTQuNCIgcj0iMS42Ii8+CjxjaXJjbGUgaWQ9IuakreWchuW9ouWkh+S7vSIgY2xhc3M9InN0MyIgY3g9IjIyNy4yIiBjeT0iMTIwIiByPSIxLjYiLz4KPC9zdmc+Cg==";
9951
9953
  var login = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8yXzFfIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgj5b2i54q257uT5ZCIXzNfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfN18pO30KCS5zdDJ7ZmlsbDojQzRDNkNDO30KCS5zdDN7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF85Xyk7fQoJLnN0NHtmaWxsOnVybCgj5b2i54q257uT5ZCIXzEwXyk7ZmlsbC1vcGFjaXR5OjAuNjt9Cgkuc3Q1e2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfMTFfKTt9Cgkuc3Q2e2ZpbGw6dXJsKCPot6/lvoQtM18xXyk7fQoJLnN0N3tmaWxsOnVybCgj5b2i54q257uT5ZCIXzEyXyk7fQoJLnN0OHtmaWxsOnVybCgj6Lev5b6ELTNfNF8pO30KCS5zdDl7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF8xM18pO30KCS5zdDEwe2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfMTVfKTt9Cgkuc3QxMXtmaWxsOiM5NzlCQTU7fQoJLnN0MTJ7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3QxM3tmaWxsOnVybCgjU1ZHSURfMl8pO30KCS5zdDE0e2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfMTZfKTt9Cgkuc3QxNXtmaWxsOnVybCgj5b2i54q257uT5ZCI5aSH5Lu9LTJfMl8pO30KCS5zdDE2e2ZpbGw6IzM0MzQzNDtmaWxsLW9wYWNpdHk6MC4xO30KPC9zdHlsZT4KPGcgaWQ9Iumhtemdoi0xIj4KCTxnIGlkPSJFeGNlcHRpb25feDJGX+W8guW4uOaPkOekul94MkZf54Gw55m95a+55q+UIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTI0LjAwMDAwMCwgLTcwNy4wMDAwMDApIj4KCQk8ZyBpZD0i6ZyA6KaB55m75b2VIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MjQuMDAwMDAwLCA3MDcuMDAwMDAwKSI+CgoJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfM18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTAxOS45MDA2IiB5MT0iLTguMzM1NCIgeDI9IjEwMTkuOTAwNiIgeTI9Ii03LjMzNjciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMjAwLjAyNTcgMCAwIDU4LjMwNDcgLTIwMzc1OS41NDY5IDY2My45OTQ0KSI+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjVGNkY3Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjdGOUZDIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMzBfIiBjbGFzcz0ic3QwIiBkPSJNMjQ5LjYsMTc4djguN2MwLDIuNSwyLjEsNC42LDQuNiw0LjZzNC41LDEuOSw0LjYsNC40djAuMnYwLjkKCQkJCWMxLjEtMC41LDIuMy0wLjgsMy41LTAuOGM0LjMsMCw3LjgsMy4yLDguNCw3LjNjMS0wLjgsMi4yLTEuMywzLjYtMS4zYzEuMiwwLDIuMywwLjQsMy4yLDFjMi4zLTQuMiw2LjctNywxMS44LTcKCQkJCWM3LjIsMCwxMyw1LjYsMTMuNSwxMi43YzQuOSwwLjcsMTAuMSwxLjUsMTMuMywyLjFjNy4yLDEuNSwxMS44LDMsMTMuNCwzczQtMi4xLDE0LjUtMS4xYzAuMiwwLjQtMi4zLDAuNS00LjcsMS43cy00LDEuMS00LDEuNAoJCQkJczEuMy0wLjQsNCwxLjNzNy41LDIuMyw3LjUsMi44cy02LjEsMi40LTE2LjItMC44Yy0yLjYtMC44LTguNiw2LjItMzYuMSw4LjJjLTI3LjYsMi03NC4yLDMuNS03NC4yLDMuNXMyLjgsMy42LDYuOSw0LjYKCQkJCWMwLjIsMC40LTEuNiwxLjctOS42LDAuMmMtNy45LTEuNS0xMi4yLTQuOC0xMi4yLTQuOHMtMTUuNy0xLTIxLjYtMmMtNS45LTEtMTIuNy0zLjUtMTcuNC00cy0yNS45LTMtMTcuOC04LjUKCQkJCWMwLDAsNy4yLTQuMiwyMy42LTguM2MyLTMuNSw1LjctNS45LDEwLjEtNS45YzIuNywwLDUuMiwwLjksNy4xLDIuNWMxLjQtMC4yLDIuOS0wLjQsNC40LTAuNmMxLjItMS4xLDIuOC0xLjgsNC41LTEuOAoJCQkJYzEuMiwwLDIuMywwLjMsMy4yLDAuOWwwLjUtMC4xYzEtMy45LDQuNS02LjgsOC43LTYuOGMyLjgsMCw1LjQsMS4zLDcsMy4zdi0yLjhjMC0yLjksMi40LTUuMyw1LjMtNS4zYzIuOCwwLDUuMi0yLjIsNS4zLTUuMQoJCQkJdi0wLjJ2LThMMjQ5LjYsMTc4TDI0OS42LDE3OHoiLz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF83XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMDAzLjIzODQiIHkxPSItNDMuNjgxOCIgeDI9IjEwMDMuOTQ2MSIgeTI9Ii00My42ODE4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQ0IDAgMCAxMSAtNDM5MTkuMTk5MiA2NTUuNSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UyRTNFNiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC40NTQzIiBzdHlsZT0ic3RvcC1jb2xvcjojRUNFRUYwIi8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTJFNEU2Ii8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMjlfIiBjbGFzcz0ic3QxIiBkPSJNMjE2LjgsMTY5LjVoNDR2NmMwLDIuOC05LjgsNS0yMiw1cy0yMi0yLjItMjItNWwwLDBMMjE2LjgsMTY5LjVMMjE2LjgsMTY5LjV6Ii8+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIjlpIfku71fMV8iIGNsYXNzPSJzdDIiIGQ9Ik0yMTYuOCwxNjVoNDR2NmMwLDIuOC05LjgsNS0yMiw1cy0yMi0yLjItMjItNWwwLDBMMjE2LjgsMTY1TDIxNi44LDE2NXoiLz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF85XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5NDcuNDg4OCIgeTE9Ii04LjM4NDgiIHgyPSI5NDguMTg2MyIgeTI9Ii04LjM4NDgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTIgMCAwIDU0LjcgLTExMTc3LjIwMDIgNTgxLjI5OTEpIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMUYzRjUiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNDU3NiIgc3R5bGU9InN0b3AtY29sb3I6I0Y0RjVGNyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0VDRUVGMCIvPgoJCQk8L2xpbmVhckdyYWRpZW50PgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzI4XyIgY2xhc3M9InN0MyIgZD0iTTE5Ni44LDk1LjNjMS44LDAsNiw4LjMsNiwxMS43bDAsMHY0M2gtMTJ2LTQzdi0wLjJDMTkwLjksMTAzLjQsMTk1LDk1LjMsMTk2LjgsOTUuMwoJCQkJeiIvPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCIXzEwXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5NDcuODQ2NCIgeTE9Ii0xOS44MjgyIiB4Mj0iOTQ3LjgyNyIgeTI9Ii0xOS42NDE4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEyIDAgMCAyNC4yIC0xMTA5My4yMDAyIDYwMi45OTkzKSI+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojQ0REMEQyO3N0b3Atb3BhY2l0eTowIi8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQ0REMEQyIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwb2x5Z29uIGlkPSLlvaLnirbnu5PlkIhfMjZfIiBjbGFzcz0ic3Q0IiBwb2ludHM9IjI3NC44LDExNyAyNzQuOCwxMzIuNiAyNzkuNywxNDEuMiAyODYuOCwxMzUuNCAyODYuOCwxMjYgCQkJIi8+CgoJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfMTFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ijk0OC4xNzE2IiB5MT0iLTguMzg0OCIgeDI9Ijk0Ny40NzQxIiB5Mj0iLTguMzg0OCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxMiAwIDAgNTQuNyAtMTEwOTMuMjAwMiA1ODEuMjk5MSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0YxRjNGNSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC40NTc2IiBzdHlsZT0ic3RvcC1jb2xvcjojRjRGNUY3Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRUNFRUYwIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMjVfIiBjbGFzcz0ic3Q1IiBkPSJNMjgwLjgsOTUuM2MtMS44LDAtNiw4LjMtNiwxMS43bDAsMHY0M2gxMnYtNDN2LTAuMgoJCQkJQzI4Ni42LDEwMy40LDI4Mi41LDk1LjMsMjgwLjgsOTUuM3oiLz4KCQkJPGcgaWQ9Iue8lue7hF8zXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODAuNzYwNDk5LCA3Ny4wMDAwMDApIj4KCgkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtM18xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI1MTQuMzE0MSIgeTE9Ii02Ljg5MDUiIHgyPSI1MTQuMzk0MyIgeTI9Ii02LjUyMDQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMzYgMCAwIDY2IC0xODM5NS43MzI0IDUwNikiPgoJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFOEU5RUIiLz4KCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRDdEOERCIi8+CgkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJPHBhdGggaWQ9Iui3r+W+hC0zXzNfIiBjbGFzcz0ic3Q2IiBkPSJNMTM1LDIwYy0xLjQsNy00LjUsMTMuMy05LjQsMTkuMWMtNy4zLDguNy0xNS4yLDEzLjYtMTguNCwyMy44CgkJCQkJYy0yLjEsNi44LTMuMiwxMi45LTMuMiwxOC4zbDMyLjEsNC44bDMuOS00LjhMMTM1LDIweiIvPgoKCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF8xMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDY5LjEyNSIgeTE9Ii02Ljk4IiB4Mj0iNDY5LjEyNjMiIHkyPSItNi45NjgxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEzIDAgMCA2NC41IC01OTY1LjY4MTYgNTA3LjUpIj4KCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRUJFREVGO3N0b3Atb3BhY2l0eTowIi8+CgkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0M4Q0FDQyIvPgoJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMjRfIiBjbGFzcz0ic3Q3IiBkPSJNMTM1LjIsMjEuNWw0LjgsNTkuN2wtMy45LDQuOGwtOS4xLTEuNGwzLjMtNTIuMmMyLTMuNSwzLjQtNy4xLDQuNC0xMC45CgkJCQkJQzEzNC43LDIxLjUsMTM1LjIsMjEuNSwxMzUuMiwyMS41eiIvPgoJCQk8L2c+CgoJCQkJPGcgaWQ9Iue8lue7hF8yXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcxLjAwMDAwMCwgMTEwLjAwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtMTcxLjAwMDAwMCwgLTExMC4wMDAwMDApIHRyYW5zbGF0ZSgxNTMuMDAwMDAwLCA3Ny4wMDAwMDApIj4KCgkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtM180XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNi4xMTk1IiB5MT0iLTYuNzUwNiIgeDI9IjI2LjE5OTgiIHkyPSItNi4zODA1IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDM2IDAgMCA2NiAtMTAyNCA1MDYpIj4KCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRThFOUVCIi8+CgkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0Q3RDhEQiIvPgoJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCTxwYXRoIGlkPSLot6/lvoQtM18yXyIgY2xhc3M9InN0OCIgZD0iTS03MywyMGMtMS40LDctNC41LDEzLjMtOS40LDE5LjFjLTcuMyw4LjctMTUuMiwxMy42LTE4LjQsMjMuOAoJCQkJCWMtMi4xLDYuOC0zLjIsMTIuOS0zLjIsMTguM2wzMi4xLDQuOGwzLjktNC44TC03MywyMHoiLz4KCQkJPC9nPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCIXzEzXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2NTkuNjQ1MyIgeTE9Ii02Ljk4IiB4Mj0iNjU5LjY0NjUiIHkyPSItNi45NjgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEzIDAgMCA2NC41IDg4MzkuMjE0OCA1ODQuNSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VCRURFRjtzdG9wLW9wYWNpdHk6MCIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0M4Q0FDQyIvPgoJCQk8L2xpbmVhckdyYWRpZW50PgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzJfIiBjbGFzcz0ic3Q5IiBkPSJNMjYxLjYsOTguNWwtNC44LDU5LjdsMy45LDQuOGw5LjEtMS40bC0zLjMtNTIuMmMtMi0zLjUtMy40LTcuMS00LjQtMTAuOQoJCQkJQzI2Mi4xLDk4LjUsMjYxLjYsOTguNSwyNjEuNiw5OC41eiIvPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCIXzE1XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMDA0Ljk4MTEiIHkxPSItMi42NTU4IiB4Mj0iMTAwNS42ODg3IiB5Mj0iLTIuNjU1OCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg0OCAwIDAgMTU0IC00ODAxNy4xOTkyIDUwNikiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VBRUJFRCIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC40NTQzIiBzdHlsZT0ic3RvcC1jb2xvcjojRjRGNUY3Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRUVGMEYyIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMThfIiBjbGFzcz0ic3QxMCIgZD0iTTIzOC44LDIwYzcsMCwyNCwyNy43LDI0LDQxbDAsMHYxMDZjMCwwLjEsMCwwLjIsMCwwLjNzMCwwLjIsMCwwLjIKCQkJCWMwLDMuNi0xMC43LDYuNS0yNCw2LjVzLTI0LTIuOS0yNC02LjVjMC0wLjEsMC0wLjIsMC0wLjJjMC0wLjEsMC0wLjIsMC0wLjNWNjF2LTAuNEMyMTUuMSw0Ny4yLDIzMS44LDIwLDIzOC44LDIweiIvPgoJCQk8Zz4KCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol83XyIgY2xhc3M9InN0MTEiIGN4PSIyMzguOCIgY3k9IjcxIiByPSI5LjUiLz4KCgkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5NzYuMDc5IiB5MT0iLTI1LjMzMzQiIHgyPSI5NzYuMDc5IiB5Mj0iLTI0LjgyNDQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTkgMCAwIDE5IC0xODMwNi42OTkyIDU0Ny41KSI+CgkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTJFNiIvPgoJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMEYyRjUiLz4KCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQk8cGF0aCBjbGFzcz0ic3QxMiIgZD0iTTIzOC44LDgxYy01LjUsMC0xMC00LjUtMTAtMTBzNC41LTEwLDEwLTEwczEwLDQuNSwxMCwxMFMyNDQuMyw4MSwyMzguOCw4MXogTTIzOC44LDYyYy01LDAtOSw0LTksOQoJCQkJCXM0LDksOSw5czktNCw5LTlTMjQzLjgsNjIsMjM4LjgsNjJ6Ii8+CgkJCTwvZz4KCQkJPGc+CgkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaLlpIfku70tMTFfMV8iIGNsYXNzPSJzdDExIiBjeD0iMjM4LjgiIGN5PSI4OSIgcj0iMy41Ii8+CgoJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iODkzLjA3MTUiIHkxPSItNjkuMjA0OCIgeDI9Ijg5My4wNzE1IiB5Mj0iLTY4LjY1MjIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNyAwIDAgNyAtNjAxMi43MDAyIDU3MS41KSI+CgkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTJFNiIvPgoJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMEYyRjUiLz4KCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQk8cGF0aCBjbGFzcz0ic3QxMyIgZD0iTTIzOC44LDkzYy0yLjIsMC00LTEuOC00LTRzMS44LTQsNC00czQsMS44LDQsNFMyNDEsOTMsMjM4LjgsOTN6IE0yMzguOCw4NmMtMS43LDAtMywxLjMtMywzczEuMywzLDMsMwoJCQkJCXMzLTEuMywzLTNTMjQwLjUsODYsMjM4LjgsODZ6Ii8+CgkJCTwvZz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF8xNl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTAwNC45ODExIiB5MT0iLTcwLjk3MDYiIHgyPSIxMDA1LjY4NTQiIHkyPSItNzAuOTcwNiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg0OCAwIDAgNi44IC00ODAxNy4xOTkyIDYyNC4wMDA0KSI+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTJFM0U2Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwLjQ3NjYiIHN0eWxlPSJzdG9wLWNvbG9yOiNGQkZERkYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMkU0RTYiLz4KCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiF8xNF8iIGNsYXNzPSJzdDE0IiBkPSJNMjYyLjgsMTM4djIuNWMtMy45LDIuNS0xMy4yLDQuMy0yNCw0LjNzLTIwLjEtMS44LTI0LTQuM1YxMzhsMCwwCgkJCQljMC42LDIuOCwxMS4xLDUuNSwyNCw1LjVTMjYyLjIsMTQwLjgsMjYyLjgsMTM4TDI2Mi44LDEzOHoiLz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiOWkh+S7vS0yXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwMDQuOTgxMSIgeTE9Ii03MC45NzA2IiB4Mj0iMTAwNS42ODU0IiB5Mj0iLTcwLjk3MDYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNDggMCAwIDYuOCAtNDgwMTcuMTk5MiA2MjkuMDAwNCkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UyRTNFNiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC40NzY2IiBzdHlsZT0ic3RvcC1jb2xvcjojRkJGREZGIi8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTJFNEU2Ii8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIjlpIfku70tMl8xXyIgY2xhc3M9InN0MTUiIGQ9Ik0yNjIuOCwxNDN2Mi41Yy0zLjksMi41LTEzLjIsNC4zLTI0LDQuM3MtMjAuMS0xLjgtMjQtNC4zVjE0M2wwLDAKCQkJCWMwLjYsMi44LDExLjEsNS41LDI0LDUuNVMyNjIuMiwxNDUuOCwyNjIuOCwxNDNMMjYyLjgsMTQzeiIvPgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzhfIiBjbGFzcz0ic3QxNiIgZD0iTTI2Mi44LDczYzQzLjItOC42LDc3LjEtNi4zLDgwLjksNi43YzQuNiwxNS45LTM3LjQsNDEuOS05My42LDU4LjEKCQkJCXMtMTA1LjYsMTYuMy0xMTAuMiwwLjRjLTQtMTQuMSwyOC40LTM2LjEsNzQuOS01Mi4xdjEuMWMtNDUuOCwxNS45LTc3LjcsMzcuNS03My45LDUwLjhjNC4zLDE1LjEsNTMuMiwxNC45LDEwOC45LTEuMQoJCQkJczk3LjMtNDEuNyw5Mi45LTU2LjhjLTMuNS0xMi40LTM3LjItMTQuNS03OS45LTZWNzNMMjYyLjgsNzN6Ii8+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDE2IiBkPSJNMTA1LjIsNzZjMy44LTE0LDUwLjctMTQsMTA5LjUtMS4xdjFjLTU4LjMtMTIuOC0xMDUtMTIuOS0xMDguNiwwLjMKCQkJCWMtNCwxNS4xLDQ5LjEsNDMuMiwxMTguNSw2MS44czEyOS41LDIwLjksMTMzLjYsNS44YzMuNi0xMy40LTM3LjctMzctOTUuNi01NS4xdi0xLjFjNTguNiwxOC4zLDEwMC4zLDQyLjIsOTYuNSw1Ni40CgkJCQljLTQuMywxNi02NC42LDEzLjctMTM0LjgtNS4xUzEwMSw5MiwxMDUuMiw3NnoiLz4KCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzZfIiBjbGFzcz0ic3QyIiBjeD0iMzE3LjgiIGN5PSIxMDkiIHI9IjIiLz4KCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzVfIiBjbGFzcz0ic3QyIiBjeD0iMTE3LjMiIGN5PSIxMjEuNSIgcj0iMS41Ii8+CgkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol80XyIgY2xhc3M9InN0MiIgY3g9IjI4MS44IiBjeT0iNTgiIHI9IjEiLz4KCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzNfIiBjbGFzcz0ic3QyIiBjeD0iMTkxLjgiIGN5PSIxNjQiIHI9IjEiLz4KCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzFfIiBjbGFzcz0ic3QyIiBjeD0iMzUxLjgiIGN5PSIxNTAiIHI9IjIiLz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==";
9952
9954
  var searchEmpty = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6I0M0QzZDQzt9Cgkuc3Qye2ZpbGw6dXJsKCPnn6nlvaItMl8xXyk7fQoJLnN0M3tmaWxsOnVybCgj55+p5b2iXzZfKTt9Cgkuc3Q0e2ZpbGw6I0RDREVFMDt9Cgkuc3Q1e2ZpbGw6I0QxRDNENjt9Cgkuc3Q2e2ZpbGw6dXJsKCPnn6nlvaItM18xXyk7fQoJLnN0N3tmaWxsOiNFNUU3RUM7fQoJLnN0OHtmaWxsOiNEQ0RERTA7fQoJLnN0OXtmaWxsOnVybCgj6Lev5b6ELTEzXzFfKTt9Cgkuc3QxMHtmaWxsOnVybCgj5qSt5ZyG5b2iXzNfKTtzdHJva2U6dXJsKCPmpK3lnIblvaJfNF8pO30KCS5zdDExe2ZpbGw6dXJsKCPmpK3lnIblvaJfNV8pO3N0cm9rZTp1cmwoI+akreWchuW9ol82Xyk7fQoJLnN0MTJ7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPGcgaWQ9Iumhtemdoi0xIj4KCTxnIGlkPSJFeGNlcHRpb25feDJGX+W8guW4uOaPkOekuiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg2OS4wMDAwMDAsIC0yOTE4LjAwMDAwMCkiPgoJCTxnIGlkPSLmkJzntKLkuLrnqboiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDg2OS4wMDAwMDAsIDI5MTguMDAwMDAwKSI+CgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI0My4wNDY0IiB5MT0iMTY3Ljk3OTMiIHgyPSIyNDUuODA3MSIgeTI9IjE5NC4yNDU2Ij4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGQkZDRkQiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMkY0RjciLz4KCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJPHBhdGggaWQ9IkZpbGwtMSIgY2xhc3M9InN0MCIgZD0iTTE5My4xLDE3NC4yYzE0LjgtMy4zLDM2LTQuOCw1MC41LTQuMWMxNC40LDAuNywyNi40LDMuMywyNy4zLDIuN2MyLjktMS45LDktMi44LDguNy0yCgkJCQljLTAuMywwLjctNC4zLDMuMS0zLDMuNGMxLjMsMC40LDE0LjEsMS45LDE5LjUsM2M1LjMsMS4xLDguOCwyLjIsOS45LDIuMmMxLjIsMCwzLTEuNiwxMC43LTAuOGMwLjEsMC4zLTEuNywwLjQtMy40LDEuMwoJCQkJYy0xLjcsMC45LTMsMC44LTMsMXMxLTAuMywzLDFzNS41LDEuNyw1LjUsMnMtNC41LDEuOC0xMi0wLjZjLTEuOS0wLjYtNi4zLDQuNi0yNi44LDYuMXMtNTUsMi42LTU1LDIuNnMyLjEsMi43LDUuMSwzLjQKCQkJCWMwLjIsMC4zLTEuMiwxLjMtNy4xLDAuMmMtNS45LTEuMS05LTMuNi05LTMuNnMtMTEuNi0wLjctMTYtMS41Yy00LjQtMC43LTkuNC0yLjYtMTIuOS0zcy0xOS4yLTIuMi0xMy4yLTYuMwoJCQkJQzE3MiwxODEuMiwxNzguMywxNzcuNSwxOTMuMSwxNzQuMnoiLz4KCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiCIgY2xhc3M9InN0MSIgZD0iTTE5My4xLDE3Ny40djkuNGg5LjR2MS45aC0xMS4ydi0xMS4yTDE5My4xLDE3Ny40TDE5My4xLDE3Ny40eiIvPgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9IiBjbGFzcz0ic3QxIiBkPSJNMjAwLjYsNjQuOWgtOS40djkuNGgtMS45di05LjRsMCwwVjYzaDExLjJMMjAwLjYsNjQuOUwyMDAuNiw2NC45eiIvPgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9LTIiIGNsYXNzPSJzdDEiIGQ9Ik0yODguOCw3NC4ydi05LjRoLTkuNFY2M2g5LjRsMCwwaDEuOXYxMS4ySDI4OC44eiIvPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iLTJfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDExLjY3NjgiIHkxPSItMS42MDY2IiB4Mj0iNDExLjY3NjgiIHkyPSItMC42NzA3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDg2LjI1IDAgMCAxMDguNzUgLTM1MjY3LjEyNSAyNDYuNSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VCRURGMDtzdG9wLW9wYWNpdHk6MC45OTE3Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTFFM0U2Ii8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLnn6nlvaItMiIgY2xhc3M9InN0MiIgZD0iTTE5Ny45LDcwLjVoODQuMmMwLjYsMCwxLDAuNCwxLDF2MTA2LjhjMCwwLjYtMC40LDEtMSwxaC04NC4yYy0wLjYsMC0xLTAuNC0xLTFWNzEuNQoJCQkJQzE5Ni45LDcwLjksMTk3LjMsNzAuNSwxOTcuOSw3MC41eiIvPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iXzZfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjQxMC42NjE0IiB5MT0iLTEuODc3MyIgeDI9IjQxMC42NjE0IiB5Mj0iLTAuODg4OCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg3MS4yNSAwIDAgOTMuNzUgLTI5MDE5LjYyNSAyNTQpIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMkY0RjciLz4KCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJPHJlY3QgaWQ9IuefqeW9ol8xXyIgeD0iMjA0LjQiIHk9Ijc4IiBjbGFzcz0ic3QzIiB3aWR0aD0iNzEuMiIgaGVpZ2h0PSI5My44Ii8+CgkJCTxyZWN0IGlkPSLnn6nlvaJfMl8iIHg9IjIxOS40IiB5PSI4MS44IiBjbGFzcz0ic3Q0IiB3aWR0aD0iNDEuMiIgaGVpZ2h0PSIxLjkiLz4KCQkJPHJlY3QgaWQ9IuefqeW9ol8zXyIgeD0iMjA0LjQiIHk9IjE3MS44IiBjbGFzcz0ic3Q1IiB3aWR0aD0iNzEuMiIgaGVpZ2h0PSIxLjkiLz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9oi0zXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjQwNi40MTUyIiB5MT0iLTExLjczMzQiIHgyPSI0MDYuNDE1MiIgeTI9Ii0xMC43NDEzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQxLjI1IDAgMCAxNSAtMTY1MjQuNjI1IDI0Mi43NSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VERUZGMiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0U4RUFFRCIvPgoJCQk8L2xpbmVhckdyYWRpZW50PgoJCQk8cmVjdCBpZD0i55+p5b2iLTMiIHg9IjIxOS40IiB5PSI2Ni44IiBjbGFzcz0ic3Q2IiB3aWR0aD0iNDEuMiIgaGVpZ2h0PSIxNSIvPgoJCQk8ZyBpZD0i57yW57uELTMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyMy4xMjUwMDAsIDk4LjYyNTAwMCkiPgoJCQkJPHJlY3QgaWQ9IuefqeW9ol80XyIgY2xhc3M9InN0MSIgd2lkdGg9IjMuOCIgaGVpZ2h0PSIxLjkiLz4KCQkJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70iIHg9IjcuNSIgY2xhc3M9InN0MSIgd2lkdGg9IjMuOCIgaGVpZ2h0PSIxLjkiLz4KCQkJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70tMiIgeD0iMTUiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMS45Ii8+CgkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTMiIHg9IjIyLjUiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMS45Ii8+CgkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTQiIHg9IjMwIiBjbGFzcz0ic3QxIiB3aWR0aD0iMy44IiBoZWlnaHQ9IjEuOSIvPgoJCQk8L2c+CgkJCTxnIGlkPSLnvJbnu4QtNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjI4Ljc1MDAwMCwgMTEzLjYyNTAwMCkiPgoJCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iIiBjbGFzcz0ic3Q3IiBjeD0iMjQuNCIgY3k9IjI2LjIiIHI9IjI0LjQiLz4KCQkJCTxwYXRoIGlkPSLot6/lvoQtMTIiIGNsYXNzPSJzdDciIGQ9Ik0zOSw0NWwzLjEsMy4yYy0wLjYsMC44LTAuNiwxLjUsMCwyLjJzMi4yLDIuNSw0LjcsNS4zdi03LjVsLTYuMS01TDM5LDQ1eiIvPgoKCQkJCQk8ZyBpZD0i57yW57uELTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwLjIyNjMxNywgNTEuNzA5MDc3KSByb3RhdGUoLTQ1LjAwMDAwMCkgdHJhbnNsYXRlKC01MC4yMjYzMTcsIC01MS43MDkwNzcpIHRyYW5zbGF0ZSg0NC42MDEzMTcsIDM2LjcwOTA3NykiPgoKCQkJCQkJPHJlY3QgaWQ9IuefqeW9ol81XyIgeD0iMy44IiB5PSIwIiB0cmFuc2Zvcm09Im1hdHJpeCgtMSA1LjA3MDM2M2UtMDYgLTUuMDcwMzYzZS0wNiAtMSAxMS40IDkuMzUpIiBjbGFzcz0ic3Q4IiB3aWR0aD0iMy43IiBoZWlnaHQ9IjkuNCIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtMTNfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTEwOS4zOTE1IiB5MT0iLTU1LjkzODMiIHgyPSItMTA5LjU1NzgiIHkyPSItNTUuODkwNSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg5LjIxMjkgMCAwIDIyLjUgMTAxMy45Mjg1IDEyNzcuMjgxKSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNEN0Q4REIiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0JFQkZDMiIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9Iui3r+W+hC0xMyIgY2xhc3M9InN0OSIgZD0iTTMuNyw1LjdoNGMwLjUsMCwxLDAuNCwxLDAuOWwxLjUsMjAuNWMwLDAuNi0wLjQsMS0wLjksMS4xYzAsMCwwLDAtMC4xLDBIMgoJCQkJCQljLTAuNiwwLTEtMC40LTEtMXYtMC4xTDIuNyw2LjZDMi43LDYuMSwzLjIsNS43LDMuNyw1Ljd6Ii8+CgkJCQk8L2c+CgkJCQk8ZyBpZD0i57yW57uELTUiPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLmpK3lnIblvaJfM18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTQ5LjcxMTUiIHkxPSItMy42ODU5IiB4Mj0iLTQ5LjcxMTUiIHkyPSItMi42ODU5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQ3Ljc1IDAgMCA0Ny43NSAyMzk4LjEyNSAxNzYuNSkiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxLjUzMDgyOGUtMDMiIHN0eWxlPSJzdG9wLWNvbG9yOiNERERFRTAiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMC45OTgiIHN0eWxlPSJzdG9wLWNvbG9yOiNDM0M1QzciLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLmpK3lnIblvaJfNF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTQ5LjcxMTUiIHkxPSItMy42ODU4IiB4Mj0iLTQ5LjcxMTUiIHkyPSItMi43MDU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQ3Ljc1IDAgMCA0Ny43NSAyMzk4LjEyNSAxNzYuNSkiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRERERUUwIi8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCRUMwQzIiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol8xXyIgY2xhc3M9InN0MTAiIGN4PSIyNC40IiBjeT0iMjQuNCIgcj0iMjMuOSIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLmpK3lnIblvaJfNV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTUyLjM5NjYiIHkxPSItNC44MjIiIHgyPSItNTIuMzk2NiIgeTI9Ii0zLjgzOCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgzNi41IDAgMCAzNi41IDE5MzYuODc1IDE4Mi4xMjUpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZFRkVGRSIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjJGNEY3Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5qSt5ZyG5b2iXzZfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii01Mi4zOTY2IiB5MT0iLTQuODIyIiB4Mj0iLTUyLjM5NjYiIHkyPSItMy44Mzk4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDM2LjUgMCAwIDM2LjUgMTkzNi44NzUgMTgyLjEyNSkiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjNGNEY1Ii8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGM0Y1RjciLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol8yXyIgY2xhc3M9InN0MTEiIGN4PSIyNC40IiBjeT0iMjQuNCIgcj0iMTguMiIvPgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDEyIiBkPSJNMjMuNSwxMi4zYzUuOCwwLDEwLjksMy4zLDEzLjQsOC4yYy0yLjUtMS42LTUuNS0yLjYtOC43LTIuNmMtNCwwLTcuNywxLjUtMTAuNSw0CgkJCQkJCUwxNCwxNS43QzE2LjYsMTMuNiwxOS45LDEyLjMsMjMuNSwxMi4zeiIvPgoJCQkJPC9nPgoJCQkJPHBvbHlnb24gaWQ9Iui3r+W+hC0xNCIgY2xhc3M9InN0NSIgcG9pbnRzPSI0Ni45LDUzLjQgNDYuOSw1NS42IDU0LjQsNjQuNCA1NC40LDYyLjMgCQkJCSIvPgoJCQk8L2c+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=";
9953
- var Component$n = defineComponent({
9955
+ var Component$o = defineComponent({
9954
9956
  name: "Exception",
9955
9957
  props: {
9956
9958
  type: PropTypes.commonType(["404", "403", "500", "building", "empty", "search-empty", "login"], "type").def("404"),
@@ -9974,7 +9976,7 @@ var Component$n = defineComponent({
9974
9976
  404: notFound,
9975
9977
  500: maintain,
9976
9978
  building: Building,
9977
- empty: empty$1,
9979
+ empty,
9978
9980
  "search-empty": searchEmpty,
9979
9981
  login
9980
9982
  };
@@ -9994,8 +9996,8 @@ var Component$n = defineComponent({
9994
9996
  };
9995
9997
  }
9996
9998
  });
9997
- const BkException = withInstall(Component$n);
9998
- var Component$m = defineComponent({
9999
+ const BkException = withInstall(Component$o);
10000
+ var Component$n = defineComponent({
9999
10001
  name: "FixedNavbar",
10000
10002
  props: {
10001
10003
  navItems: PropTypes.array.def([]),
@@ -10036,8 +10038,8 @@ var Component$m = defineComponent({
10036
10038
  }, [item.text]) : ""]))]);
10037
10039
  }
10038
10040
  });
10039
- const BkFixedNavbar = withInstall(Component$m);
10040
- var Component$l = defineComponent({
10041
+ const BkFixedNavbar = withInstall(Component$n);
10042
+ var Component$m = defineComponent({
10041
10043
  name: "Link",
10042
10044
  props: {
10043
10045
  theme: PropTypes.theme(["danger", "success", "primary", "warning", "default"]).def("default"),
@@ -10074,7 +10076,7 @@ var Component$l = defineComponent({
10074
10076
  }, [createVNode("span", null, [(_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a)])]);
10075
10077
  }
10076
10078
  });
10077
- const BkLink = withInstall(Component$l);
10079
+ const BkLink = withInstall(Component$m);
10078
10080
  const placements = ["auto", "auto-start", "auto-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "right", "right-start", "right-end", "left", "left-start", "left-end"];
10079
10081
  const EventProps$1 = {
10080
10082
  onAfterHidden: Function,
@@ -10116,7 +10118,7 @@ const PopoverProps = __spreadValues({
10116
10118
  PropTypes.string
10117
10119
  ]).def([])
10118
10120
  }, EventProps$1);
10119
- var Component$k = defineComponent({
10121
+ var Component$l = defineComponent({
10120
10122
  name: "Popover",
10121
10123
  props: PopoverProps,
10122
10124
  emits: ["afterHidden", "afterShow", "update:isShow"],
@@ -10260,7 +10262,7 @@ var Component$k = defineComponent({
10260
10262
  };
10261
10263
  }
10262
10264
  });
10263
- const BkPopover = withInstall(Component$k);
10265
+ const BkPopover = withInstall(Component$l);
10264
10266
  const Circle = (_2, {
10265
10267
  attrs,
10266
10268
  slots
@@ -10383,7 +10385,7 @@ const Line = (_2, {
10383
10385
  function _isSlot$4(s2) {
10384
10386
  return typeof s2 === "function" || Object.prototype.toString.call(s2) === "[object Object]" && !isVNode(s2);
10385
10387
  }
10386
- var Component$j = defineComponent({
10388
+ var Component$k = defineComponent({
10387
10389
  name: "Progress",
10388
10390
  props: {
10389
10391
  extCls: PropTypes.string,
@@ -10461,7 +10463,7 @@ var Component$j = defineComponent({
10461
10463
  return createVNode("div", progressProps, [progress2]);
10462
10464
  }
10463
10465
  });
10464
- const BkProgress = withInstall(Component$j);
10466
+ const BkProgress = withInstall(Component$k);
10465
10467
  const radioGroupKey = Symbol("RadioGroup");
10466
10468
  function useFocus$1() {
10467
10469
  const isFocused = ref(false);
@@ -10553,7 +10555,7 @@ const radioProps = {
10553
10555
  checked: PropTypes.bool.def(false),
10554
10556
  disabled: PropTypes.bool.def(false)
10555
10557
  };
10556
- var Component$i = defineComponent({
10558
+ var Component$j = defineComponent({
10557
10559
  name: "Radio",
10558
10560
  props: radioProps,
10559
10561
  emits: ["change", "update:modelValue"],
@@ -10715,7 +10717,7 @@ var RadioGroup = defineComponent({
10715
10717
  }, [(_a = this.$slots) == null ? void 0 : _a.default()]);
10716
10718
  }
10717
10719
  });
10718
- const BkRadio = withInstallProps(Component$i, { Group: RadioGroup, Button: RadioButton });
10720
+ const BkRadio = withInstallProps(Component$j, { Group: RadioGroup, Button: RadioButton });
10719
10721
  var star = defineComponent({
10720
10722
  name: "Star",
10721
10723
  props: {
@@ -10777,7 +10779,7 @@ var star = defineComponent({
10777
10779
  }, null)])])])])]))]);
10778
10780
  }
10779
10781
  });
10780
- var Component$h = defineComponent({
10782
+ var Component$i = defineComponent({
10781
10783
  name: "Rate",
10782
10784
  components: {
10783
10785
  star
@@ -10849,8 +10851,8 @@ var Component$h = defineComponent({
10849
10851
  }, commonAttrs), null)]]);
10850
10852
  }
10851
10853
  });
10852
- const BkRate = withInstall(Component$h);
10853
- var Component$g = defineComponent({
10854
+ const BkRate = withInstall(Component$i);
10855
+ var Component$h = defineComponent({
10854
10856
  name: "Swiper",
10855
10857
  props: {
10856
10858
  isLoop: PropTypes.bool.def(true),
@@ -11009,7 +11011,7 @@ var Component$g = defineComponent({
11009
11011
  }, null)])]);
11010
11012
  }
11011
11013
  });
11012
- const BkSwiper = withInstall(Component$g);
11014
+ const BkSwiper = withInstall(Component$h);
11013
11015
  const selectKey = Symbol("BkSelect");
11014
11016
  const optionGroupKey = Symbol("BkOptionGroup");
11015
11017
  function useFocus() {
@@ -11644,7 +11646,7 @@ function createPopperInstance(el, popper2, options) {
11644
11646
  }));
11645
11647
  }
11646
11648
  }
11647
- var Component$f = defineComponent({
11649
+ var Component$g = defineComponent({
11648
11650
  name: "Tag",
11649
11651
  props: {
11650
11652
  theme: PropTypes.theme(["success", "info", "warning", "danger"]).def(""),
@@ -11706,8 +11708,8 @@ var Component$f = defineComponent({
11706
11708
  }, null) : ""]);
11707
11709
  }
11708
11710
  });
11709
- const BkTag = withInstall(Component$f);
11710
- var Component$e = defineComponent({
11711
+ const BkTag = withInstall(Component$g);
11712
+ var Component$f = defineComponent({
11711
11713
  name: "Select",
11712
11714
  directives: {
11713
11715
  clickoutside: ClickOutside
@@ -12099,7 +12101,7 @@ var Component$e = defineComponent({
12099
12101
  })]), [[resolveDirective("clickoutside"), this.handleClickOutside]]);
12100
12102
  }
12101
12103
  });
12102
- const BkSelect = withInstallProps(Component$e, { Option: BkOption, Group: OptionGroup });
12104
+ const BkSelect = withInstallProps(Component$f, { Option: BkOption, Group: OptionGroup });
12103
12105
  function _isSlot$3(s2) {
12104
12106
  return typeof s2 === "function" || Object.prototype.toString.call(s2) === "[object Object]" && !isVNode(s2);
12105
12107
  }
@@ -12109,7 +12111,7 @@ const {
12109
12111
  const sliderPops = Object.assign({}, propsMixin);
12110
12112
  sliderPops.width.default = "400";
12111
12113
  sliderPops.height.default = "100%";
12112
- var Component$d = defineComponent({
12114
+ var Component$e = defineComponent({
12113
12115
  name: "Sideslider",
12114
12116
  components: {
12115
12117
  BkModal,
@@ -12202,7 +12204,7 @@ var Component$d = defineComponent({
12202
12204
  };
12203
12205
  }
12204
12206
  });
12205
- const BkSideslider = withInstall(Component$d);
12207
+ const BkSideslider = withInstall(Component$e);
12206
12208
  const stepsProps = {
12207
12209
  theme: PropTypes.theme().def("primary"),
12208
12210
  size: PropTypes.size(),
@@ -12216,7 +12218,7 @@ const stepsProps = {
12216
12218
  steps: PropTypes.array.def([]),
12217
12219
  beforeChange: PropTypes.func
12218
12220
  };
12219
- var Component$c = defineComponent({
12221
+ var Component$d = defineComponent({
12220
12222
  name: "Steps",
12221
12223
  props: stepsProps,
12222
12224
  emits: ["update:curStep", "click"],
@@ -12352,8 +12354,8 @@ var Component$c = defineComponent({
12352
12354
  })]);
12353
12355
  }
12354
12356
  });
12355
- const BkSteps = withInstall(Component$c);
12356
- var Component$b = defineComponent({
12357
+ const BkSteps = withInstall(Component$d);
12358
+ var Component$c = defineComponent({
12357
12359
  name: "Switcher",
12358
12360
  props: {
12359
12361
  theme: PropTypes.theme().def(""),
@@ -12447,7 +12449,7 @@ var Component$b = defineComponent({
12447
12449
  }, [isChecked.value ? props.onText : props.offText]) : ""]);
12448
12450
  }
12449
12451
  });
12450
- const BkSwitcher = withInstall(Component$b);
12452
+ const BkSwitcher = withInstall(Component$c);
12451
12453
  const EventProps = {
12452
12454
  onContentScroll: Function
12453
12455
  };
@@ -12584,7 +12586,7 @@ var virtualRender = {
12584
12586
  }
12585
12587
  }
12586
12588
  };
12587
- var Component$a = defineComponent({
12589
+ var Component$b = defineComponent({
12588
12590
  name: "VirtualRender",
12589
12591
  directives: {
12590
12592
  bkVirtualRender: virtualRender
@@ -12735,8 +12737,36 @@ var Component$a = defineComponent({
12735
12737
  };
12736
12738
  }
12737
12739
  });
12738
- const BkVirtualRender = withInstall(Component$a);
12740
+ const BkVirtualRender = withInstall(Component$b);
12739
12741
  const BORDER_OPRIONS = ["none", "row", "col", "outer"];
12742
+ var EVENTS$1 = /* @__PURE__ */ ((EVENTS2) => {
12743
+ EVENTS2["ON_SORT_BY_CLICK"] = "onSortByClick";
12744
+ EVENTS2["ON_FILTER_CLICK"] = "onFilterClick";
12745
+ EVENTS2["ON_SETTING_CHANGE"] = "onSettingChange";
12746
+ return EVENTS2;
12747
+ })(EVENTS$1 || {});
12748
+ var EMITEVENTS = /* @__PURE__ */ ((EMITEVENTS2) => {
12749
+ EMITEVENTS2["COLUMN_PICK"] = "columnPick";
12750
+ EMITEVENTS2["COLUMN_SORT"] = "columnSort";
12751
+ EMITEVENTS2["COLUMN_FILTER"] = "columnFilter";
12752
+ EMITEVENTS2["ROW_CLICK"] = "rowClick";
12753
+ EMITEVENTS2["ROW_DBL_CLICK"] = "rowDblClick";
12754
+ EMITEVENTS2["PAGE_LIMIT_CHANGE"] = "pageLimitChange";
12755
+ EMITEVENTS2["PAGE_VALUE_CHANGE"] = "pageValueChange";
12756
+ EMITEVENTS2["SETTING_CHANGE"] = "settingChange";
12757
+ return EMITEVENTS2;
12758
+ })(EMITEVENTS || {});
12759
+ const EMPTY$1 = (..._args) => true;
12760
+ const EMIT_EVENT_TYPES = {
12761
+ ["columnPick"]: EMPTY$1,
12762
+ ["columnFilter"]: EMPTY$1,
12763
+ ["columnSort"]: EMPTY$1,
12764
+ ["rowClick"]: EMPTY$1,
12765
+ ["rowDblClick"]: EMPTY$1,
12766
+ ["pageLimitChange"]: EMPTY$1,
12767
+ ["pageValueChange"]: EMPTY$1,
12768
+ ["settingChange"]: EMPTY$1
12769
+ };
12740
12770
  const resolvePropVal = (prop, key, args) => {
12741
12771
  if (Object.prototype.hasOwnProperty.call(prop, key)) {
12742
12772
  if (typeof prop[key] === "function") {
@@ -13120,6 +13150,7 @@ var userPagination = (props) => {
13120
13150
  current: 1
13121
13151
  });
13122
13152
  pagination2 = resolvePaginationOption(props.pagination, pagination2);
13153
+ const localPagination = ref(null);
13123
13154
  const resetStartEndIndex = () => {
13124
13155
  if (!props.pagination || props.remotePagination) {
13125
13156
  startIndex.value = 0;
@@ -13148,17 +13179,18 @@ var userPagination = (props) => {
13148
13179
  };
13149
13180
  const watchEffectFn = (filterFn, sortFn) => {
13150
13181
  pagination2 = resolvePaginationOption(props.pagination, pagination2);
13182
+ resolveLocalPagination();
13151
13183
  resetStartEndIndex();
13152
13184
  resolvePageData(filterFn, sortFn);
13153
13185
  };
13154
- const localPagination = computed(() => {
13186
+ const resolveLocalPagination = () => {
13155
13187
  if (!props.pagination) {
13156
- return null;
13188
+ return;
13157
13189
  }
13158
- return props.remotePagination ? pagination2 : __spreadProps(__spreadValues({}, pagination2), {
13190
+ localPagination.value = props.remotePagination ? pagination2 : __spreadProps(__spreadValues({}, pagination2), {
13159
13191
  count: props.data.length
13160
13192
  });
13161
- });
13193
+ };
13162
13194
  return {
13163
13195
  pageData,
13164
13196
  localPagination,
@@ -13184,14 +13216,22 @@ const tableProps = {
13184
13216
  PropTypes.bool,
13185
13217
  PropTypes.commonType(["left", "right"], "fixed")
13186
13218
  ]).def(false),
13187
- sort: PropTypes.oneOfType([PropTypes.shape({
13188
- sortFn: PropTypes.func.def(void 0),
13189
- sortScope: PropTypes.commonType(Object.values(SortScope)).def("current")
13190
- }), PropTypes.bool]).def(false),
13191
- filter: PropTypes.oneOfType([PropTypes.shape({
13192
- list: PropTypes.arrayOf(PropTypes.any).def([]),
13193
- filterFn: PropTypes.func.def(void 0)
13194
- }), PropTypes.bool]).def(false)
13219
+ sort: PropTypes.oneOfType([
13220
+ PropTypes.shape({
13221
+ sortFn: PropTypes.func.def(void 0),
13222
+ sortScope: PropTypes.commonType(Object.values(SortScope)).def("current")
13223
+ }),
13224
+ PropTypes.bool,
13225
+ PropTypes.string
13226
+ ]).def(false),
13227
+ filter: PropTypes.oneOfType([
13228
+ PropTypes.shape({
13229
+ list: PropTypes.arrayOf(PropTypes.any).def([]),
13230
+ filterFn: PropTypes.func.def(void 0)
13231
+ }),
13232
+ PropTypes.bool,
13233
+ PropTypes.string
13234
+ ]).def(false)
13195
13235
  })),
13196
13236
  activeColumn: PropTypes.oneOfType([PropTypes.number.def(-1), PropTypes.arrayOf(PropTypes.number.def(-1))]),
13197
13237
  columnPick: PropTypes.commonType(["multi", "single", "disabled"], "columnPick").def("disabled"),
@@ -13596,7 +13636,7 @@ const paginationProps = {
13596
13636
  return value.some((item) => layoutNameMap[item]);
13597
13637
  }, "layout \u7684\u503C\u53EA\u652F\u6301 * total\u3001list\u3001limit *").def(["total", "list", "limit"])
13598
13638
  };
13599
- var Component$9 = defineComponent({
13639
+ var Component$a = defineComponent({
13600
13640
  name: "Pagination",
13601
13641
  props: paginationProps,
13602
13642
  emits: ["update:modelValue", "change", "update:limit", "limitChange"],
@@ -13663,7 +13703,7 @@ var Component$9 = defineComponent({
13663
13703
  }))]);
13664
13704
  }
13665
13705
  });
13666
- const BkPagination = withInstall(Component$9);
13706
+ const BkPagination = withInstall(Component$a);
13667
13707
  var BodyEmpty = defineComponent({
13668
13708
  name: "BodyEmpty",
13669
13709
  props: {
@@ -13738,6 +13778,11 @@ var HeadFilter = defineComponent({
13738
13778
  });
13739
13779
  const filterFn = typeof column.filter.filterFn === "function" ? (checked, row, index, data2) => column.filter.filterFn(checked, row, props.column, index, data2) : (checked, row) => checked.length ? checked.includes(getRowText(row, resolvePropVal(column, "field", [column, row]), column)) : true;
13740
13780
  const handleBtnSaveClick = () => {
13781
+ if (props.column.filter === "custom") {
13782
+ emit("change", [...state.checked], null);
13783
+ isShow.value = false;
13784
+ return;
13785
+ }
13741
13786
  emit("change", [...state.checked], filterFn);
13742
13787
  isShow.value = false;
13743
13788
  };
@@ -13818,6 +13863,10 @@ var HeadSort = defineComponent({
13818
13863
  e.stopPropagation();
13819
13864
  e.preventDefault();
13820
13865
  sortType.value = type;
13866
+ if (props.column.sort === "custom") {
13867
+ emit("change", null, type);
13868
+ return;
13869
+ }
13821
13870
  const fieldName = props.column.field;
13822
13871
  const getVal = (row) => getRowText(row, fieldName, props.column);
13823
13872
  const sortFn0 = (a2, b2) => {
@@ -14016,12 +14065,6 @@ var Settings = defineComponent({
14016
14065
  });
14017
14066
  }
14018
14067
  });
14019
- let EVENTS$1;
14020
- (function(EVENTS2) {
14021
- EVENTS2["ON_SORT_BY_CLICK"] = "onSortByClick";
14022
- EVENTS2["ON_FILTER_CLICK"] = "onFilterClick";
14023
- EVENTS2["ON_SETTING_CHANGE"] = "onSettingChange";
14024
- })(EVENTS$1 || (EVENTS$1 = {}));
14025
14068
  class TableRender {
14026
14069
  constructor(props, ctx, reactiveProp, colgroups) {
14027
14070
  __publicField(this, "getRowHeight", (row, rowIndex) => {
@@ -14391,10 +14434,10 @@ const useClass = (props, root, reactiveProp) => {
14391
14434
  hasFooter
14392
14435
  };
14393
14436
  };
14394
- var Component$8 = defineComponent({
14437
+ var Component$9 = defineComponent({
14395
14438
  name: "Table",
14396
14439
  props: tableProps,
14397
- emits: ["columnPick", "rowClick", "rowDblClick", "pageLimitChange", "pageValueChange"],
14440
+ emits: EMIT_EVENT_TYPES,
14398
14441
  setup(props, ctx) {
14399
14442
  const colgroups = reactive(props.columns.map((col) => __spreadProps(__spreadValues({}, col), {
14400
14443
  calcWidth: null,
@@ -14439,6 +14482,7 @@ var Component$8 = defineComponent({
14439
14482
  contentStyle,
14440
14483
  headStyle,
14441
14484
  updateBorderClass,
14485
+ resetTableHeight,
14442
14486
  hasFooter
14443
14487
  } = useClass(props, root, reactiveProp);
14444
14488
  const {
@@ -14446,32 +14490,62 @@ var Component$8 = defineComponent({
14446
14490
  fixedWrapperClass
14447
14491
  } = useFixedColumn(props, colgroups);
14448
14492
  const tableRender = new TableRender(props, ctx, reactiveProp, colgroups);
14449
- watch(() => [props.data], () => {
14493
+ watch(() => [props.data, props.pagination], () => {
14450
14494
  watchEffectFn(columnFilterFn, columnSortFn);
14451
- nextTick(() => updateBorderClass(root.value));
14495
+ nextTick(() => {
14496
+ resetTableHeight(root.value);
14497
+ updateBorderClass(root.value);
14498
+ });
14452
14499
  }, {
14453
14500
  immediate: true,
14454
14501
  deep: true
14455
14502
  });
14456
14503
  tableRender.on(EVENTS$1.ON_SORT_BY_CLICK, (args) => {
14457
14504
  const {
14458
- sortFn
14505
+ sortFn,
14506
+ column,
14507
+ index,
14508
+ type
14459
14509
  } = args;
14460
- columnSortFn = sortFn;
14461
- pageData.sort(columnSortFn);
14510
+ if (typeof sortFn === "function") {
14511
+ columnSortFn = sortFn;
14512
+ pageData.sort(columnSortFn);
14513
+ }
14514
+ ctx.emit(EMITEVENTS.COLUMN_SORT, {
14515
+ column,
14516
+ index,
14517
+ type
14518
+ });
14462
14519
  }).on(EVENTS$1.ON_FILTER_CLICK, (args) => {
14463
14520
  const {
14464
- filterFn
14521
+ filterFn,
14522
+ checked,
14523
+ column,
14524
+ index
14465
14525
  } = args;
14466
- columnFilterFn = filterFn;
14467
- resolvePageData(columnFilterFn, columnSortFn);
14526
+ if (typeof filterFn === "function") {
14527
+ columnFilterFn = filterFn;
14528
+ resolvePageData(columnFilterFn, columnSortFn);
14529
+ }
14530
+ ctx.emit(EMITEVENTS.COLUMN_FILTER, {
14531
+ checked,
14532
+ column,
14533
+ index
14534
+ });
14468
14535
  }).on(EVENTS$1.ON_SETTING_CHANGE, (args) => {
14469
14536
  var _a, _b;
14470
14537
  const {
14471
- checked = []
14538
+ checked = [],
14539
+ size,
14540
+ height
14472
14541
  } = args;
14473
14542
  checked.length && resolveColumnWidth(root.value, colgroups, 20);
14474
14543
  (_b = (_a = refVirtualRender.value) == null ? void 0 : _a.reset) == null ? void 0 : _b.call(_a);
14544
+ ctx.emit(EMITEVENTS.SETTING_CHANGE, {
14545
+ checked,
14546
+ size,
14547
+ height
14548
+ });
14475
14549
  });
14476
14550
  const handleScrollChanged = (args) => {
14477
14551
  const pagination2 = args[1];
@@ -14532,7 +14606,7 @@ var Component$8 = defineComponent({
14532
14606
  ]);
14533
14607
  }
14534
14608
  });
14535
- const BkTable = withInstall(Component$8);
14609
+ const BkTable = withInstall(Component$9);
14536
14610
  const INPUT_MIN_WIDTH = 12;
14537
14611
  function usePage(pageSize) {
14538
14612
  const state = reactive({
@@ -14704,7 +14778,7 @@ var TagRender = defineComponent({
14704
14778
  }, [this.node[this.displayKey]])]);
14705
14779
  }
14706
14780
  });
14707
- var Component$7 = defineComponent({
14781
+ var Component$8 = defineComponent({
14708
14782
  name: "TagInput",
14709
14783
  directives: {
14710
14784
  bkTooltips: tooltips
@@ -15449,7 +15523,7 @@ var Component$7 = defineComponent({
15449
15523
  })]);
15450
15524
  }
15451
15525
  });
15452
- const TagInput = withInstall(Component$7);
15526
+ const TagInput = withInstall(Component$8);
15453
15527
  const dividerProps = {
15454
15528
  direction: PropTypes.commonType(["horizontal", "vertical"], "direction").def("horizontal"),
15455
15529
  align: PropTypes.commonType(["left", "center", "right"], "align").def("center"),
@@ -16302,7 +16376,7 @@ const menuProps = {
16302
16376
  default: true
16303
16377
  }
16304
16378
  };
16305
- var Component$6 = defineComponent({
16379
+ var Component$7 = defineComponent({
16306
16380
  name: "Menu",
16307
16381
  props: menuProps,
16308
16382
  emits: ["update:activeKey", "update:openKeys", "click", "openChange"],
@@ -16550,7 +16624,7 @@ var Submenu = defineComponent({
16550
16624
  };
16551
16625
  }
16552
16626
  });
16553
- const BkMenu = withInstallProps(Component$6, { Item, Submenu, Group });
16627
+ const BkMenu = withInstallProps(Component$7, { Item, Submenu, Group });
16554
16628
  const TitleProps = {
16555
16629
  sideTitle: {
16556
16630
  type: String,
@@ -16626,7 +16700,7 @@ const NavigationProps = {
16626
16700
  default: true
16627
16701
  }
16628
16702
  };
16629
- var Component$5 = defineComponent({
16703
+ var Component$6 = defineComponent({
16630
16704
  name: "Navigation",
16631
16705
  props: NavigationProps,
16632
16706
  emits: ["leave", "toggle", "hover", "toggle-click"],
@@ -16768,7 +16842,7 @@ var Component$5 = defineComponent({
16768
16842
  }, [(_l = (_k = this.$slots).footer) == null ? void 0 : _l.call(_k)])])])])]);
16769
16843
  }
16770
16844
  });
16771
- const Navigation = withInstall(Component$5);
16845
+ const Navigation = withInstall(Component$6);
16772
16846
  const pickerDropdownProps = {
16773
16847
  placement: {
16774
16848
  type: String,
@@ -20111,7 +20185,7 @@ const datePickerProps = {
20111
20185
  },
20112
20186
  disableDate: Function
20113
20187
  };
20114
- var Component$4 = defineComponent({
20188
+ var Component$5 = defineComponent({
20115
20189
  name: "DatePicker",
20116
20190
  directives: {
20117
20191
  clickoutside: ClickOutside
@@ -20635,7 +20709,7 @@ var Component$4 = defineComponent({
20635
20709
  })]), [[resolveDirective("clickoutside"), this.handleClose]]);
20636
20710
  }
20637
20711
  });
20638
- const BkDatePicker = withInstall(Component$4);
20712
+ const BkDatePicker = withInstall(Component$5);
20639
20713
  ({
20640
20714
  title: Array,
20641
20715
  extCls: PropTypes.string,
@@ -20650,7 +20724,7 @@ const BkDatePicker = withInstall(Component$4);
20650
20724
  targetList: Array,
20651
20725
  emptyContent: Array
20652
20726
  });
20653
- var Component$3 = defineComponent({
20727
+ var Component$4 = defineComponent({
20654
20728
  name: "Transfer",
20655
20729
  props: {
20656
20730
  title: {
@@ -21058,19 +21132,18 @@ var Component$3 = defineComponent({
21058
21132
  }, [getHeaderHtml("right-header"), getListContentHtml("right")])]);
21059
21133
  }
21060
21134
  });
21061
- const Transfer = withInstall(Component$3);
21135
+ const Transfer = withInstall(Component$4);
21062
21136
  var EVENTS = /* @__PURE__ */ ((EVENTS2) => {
21063
21137
  EVENTS2["NODE_CLICK"] = "nodeClick";
21064
21138
  EVENTS2["NODE_COLLAPSE"] = "nodeCollapse";
21065
21139
  EVENTS2["NODE_EXPAND"] = "nodeExpand";
21066
21140
  return EVENTS2;
21067
21141
  })(EVENTS || {});
21068
- const empty = () => {
21069
- };
21142
+ const EMPTY = (..._args) => true;
21070
21143
  const TreeEmitEventsType = {
21071
- ["nodeClick"]: empty,
21072
- ["nodeCollapse"]: empty,
21073
- ["nodeExpand"]: empty
21144
+ ["nodeClick"]: EMPTY,
21145
+ ["nodeCollapse"]: EMPTY,
21146
+ ["nodeExpand"]: EMPTY
21074
21147
  };
21075
21148
  var NODE_ATTRIBUTES = /* @__PURE__ */ ((NODE_ATTRIBUTES2) => {
21076
21149
  NODE_ATTRIBUTES2["DEPTH"] = "__depth";
@@ -21081,7 +21154,7 @@ var NODE_ATTRIBUTES = /* @__PURE__ */ ((NODE_ATTRIBUTES2) => {
21081
21154
  NODE_ATTRIBUTES2["PATH"] = "__path";
21082
21155
  NODE_ATTRIBUTES2["IS_ROOT"] = "__is_root";
21083
21156
  NODE_ATTRIBUTES2["ORDER"] = "__order";
21084
- NODE_ATTRIBUTES2["IS_OPENED"] = "__is_open";
21157
+ NODE_ATTRIBUTES2["IS_OPEN"] = "__is_open";
21085
21158
  NODE_ATTRIBUTES2["IS_CHECKED"] = "__is_checked";
21086
21159
  NODE_ATTRIBUTES2["IS_SELECTED"] = "__is_selected";
21087
21160
  NODE_ATTRIBUTES2["IS_ASYNC_INIT"] = "__is_async_init";
@@ -21090,6 +21163,7 @@ var NODE_ATTRIBUTES = /* @__PURE__ */ ((NODE_ATTRIBUTES2) => {
21090
21163
  NODE_ATTRIBUTES2["IS_CACHED"] = "__is_cached";
21091
21164
  NODE_ATTRIBUTES2["IS_ASYNC"] = "__is_async";
21092
21165
  NODE_ATTRIBUTES2["IS_LOADING"] = "__is_loading";
21166
+ NODE_ATTRIBUTES2["TREE_NODE_ATTR"] = "__attr__";
21093
21167
  return NODE_ATTRIBUTES2;
21094
21168
  })(NODE_ATTRIBUTES || {});
21095
21169
  const NODE_SOURCE_ATTRS = {
@@ -21099,7 +21173,8 @@ const NODE_SOURCE_ATTRS = {
21099
21173
  ["__has_child"]: "hasChild",
21100
21174
  ["__is_checked"]: "checked",
21101
21175
  ["__is_async"]: "async",
21102
- ["__is_loading"]: "loading"
21176
+ ["__is_loading"]: "loading",
21177
+ ["__is_root"]: "isRoot"
21103
21178
  };
21104
21179
  const treeProps = {
21105
21180
  data: PropTypes.arrayOf(PropTypes.any).def([]),
@@ -21148,8 +21223,7 @@ const treeProps = {
21148
21223
  dragSort: PropTypes.bool.def(false),
21149
21224
  selectable: PropTypes.bool.def(true),
21150
21225
  selected: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).def(null),
21151
- autoCheckChildren: PropTypes.bool.def(true),
21152
- syncAction: PropTypes.bool.def(false)
21226
+ autoCheckChildren: PropTypes.bool.def(true)
21153
21227
  };
21154
21228
  var useEmpty = (props, {
21155
21229
  slots
@@ -21164,6 +21238,103 @@ var useEmpty = (props, {
21164
21238
  }
21165
21239
  })
21166
21240
  });
21241
+ var useNodeAttribute = (flatData, props) => {
21242
+ const getSchemaVal2 = (key) => flatData.schema.get(key);
21243
+ const getNodeAttr2 = (node, attr) => {
21244
+ var _a;
21245
+ return (_a = getSchemaVal2(node[NODE_ATTRIBUTES.UUID])) == null ? void 0 : _a[attr];
21246
+ };
21247
+ const setNodeAttr = (node, attr, val) => {
21248
+ flatData.schema.set(node[NODE_ATTRIBUTES.UUID], __spreadProps(__spreadValues({}, getSchemaVal2(node[NODE_ATTRIBUTES.UUID])), {
21249
+ [attr]: val
21250
+ }));
21251
+ };
21252
+ const getNodePath = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.PATH);
21253
+ const getNodeId = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.UUID);
21254
+ const isRootNode = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_ROOT);
21255
+ const isNodeOpened = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_OPEN);
21256
+ const hasChildNode = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.HAS_CHILD);
21257
+ const isNodeMatched = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_MATCH);
21258
+ const isNodeChecked = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_CHECKED);
21259
+ const getNodeParentId = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.PARENT_ID);
21260
+ const getNodeParentIdById = (id) => getNodeAttr2({
21261
+ [NODE_ATTRIBUTES.UUID]: id
21262
+ }, NODE_ATTRIBUTES.PARENT_ID);
21263
+ const isNodeLoading = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_LOADING);
21264
+ const setTreeNodeLoading = (node, value) => {
21265
+ setNodeAttr(node, NODE_ATTRIBUTES.IS_LOADING, value);
21266
+ };
21267
+ const deleteNodeSchema = (id) => flatData.schema.delete(id);
21268
+ const isItemOpen = (item) => {
21269
+ var _a;
21270
+ if (typeof item === "object") {
21271
+ return isNodeOpened(item);
21272
+ }
21273
+ if (typeof item === "string") {
21274
+ return (_a = getSchemaVal2(item)) == null ? void 0 : _a[NODE_ATTRIBUTES.IS_OPEN];
21275
+ }
21276
+ return false;
21277
+ };
21278
+ const checkNodeIsOpen = (node) => isRootNode(node) || isItemOpen(node) || isItemOpen(getNodeAttr2(node, NODE_ATTRIBUTES.PARENT_ID));
21279
+ const getSourceNodeByPath = (path) => {
21280
+ const paths = path.split("-");
21281
+ return paths.reduce((pre, nodeIndex) => {
21282
+ const index = Number(nodeIndex);
21283
+ return Array.isArray(pre) ? pre[index] : pre[props.children][index];
21284
+ }, props.data);
21285
+ };
21286
+ const getSourceNodeByUID = (uid) => getSourceNodeByPath(getNodePath({
21287
+ [NODE_ATTRIBUTES.UUID]: uid
21288
+ }));
21289
+ const getParentNodeData = (uid) => {
21290
+ if (isRootNode({
21291
+ [NODE_ATTRIBUTES.UUID]: uid
21292
+ })) {
21293
+ return {
21294
+ [props.children]: props.data
21295
+ };
21296
+ }
21297
+ return getSourceNodeByUID(getNodeParentIdById(uid));
21298
+ };
21299
+ const resolveScopedSlotParam = (item) => ({
21300
+ [NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_LOADING]]: getNodeAttr2(item, NODE_ATTRIBUTES.IS_LOADING),
21301
+ [NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.HAS_CHILD]]: hasChildNode(item),
21302
+ [NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_MATCH]]: isNodeMatched(item),
21303
+ [NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_CHECKED]]: isNodeChecked(item),
21304
+ [NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_OPEN]]: isNodeOpened(item),
21305
+ [NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_ROOT]]: isRootNode(item),
21306
+ fullPath: getNodeAttr2(item, NODE_ATTRIBUTES.PATH),
21307
+ uuid: getNodeId(item),
21308
+ parentId: getNodeAttr2(item, NODE_ATTRIBUTES.PARENT_ID)
21309
+ });
21310
+ const extendNodeAttr = (item) => __spreadProps(__spreadValues({}, item), {
21311
+ [NODE_ATTRIBUTES.TREE_NODE_ATTR]: resolveScopedSlotParam(item)
21312
+ });
21313
+ return {
21314
+ getSchemaVal: getSchemaVal2,
21315
+ getNodeAttr: getNodeAttr2,
21316
+ getNodeId,
21317
+ getNodeParentId,
21318
+ getNodeParentIdById,
21319
+ getParentNodeData,
21320
+ setNodeAttr,
21321
+ getNodePath,
21322
+ isRootNode,
21323
+ isNodeOpened,
21324
+ hasChildNode,
21325
+ isItemOpen,
21326
+ isNodeChecked,
21327
+ isNodeMatched,
21328
+ isNodeLoading,
21329
+ checkNodeIsOpen,
21330
+ getSourceNodeByPath,
21331
+ getSourceNodeByUID,
21332
+ deleteNodeSchema,
21333
+ resolveScopedSlotParam,
21334
+ setTreeNodeLoading,
21335
+ extendNodeAttr
21336
+ };
21337
+ };
21167
21338
  const DEFAULT_LEVLE_LINE = "1px dashed #c3cdd7";
21168
21339
  const getPropsOneOfBoolValueWithDefault = (props, key, item = null, defaultTrueValue = null, defaultFalseValue = null, args = []) => {
21169
21340
  const prop = props[key];
@@ -21261,136 +21432,32 @@ const resolveNodeItem = (node) => {
21261
21432
  console.error("setNodeAction Error: node id cannot found");
21262
21433
  return node;
21263
21434
  };
21264
- var useNodeAttribute = (flatData, props) => {
21265
- const getSchemaVal2 = (key) => flatData.schema.get(key);
21266
- const getNodeAttr2 = (node, attr) => {
21267
- var _a;
21268
- return (_a = getSchemaVal2(node[NODE_ATTRIBUTES.UUID])) == null ? void 0 : _a[attr];
21269
- };
21270
- const setNodeAttr = (node, attr, val) => {
21271
- if (props.syncAction && NODE_SOURCE_ATTRS[attr] !== void 0) {
21272
- updateTreeNode(getNodePath(node), props.data, props.children, NODE_SOURCE_ATTRS[attr], val);
21273
- }
21274
- flatData.schema.set(node[NODE_ATTRIBUTES.UUID], __spreadProps(__spreadValues({}, getSchemaVal2(node[NODE_ATTRIBUTES.UUID])), {
21275
- [attr]: val
21276
- }));
21277
- };
21278
- const getNodePath = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.PATH);
21279
- const getNodeId = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.UUID);
21280
- const isRootNode = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_ROOT);
21281
- const isNodeOpened = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_OPENED);
21282
- const hasChildNode = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.HAS_CHILD);
21283
- const isNodeMatched = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_MATCH);
21284
- const isNodeChecked = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_CHECKED);
21285
- const getNodeParentId = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.PARENT_ID);
21286
- const getNodeParentIdById = (id) => getNodeAttr2({
21287
- [NODE_ATTRIBUTES.UUID]: id
21288
- }, NODE_ATTRIBUTES.PARENT_ID);
21289
- const isNodeLoading = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_LOADING);
21290
- const setTreeNodeLoading = (node, value) => {
21291
- setNodeAttr(node, NODE_ATTRIBUTES.IS_LOADING, value);
21292
- if (!props.syncAction) {
21293
- updateTreeNode(getNodePath(node), props.data, props.children, NODE_ATTRIBUTES.IS_LOADING, value);
21294
- }
21295
- };
21296
- const deleteNodeSchema = (id) => flatData.schema.delete(id);
21297
- const isItemOpen = (item) => {
21298
- var _a;
21299
- if (typeof item === "object") {
21300
- return isNodeOpened(item);
21301
- }
21302
- if (typeof item === "string") {
21303
- return (_a = getSchemaVal2(item)) == null ? void 0 : _a[NODE_ATTRIBUTES.IS_OPENED];
21304
- }
21305
- return false;
21306
- };
21307
- const checkNodeIsOpen = (node) => isRootNode(node) || isItemOpen(node) || isItemOpen(getNodeAttr2(node, NODE_ATTRIBUTES.PARENT_ID));
21308
- const getSourceNodeByPath = (path) => {
21309
- const paths = path.split("-");
21310
- return paths.reduce((pre, nodeIndex) => {
21311
- const index = Number(nodeIndex);
21312
- return Array.isArray(pre) ? pre[index] : pre[props.children][index];
21313
- }, props.data);
21314
- };
21315
- const getSourceNodeByUID = (uid) => getSourceNodeByPath(getNodePath({
21316
- [NODE_ATTRIBUTES.UUID]: uid
21317
- }));
21318
- const getParentNodeData = (uid) => {
21319
- if (isRootNode({
21320
- [NODE_ATTRIBUTES.UUID]: uid
21321
- })) {
21322
- return {
21323
- [props.children]: props.data
21324
- };
21325
- }
21326
- return getSourceNodeByUID(getNodeParentIdById(uid));
21327
- };
21328
- const resolveScopedSlotParam = (item) => ({
21329
- loading: getNodeAttr2(item, NODE_ATTRIBUTES.IS_LOADING),
21330
- hasChildNode: hasChildNode(item),
21331
- isMatched: isNodeMatched(item),
21332
- isChecked: isNodeChecked(item),
21333
- isOpened: isNodeOpened(item),
21334
- isRoot: isRootNode(item),
21335
- fullPath: getNodeAttr2(item, NODE_ATTRIBUTES.PATH),
21336
- uuid: getNodeId(item),
21337
- parentId: getNodeAttr2(item, NODE_ATTRIBUTES.PARENT_ID)
21338
- });
21339
- return {
21340
- getSchemaVal: getSchemaVal2,
21341
- getNodeAttr: getNodeAttr2,
21342
- getNodeId,
21343
- getNodeParentId,
21344
- getNodeParentIdById,
21345
- getParentNodeData,
21346
- setNodeAttr,
21347
- getNodePath,
21348
- isRootNode,
21349
- isNodeOpened,
21350
- hasChildNode,
21351
- isItemOpen,
21352
- isNodeChecked,
21353
- isNodeMatched,
21354
- isNodeLoading,
21355
- checkNodeIsOpen,
21356
- getSourceNodeByPath,
21357
- getSourceNodeByUID,
21358
- deleteNodeSchema,
21359
- resolveScopedSlotParam,
21360
- setTreeNodeLoading
21361
- };
21362
- };
21363
21435
  var useNodeAsync = (props, flatData) => {
21364
21436
  const {
21365
21437
  setNodeAttr,
21366
21438
  getNodePath,
21367
21439
  getNodeAttr: getNodeAttr2,
21368
- isNodeOpened,
21369
21440
  resolveScopedSlotParam,
21370
21441
  setTreeNodeLoading
21371
21442
  } = useNodeAttribute(flatData, props);
21372
21443
  const setNodeRemoteLoad = (resp, item) => {
21373
21444
  if (typeof resp === "object" && resp !== null) {
21374
- setNodeAttr(item, NODE_ATTRIBUTES.IS_OPENED, true);
21445
+ setNodeAttr(item, NODE_ATTRIBUTES.IS_OPEN, true);
21375
21446
  const nodeValue = Array.isArray(resp) ? resp : [resp];
21376
21447
  updateTreeNode(getNodePath(item), props.data, props.children, props.children, nodeValue);
21377
21448
  return Promise.resolve(resp);
21378
21449
  }
21379
- return Promise.reject(resp);
21450
+ return Promise.resolve(resp);
21380
21451
  };
21381
21452
  const asyncNodeClick = (item) => {
21382
21453
  const {
21383
21454
  callback = null,
21384
21455
  cache = true
21385
21456
  } = props.async || {};
21386
- if (typeof callback === "function" && getNodeAttr2(item, NODE_ATTRIBUTES.IS_ASYNC) !== false) {
21387
- const isAsyncInit = getNodeAttr2(item, NODE_ATTRIBUTES.IS_ASYNC_INIT);
21457
+ if (typeof callback === "function" && getNodeAttr2(item, NODE_ATTRIBUTES.IS_ASYNC)) {
21388
21458
  setNodeAttr(item, NODE_ATTRIBUTES.IS_ASYNC_INIT, true);
21389
21459
  if (!getNodeAttr2(item, NODE_ATTRIBUTES.IS_CACHED)) {
21390
21460
  setNodeAttr(item, NODE_ATTRIBUTES.IS_CACHED, cache);
21391
- if (isNodeOpened(item) && isAsyncInit) {
21392
- return Promise.resolve(true);
21393
- }
21394
21461
  const dataAttr = resolveScopedSlotParam(item);
21395
21462
  const callbackResult = callback(item, (resp) => setNodeRemoteLoad(resp, item), dataAttr);
21396
21463
  if (typeof callbackResult === "object" && callbackResult !== null) {
@@ -21411,7 +21478,7 @@ var useNodeAsync = (props, flatData) => {
21411
21478
  return Promise.resolve(true);
21412
21479
  };
21413
21480
  const deepAutoOpen = () => {
21414
- const autoOpenNodes = flatData.data.filter((item) => getNodeAttr2(item, NODE_ATTRIBUTES.IS_ASYNC) && item.isOpen && !getNodeAttr2(item, NODE_ATTRIBUTES.IS_ASYNC_INIT));
21481
+ const autoOpenNodes = flatData.data.filter((item) => getNodeAttr2(item, NODE_ATTRIBUTES.IS_ASYNC) && item[NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_OPEN]] && !getNodeAttr2(item, NODE_ATTRIBUTES.IS_ASYNC_INIT));
21415
21482
  if (autoOpenNodes.length) {
21416
21483
  Promise.all(autoOpenNodes.map((item) => asyncNodeClick(item))).then(() => {
21417
21484
  deepAutoOpen();
@@ -21438,7 +21505,8 @@ var useNodeAction = (props, ctx, flatData, renderData, schemaValues, initOption)
21438
21505
  isItemOpen,
21439
21506
  isNodeOpened,
21440
21507
  isNodeLoading,
21441
- resolveScopedSlotParam
21508
+ resolveScopedSlotParam,
21509
+ extendNodeAttr
21442
21510
  } = useNodeAttribute(flatData, props);
21443
21511
  const {
21444
21512
  registerNextLoop
@@ -21475,18 +21543,18 @@ var useNodeAction = (props, ctx, flatData, renderData, schemaValues, initOption)
21475
21543
  };
21476
21544
  const getLoadingIcon = (item) => {
21477
21545
  var _a, _b, _c;
21478
- return ((_c = (_b = (_a = ctx.slots).nodeLoading) == null ? void 0 : _b.call(_a, resolveScopedSlotParam(item))) != null ? _c : isNodeLoading(item)) ? createVNode(spinner, null, null) : "";
21546
+ return ((_c = (_b = (_a = ctx.slots).nodeLoading) == null ? void 0 : _b.call(_a, extendNodeAttr(item))) != null ? _c : isNodeLoading(item)) ? createVNode(spinner, null, null) : "";
21479
21547
  };
21480
21548
  const getActionIcon = (item) => {
21481
21549
  if (ctx.slots.nodeAction) {
21482
- return ctx.slots.nodeAction(resolveScopedSlotParam(item));
21550
+ return ctx.slots.nodeAction(extendNodeAttr(item));
21483
21551
  }
21484
21552
  let prefixFnVal = null;
21485
21553
  if (isNodeLoading(item)) {
21486
21554
  return getLoadingIcon(item);
21487
21555
  }
21488
21556
  if (typeof props.prefixIcon === "function") {
21489
- prefixFnVal = props.prefixIcon(resolveScopedSlotParam(item), "node_action");
21557
+ prefixFnVal = props.prefixIcon(extendNodeAttr(item), "node_action");
21490
21558
  if (prefixFnVal !== "default") {
21491
21559
  return renderPrefixVal(prefixFnVal);
21492
21560
  }
@@ -21500,11 +21568,11 @@ var useNodeAction = (props, ctx, flatData, renderData, schemaValues, initOption)
21500
21568
  };
21501
21569
  const getNodePrefixIcon = (item) => {
21502
21570
  if (ctx.slots.nodeType) {
21503
- return ctx.slots.nodeType(resolveScopedSlotParam(item));
21571
+ return ctx.slots.nodeType(extendNodeAttr(item));
21504
21572
  }
21505
21573
  let prefixFnVal = null;
21506
21574
  if (typeof props.prefixIcon === "function") {
21507
- prefixFnVal = props.prefixIcon(resolveScopedSlotParam(item), "node_type");
21575
+ prefixFnVal = props.prefixIcon(extendNodeAttr(item), "node_type");
21508
21576
  if (prefixFnVal !== "default") {
21509
21577
  return renderPrefixVal(prefixFnVal);
21510
21578
  }
@@ -21518,15 +21586,15 @@ var useNodeAction = (props, ctx, flatData, renderData, schemaValues, initOption)
21518
21586
  };
21519
21587
  const setNodeOpened = (item, isOpen = null, e = null, fireEmit = true) => {
21520
21588
  const newVal = isOpen === null ? !isItemOpen(item) : !!isOpen;
21521
- setNodeAttr(item, NODE_ATTRIBUTES.IS_OPENED, newVal);
21589
+ setNodeAttr(item, NODE_ATTRIBUTES.IS_OPEN, newVal);
21522
21590
  if (fireEmit) {
21523
21591
  const emitEvent = isItemOpen(item) ? EVENTS.NODE_EXPAND : EVENTS.NODE_COLLAPSE;
21524
- ctx.emit(emitEvent, item, resolveScopedSlotParam(item), getSchemaVal2(item[NODE_ATTRIBUTES.UUID]), e);
21592
+ ctx.emit(emitEvent, [item, resolveScopedSlotParam(item), getSchemaVal2(item[NODE_ATTRIBUTES.UUID]), e]);
21525
21593
  }
21526
21594
  if (newVal) {
21527
21595
  return;
21528
21596
  }
21529
- renderData.value.filter((node) => String.prototype.startsWith.call(getNodePath(node), getNodePath(item))).forEach((filterNode) => setNodeAttr(filterNode, NODE_ATTRIBUTES.IS_OPENED, newVal));
21597
+ renderData.value.filter((node) => String.prototype.startsWith.call(getNodePath(node), getNodePath(item))).forEach((filterNode) => setNodeAttr(filterNode, NODE_ATTRIBUTES.IS_OPEN, newVal));
21530
21598
  };
21531
21599
  const setNodeAction = (args, action, value) => {
21532
21600
  if (Array.isArray(args)) {
@@ -21542,7 +21610,7 @@ var useNodeAction = (props, ctx, flatData, renderData, schemaValues, initOption)
21542
21610
  }
21543
21611
  if (autoOpenParents) {
21544
21612
  if (isOpen) {
21545
- setNodeAction(resolvedItem, NODE_ATTRIBUTES.IS_OPENED, isOpen);
21613
+ setNodeAction(resolvedItem, NODE_ATTRIBUTES.IS_OPEN, isOpen);
21546
21614
  if (!isRootNode(resolvedItem)) {
21547
21615
  const parentId = getNodeAttr2(resolvedItem, NODE_ATTRIBUTES.PARENT_ID);
21548
21616
  setOpen(parentId, true, true);
@@ -21551,11 +21619,15 @@ var useNodeAction = (props, ctx, flatData, renderData, schemaValues, initOption)
21551
21619
  setNodeOpened(resolvedItem, false, null, false);
21552
21620
  }
21553
21621
  } else {
21554
- setNodeAction(resolvedItem, NODE_ATTRIBUTES.IS_OPENED, isOpen);
21622
+ setNodeAction(resolvedItem, NODE_ATTRIBUTES.IS_OPEN, isOpen);
21555
21623
  }
21556
21624
  };
21557
21625
  const hanldeTreeNodeClick = (item, e) => {
21558
21626
  const isOpen = isNodeOpened(item);
21627
+ if (isOpen) {
21628
+ setNodeOpened(item, false, e);
21629
+ return;
21630
+ }
21559
21631
  asyncNodeClick(item).finally(() => {
21560
21632
  if (getNodeAttr2(item, NODE_ATTRIBUTES.IS_LOADING)) {
21561
21633
  registerNextLoop("setNodeOpenedAfterLoading", {
@@ -21610,7 +21682,8 @@ var useNodeAction = (props, ctx, flatData, renderData, schemaValues, initOption)
21610
21682
  if (!isNodeOpened(item)) {
21611
21683
  hanldeTreeNodeClick(item, e);
21612
21684
  }
21613
- ctx.emit(EVENTS.NODE_CLICK, resolveScopedSlotParam(item), getSchemaVal2(item[NODE_ATTRIBUTES.UUID]), e);
21685
+ const eventName = EVENTS.NODE_CLICK;
21686
+ ctx.emit(eventName, item, resolveScopedSlotParam(item), getSchemaVal2(item[NODE_ATTRIBUTES.UUID]), e);
21614
21687
  };
21615
21688
  const filterNextNode = (depth, node) => {
21616
21689
  if (isRootNode(node)) {
@@ -21657,7 +21730,7 @@ var useNodeAction = (props, ctx, flatData, renderData, schemaValues, initOption)
21657
21730
  "class": resolveClassName("node-content")
21658
21731
  }, [[getNodePrefixIcon(item)], createVNode("span", {
21659
21732
  "class": resolveClassName("node-text")
21660
- }, [(_c = (_b = (_a = ctx.slots).node) == null ? void 0 : _b.call(_a, resolveScopedSlotParam(item))) != null ? _c : [getLabel(item, props)]]), (_e = (_d = ctx.slots).nodeAppend) == null ? void 0 : _e.call(_d, resolveScopedSlotParam(item))]), getVirtualLines(item)])]);
21733
+ }, [(_c = (_b = (_a = ctx.slots).node) == null ? void 0 : _b.call(_a, extendNodeAttr(item))) != null ? _c : [getLabel(item, props)]]), (_e = (_d = ctx.slots).nodeAppend) == null ? void 0 : _e.call(_d, extendNodeAttr(item))]), getVirtualLines(item)])]);
21661
21734
  };
21662
21735
  return {
21663
21736
  renderTreeNode,
@@ -22018,7 +22091,7 @@ var useTreeInit = (props) => {
22018
22091
  return result;
22019
22092
  }
22020
22093
  function isCachedTreeNodeOpened(uuid2, node) {
22021
- return getCachedTreeNodeAttr(uuid2, node, NODE_ATTRIBUTES.IS_OPENED, false);
22094
+ return getCachedTreeNodeAttr(uuid2, node, NODE_ATTRIBUTES.IS_OPEN, false);
22022
22095
  }
22023
22096
  function isCachedTreeNodeChecked(uuid2, node) {
22024
22097
  return getCachedTreeNodeAttr(uuid2, node, NODE_ATTRIBUTES.IS_CHECKED, false);
@@ -22042,7 +22115,7 @@ var useTreeInit = (props) => {
22042
22115
  return getCachedTreeNodeAttr(uuid2, node, NODE_ATTRIBUTES.IS_LOADING, false);
22043
22116
  }
22044
22117
  function validateIsOpenLoopFn(target) {
22045
- return !target[NODE_ATTRIBUTES.IS_OPENED];
22118
+ return !target[NODE_ATTRIBUTES.IS_OPEN];
22046
22119
  }
22047
22120
  function flatten(array, depth = 0, parent = null, path = null) {
22048
22121
  const arrLength = array.length;
@@ -22066,7 +22139,7 @@ var useTreeInit = (props) => {
22066
22139
  [NODE_ATTRIBUTES.ORDER]: order2,
22067
22140
  [NODE_ATTRIBUTES.IS_SELECTED]: props2.selectable ? isCachedTreeNodeSelected(uuid2, item) : false,
22068
22141
  [NODE_ATTRIBUTES.IS_MATCH]: isCachedTreeNodeMatch(uuid2, item),
22069
- [NODE_ATTRIBUTES.IS_OPENED]: isCachedTreeNodeOpened(uuid2, item),
22142
+ [NODE_ATTRIBUTES.IS_OPEN]: isCachedTreeNodeOpened(uuid2, item),
22070
22143
  [NODE_ATTRIBUTES.IS_CHECKED]: isCachedTreeNodeChecked(uuid2, item),
22071
22144
  [NODE_ATTRIBUTES.IS_CACHED]: isCachedTreeNodeHasCached(uuid2, item),
22072
22145
  [NODE_ATTRIBUTES.IS_ASYNC]: isCachedTreeNodeAsync(uuid2, item),
@@ -22081,8 +22154,8 @@ var useTreeInit = (props) => {
22081
22154
  outputData.push(__spreadProps(__spreadValues({}, item), {
22082
22155
  [children]: null
22083
22156
  }));
22084
- if (attrs[NODE_ATTRIBUTES.IS_OPENED] || attrs[NODE_ATTRIBUTES.IS_SELECTED]) {
22085
- loopUpdateNodeAttr(parent, NODE_ATTRIBUTES.IS_OPENED, true, validateIsOpenLoopFn);
22157
+ if (attrs[NODE_ATTRIBUTES.IS_OPEN]) {
22158
+ loopUpdateNodeAttr(parent, NODE_ATTRIBUTES.IS_OPEN, true, validateIsOpenLoopFn);
22086
22159
  }
22087
22160
  if (Object.prototype.hasOwnProperty.call(item, children)) {
22088
22161
  flatten(item[children] || [], depth + 1, uuid2, currentPath);
@@ -22165,6 +22238,7 @@ var useTreeInit = (props) => {
22165
22238
  };
22166
22239
  watch(() => [props.data], (newData) => {
22167
22240
  var _a2, _b;
22241
+ console.log("watch data changed");
22168
22242
  const formatData2 = getFlatdata(props, newData, schemaValues.value);
22169
22243
  flatData.data = formatData2[0];
22170
22244
  flatData.schema = formatData2[1];
@@ -22177,6 +22251,7 @@ var useTreeInit = (props) => {
22177
22251
  });
22178
22252
  if (props.selectable) {
22179
22253
  watch(() => props.selected, (newData) => {
22254
+ console.log("watch selected changed");
22180
22255
  afterSelectWatch.length = 0;
22181
22256
  afterSelectEvents.forEach((event) => {
22182
22257
  Reflect.apply(event, globalThis, [newData]);
@@ -22203,7 +22278,7 @@ var useTreeInit = (props) => {
22203
22278
  onSelected
22204
22279
  };
22205
22280
  };
22206
- var Component$2 = defineComponent({
22281
+ var Component$3 = defineComponent({
22207
22282
  name: "Tree",
22208
22283
  props: treeProps,
22209
22284
  emits: TreeEmitEventsType,
@@ -22311,7 +22386,7 @@ var Component$2 = defineComponent({
22311
22386
  });
22312
22387
  }
22313
22388
  });
22314
- const BkTree = withInstall(Component$2);
22389
+ const BkTree = withInstall(Component$3);
22315
22390
  const isCustomComponent = (node) => node.__v_isVNode;
22316
22391
  var ComposeFormItem = defineComponent({
22317
22392
  name: "ComposeFormItem",
@@ -23160,7 +23235,7 @@ class Store {
23160
23235
  return (_a = nodes[0]) != null ? _a : null;
23161
23236
  }
23162
23237
  }
23163
- var Component$1 = defineComponent({
23238
+ var Component$2 = defineComponent({
23164
23239
  name: "Cascader",
23165
23240
  directives: {
23166
23241
  clickoutside: ClickOutside
@@ -23317,7 +23392,7 @@ var Component$1 = defineComponent({
23317
23392
  })]);
23318
23393
  }
23319
23394
  });
23320
- const BkCascader = withInstallProps(Component$1, { CascaderPanel });
23395
+ const BkCascader = withInstallProps(Component$2, { CascaderPanel });
23321
23396
  var SliderButton = defineComponent({
23322
23397
  name: "SliderButton",
23323
23398
  props: {
@@ -23488,7 +23563,7 @@ const off = (element, event, handler) => {
23488
23563
  element.removeEventListener(event, handler, false);
23489
23564
  }
23490
23565
  };
23491
- var Component = defineComponent({
23566
+ var Component$1 = defineComponent({
23492
23567
  name: "Slider",
23493
23568
  props: {
23494
23569
  modelValue: PropTypes.oneOfType([PropTypes.array, PropTypes.number]),
@@ -23934,7 +24009,260 @@ var Component = defineComponent({
23934
24009
  return this.renderDom();
23935
24010
  }
23936
24011
  });
23937
- const Slider = withInstall(Component);
24012
+ const Slider = withInstall(Component$1);
24013
+ var Component = defineComponent({
24014
+ name: "ResizeLayout",
24015
+ props: {
24016
+ placement: PropTypes.placement().def("left"),
24017
+ min: PropTypes.number.def(3),
24018
+ max: PropTypes.number.def(Infinity),
24019
+ triggerWidth: PropTypes.number.def(5),
24020
+ triggerOffset: PropTypes.number.def(3),
24021
+ initialDivide: PropTypes.oneOfType([String, Number]).def("20%"),
24022
+ immediate: PropTypes.bool,
24023
+ disabled: PropTypes.bool,
24024
+ collapsible: PropTypes.bool,
24025
+ autoMinimize: PropTypes.oneOfType([Boolean, Number]).def(false),
24026
+ border: PropTypes.bool.def(true)
24027
+ },
24028
+ emits: ["before-resize", "resizing", "after-resize", "collapse-change"],
24029
+ setup(props, {
24030
+ emit
24031
+ }) {
24032
+ const {
24033
+ placement,
24034
+ initialDivide,
24035
+ triggerOffset,
24036
+ triggerWidth,
24037
+ max: max2,
24038
+ min: min2,
24039
+ immediate,
24040
+ autoMinimize
24041
+ } = toRefs(props);
24042
+ const collapsed = ref(false);
24043
+ const asideContentVisible = ref(true);
24044
+ const minimized = ref(false);
24045
+ const limitMax = ref(null);
24046
+ const state = ref({});
24047
+ const bkResizeLayoutRef = ref(null);
24048
+ const resizeProxyRef = ref(null);
24049
+ const resizeMaskRef = ref(null);
24050
+ const asideRef = ref(null);
24051
+ const vertical = computed(() => ["left", "right"].includes(placement.value));
24052
+ const cssPropKey = computed(() => vertical.value ? "width" : "height");
24053
+ const asideStyle = computed(() => {
24054
+ let divide = initialDivide.value;
24055
+ if (typeof divide === "number") {
24056
+ divide = `${divide}px`;
24057
+ }
24058
+ return {
24059
+ [cssPropKey.value]: divide
24060
+ };
24061
+ });
24062
+ const triggerStyle = computed(() => {
24063
+ const style = {
24064
+ [`margin-${placement.value}`]: `${triggerOffset.value - triggerWidth.value}px`,
24065
+ [cssPropKey.value]: `${triggerWidth.value}px`
24066
+ };
24067
+ return style;
24068
+ });
24069
+ const parseAutoMinimize = computed(() => {
24070
+ if (autoMinimize.value) {
24071
+ return typeof autoMinimize.value === "boolean" ? 50 : autoMinimize.value;
24072
+ }
24073
+ return 0;
24074
+ });
24075
+ const setMaxLimit = () => {
24076
+ const rect = bkResizeLayoutRef.value.getBoundingClientRect();
24077
+ limitMax.value = vertical.value ? rect.width : rect.height;
24078
+ };
24079
+ const observer = new ResizeObserver(setMaxLimit);
24080
+ const updateResizeProxyStyle = () => {
24081
+ resizeProxyRef.value.style.visibility = "visible";
24082
+ switch (placement.value) {
24083
+ case "left":
24084
+ resizeProxyRef.value.style.inset = `0 auto auto ${state.value.aside.width}px`;
24085
+ break;
24086
+ case "right":
24087
+ resizeProxyRef.value.style.inset = `0 ${state.value.aside.width}px auto auto`;
24088
+ break;
24089
+ case "top":
24090
+ resizeProxyRef.value.style.inset = `${state.value.aside.height}px auto auto 0`;
24091
+ break;
24092
+ case "bottom":
24093
+ resizeProxyRef.value.style.inset = `auto auto ${state.value.aside.height}px 0`;
24094
+ break;
24095
+ }
24096
+ };
24097
+ const updateResizeMaskStyle = () => {
24098
+ resizeMaskRef.value.style.display = "block";
24099
+ resizeMaskRef.value.style.cursor = vertical.value ? "col-resize" : "row-resize";
24100
+ };
24101
+ const getRealValue = (current) => Math.min(max2.value, Math.max(min2.value, current), limitMax.value - triggerWidth.value);
24102
+ const handleMousedown = (event) => {
24103
+ emit("before-resize", event);
24104
+ const asideRect = asideRef.value.getBoundingClientRect();
24105
+ state.value = Object.freeze({
24106
+ mouse: {
24107
+ clientX: event.clientX,
24108
+ clientY: event.clientY
24109
+ },
24110
+ aside: {
24111
+ width: asideRect.width,
24112
+ height: asideRect.height
24113
+ }
24114
+ });
24115
+ updateResizeMaskStyle();
24116
+ if (!immediate.value) {
24117
+ updateResizeProxyStyle();
24118
+ }
24119
+ document.onselectstart = () => false;
24120
+ document.ondragstart = () => false;
24121
+ const resizingCallback = (value) => {
24122
+ emit("resizing", value);
24123
+ };
24124
+ const handleMouseMove = (event2) => {
24125
+ let delta;
24126
+ switch (placement.value) {
24127
+ case "top":
24128
+ delta = event2.clientY - state.value.mouse.clientY;
24129
+ break;
24130
+ case "right":
24131
+ delta = state.value.mouse.clientX - event2.clientX;
24132
+ break;
24133
+ case "bottom":
24134
+ delta = state.value.mouse.clientY - event2.clientY;
24135
+ break;
24136
+ case "left":
24137
+ delta = event2.clientX - state.value.mouse.clientX;
24138
+ }
24139
+ const current = state.value.aside[cssPropKey.value] + delta;
24140
+ const realValue = getRealValue(current) + triggerOffset.value;
24141
+ const pixel = `${realValue}px`;
24142
+ if (immediate.value) {
24143
+ asideRef.value.style[cssPropKey.value] = pixel;
24144
+ } else {
24145
+ resizeProxyRef.value.style[placement.value] = pixel;
24146
+ }
24147
+ resizingCallback(realValue);
24148
+ };
24149
+ const handleMouseUp = () => {
24150
+ resizeProxyRef.value.style.visibility = "hidden";
24151
+ resizeMaskRef.value.style.display = "none";
24152
+ document.removeEventListener("mousemove", handleMouseMove);
24153
+ document.removeEventListener("mouseup", handleMouseUp);
24154
+ document.onselectstart = null;
24155
+ document.ondragstart = null;
24156
+ nextTick(() => {
24157
+ setupAutoMinimize();
24158
+ emit("after-resize", parseFloat(resizeProxyRef.value.style[placement.value]));
24159
+ });
24160
+ if (immediate.value) {
24161
+ return false;
24162
+ }
24163
+ asideRef.value.style[cssPropKey.value] = resizeProxyRef.value.style[placement.value];
24164
+ };
24165
+ document.addEventListener("mousemove", handleMouseMove);
24166
+ document.addEventListener("mouseup", handleMouseUp);
24167
+ };
24168
+ const setupAutoMinimize = () => {
24169
+ if (!autoMinimize.value) {
24170
+ return false;
24171
+ }
24172
+ const asideRect = asideRef.value.getBoundingClientRect();
24173
+ minimized.value = collapsed.value = asideRect[cssPropKey.value] <= parseAutoMinimize.value;
24174
+ if (!minimized.value) {
24175
+ asideContentVisible.value = true;
24176
+ return false;
24177
+ }
24178
+ setupAsideAnimation();
24179
+ nextTick(() => {
24180
+ asideRef.value.setAttribute(`data-${cssPropKey.value}`, asideStyle.value[cssPropKey.value]);
24181
+ });
24182
+ };
24183
+ const setCollapse = (collapse2) => {
24184
+ collapsed.value = typeof collapse2 === "boolean" ? collapse2 : !collapsed.value;
24185
+ setupAsideAnimation();
24186
+ emit("collapse-change", collapsed.value);
24187
+ };
24188
+ const setupAsideAnimation = () => {
24189
+ const asideRect = asideRef.value.getBoundingClientRect();
24190
+ setupAsideListener(!collapsed.value);
24191
+ if (collapsed.value) {
24192
+ asideRef.value.setAttribute(`data-${cssPropKey.value}`, `${asideRect[cssPropKey.value]}px`);
24193
+ asideRef.value.style[cssPropKey.value] = "5px";
24194
+ } else {
24195
+ asideContentVisible.value = true;
24196
+ asideRef.value.style[cssPropKey.value] = asideRef.value.getAttribute(`data-${cssPropKey.value}`);
24197
+ }
24198
+ };
24199
+ const setupAsideListener = (visible) => {
24200
+ const removeClass2 = () => {
24201
+ asideContentVisible.value = visible;
24202
+ asideRef.value.style.transition = "";
24203
+ asideRef.value.removeEventListener("transitionend", removeClass2);
24204
+ };
24205
+ asideRef.value.addEventListener("transitionend", removeClass2);
24206
+ asideRef.value.style.transition = `${cssPropKey.value} cubic-bezier(0.4, 0, 0.2, 1) .3s`;
24207
+ };
24208
+ onMounted(() => {
24209
+ observer.observe(bkResizeLayoutRef.value);
24210
+ });
24211
+ onBeforeUnmount(() => {
24212
+ observer.unobserve(bkResizeLayoutRef.value);
24213
+ });
24214
+ return {
24215
+ collapsed,
24216
+ asideContentVisible,
24217
+ minimized,
24218
+ limitMax,
24219
+ state,
24220
+ vertical,
24221
+ cssPropKey,
24222
+ bkResizeLayoutRef,
24223
+ resizeProxyRef,
24224
+ resizeMaskRef,
24225
+ asideRef,
24226
+ triggerStyle,
24227
+ asideStyle,
24228
+ handleMousedown,
24229
+ setCollapse
24230
+ };
24231
+ },
24232
+ render() {
24233
+ var _a, _b, _c, _d, _e, _f;
24234
+ const bkResizeLayoutClass = ["bk-resize-layout", `bk-resize-layout-${this.placement}`, {
24235
+ "bk-resize-layout-collapsed": this.collapsed,
24236
+ "bk-resize-layout-border": this.border
24237
+ }];
24238
+ return createVNode("div", {
24239
+ "ref": "bkResizeLayoutRef",
24240
+ "class": bkResizeLayoutClass
24241
+ }, [createVNode("aside", {
24242
+ "class": "bk-resize-layout-aside",
24243
+ "ref": "asideRef",
24244
+ "style": this.asideStyle
24245
+ }, [withDirectives(createVNode("div", {
24246
+ "class": "bk-resize-layout-aside-content"
24247
+ }, [(_b = (_a = this.$slots).aside) == null ? void 0 : _b.call(_a)]), [[vShow, this.asideContentVisible]]), withDirectives(createVNode("i", {
24248
+ "class": "bk-resize-trigger",
24249
+ "style": this.triggerStyle,
24250
+ "onMousedown": withModifiers(this.handleMousedown, ["left"])
24251
+ }, null), [[vShow, !this.disabled && (!this.collapsed || this.autoMinimize)]]), withDirectives(createVNode("i", {
24252
+ "class": ["bk-resize-proxy", this.placement],
24253
+ "ref": "resizeProxyRef"
24254
+ }, null), [[vShow, !this.collapsed || this.autoMinimize]]), this.collapsible && (((_d = (_c = this.$slots)["collapse-trigger"]) == null ? void 0 : _d.call(_c)) || createVNode(angleLeft, {
24255
+ "class": "bk-resize-collapse",
24256
+ "onClick": this.setCollapse
24257
+ }, null))]), createVNode("main", {
24258
+ "class": "bk-resize-layout-main"
24259
+ }, [(_f = (_e = this.$slots).main) == null ? void 0 : _f.call(_e)]), createVNode("div", {
24260
+ "class": "bk-resize-mask",
24261
+ "ref": "resizeMaskRef"
24262
+ }, null)]);
24263
+ }
24264
+ });
24265
+ const BkResizeLayout = withInstall(Component);
23938
24266
  var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
23939
24267
  __proto__: null,
23940
24268
  Alert: BkAlert,
@@ -23982,7 +24310,8 @@ var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
23982
24310
  containerProps: BkContainer,
23983
24311
  Dropdown: BkDropdown,
23984
24312
  Cascader: BkCascader,
23985
- Slider
24313
+ Slider,
24314
+ ResizeLayout: BkResizeLayout
23986
24315
  }, Symbol.toStringTag, { value: "Module" }));
23987
24316
  const createInstall = (prefix = "Bk") => (app) => {
23988
24317
  const pre = app.config.globalProperties.bkUIPrefix || prefix;
@@ -24000,4 +24329,4 @@ var preset = {
24000
24329
  install: createInstall(),
24001
24330
  version: "0.0.1"
24002
24331
  };
24003
- export { BkAffix as Affix, BkAlert as Alert, BkAnimateNumber as AnimateNumber, BkBacktop as Backtop, BkBadge as Badge, BkBreadcrumb as Breadcrumb, BkButton as Button, BkCard as Card, BkCascader as Cascader, BkCheckbox as Checkbox, BkCollapse as Collapse, BkContainer as Container, BkDatePicker as DatePicker, BkDialog as Dialog, BkDivider as Divider, BkDropdown as Dropdown, BkException as Exception, BkFixedNavbar as FixedNavbar, BkForm as Form, BkInput as Input, BkLink as Link, BkLoading as Loading, BkMenu as Menu, Message, BkModal as Modal, Navigation, Notify, BkPagination as Pagination, BkPopover as Popover, BkProgress as Progress, BkRadio as Radio, BkRate as Rate, BkSelect as Select, BkSideslider as Sideslider, Slider, BkSteps as Steps, BkSwiper as Swiper, BkSwitcher as Switcher, BkTab as Tab, BkTable as Table, BkTag as Tag, TagInput, Transfer, BkTree as Tree, BkVirtualRender as VirtualRender, tooltips as bkTooltips, ClickOutside as clickoutside, BkContainer as containerProps, preset as default, mousewheel };
24332
+ export { BkAffix as Affix, BkAlert as Alert, BkAnimateNumber as AnimateNumber, BkBacktop as Backtop, BkBadge as Badge, BkBreadcrumb as Breadcrumb, BkButton as Button, BkCard as Card, BkCascader as Cascader, BkCheckbox as Checkbox, BkCollapse as Collapse, BkContainer as Container, BkDatePicker as DatePicker, BkDialog as Dialog, BkDivider as Divider, BkDropdown as Dropdown, BkException as Exception, BkFixedNavbar as FixedNavbar, BkForm as Form, BkInput as Input, BkLink as Link, BkLoading as Loading, BkMenu as Menu, Message, BkModal as Modal, Navigation, Notify, BkPagination as Pagination, BkPopover as Popover, BkProgress as Progress, BkRadio as Radio, BkRate as Rate, BkResizeLayout as ResizeLayout, BkSelect as Select, BkSideslider as Sideslider, Slider, BkSteps as Steps, BkSwiper as Swiper, BkSwitcher as Switcher, BkTab as Tab, BkTable as Table, BkTag as Tag, TagInput, Transfer, BkTree as Tree, BkVirtualRender as VirtualRender, tooltips as bkTooltips, ClickOutside as clickoutside, BkContainer as containerProps, preset as default, mousewheel };