jaxs 0.2.0 → 0.2.1

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.
@@ -0,0 +1,10 @@
1
+ describe('SVG rendering', () => {
2
+ beforeEach(() => {
3
+ cy.visit('http://localhost:1234/svg.html')
4
+ })
5
+
6
+ it('has the correct size because it is correctly setup as svg', () => {
7
+ cy.get('svg').invoke('outerWidth').should('be.eq', 24)
8
+ cy.get('svg').invoke('outerHeight').should('be.eq', 24)
9
+ })
10
+ })
@@ -654,6 +654,18 @@ var normalizeValueForKey = (object, key, defaultValue = "")=>{
654
654
  if (object[key] === undefined) return defaultValue;
655
655
  return object[key];
656
656
  };
657
+ // src/rendering/dom/svg.ts
658
+ var isSvgTag = (tagType)=>tagType === "svg";
659
+ var createSvgNode = (type, attributes, renderKit)=>{
660
+ const document = renderKit && renderKit.document || window.document;
661
+ const xmlns = "http://www.w3.org/2000/svg";
662
+ const node = document.createElementNS(xmlns, type, xmlns);
663
+ for(const key in attributes){
664
+ if (key === "__self" || key === "xmlns") continue;
665
+ node.setAttributeNS(null, key, attributes[key]);
666
+ }
667
+ return node;
668
+ };
657
669
  // src/rendering/templates/text.ts
658
670
  class TextTemplate {
659
671
  value;
@@ -697,13 +709,20 @@ var isTextNode = (child)=>{
697
709
  var textNode = (content)=>{
698
710
  return new TextTemplate(content);
699
711
  };
712
+ var withSvgFlag = (isSvg)=>(template)=>{
713
+ template && (template.isSvg = template.isSvg || isSvg);
714
+ return template;
715
+ };
700
716
  class Children {
701
717
  collection;
702
718
  parentElement;
703
- constructor(jsxChildren){
719
+ isSvg;
720
+ constructor(jsxChildren, isSvg = false){
704
721
  this.collection = ensureArray(jsxChildren);
705
722
  this.collection = this.collection.map(replaceTextNodes);
706
723
  this.collection = this.collection.flat();
724
+ this.collection = this.collection.map(withSvgFlag(isSvg));
725
+ this.isSvg = isSvg;
707
726
  }
708
727
  render(renderKit, parentElement) {
709
728
  this.parentElement = parentElement;
@@ -726,12 +745,15 @@ class Tag {
726
745
  events;
727
746
  attributes;
728
747
  children;
729
- constructor(tagType, combinedAttributes, children2){
748
+ isSvg;
749
+ constructor(tagType, combinedAttributes, children2, isSvg = false){
730
750
  this.type = tagType;
731
751
  const { events, attributes } = separateAttrsAndEvents(combinedAttributes);
732
752
  this.events = events;
733
753
  this.attributes = attributes;
734
- this.children = new Children(children2);
754
+ this.isSvg = isSvg || isSvgTag(this.type);
755
+ this.children = new Children(children2, this.isSvg);
756
+ console.log(this.type, this.isSvg);
735
757
  }
736
758
  render(renderKit) {
737
759
  const dom = this.generateDom(renderKit);
@@ -742,10 +764,24 @@ class Tag {
742
764
  ];
743
765
  }
744
766
  generateDom(renderKit) {
767
+ if (this.isSvg) {
768
+ console.log("rendering", this.type, "as svg");
769
+ return this.generateSvnDom(renderKit);
770
+ } else {
771
+ console.log("rendering", this.type, "as normal node");
772
+ return this.generateHtmlDom(renderKit);
773
+ }
774
+ }
775
+ generateHtmlDom(renderKit) {
745
776
  const node = createDecoratedNode(this.type, this.attributes, this.events, renderKit);
746
777
  node.__jsx = this.key();
747
778
  return node;
748
779
  }
780
+ generateSvnDom(renderKit) {
781
+ const node = createSvgNode(this.type, this.attributes, renderKit);
782
+ node.__jsx = this.key();
783
+ return node;
784
+ }
749
785
  key() {
750
786
  return this.attributes.key || this.source() || this.createKey();
751
787
  }
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAI,WAAW;AAAK,IAAI,WAAW;AAAK,IAAI,aAAa;AAAM,IAAI,eAAe;AAAmB,OAAO,MAAM,CAAC,aAAa,GAAG;AAAmB;AAEtJ,iJAAiJ,GACjJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,GACA,IAAI,aAAa;AACjB,IAAI,YAAY,OAAO,MAAM,CAAC,MAAM;AACpC,SAAS,OAAO,UAAU;IACxB,UAAU,IAAI,CAAC,IAAI,EAAE;IACrB,IAAI,CAAC,GAAG,GAAG;QACT,MAAM,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW;QACvC,kBAAkB,EAAE;QACpB,mBAAmB,EAAE;QACrB,QAAQ,SAAU,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,YAAa;QAChD;QACA,SAAS,SAAU,EAAE;YACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC9B;IACF;IACA,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG;AACtC;AACA,OAAO,MAAM,CAAC,MAAM,GAAG;AACvB,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC;AACzB,IAAI,cAAc,0BAA0B,KAAI,gBAAgB,mCAAmC,KAAI,eAAe,mCAAmC;AAEzJ,SAAS;IACP,OAAO,YAAa,CAAA,SAAS,QAAQ,CAAC,OAAO,CAAC,YAAY,IAAI,SAAS,QAAQ,GAAG,WAAU;AAC9F;AACA,SAAS;IACP,OAAO,YAAY,SAAS,IAAI;AAClC;AAEA,wCAAwC;AACxC,IAAI,SAAS,OAAO,MAAM,CAAC,MAAM;AACjC,IAAI,AAAC,CAAA,CAAC,UAAU,CAAC,OAAO,eAAe,AAAD,KAAM,OAAO,cAAc,aAAa;IAC5E,IAAI,WAAW;IACf,IAAI,OAAO;IACX,IAAI,WAAW,cAAc,SAAS,QAAQ,IAAI,YAAY,CAAC;QAAC;QAAa;QAAa;KAAU,CAAC,QAAQ,CAAC,YAAY,QAAQ;IAClI,IAAI;IACJ,IAAI;QACF,KAAK,IAAI,UAAU,WAAW,QAAQ,WAAY,CAAA,OAAO,MAAM,OAAO,EAAC,IAAK;IAC9E,EAAE,OAAO,KAAK;QACZ,IAAI,IAAI,OAAO,EACb,QAAQ,KAAK,CAAC,IAAI,OAAO;QAE3B,KAAK,CAAC;IACR;IAEA,wBAAwB;IACxB,IAAI,SAAS,OAAO,YAAY,cAAc,OAAO,WAAW,cAAc,OAAO,SAAS;IAE9F,oDAAoD;IACpD,0DAA0D;IAC1D,IAAI,oBAAoB;IACxB,IAAI;QACD,CAAA,GAAG,IAAG,EAAG;IACZ,EAAE,OAAO,KAAK;QACZ,oBAAoB,IAAI,KAAK,CAAC,QAAQ,CAAC;IACzC;IAEA,aAAa;IACb,GAAG,SAAS,GAAG,eAAgB,MAAM,wBAAwB,GAAzB;QAClC,gBAAgB,CAAC,EAAE,0BAA0B;QAC7C,iBAAiB,EAAE;QACnB,kBAAkB,EAAE;QACpB,IAAI,KAAK,eAAe,MAAK,KAAK,KAAK,CAAC,MAAM,IAAI;QAClD,IAAI,KAAK,IAAI,KAAK,UAAU;YAC1B,uCAAuC;YACvC,IAAI,OAAO,aAAa,aACtB;YAEF,IAAI,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,CAAA,QAAS,MAAM,OAAO,KAAK;YAE3D,oBAAoB;YACpB,IAAI,UAAU,OAAO,KAAK,CAAC,CAAA;gBACzB,OAAO,MAAM,IAAI,KAAK,SAAS,MAAM,IAAI,KAAK,QAAQ,eAAe,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,YAAY;YACvH;YACA,IAAI,SAAS;gBACX,QAAQ,KAAK;gBAEb,yEAAyE;gBACzE,IAAI,OAAO,WAAW,eAAe,OAAO,gBAAgB,aAC1D,OAAO,aAAa,CAAC,IAAI,YAAY;gBAEvC,MAAM,gBAAgB;gBAEtB,0BAA0B;gBAC1B,IAAI,kBAAkB,CAAC,EAAE,0BAA0B;gBACnD,IAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,MAAM,EAAE,IAAK;oBAC/C,IAAI,KAAK,eAAe,CAAC,EAAE,CAAC,EAAE;oBAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;wBACxB,WAAW,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE;wBAClC,eAAe,CAAC,GAAG,GAAG;oBACxB;gBACF;gBAEA,8FAA8F;gBAC9F,kBAAkB,CAAC;gBACnB,IAAK,IAAI,IAAI,GAAG,IAAI,eAAe,MAAM,EAAE,IAAK;oBAC9C,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC,EAAE;oBAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;wBACxB,UAAU,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE;wBAChC,eAAe,CAAC,GAAG,GAAG;oBACxB;gBACF;YACF,OAAO;QACT;QACA,IAAI,KAAK,IAAI,KAAK,SAAS;YACzB,+BAA+B;YAC/B,KAAK,IAAI,kBAAkB,KAAK,WAAW,CAAC,IAAI,CAAE;gBAChD,IAAI,QAAQ,eAAe,SAAS,GAAG,eAAe,SAAS,GAAG,eAAe,KAAK;gBACtF,QAAQ,KAAK,CAAC,4BAAkB,eAAe,OAAO,GAAG,OAAO,QAAQ,SAAS,eAAe,KAAK,CAAC,IAAI,CAAC;YAC7G;YACA,IAAI,OAAO,aAAa,aAAa;gBACnC,gCAAgC;gBAChC;gBACA,IAAI,UAAU,mBAAmB,KAAK,WAAW,CAAC,IAAI;gBACtD,aAAa;gBACb,SAAS,IAAI,CAAC,WAAW,CAAC;YAC5B;QACF;IACF;IACA,GAAG,OAAO,GAAG,SAAU,CAAC;QACtB,IAAI,EAAE,OAAO,EACX,QAAQ,KAAK,CAAC,EAAE,OAAO;IAE3B;IACA,GAAG,OAAO,GAAG;QACX,QAAQ,IAAI,CAAC;IACf;AACF;AACA,SAAS;IACP,IAAI,UAAU,SAAS,cAAc,CAAC;IACtC,IAAI,SAAS;QACX,QAAQ,MAAM;QACd,QAAQ,GAAG,CAAC;IACd;AACF;AACA,SAAS,mBAAmB,WAAW;IACrC,IAAI,UAAU,SAAS,aAAa,CAAC;IACrC,QAAQ,EAAE,GAAG;IACb,IAAI,YAAY;IAChB,KAAK,IAAI,cAAc,YAAa;QAClC,IAAI,QAAQ,WAAW,MAAM,CAAC,MAAM,GAAG,WAAW,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG;YAClE,OAAO,CAAC,EAAE,EAAE;sCACoB,EAAE,mBAAmB,MAAM,QAAQ,EAAE,2FAA2F,EAAE,MAAM,QAAQ,CAAC;AACvL,EAAE,MAAM,IAAI,CAAC,CAAC;QACV,GAAG,MAAM,WAAW,KAAK;QACzB,aAAa,CAAC;;;oBAGL,EAAE,WAAW,OAAO,CAAC;;aAErB,EAAE,MAAM;;UAEX,EAAE,WAAW,KAAK,CAAC,GAAG,CAAC,CAAA,OAAQ,uBAAa,OAAO,UAAU,IAAI,CAAC,IAAI;;QAExE,EAAE,WAAW,aAAa,GAAG,CAAC,8CAAuC,EAAE,WAAW,aAAa,CAAC,sCAAsC,CAAC,GAAG,GAAG;;IAEjJ,CAAC;IACH;IACA,aAAa;IACb,QAAQ,SAAS,GAAG;IACpB,OAAO;AACT;AACA,SAAS;IACP,IAAI,YAAY,UACd,SAAS,MAAM;SACV,IAAI,UAAU,OAAO,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,EAC1D,OAAO,OAAO,CAAC,MAAM;AAEzB;AACA,SAAS,WAAW,MAAM,EAAE,EAAE,EAAE,mCAAmC;IACjE,IAAI,UAAU,OAAO,OAAO;IAC5B,IAAI,CAAC,SACH,OAAO,EAAE;IAEX,IAAI,UAAU,EAAE;IAChB,IAAI,GAAG,GAAG;IACV,IAAK,KAAK,QACR,IAAK,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,CAAE;QACvB,MAAM,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACtB,IAAI,QAAQ,MAAM,MAAM,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,KAAK,IAC9D,QAAQ,IAAI,CAAC;YAAC;YAAQ;SAAE;IAE5B;IAEF,IAAI,OAAO,MAAM,EACf,UAAU,QAAQ,MAAM,CAAC,WAAW,OAAO,MAAM,EAAE;IAErD,OAAO;AACT;AACA,SAAS,WAAW,IAAI;IACtB,IAAI,OAAO,KAAK,YAAY,CAAC;IAC7B,IAAI,CAAC,MACH;IAEF,IAAI,UAAU,KAAK,SAAS;IAC5B,QAAQ,MAAM,GAAG;QACf,IAAI,KAAK,UAAU,KAAK,MACtB,aAAa;QACb,KAAK,UAAU,CAAC,WAAW,CAAC;IAEhC;IACA,QAAQ,YAAY,CAAC,QACrB,aAAa;IACb,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,KAAK,GAAG;IACnC,aAAa;IACb,KAAK,UAAU,CAAC,YAAY,CAAC,SAAS,KAAK,WAAW;AACxD;AACA,IAAI,aAAa;AACjB,SAAS;IACP,IAAI,YACF;IAEF,aAAa,WAAW;QACtB,IAAI,QAAQ,SAAS,gBAAgB,CAAC;QACtC,IAAK,IAAI,IAAI,GAAG,IAAI,MAAM,MAAM,EAAE,IAAK;YACrC,gCAAgC;YAChC,IAAI,KAAK,WAAW,MAAK,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC;YAC/C,IAAI,WAAW;YACf,IAAI,sBAAsB,aAAa,cAAc,IAAI,OAAO,mDAAmD,WAAW,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,WAAW,MAAM;YACzK,IAAI,WAAW,gBAAgB,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,MAAM,MAAM,KAAK,CAAC;YACrF,IAAI,CAAC,UACH,WAAW,KAAK,CAAC,EAAE;QAEvB;QACA,aAAa;IACf,GAAG;AACL;AACA,SAAS,YAAY,KAAK;IACxB,IAAI,MAAM,IAAI,KAAK,MAAM;QACvB,IAAI,OAAO,aAAa,aAAa;YACnC,IAAI,SAAS,SAAS,aAAa,CAAC;YACpC,OAAO,GAAG,GAAG,MAAM,GAAG,GAAG,QAAQ,KAAK,GAAG;YACzC,IAAI,MAAM,YAAY,KAAK,YACzB,OAAO,IAAI,GAAG;YAEhB,OAAO,IAAI,QAAQ,CAAC,SAAS;gBAC3B,IAAI;gBACJ,OAAO,MAAM,GAAG,IAAM,QAAQ;gBAC9B,OAAO,OAAO,GAAG;gBAChB,CAAA,iBAAiB,SAAS,IAAI,AAAD,MAAO,QAAQ,mBAAmB,KAAK,KAAK,eAAe,WAAW,CAAC;YACvG;QACF,OAAO,IAAI,OAAO,kBAAkB,YAAY;YAC9C,iBAAiB;YACjB,IAAI,MAAM,YAAY,KAAK,YACzB,OAAO,OAAmB,MAAM,GAAG,GAAG,QAAQ,KAAK,GAAG;iBAEtD,OAAO,IAAI,QAAQ,CAAC,SAAS;gBAC3B,IAAI;oBACF,cAA0B,MAAM,GAAG,GAAG,QAAQ,KAAK,GAAG;oBACtD;gBACF,EAAE,OAAO,KAAK;oBACZ,OAAO;gBACT;YACF;QAEJ;IACF;AACF;AACA,eAAe,gBAAgB,MAAM;IACnC,OAAO,eAAe,GAAG,OAAO,MAAM,CAAC;IACvC,IAAI;IACJ,IAAI;QACF,kEAAkE;QAClE,gEAAgE;QAChE,gEAAgE;QAChE,mDAAmD;QACnD,iDAAiD;QACjD,mDAAmD;QACnD,IAAI,CAAC,mBAAmB;YACtB,IAAI,WAAW,OAAO,GAAG,CAAC,CAAA;gBACxB,IAAI;gBACJ,OAAO,AAAC,CAAA,eAAe,YAAY,MAAK,MAAO,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,KAAK,CAAC,CAAA;oBAC3G,oBAAoB;oBACpB,IAAI,UAAU,OAAO,OAAO,IAAI,OAAO,OAAO,CAAC,WAAW,GAAG,gBAAgB,IAAI,KAAK,OAAO,4BAA4B,eAAe,kBAAkB,0BAA0B;wBAClL,OAAO,OAAO,CAAC,MAAM;wBACrB;oBACF;oBACA,MAAM;gBACR;YACF;YACA,kBAAkB,MAAM,QAAQ,GAAG,CAAC;QACtC;QACA,OAAO,OAAO,CAAC,SAAU,KAAK;YAC5B,SAAS,OAAO,MAAM,CAAC,IAAI,EAAE;QAC/B;IACF,SAAU;QACR,OAAO,OAAO,eAAe;QAC7B,IAAI,iBACF,gBAAgB,OAAO,CAAC,CAAA;YACtB,IAAI,QAAQ;gBACV,IAAI;gBACH,CAAA,kBAAkB,SAAS,IAAI,AAAD,MAAO,QAAQ,oBAAoB,KAAK,KAAK,gBAAgB,WAAW,CAAC;YAC1G;QACF;IAEJ;AACF;AACA,SAAS,SAAS,OAAO,kBAAkB,GAAnB,EAAuB,MAAM,cAAc,GAAf;IAClD,IAAI,UAAU,OAAO,OAAO;IAC5B,IAAI,CAAC,SACH;IAEF,IAAI,MAAM,IAAI,KAAK,OACjB;SACK,IAAI,MAAM,IAAI,KAAK,MAAM;QAC9B,IAAI,OAAO,MAAM,YAAY,CAAC,OAAO,aAAa,CAAC;QACnD,IAAI,MAAM;YACR,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;gBACrB,iEAAiE;gBACjE,oHAAoH;gBACpH,IAAI,UAAU,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBAClC,IAAK,IAAI,OAAO,QACd,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;oBAC5C,IAAI,KAAK,OAAO,CAAC,IAAI;oBACrB,IAAI,UAAU,WAAW,OAAO,MAAM,CAAC,IAAI,EAAE;oBAC7C,IAAI,QAAQ,MAAM,KAAK,GACrB,UAAU,OAAO,MAAM,CAAC,IAAI,EAAE;gBAElC;YAEJ;YACA,IAAI,mBAGF,AAFA,4DAA4D;YAC5D,+CAA+C;YAC9C,CAAA,GAAG,IAAG,EAAG,MAAM,MAAM;YAGxB,aAAa;YACb,IAAI,KAAK,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG;gBAAC;gBAAI;aAAK;QAChC,OAAO,IAAI,OAAO,MAAM,EACtB,SAAS,OAAO,MAAM,EAAE;IAE5B;AACF;AACA,SAAS,UAAU,MAAM,EAAE,EAAE;IAC3B,IAAI,UAAU,OAAO,OAAO;IAC5B,IAAI,CAAC,SACH;IAEF,IAAI,OAAO,CAAC,GAAG,EAAE;QACf,8EAA8E;QAC9E,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE;QACzB,IAAI,UAAU,EAAE;QAChB,IAAK,IAAI,OAAO,KAAM;YACpB,IAAI,UAAU,WAAW,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI;YACtD,IAAI,QAAQ,MAAM,KAAK,GACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI;QAE1B;QAEA,sGAAsG;QACtG,OAAO,OAAO,CAAC,GAAG;QAClB,OAAO,OAAO,KAAK,CAAC,GAAG;QAEvB,0BAA0B;QAC1B,QAAQ,OAAO,CAAC,CAAA;YACd,UAAU,OAAO,MAAM,CAAC,IAAI,EAAE;QAChC;IACF,OAAO,IAAI,OAAO,MAAM,EACtB,UAAU,OAAO,MAAM,EAAE;AAE7B;AACA,SAAS,eAAe,OAAO,kBAAkB,GAAnB,EAAuB,GAAG,WAAW,GAAZ,EAAgB,aAAa,uCAAuC,GAAxC;IACjF,IAAI,kBAAkB,QAAQ,IAAI,eAChC,OAAO;IAGT,uGAAuG;IACvG,IAAI,UAAU,WAAW,OAAO,MAAM,CAAC,IAAI,EAAE;IAC7C,IAAI,WAAW;IACf,MAAO,QAAQ,MAAM,GAAG,EAAG;QACzB,IAAI,IAAI,QAAQ,KAAK;QACrB,IAAI,IAAI,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,IAAI,GACF,+EAA+E;QAC/E,WAAW;aACN;YACL,yDAAyD;YACzD,IAAI,IAAI,WAAW,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;YAC3C,IAAI,EAAE,MAAM,KAAK,GAAG;gBAClB,kFAAkF;gBAClF,WAAW;gBACX;YACF;YACA,QAAQ,IAAI,IAAI;QAClB;IACF;IACA,OAAO;AACT;AACA,SAAS,kBAAkB,OAAO,kBAAkB,GAAnB,EAAuB,GAAG,WAAW,GAAZ,EAAgB,aAAa,uCAAuC,GAAxC;IACpF,IAAI,UAAU,OAAO,OAAO;IAC5B,IAAI,CAAC,SACH;IAEF,IAAI,gBAAgB,CAAC,YAAY,CAAC,OAAO,aAAa,CAAC,EAAE;QACvD,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,CAAC,OAAO,MAAM,EAChB,OAAO;QAET,OAAO,eAAe,OAAO,MAAM,EAAE,IAAI;IAC3C;IACA,IAAI,aAAa,CAAC,GAAG,EACnB,OAAO;IAET,aAAa,CAAC,GAAG,GAAG;IACpB,IAAI,SAAS,OAAO,KAAK,CAAC,GAAG;IAC7B,gBAAgB,IAAI,CAAC;QAAC;QAAQ;KAAG;IACjC,IAAI,CAAC,UAAU,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC/D,eAAe,IAAI,CAAC;YAAC;YAAQ;SAAG;QAChC,OAAO;IACT;AACF;AACA,SAAS,WAAW,OAAO,kBAAkB,GAAnB,EAAuB,GAAG,WAAW,GAAZ;IACjD,IAAI,SAAS,OAAO,KAAK,CAAC,GAAG;IAC7B,OAAO,OAAO,CAAC,GAAG,GAAG,CAAC;IACtB,IAAI,UAAU,OAAO,GAAG,EACtB,OAAO,GAAG,CAAC,IAAI,GAAG,OAAO,OAAO,CAAC,GAAG;IAEtC,IAAI,UAAU,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAC7D,OAAO,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAU,EAAE;QAC/C,GAAG,OAAO,OAAO,CAAC,GAAG;IACvB;IAEF,OAAO,OAAO,KAAK,CAAC,GAAG;AACzB;AACA,SAAS,UAAU,OAAO,kBAAkB,GAAnB,EAAuB,GAAG,WAAW,GAAZ;IAChD,sBAAsB;IACtB,OAAO;IAEP,6DAA6D;IAC7D,IAAI,SAAS,OAAO,KAAK,CAAC,GAAG;IAC7B,IAAI,UAAU,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAC5D,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAU,EAAE;QAC9C,IAAI,qBAAqB,GAAG;YAC1B,OAAO,WAAW,OAAO,MAAM,CAAC,IAAI,EAAE;QACxC;QACA,IAAI,sBAAsB,eAAe,MAAM,EAAE;YAC/C,mBAAmB,OAAO,CAAC,SAAU,CAAC;gBACpC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;YACvB;YAEA,+BAA+B;YAC/B,eAAe,IAAI,CAAC,KAAK,CAAC,gBAAgB;QAC5C;IACF;AAEJ;;;;;ACwoBA,2CACE;AADF,4CAEE;AAFF,gDAGE;AAHF,yCAIE;AAJF,+CAKE;AALF,+CAME;AANF,0CAOE;AAPF,2CAQE;AAhoCF,IAAI,YAAY,OAAO,cAAc;AACrC,IAAI,WAAW,CAAC,QAAQ;IACtB,IAAK,IAAI,QAAQ,IACf,UAAU,QAAQ,MAAM;QACtB,KAAK,GAAG,CAAC,KAAK;QACd,YAAY;QACZ,cAAc;QACd,KAAK,CAAC,WAAa,GAAG,CAAC,KAAK,GAAG,IAAM;IACvC;AACJ;AAEA,8BAA8B;AAC9B,IAAI,yBAAyB,CAAC,SAAS;IACrC,IAAK,MAAM,OAAO,WAAY;QAC5B,IAAI,QAAQ,UACV;QACF,IAAI,QAAQ,SACV,QAAQ,KAAK,GAAG,UAAU,CAAC,IAAI;aAE/B,QAAQ,YAAY,CAAC,KAAK,UAAU,CAAC,IAAI;IAE7C;AACF;AACA,IAAI,qBAAqB,CAAC,SAAS,QAAQ;IACzC,MAAM,YAAY,CAAC;IACnB,IAAK,MAAM,YAAY,OAAQ;QAC7B,MAAM,YAAY,MAAM,CAAC,SAAS;QAClC,MAAM,WAAW,CAAC,QAAU,QAAQ,WAAW;QAC/C,QAAQ,gBAAgB,CAAC,UAAU;QACnC,SAAS,CAAC,SAAS,GAAG;YACpB;YACA,UAAU;YACV;QACF;IACF;IACA,QAAQ,SAAS,GAAG;AACtB;AACA,IAAI,aAAa,CAAC,MAAM;IACtB,WAAW,YAAY,OAAO,QAAQ;IACtC,OAAO,SAAS,aAAa,CAAC;AAChC;AACA,IAAI,iBAAiB,CAAC,OAAO;IAC3B,WAAW,YAAY,OAAO,QAAQ;IACtC,OAAO,SAAS,cAAc,CAAC;AACjC;AACA,IAAI,sBAAsB,CAAC,MAAM,YAAY,QAAQ;IACnD,MAAM,MAAM,WAAW,MAAM,UAAU,QAAQ;IAC/C,uBAAuB,KAAK;IAC5B,mBAAmB,KAAK,QAAQ,UAAU,OAAO;IACjD,OAAO;AACT;AAEA,2CAA2C;AAC3C,IAAI,yBAAyB,CAAC,UAAU,eAAe,EAAE;IACvD,MAAM,aAAa,CAAC;IACpB,MAAM,SAAS,CAAC;IAChB,IAAK,MAAM,OAAO,SAAU;QAC1B,MAAM,QAAQ,QAAQ,CAAC,IAAI;QAC3B,IAAI,IAAI,KAAK,CAAC,WAAW;YACvB,MAAM,WAAW,IAAI,KAAK,CAAC,GAAG,WAAW;YACzC,MAAM,CAAC,SAAS,GAAG;QACrB,OACE,UAAU,CAAC,IAAI,GAAG,qBAAqB,UAAU,KAAK;IAE1D;IACA,OAAO;QACL;QACA;IACF;AACF;AACA,IAAI,uBAAuB,CAAC,QAAQ,KAAK,eAAe,EAAE;IACxD,IAAI,MAAM,CAAC,IAAI,KAAK,WAClB,OAAO;IACT,OAAO,MAAM,CAAC,IAAI;AACpB;AAEA,kCAAkC;AAClC,MAAM;IACJ,MAAM;IACN,YAAY,OAAO,CAAE;QACnB,IAAI,CAAC,KAAK,GAAG,QAAQ,QAAQ;IAC/B;IACA,OAAO,SAAS,EAAE;QAChB,MAAM,WAAW,eAAe,IAAI,CAAC,KAAK,EAAE,UAAU,QAAQ;QAC9D,IAAI,CAAC,UACH,OAAO,EAAE;QACX,SAAS,KAAK,GAAG;QACjB,OAAO;YAAC;SAAS;IACnB;AACF;AAEA,sCAAsC;AACtC,IAAI,cAAc,CAAC;IACjB,IAAI,MAAM,OAAO,CAAC,WAChB,OAAO,SAAS,IAAI;IAEtB,IAAI,CAAC,UACH,OAAO,EAAE;IAEX,OAAO;QAAC;KAAS;AACnB;AACA,IAAI,kBAAkB,CAAC,UAAU,WAAW,WAAW,EAAE,GAAK,SAAS,MAAM,CAAC,cAAc,YAAY,UAAU,IAAI;AACtH,IAAI,gBAAgB,CAAC,YAAc,CAAC,WAAW;QAC7C,IAAI,CAAC,MACH,OAAO;QACT,IAAI,MAAM,OAAO,CAAC,OAAO;YACvB,MAAM,MAAM,gBAAgB,MAAM,WAAW;YAC7C,OAAO;QACT;QACA,KAAK,MAAM,CAAC,WAAW,OAAO,CAAC,CAAC,WAAa,UAAU,IAAI,CAAC;QAC5D,OAAO;IACT;AACA,IAAI,mBAAmB,CAAC;IACtB,IAAI,WAAW,QACb,OAAO,SAAS;IAElB,OAAO;AACT;AACA,IAAI,aAAa,CAAC;IAChB,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU;AACvD;AACA,IAAI,WAAW,CAAC;IACd,OAAO,IAAI,aAAa;AAC1B;AAEA,MAAM;IACJ,WAAW;IACX,cAAc;IACd,YAAY,WAAW,CAAE;QACvB,IAAI,CAAC,UAAU,GAAG,YAAY;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;IACxC;IACA,OAAO,SAAS,EAAE,aAAa,EAAE;QAC/B,IAAI,CAAC,aAAa,GAAG;QACrB,MAAM,MAAM,IAAI,CAAC,WAAW,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC;QACpB,OAAO;IACT;IACA,YAAY,SAAS,EAAE;QACrB,OAAO,gBAAgB,IAAI,CAAC,UAAU,EAAE;IAC1C;IACA,eAAe,GAAG,EAAE;QAClB,IAAI,IAAI,CAAC,aAAa,KAAK,WACzB;QACF,MAAM,SAAS,IAAI,CAAC,aAAa;QACjC,IAAI,OAAO,CAAC,CAAC,OAAS,OAAO,WAAW,CAAC;IAC3C;AACF;AAEA,iCAAiC;AACjC,MAAM;IACJ,KAAK;IACL,OAAO;IACP,WAAW;IACX,SAAS;IACT,YAAY,OAAO,EAAE,kBAAkB,EAAE,SAAS,CAAE;QAClD,IAAI,CAAC,IAAI,GAAG;QACZ,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,uBAAuB;QACtD,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,UAAU,GAAG;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,SAAS;IAC/B;IACA,OAAO,SAAS,EAAE;QAChB,MAAM,MAAM,IAAI,CAAC,WAAW,CAAC;QAC7B,IAAI,CAAC,KACH,OAAO,EAAE;QACX,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW;QAChC,OAAO;YAAC;SAAI;IACd;IACA,YAAY,SAAS,EAAE;QACrB,MAAM,OAAO,oBAAoB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE;QAC1E,KAAK,KAAK,GAAG,IAAI,CAAC,GAAG;QACrB,OAAO;IACT;IACA,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,SAAS;IAC/D;IACA,SAAS;QACP,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC5B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ;YACvE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC;QACpD;IACF;IACA,YAAY;QACV,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG;QAC3D,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QACvE,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QACvE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;IAC1C;AACF;AAEA,aAAa;AACb,IAAI,sBAAsB,CAAC,eAAe,aAAe,iBAAiB,WAAW,QAAQ,IAAI,EAAE;AACnG,IAAI,oBAAoB,CAAC,iBAAiB;IACxC,MAAM,aAAa,mBAAmB,CAAC;IACvC,MAAM,YAAY,oBAAoB,eAAe;IACrD,WAAW,QAAQ,GAAG,WAAW,QAAQ,IAAI;IAC7C,OAAO;AACT;AACA,IAAI,MAAM,CAAC,MAAM,YAAY,GAAG;IAC9B,IAAI,OAAO,SAAS,UAClB,OAAO,IAAI,IAAI,MAAM,YAAY;IAEnC,OAAO,KAAK,kBAAkB,YAAY;AAC5C;AACA,IAAI,QAAQ,GAAG,CAAC,YAAY;IAC1B,MAAM,YAAY,oBAAoB,eAAe;IACrD,OAAO,IAAI,SAAS;AACtB;AACA,IAAI,cAAc;AAClB,kCAAkC;AAClC,MAAM;IACJ,SAAS;IACT,SAAS;IACT,UAAU;IACV,IAAI;IACJ,cAAc;IACd,YAAY,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAE;QACzC,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,SAAS,GAAG;QACjB,IAAI,CAAC,GAAG,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,GAAG;IACvB;IACA,gBAAgB,SAAS,EAAE;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;QAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;YAAE,GAAG,SAAS;YAAE,QAAQ,IAAI,CAAC,aAAa;QAAC;QAClE,IAAI,IAAI,CAAC,aAAa,EACpB,IAAI,CAAC,MAAM;IAEf;IACA,OAAO,SAAS,EAAE;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B;IACA,SAAS;QACP,IAAI,CAAC,aAAa,IAAK,CAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,EAAC;QACvD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QACvD;IACF;IACA,mBAAmB;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ;IAC5D;AACF;AACA,IAAI,SAAS,CAAC,UAAU,UAAU;IAChC,MAAM,OAAO,IAAI,KAAK,UAAU,UAAU;IAC1C,KAAK,eAAe,CAAC;IACrB,OAAO;AACT;AACA,4BAA4B;AAC5B,IAAI,YAAY,CAAC,QAAU,OAAO,UAAU;AAC5C,IAAI,WAAW,CAAC,QAAU,OAAO,UAAU;AAC3C,IAAI,WAAW,CAAC,QAAU,OAAO,UAAU;AAC3C,IAAI,UAAU,CAAC,QAAU,MAAM,OAAO,CAAC;AACvC,IAAI,WAAW,CAAC,QAAU,UAAU,QAAQ,CAAC,QAAQ,UAAU,OAAO,UAAU;AAEhF,wBAAwB;AACxB,IAAI,kBAAkB,CAAC,UAAU,WAAa,aAAa;AAC3D,IAAI,gBAAgB,CAAC,UAAU,WAAa,OAAO,IAAI,CAAC,UAAU,MAAM,KAAK,OAAO,IAAI,CAAC,UAAU,MAAM;AACzG,IAAI,kBAAkB,CAAC,UAAU;IAC/B,IAAI,CAAE,CAAA,SAAS,aAAa,SAAS,SAAQ,GAC3C,OAAO;IACT,IAAI,CAAC,cAAc,UAAU,WAC3B,OAAO;IACT,OAAO,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;QAC3B,MAAM,gBAAgB,QAAQ,CAAC,IAAI;QACnC,MAAM,gBAAgB,QAAQ,CAAC,IAAI;QACnC,OAAO,SAAS,eAAe;IACjC;AACF;AACA,IAAI,iBAAiB,CAAC,UAAU;IAC9B,IAAI,CAAE,CAAA,QAAQ,aAAa,QAAQ,SAAQ,GACzC,OAAO;IACT,IAAI,SAAS,MAAM,KAAK,SAAS,MAAM,EACrC,OAAO;IACT,SAAS,KAAK,CAAC,CAAC,eAAe;QAC7B,MAAM,gBAAgB,QAAQ,CAAC,MAAM;QACrC,OAAO,SAAS,eAAe;IACjC;AACF;AACA,IAAI,WAAW,CAAC,UAAU;IACxB,IAAI,SAAS,WACX,OAAO,gBAAgB,UAAU;IACnC,IAAI,QAAQ,WACV,OAAO,eAAe,UAAU;IAClC,OAAO,gBAAgB,UAAU;AACnC;AAEA,sBAAsB;AACtB,MAAM;IACJ,YAAY,CAAC,EAAE;IACf,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAE;QACnC,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,YAAY,GAAG;IACtB;IACA,OAAO,QAAQ,EAAE;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,WACf;QACF,IAAI,CAAC,KAAK,GAAG;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;IACvC;IACA,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY;IAC/B;IACA,QAAQ,QAAQ,EAAE;QAChB,OAAO,gBAAgB,IAAI,CAAC,KAAK,EAAE;IACrC;IACA,QAAQ;QACN,OAAO;YACL,MAAM,IAAI,CAAC,IAAI;YACf,OAAO,IAAI,CAAC,KAAK;QACnB;IACF;AACF;AAEA,MAAM,qBAAqB;IACzB,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK;IACzB;AACF;AAEA,MAAM,qBAAqB;AAC3B;AAEA,MAAM,oBAAoB;AAC1B;AAEA,MAAM,kBAAkB;IACtB,QAAQ,QAAQ,EAAE;QAChB,OAAO,eAAe,IAAI,CAAC,KAAK,EAAE;IACpC;IACA,KAAK,QAAQ,EAAE;QACb,MAAM,QAAQ;eAAI,IAAI,CAAC,KAAK;YAAE;SAAS;QACvC,IAAI,CAAC,MAAM,CAAC;IACd;AACF;AAEA,MAAM,oBAAoB;IACxB,QAAQ,QAAQ,EAAE;QAChB,OAAO,gBAAgB,IAAI,CAAC,KAAK,EAAE;IACrC;AACF;AAEA,eAAe;AACf,IAAI,cAAc;AAClB,IAAI,YAAY,CAAC,OAAS,CAAC,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC;AAElD,MAAM;IACJ,YAAY,OAAO,CAAE;QACnB,IAAI,CAAC,SAAS,GAAG;QACjB,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,EAAE;QAChB,IAAI,CAAC,WAAW,GAAG;IACrB;IACA,OAAO,IAAI,EAAE,KAAK,EAAE;QAClB,MAAM,aAAa,IAAI,CAAC,YAAY,CAAC;QACrC,MAAM,QAAQ,IAAI,WAAW;YAAE;YAAM;YAAO,QAAQ,IAAI;QAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,MAAM;IACtB;IACA,IAAI,KAAK,EAAE;QACT,MAAM,OAAO,MAAM,IAAI;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM;IACtB;IACA,SAAS,IAAI,EAAE;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;IAC1B;IACA,SAAS,IAAI,EAAE,KAAK,EAAE;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG;QACpB,IAAI,CAAC,KAAK,GAAG;IACf;IACA,aAAa,KAAK,EAAE;QAClB,IAAI,QAAQ,QACV,OAAO;QACT,IAAI,SAAS,QACX,OAAO;QACT,IAAI,SAAS,QACX,OAAO;QACT,IAAI,UAAU,QACZ,OAAO;QACT,IAAI,SAAS,QACX,OAAO;QACT,OAAO;IACT;IACA,QAAQ,KAAK,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EACnB,IAAI,CAAC,UAAU;IACnB;IACA,aAAa;QACX,MAAM,kBAAkB,EAAE;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;YAC7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;YACxB,IAAI,CAAC,gBAAgB,QAAQ,CAAC,OAAO;gBACnC,gBAAgB,IAAI,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE;YAC3C;QACF;QACA,IAAI,CAAC,MAAM,GAAG,EAAE;IAClB;IACA,YAAY,MAAM,EAAE;QAClB,IAAI,CAAC,WAAW,GAAG;QACnB,OAAO,IAAI;QACX,IAAI,CAAC,WAAW,GAAG;QACnB,IAAI,CAAC,UAAU;IACjB;IACA,QAAQ;QACN,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,aAAa;YACnD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;YACzC,OAAO;QACT,GAAG,CAAC;IACN;AACF;AAEA,eAAe;AACf,IAAI;AACH,CAAA,SAAS,mBAAmB;IAC3B,mBAAmB,CAAC,mBAAmB,CAAC,aAAa,GAAG,EAAE,GAAG;IAC7D,mBAAmB,CAAC,mBAAmB,CAAC,aAAa,GAAG,EAAE,GAAG;IAC7D,mBAAmB,CAAC,mBAAmB,CAAC,cAAc,GAAG,EAAE,GAAG;IAC9D,mBAAmB,CAAC,mBAAmB,CAAC,kBAAkB,GAAG,EAAE,GAAG;IAClE,mBAAmB,CAAC,mBAAmB,CAAC,eAAe,GAAG,EAAE,GAAG;IAC/D,mBAAmB,CAAC,mBAAmB,CAAC,kBAAkB,GAAG,EAAE,GAAG;IAClE,mBAAmB,CAAC,mBAAmB,CAAC,cAAc,GAAG,EAAE,GAAG;IAC9D,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,GAAG,EAAE,GAAG;IAC3D,mBAAmB,CAAC,mBAAmB,CAAC,cAAc,GAAG,EAAE,GAAG;IAC9D,mBAAmB,CAAC,mBAAmB,CAAC,cAAc,GAAG,EAAE,GAAG;IAC9D,mBAAmB,CAAC,mBAAmB,CAAC,aAAa,GAAG,GAAG,GAAG;AAChE,CAAA,EAAG,sBAAuB,CAAA,qBAAqB,CAAC,CAAA;AAEhD,gDAAgD;AAChD,IAAI,aAAa,CAAC,QAAQ,SAAY,CAAA;QACpC;QACA;QACA,MAAM,mBAAmB,UAAU;QACnC,MAAM,CAAC;IACT,CAAA;AACA,IAAI,cAAc,CAAC,QAAQ,SAAY,CAAA;QACrC;QACA;QACA,MAAM,mBAAmB,WAAW;QACpC,MAAM,CAAC;IACT,CAAA;AACA,IAAI,kBAAkB,CAAC,QAAQ,QAAQ,OAAU,CAAA;QAC/C;QACA;QACA;QACA,MAAM,mBAAmB,eAAe;IAC1C,CAAA;AACA,IAAI,eAAe,CAAC,QAAQ,QAAQ,OAAU,CAAA;QAC5C;QACA;QACA;QACA,MAAM,mBAAmB,YAAY;IACvC,CAAA;AACA,IAAI,kBAAkB,CAAC,QAAQ,QAAQ,OAAU,CAAA;QAC/C;QACA;QACA;QACA,MAAM,mBAAmB,eAAe;IAC1C,CAAA;AACA,IAAI,cAAc,CAAC,QAAQ,QAAQ,OAAU,CAAA;QAC3C;QACA;QACA;QACA,MAAM,mBAAmB,WAAW;IACtC,CAAA;AACA,IAAI,WAAW,CAAC,QAAQ,QAAQ,OAAU,CAAA;QACxC;QACA;QACA;QACA,MAAM,mBAAmB,QAAQ;IACnC,CAAA;AACA,IAAI,cAAc,CAAC,QAAQ,QAAQ,OAAU,CAAA;QAC3C;QACA;QACA;QACA,MAAM,mBAAmB,WAAW;IACtC,CAAA;AACA,IAAI,aAAa,CAAC,SAAY,CAAA;QAC5B;QACA,QAAQ;QACR,MAAM,mBAAmB,UAAU;QACnC,MAAM,CAAC;IACT,CAAA;AACA,IAAI,aAAa,CAAC,QAAQ,OAAU,CAAA;QAClC;QACA,QAAQ;QACR,MAAM,mBAAmB,UAAU;QACnC;IACF,CAAA;AACA,IAAI,cAAc,CAAC,QAAQ,QAAQ,OAAU,CAAA;QAC3C;QACA;QACA,MAAM,mBAAmB,WAAW;QACpC;IACF,CAAA;AAEA,6CAA6C;AAC7C,IAAI,YAAY;IAAE,OAAO;AAAG;AAE5B,MAAM;IACJ,aAAc;QACZ,IAAI,CAAC,GAAG,GAAG,CAAC;IACd;IACA,SAAS,IAAI,EAAE;QACb,KAAK,OAAO,CAAC,CAAC,SAAS;YACrB,MAAM,KAAK,QAAQ,KAAK;YACxB,IAAI,IAAI;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE;gBACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBAChB;oBACA,OAAO;gBACT;YACF;QACF;IACF;IACA,UAAU,OAAO,EAAE;QACjB,MAAM,KAAK,WAAW,QAAQ,KAAK;QACnC,IAAI,CAAC,IACH,OAAO;QACT,IAAI,CAAE,CAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,AAAD,GACtC,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK;IAC3B;IACA,MAAM,OAAO,EAAE;QACb,MAAM,KAAK,WAAW,QAAQ,KAAK;QACnC,IAAI,CAAE,CAAA,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,AAAD,GAC5C;QACF,MAAM,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,MAAM,CAAC,CAAC,YAAY;YACzC,IAAI,cAAc,OAAO,KAAK,SAC5B,WAAW,IAAI,CAAC;YAClB,OAAO;QACT,GAAG,EAAE;IACP;IACA,MAAM,OAAO,EAAE;QACb,MAAM,KAAK,WAAW,QAAQ,KAAK;QACnC,IAAI,CAAE,CAAA,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,AAAD,GACrB,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG;IAC/B;IACA,YAAY;QACV,OAAO,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI;IACrC;AACF;AACA,IAAI,cAAc,CAAC;IACjB,MAAM,MAAM,IAAI;IAChB,IAAI,QAAQ,CAAC;IACb,OAAO;AACT;AAEA,kDAAkD;AAClD,IAAI,uBAAuB,CAAC,QAAQ;IAClC,MAAM,eAAe,EAAE;IACvB,MAAM,mBAAmB,OAAO,UAAU;IAC1C,MAAM,eAAe,iBAAiB,MAAM;IAC5C,MAAM,mBAAmB,OAAO,UAAU;IAC1C,MAAM,eAAe,iBAAiB,MAAM;IAC5C,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAK,QAAQ,GAAE,QAAQ,cAAc,QAAS;QAC5C,oBAAoB;QACpB,MAAM,kBAAkB,iBAAiB,IAAI,CAAC;QAC9C,IAAI,CAAC,iBACH;QACF,IAAK,aAAa,GAAE,aAAa,cAAc,aAAc;YAC3D,MAAM,kBAAkB,iBAAiB,IAAI,CAAC;YAC9C,IAAI,CAAC,iBACH;YACF,IAAI,gBAAgB,IAAI,IAAI,gBAAgB,IAAI,EAAE;gBAChD,oBAAoB;gBACpB;YACF;QACF;QACA,IAAI,CAAC,mBACH,aAAa,IAAI,CAAC,gBAAgB,QAAQ,QAAQ;YAAE,MAAM,gBAAgB,IAAI;QAAC;aAC1E,IAAI,gBAAgB,KAAK,KAAK,kBAAkB,KAAK,EAC1D,aAAa,IAAI,CAAC,gBAAgB,QAAQ,QAAQ;YAChD,MAAM,gBAAgB,IAAI;YAC1B,OAAO,kBAAkB,KAAK;QAChC;IAEJ;IACA,IAAK,QAAQ,GAAE,QAAQ,cAAc,QAAS;QAC5C,oBAAoB;QACpB,MAAM,kBAAkB,iBAAiB,IAAI,CAAC;QAC9C,IAAI,CAAC,iBACH;QACF,IAAK,aAAa,GAAE,aAAa,cAAc,aAAc;YAC3D,MAAM,kBAAkB,iBAAiB,IAAI,CAAC;YAC9C,IAAI,CAAC,iBACH;YACF,IAAI,gBAAgB,IAAI,IAAI,gBAAgB,IAAI,EAAE;gBAChD,oBAAoB;gBACpB;YACF;QACF;QACA,IAAI,CAAC,mBACH,aAAa,IAAI,CAAC,aAAa,QAAQ,QAAQ;YAC7C,MAAM,gBAAgB,IAAI;YAC1B,OAAO,gBAAgB,KAAK;QAC9B;IAEJ;IACA,OAAO;AACT;AAEA,8CAA8C;AAC9C,IAAI,mBAAmB,CAAC,QAAQ;IAC9B,MAAM,eAAe,EAAE;IACvB,MAAM,kBAAkB,OAAO,SAAS;IACxC,MAAM,kBAAkB,OAAO,SAAS;IACxC,MAAM,kBAAkB,OAAO,IAAI,CAAC;IACpC,MAAM,kBAAkB,OAAO,IAAI,CAAC;IACpC,gBAAgB,OAAO,CAAC,CAAC;QACvB,MAAM,iBAAiB,eAAe,CAAC,SAAS;QAChD,MAAM,iBAAiB,eAAe,CAAC,SAAS;QAChD,IAAI,CAAC,gBACH,aAAa,IAAI,CAAC,YAAY,QAAQ,QAAQ;YAC5C,MAAM,eAAe,QAAQ;YAC7B,OAAO,eAAe,QAAQ;QAChC;aACK,IAAI,eAAe,QAAQ,KAAK,eAAe,QAAQ,EAC5D,aAAa,IAAI,CAAC,YAAY,QAAQ,QAAQ;YAC5C,MAAM;YACN,aAAa,eAAe,QAAQ;YACpC,aAAa,eAAe,QAAQ;QACtC;IAEJ;IACA,gBAAgB,OAAO,CAAC,CAAC;QACvB,MAAM,iBAAiB,eAAe,CAAC,SAAS;QAChD,MAAM,iBAAiB,eAAe,CAAC,SAAS;QAChD,IAAI,CAAC,gBACH,aAAa,IAAI,CAAC,SAAS,QAAQ,QAAQ;YACzC,MAAM,eAAe,QAAQ;YAC7B,OAAO,eAAe,QAAQ;QAChC;IAEJ;IACA,OAAO;AACT;AAEA,+CAA+C;AAC/C,IAAI,oBAAoB,CAAC,QAAQ;IAC/B,MAAM,wBAAwB,qBAAqB,QAAQ;IAC3D,MAAM,oBAAoB,iBAAiB,QAAQ;IACnD,MAAM,oBAAoB,qBAAqB,QAAQ;IACvD,OAAO,sBAAsB,MAAM,CAAC,mBAAmB,MAAM,CAAC;AAChE;AACA,IAAI,uBAAuB,CAAC,eAAe;IACzC,MAAM,eAAe,EAAE;IACvB,IAAI,cAAc,OAAO,KAAK,SAC5B,OAAO;IAET,MAAM,SAAS;IACf,MAAM,SAAS;IACf,IAAI,OAAO,KAAK,KAAK,OAAO,KAAK,EAC/B,aAAa,IAAI,CAAC,YAAY,QAAQ,QAAQ;QAAE,MAAM;QAAS,OAAO,OAAO,KAAK;IAAC;IAErF,OAAO;AACT;AAEA,4CAA4C;AAC5C,IAAI,iBAAiB,CAAC,QAAQ;IAC5B,IAAI,OAAO,WAAW,KAAK,OAAO,WAAW,EAC3C,OAAO;QAAC,WAAW,QAAQ;KAAQ;IAErC,OAAO,EAAE;AACX;AAEA,4CAA4C;AAC5C,IAAI;AACH,CAAA,SAAS,UAAU;IAClB,UAAU,CAAC,UAAU,CAAC,cAAc,GAAG,EAAE,GAAG;IAC5C,UAAU,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,GAAG;AAC3C,CAAA,EAAG,aAAc,CAAA,YAAY,CAAC,CAAA;AAC9B,IAAI,0BAA0B,CAAC,uBAAyB,CAAC,QAAQ;QAC/D,IAAI,eAAe,EAAE;QACrB,IAAI,OAAO,QAAQ,KAAK,UAAU,WAAW,EAAE;YAC7C,MAAM,gBAAgB;YACtB,MAAM,gBAAgB;YACtB,MAAM,mBAAmB,kBAAkB,eAAe;YAC1D,MAAM,uBAAuB,qBAAqB,cAAc,UAAU,EAAE,cAAc,UAAU,EAAE;YACtG,eAAe,iBAAiB,MAAM,CAAC;QACzC,OAAO,IAAI,OAAO,QAAQ,KAAK,UAAU,QAAQ,EAC/C,eAAe,eAAe,QAAQ;QAExC,OAAO;IACT;AAEA,mBAAmB;AACnB,IAAI,QAAQ,CAAC,GAAG,WAIhB;AAEA,gDAAgD;AAChD,IAAI,kBAAkB,CAAC,YAAY,YAAY;IAC7C,MAAM,mBAAmB,EAAE;IAC3B,MAAM,SAAS,aAAa,YAAY;IACxC,MAAM,YAAY,YAAY;IAC9B,MAAM,YAAY,YAAY;IAC9B,MAAM,mBAAmB,EAAE;IAC3B,IAAI,QAAQ;IACZ,MAAM,QAAQ,QAAQ,QAAS;QAC7B,MAAM,SAAS,UAAU,CAAC,MAAM;QAChC,MAAM,SAAS,UAAU,CAAC,MAAM;QAChC,MAAM,MAAM,cAAc,OAAO,UAAU,OAAO,KAAK,EAAE,UAAU,OAAO,KAAK;QAC/E,IAAI,UAAU,UAAU,KAAK,CAAC,SAAS;YACrC,MAAM,UAAU,OAAO,KAAK,EAAE,SAAS;YACvC,MAAM,iBAAiB,UAAU,SAAS,CAAC;YAC3C,UAAU,KAAK,CAAC;YAChB,IAAI,eAAe,OAAO,EAAE;gBAC1B,MAAM;gBACN,IAAI,eAAe,KAAK,KAAK,OAAO;oBAClC,MAAM,iBAAiB,eAAe,OAAO,CAAC,KAAK,EAAE;oBACrD,iBAAiB,IAAI,CAAC,WAAW,eAAe,OAAO,EAAE;wBAAE;wBAAQ;oBAAM;gBAC3E;gBACA,MAAM,4BAA4B,eAAe,OAAO,CAAC,KAAK,EAAE,eAAe,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,EAAE,OAAO,SAAS;gBAChI,iBAAiB,IAAI,CAAC;oBACpB,QAAQ,eAAe,OAAO;oBAC9B;gBACF;YACF,OAAO,IAAI,QAAQ;gBACjB,MAAM,oDAAoD,OAAO,KAAK;gBACtE,IAAI,UAAU,KAAK,CAAC,SAAS;oBAC3B,MAAM,UAAU,OAAO,KAAK,EAAE,MAAM;oBACpC,iBAAiB,IAAI,CAAC,WAAW,QAAQ;wBAAE;wBAAQ;oBAAM;gBAC3D,OAAO;oBACL,MAAM,aAAa,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAM;oBACrD,UAAU,KAAK,CAAC;oBAChB,iBAAiB,IAAI,CAAC,YAAY,QAAQ;gBAC5C;YACF,OAAO;gBACL,MAAM,wBAAwB,OAAO,KAAK;gBAC1C,iBAAiB,IAAI,CAAC,WAAW,QAAQ;oBAAE;oBAAQ;gBAAM;YAC3D;QACF,OAAO,IAAI,QAAQ;YACjB,MAAM,iBAAiB,UAAU,SAAS,CAAC;YAC3C,IAAI,eAAe,OAAO,EAAE;gBAC1B,MAAM,YAAY,OAAO,KAAK;gBAC9B,iBAAiB,IAAI,CAAC,WAAW;YACnC;QACF;IACF;IACA,UAAU,SAAS,GAAG,OAAO,CAAC,CAAC,EAAE,SAAS,QAAQ,EAAE;QAClD,MAAM,YAAY,SAAS,KAAK;QAChC,iBAAiB,IAAI,CAAC,WAAW;IACnC;IACA,MAAM,mBAAmB,iBAAiB,MAAM,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;QAC9E,OAAO,WAAW,MAAM,CAAC,eAAe,QAAQ;IAClD,GAAG,EAAE;IACL,OAAO,iBAAiB,MAAM,CAAC,kBAAkB,IAAI,CAAC;AACxD;AACA,IAAI,qBAAqB,CAAC,MAAM;IAC9B,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,EACxB,OAAO;IACT,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,EACxB,OAAO;IACT,OAAO;AACT;AACA,IAAI,eAAe,CAAC,YAAY;IAC9B,MAAM,eAAe,MAAM,IAAI,CAAC,YAAY,MAAM;IAClD,MAAM,eAAe,MAAM,IAAI,CAAC,YAAY,MAAM;IAClD,OAAO,eAAe,eAAe,eAAe;AACtD;AACA,IAAI,iBAAiB,wBAAwB;AAC7C,0BAA0B;AAC1B,IAAI,SAAS,CAAC,QAAQ,QAAQ;IAC5B,MAAM,eAAe,gBAAgB,QAAQ,QAAQ;IACrD,MAAM,gBAAgB,aAAa,GAAG,CAAC,CAAC,cAAgB,YAAY,IAAI;IACxE,aAAa,OAAO,CAAC,CAAC;QACpB,mBAAmB;IACrB;AACF;AACA,IAAI,qBAAqB,CAAC;IACxB,MAAM,YAAY,UAAU,CAAC,YAAY,IAAI,CAAC,IAAI;IAClD,UAAU;AACZ;AACA,IAAI,OAAO,CAAC,gBACZ;AACA,IAAI,cAAc,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IAC3B,OAAO,SAAS,GAAG,OAAO,WAAW;AACvC;AACA,IAAI,cAAc,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG;IACnB,OAAO,MAAM;IACb,MAAM,wBAAwB,OAAO,QAAQ;AAC/C;AACA,IAAI,cAAc,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IACzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAC1B,MAAM,UAAU,OAAO,UAAU,CAAC,MAAM;IACxC,IAAI,CAAC,SACH,OAAO,WAAW,CAAC;SACd,IAAI,WAAW,YAAY,QAChC,OAAO,YAAY,CAAC,QAAQ;AAEhC;AACA,IAAI,eAAe,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IAC3B,OAAO,WAAW,CAAC;IACnB,MAAM,yBAAyB,OAAO,QAAQ,EAAE,QAAQ,OAAO,QAAQ;IACvE,MAAM,UAAU,OAAO,aAAa;AACtC;AACA,IAAI,mBAAmB,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IACzB,MAAM,EAAE,IAAI,EAAE,GAAG;IACjB,OAAO,eAAe,CAAC;AACzB;AACA,IAAI,gBAAgB,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IACzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;IACxB,OAAO,YAAY,CAAC,MAAM;AAC5B;AACA,IAAI,mBAAmB,CAAC;IACtB,cAAc;AAChB;AACA,IAAI,eAAe,CAAC;IAClB,MAAM,OAAO,YAAY,IAAI;IAC7B,MAAM,SAAS,YAAY,MAAM;IACjC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;IACxB,OAAO,mBAAmB,CAAC,MAAM;AACnC;AACA,IAAI,YAAY,CAAC;IACf,MAAM,OAAO,YAAY,IAAI;IAC7B,MAAM,SAAS,YAAY,MAAM;IACjC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;IACxB,OAAO,gBAAgB,CAAC,MAAM;AAChC;AACA,IAAI,eAAe,CAAC;IAClB,MAAM,OAAO,YAAY,IAAI;IAC7B,MAAM,SAAS,YAAY,MAAM;IACjC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG;IAC3C,OAAO,mBAAmB,CAAC,MAAM;IACjC,OAAO,gBAAgB,CAAC,MAAM;AAChC;AACA,IAAI,eAAe,CAAC;IAClB,MAAM,OAAO,YAAY,IAAI;IAC7B,MAAM,SAAS,YAAY,MAAM;IACjC,MAAM,EAAE,KAAK,EAAE,GAAG;IAClB,OAAO,KAAK,GAAG;AACjB;AACA,IAAI,aAAa;IACf,CAAC,mBAAmB,UAAU,CAAC,EAAE;IACjC,CAAC,mBAAmB,UAAU,CAAC,EAAE;IACjC,CAAC,mBAAmB,UAAU,CAAC,EAAE;IACjC,CAAC,mBAAmB,WAAW,CAAC,EAAE;IAClC,CAAC,mBAAmB,eAAe,CAAC,EAAE;IACtC,CAAC,mBAAmB,YAAY,CAAC,EAAE;IACnC,CAAC,mBAAmB,eAAe,CAAC,EAAE;IACtC,CAAC,mBAAmB,WAAW,CAAC,EAAE;IAClC,CAAC,mBAAmB,QAAQ,CAAC,EAAE;IAC/B,CAAC,mBAAmB,WAAW,CAAC,EAAE;IAClC,CAAC,mBAAmB,WAAW,CAAC,EAAE;AACpC;AAEA,mCAAmC;AACnC,MAAM;IACJ,YAAY,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAE;QAChE,IAAI,CAAC,aAAa,GAAG;QACrB,IAAI,CAAC,SAAS,GAAG;QACjB,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG;QACrB,IAAI,CAAC,GAAG,GAAG,EAAE;IACf;IACA,OAAO,SAAS,EAAE;QAChB,IAAI,CAAC,aAAa,GAAG,UAAU,MAAM;QACrC,IAAI,CAAC,SAAS,GAAG;QACjB,IAAI,CAAC,oBAAoB;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG;IACjB;IACA,QAAQ,SAAS,EAAE;QACjB,MAAM,QAAQ;YACZ,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,CAAC,KAAK,GAAG;QAC5C;QACA,MAAM,WAAW,IAAI,CAAC,aAAa,CAAC;QACpC,MAAM,MAAM,CAAC,WAAW,EAAE,GAAG,SAAS,MAAM,CAAC;QAC7C,OAAO;IACT;IACA,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,EACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa;QAE/D,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;QAC1C,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,aAAa;QAC3C,IAAI,IAAI,CAAC,aAAa,EACpB,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU;IAEvD;IACA,uBAAuB;QACrB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,YAAY,IAAM,IAAI,CAAC,QAAQ;QACpE;IACF;AACF;AACA,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE;IAChD,gBAAgB,iBAAiB,EAAE;IACnC,OAAO,CAAC,cAAgB,IAAI,MAAM,UAAU,WAAW,eAAe;AACxE;AACA,oBAAoB;AACpB,MAAM;IACJ,UAAU;IACV,QAAQ;IACR,aAAc;QACZ,IAAI,CAAC,OAAO,GAAG,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,CAAC;IACpB;IACA,UAAU,UAAU,EAAE,QAAQ,EAAE;QAC9B,IAAI,CAAC,wBAAwB,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;IAClC;IACA,QAAQ,UAAU,EAAE,OAAO,EAAE;QAC3B,MAAM,YAAY,IAAI,CAAC,SAAS,CAAC,WAAW;QAC5C,IAAI,CAAC,WACH,OAAO;QACT,UAAU,OAAO,CAAC,CAAC;YACjB,SAAS,SAAS,IAAI,CAAC,gBAAgB,CAAC;QAC1C;QACA,OAAO;IACT;IACA,yBAAyB,UAAU,EAAE;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAC5B;QACF,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE;IACjC;IACA,iBAAiB,UAAU,EAAE;QAC3B,OAAO;YACL,WAAW;YACX,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;YAC/B,GAAG,IAAI,CAAC,OAAO;QACjB;IACF;IACA,mBAAmB,OAAO,EAAE;QAC1B,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,OAAO;QACZ;IACF;AACF;AACA,IAAI,YAAY;IACd,MAAM,MAAM,IAAI;IAChB,MAAM,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,MAAM,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC;IACrC,OAAO;QACL;QACA;QACA;IACF;AACF;AACA,+BAA+B;AAC/B,IAAI,mBAAmB,CAAC;IACtB,MAAM,QAAQ,IAAI,YAAY;QAC5B,MAAM;QACN,OAAO;YACL,MAAM;YACN,MAAM;YACN,OAAO;QACT;QACA,QAAQ;IACV;IACA,OAAO,GAAG,CAAC;AACb;AAEA,iCAAiC;AACjC,IAAI,sBAAsB;AAC1B,IAAI,mBAAmB;AACvB,IAAI,qBAAqB,CAAC;IACxB,OAAO,YAAY,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,WAAW;QAClE,IAAI,CAAC,YACH,OAAO;QACT,MAAM,OAAO,WAAW,KAAK,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QAC5B,OAAO;IACT,GAAG,CAAC;AACN;AACA,IAAI,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,MAAM,EAAE;IAC1D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,QAAQ;IAClD,MAAM,OAAO;IACb,MAAM,QAAQ,mBAAmB;IACjC,OAAO,KAAK,CAAC,MAAM,CAAC;QAClB;QACA;QACA;IACF;IACA,QAAQ,kBAAkB;QAAE;QAAM;QAAM;IAAM;AAChD;AACA,IAAI,eAAe,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,MAAM,EAAE,GAAG;IAC9C,iBAAiB;IACjB,OAAO,gBAAgB,CAAC,YAAY,IAAM,QAAQ;IAClD,UAAU,qBAAqB;AACjC;AAEA,6BAA6B;AAC7B,IAAI,WAAW,CAAC;IACd,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,EAC/B,OAAO;IACT,MAAO,CAAC,MAAM,YAAY,CAAC,QAAS;QAClC,QAAQ,MAAM,UAAU;QACxB,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,EAC/B,OAAO;IACX;IACA,OAAO,MAAM,YAAY,CAAC;AAC5B;AAEA,oCAAoC;AACpC,IAAI,sBAAsB;AAC1B,IAAI,8BAA8B;AAClC,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;IAC/B,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI;IACnC,QAAQ;AACV;AACA,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE;IACtC,IAAI,CAAC,YAAY,CAAC,SAAS,MAAM,EAC/B;IACF,SAAS,cAAc;IACvB,MAAM,OAAO,SAAS,SAAS,MAAM;IACrC,SAAS,MAAM;QAAE;IAAQ;AAC3B;AACA,IAAI,kBAAkB,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,GAAG;IACtB,UAAU,qBAAqB;IAC/B,UAAU,6BAA6B;AACzC;AAEA,aAAa;AACb,IAAI,WAAW,CAAC;IACd,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG;IACpC,IAAI,OAAO,GAAG;IACd,IAAI,SAAS,GAAG;IAChB,IAAI,GAAG,GAAG;AACZ;AACA,IAAI,aAAa,CAAC;IAChB,MAAM,SAAS,IAAI,MAAM,IAAI,OAAO;IACpC,IAAI,KAAK,GAAG;AACd;AACA,IAAI,oBAAoB,CAAC;IACvB,MAAM,EAAE,GAAG,EAAE,GAAG;IAChB,IAAI,kBAAkB,CAAC;QAAE,OAAO,IAAI,KAAK;IAAC;AAC5C;AACA,IAAI,iBAAiB,CAAC,KAAK;IACzB,IAAI,SAAS,GAAG;QACd,SAAS,IAAI,OAAO;QACpB,WAAW,IAAI,SAAS;QACxB,OAAO,IAAI,KAAK;QAChB;IACF;AACF;AACA,IAAI,eAAe,CAAC;IAClB,MAAM,UAAU,IAAI,OAAO;IAC3B,WAAW;QACT,QAAQ,qBAAqB;IAC/B,GAAG;AACL;AACA,IAAI,YAAY,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,UAAU;QACtB,OAAO,OAAO,UAAU,UAAU,IAAI,SAAS;IACjD;AACF;AACA,IAAI,YAAY,CAAC,WAAW,OAAO,QAAQ;IACzC,MAAM,MAAM,CAAC;IACb,SAAS;IACT,WAAW;IACX,kBAAkB;IAClB,eAAe,KAAK;IACpB,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,UAAU;IACV,OAAO;AACT;AACA,oBAAoB;AACpB,IAAI,qBAAqB,CAAC;AAC1B,SAAS,oBAAoB;IAC3B,iBAAiB;QAEb,OAAO;IAEX;IACA,cAAc;QAEV,OAAO;IAEX;AACF;AACA,6BAA6B;AAC7B,IAAI,uBAAuB,CAAC;AAC5B,SAAS,sBAAsB;IAC7B,QAAQ;QAEJ,OAAO;IAEX;IACA,QAAQ;QAEJ,OAAO;IAEX;IACA,IAAI;QAEA,OAAO;IAEX;AACF;AACA,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,SAAS,EAAE;IAC1C,IAAI,CAAC,WACH;IACF,OAAO,YAAY,YAAY,QAAQ,EAAE,MAAM;AACjD;AACA,IAAI,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,SAAS,EAAE;IAC9C,IAAI,WACF;IACF,OAAO,YAAY,YAAY,QAAQ,EAAE,MAAM;AACjD;AACA,IAAI,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,SAAS,EAAE;IAC9C,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG;IACzB,IAAI,WACF,OAAO,YAAY,YAAY,QAAQ,EAAE,MAAM;IACjD,OAAO,YAAY,YAAY,QAAQ,EAAE,MAAM;AACjD;AAEA,qBAAqB;AACrB,IAAI,OAAO,CAAC,EAAE,UAAU,SAAS,EAAE,GAAG,OAAO;IAC3C,OAAO,YAAY,KAAK;QACtB,GAAG,KAAK;QACR,SAAS;IACX,GAAG;AACL;AAEA,eAAe;AACf,IAAI,QAAQ;IACV,GAAG,oBAAoB;IACvB;AACF;;;ACvnCA,QAAQ,cAAc,GAAG,SAAU,CAAC;IAClC,OAAO,KAAK,EAAE,UAAU,GAAG,IAAI;QAAC,SAAS;IAAC;AAC5C;AAEA,QAAQ,iBAAiB,GAAG,SAAU,CAAC;IACrC,OAAO,cAAc,CAAC,GAAG,cAAc;QAAC,OAAO;IAAI;AACrD;AAEA,QAAQ,SAAS,GAAG,SAAU,MAAM,EAAE,IAAI;IACxC,OAAO,IAAI,CAAC,QAAQ,OAAO,CAAC,SAAU,GAAG;QACvC,IACE,QAAQ,aACR,QAAQ,gBACR,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,MAE3C;QAGF,OAAO,cAAc,CAAC,MAAM,KAAK;YAC/B,YAAY;YACZ,KAAK;gBACH,OAAO,MAAM,CAAC,IAAI;YACpB;QACF;IACF;IAEA,OAAO;AACT;AAEA,QAAQ,MAAM,GAAG,SAAU,IAAI,EAAE,QAAQ,EAAE,GAAG;IAC5C,OAAO,cAAc,CAAC,MAAM,UAAU;QACpC,YAAY;QACZ,KAAK;IACP;AACF","sources":["node_modules/@parcel/runtime-browser-hmr/lib/runtime-530046016dc577f1.js","dist/jaxs.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["var HMR_HOST = null;var HMR_PORT = null;var HMR_SECURE = false;var HMR_ENV_HASH = \"d6ea1d42532a7575\";module.bundle.HMR_BUNDLE_ID = \"64a677193bb9b3f5\";\"use strict\";\n\n/* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE, chrome, browser, __parcel__import__, __parcel__importScripts__, ServiceWorkerGlobalScope */\n/*::\nimport type {\n HMRAsset,\n HMRMessage,\n} from '@parcel/reporter-dev-server/src/HMRServer.js';\ninterface ParcelRequire {\n (string): mixed;\n cache: {|[string]: ParcelModule|};\n hotData: {|[string]: mixed|};\n Module: any;\n parent: ?ParcelRequire;\n isParcelRequire: true;\n modules: {|[string]: [Function, {|[string]: string|}]|};\n HMR_BUNDLE_ID: string;\n root: ParcelRequire;\n}\ninterface ParcelModule {\n hot: {|\n data: mixed,\n accept(cb: (Function) => void): void,\n dispose(cb: (mixed) => void): void,\n // accept(deps: Array<string> | string, cb: (Function) => void): void,\n // decline(): void,\n _acceptCallbacks: Array<(Function) => void>,\n _disposeCallbacks: Array<(mixed) => void>,\n |};\n}\ninterface ExtensionContext {\n runtime: {|\n reload(): void,\n getURL(url: string): string;\n getManifest(): {manifest_version: number, ...};\n |};\n}\ndeclare var module: {bundle: ParcelRequire, ...};\ndeclare var HMR_HOST: string;\ndeclare var HMR_PORT: string;\ndeclare var HMR_ENV_HASH: string;\ndeclare var HMR_SECURE: boolean;\ndeclare var chrome: ExtensionContext;\ndeclare var browser: ExtensionContext;\ndeclare var __parcel__import__: (string) => Promise<void>;\ndeclare var __parcel__importScripts__: (string) => Promise<void>;\ndeclare var globalThis: typeof self;\ndeclare var ServiceWorkerGlobalScope: Object;\n*/\nvar OVERLAY_ID = '__parcel__error__overlay__';\nvar OldModule = module.bundle.Module;\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData[moduleName],\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n module.bundle.hotData[moduleName] = undefined;\n}\nmodule.bundle.Module = Module;\nmodule.bundle.hotData = {};\nvar checkedAssets /*: {|[string]: boolean|} */, assetsToDispose /*: Array<[ParcelRequire, string]> */, assetsToAccept /*: Array<[ParcelRequire, string]> */;\n\nfunction getHostname() {\n return HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost');\n}\nfunction getPort() {\n return HMR_PORT || location.port;\n}\n\n// eslint-disable-next-line no-redeclare\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = getHostname();\n var port = getPort();\n var protocol = HMR_SECURE || location.protocol == 'https:' && !['localhost', '127.0.0.1', '0.0.0.0'].includes(hostname) ? 'wss' : 'ws';\n var ws;\n try {\n ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/');\n } catch (err) {\n if (err.message) {\n console.error(err.message);\n }\n ws = {};\n }\n\n // Web extension context\n var extCtx = typeof browser === 'undefined' ? typeof chrome === 'undefined' ? null : chrome : browser;\n\n // Safari doesn't support sourceURL in error stacks.\n // eval may also be disabled via CSP, so do a quick check.\n var supportsSourceURL = false;\n try {\n (0, eval)('throw new Error(\"test\"); //# sourceURL=test.js');\n } catch (err) {\n supportsSourceURL = err.stack.includes('test.js');\n }\n\n // $FlowFixMe\n ws.onmessage = async function (event /*: {data: string, ...} */) {\n checkedAssets = {} /*: {|[string]: boolean|} */;\n assetsToAccept = [];\n assetsToDispose = [];\n var data /*: HMRMessage */ = JSON.parse(event.data);\n if (data.type === 'update') {\n // Remove error overlay if there is one\n if (typeof document !== 'undefined') {\n removeErrorOverlay();\n }\n let assets = data.assets.filter(asset => asset.envHash === HMR_ENV_HASH);\n\n // Handle HMR Update\n let handled = assets.every(asset => {\n return asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle);\n });\n if (handled) {\n console.clear();\n\n // Dispatch custom event so other runtimes (e.g React Refresh) are aware.\n if (typeof window !== 'undefined' && typeof CustomEvent !== 'undefined') {\n window.dispatchEvent(new CustomEvent('parcelhmraccept'));\n }\n await hmrApplyUpdates(assets);\n\n // Dispose all old assets.\n let processedAssets = {} /*: {|[string]: boolean|} */;\n for (let i = 0; i < assetsToDispose.length; i++) {\n let id = assetsToDispose[i][1];\n if (!processedAssets[id]) {\n hmrDispose(assetsToDispose[i][0], id);\n processedAssets[id] = true;\n }\n }\n\n // Run accept callbacks. This will also re-execute other disposed assets in topological order.\n processedAssets = {};\n for (let i = 0; i < assetsToAccept.length; i++) {\n let id = assetsToAccept[i][1];\n if (!processedAssets[id]) {\n hmrAccept(assetsToAccept[i][0], id);\n processedAssets[id] = true;\n }\n }\n } else fullReload();\n }\n if (data.type === 'error') {\n // Log parcel errors to console\n for (let ansiDiagnostic of data.diagnostics.ansi) {\n let stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack;\n console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\\n' + stack + '\\n\\n' + ansiDiagnostic.hints.join('\\n'));\n }\n if (typeof document !== 'undefined') {\n // Render the fancy html overlay\n removeErrorOverlay();\n var overlay = createErrorOverlay(data.diagnostics.html);\n // $FlowFixMe\n document.body.appendChild(overlay);\n }\n }\n };\n ws.onerror = function (e) {\n if (e.message) {\n console.error(e.message);\n }\n };\n ws.onclose = function () {\n console.warn('[parcel] 🚨 Connection to the HMR server was lost');\n };\n}\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n console.log('[parcel] ✨ Error resolved');\n }\n}\nfunction createErrorOverlay(diagnostics) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n let errorHTML = '<div style=\"background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;\">';\n for (let diagnostic of diagnostics) {\n let stack = diagnostic.frames.length ? diagnostic.frames.reduce((p, frame) => {\n return `${p}\n<a href=\"/__parcel_launch_editor?file=${encodeURIComponent(frame.location)}\" style=\"text-decoration: underline; color: #888\" onclick=\"fetch(this.href); return false\">${frame.location}</a>\n${frame.code}`;\n }, '') : diagnostic.stack;\n errorHTML += `\n <div>\n <div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">\n 🚨 ${diagnostic.message}\n </div>\n <pre>${stack}</pre>\n <div>\n ${diagnostic.hints.map(hint => '<div>💡 ' + hint + '</div>').join('')}\n </div>\n ${diagnostic.documentation ? `<div>📝 <a style=\"color: violet\" href=\"${diagnostic.documentation}\" target=\"_blank\">Learn more</a></div>` : ''}\n </div>\n `;\n }\n errorHTML += '</div>';\n overlay.innerHTML = errorHTML;\n return overlay;\n}\nfunction fullReload() {\n if ('reload' in location) {\n location.reload();\n } else if (extCtx && extCtx.runtime && extCtx.runtime.reload) {\n extCtx.runtime.reload();\n }\n}\nfunction getParents(bundle, id) /*: Array<[ParcelRequire, string]> */{\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n var parents = [];\n var k, d, dep;\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {\n parents.push([bundle, k]);\n }\n }\n }\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n return parents;\n}\nfunction updateLink(link) {\n var href = link.getAttribute('href');\n if (!href) {\n return;\n }\n var newLink = link.cloneNode();\n newLink.onload = function () {\n if (link.parentNode !== null) {\n // $FlowFixMe\n link.parentNode.removeChild(link);\n }\n };\n newLink.setAttribute('href',\n // $FlowFixMe\n href.split('?')[0] + '?' + Date.now());\n // $FlowFixMe\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n // $FlowFixMe[incompatible-type]\n var href /*: string */ = links[i].getAttribute('href');\n var hostname = getHostname();\n var servedFromHMRServer = hostname === 'localhost' ? new RegExp('^(https?:\\\\/\\\\/(0.0.0.0|127.0.0.1)|localhost):' + getPort()).test(href) : href.indexOf(hostname + ':' + getPort());\n var absolute = /^https?:\\/\\//i.test(href) && href.indexOf(location.origin) !== 0 && !servedFromHMRServer;\n if (!absolute) {\n updateLink(links[i]);\n }\n }\n cssTimeout = null;\n }, 50);\n}\nfunction hmrDownload(asset) {\n if (asset.type === 'js') {\n if (typeof document !== 'undefined') {\n let script = document.createElement('script');\n script.src = asset.url + '?t=' + Date.now();\n if (asset.outputFormat === 'esmodule') {\n script.type = 'module';\n }\n return new Promise((resolve, reject) => {\n var _document$head;\n script.onload = () => resolve(script);\n script.onerror = reject;\n (_document$head = document.head) === null || _document$head === void 0 || _document$head.appendChild(script);\n });\n } else if (typeof importScripts === 'function') {\n // Worker scripts\n if (asset.outputFormat === 'esmodule') {\n return __parcel__import__(asset.url + '?t=' + Date.now());\n } else {\n return new Promise((resolve, reject) => {\n try {\n __parcel__importScripts__(asset.url + '?t=' + Date.now());\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n }\n }\n }\n}\nasync function hmrApplyUpdates(assets) {\n global.parcelHotUpdate = Object.create(null);\n let scriptsToRemove;\n try {\n // If sourceURL comments aren't supported in eval, we need to load\n // the update from the dev server over HTTP so that stack traces\n // are correct in errors/logs. This is much slower than eval, so\n // we only do it if needed (currently just Safari).\n // https://bugs.webkit.org/show_bug.cgi?id=137297\n // This path is also taken if a CSP disallows eval.\n if (!supportsSourceURL) {\n let promises = assets.map(asset => {\n var _hmrDownload;\n return (_hmrDownload = hmrDownload(asset)) === null || _hmrDownload === void 0 ? void 0 : _hmrDownload.catch(err => {\n // Web extension fix\n if (extCtx && extCtx.runtime && extCtx.runtime.getManifest().manifest_version == 3 && typeof ServiceWorkerGlobalScope != 'undefined' && global instanceof ServiceWorkerGlobalScope) {\n extCtx.runtime.reload();\n return;\n }\n throw err;\n });\n });\n scriptsToRemove = await Promise.all(promises);\n }\n assets.forEach(function (asset) {\n hmrApply(module.bundle.root, asset);\n });\n } finally {\n delete global.parcelHotUpdate;\n if (scriptsToRemove) {\n scriptsToRemove.forEach(script => {\n if (script) {\n var _document$head2;\n (_document$head2 = document.head) === null || _document$head2 === void 0 || _document$head2.removeChild(script);\n }\n });\n }\n }\n}\nfunction hmrApply(bundle /*: ParcelRequire */, asset /*: HMRAsset */) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (asset.type === 'css') {\n reloadCSS();\n } else if (asset.type === 'js') {\n let deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID];\n if (deps) {\n if (modules[asset.id]) {\n // Remove dependencies that are removed and will become orphaned.\n // This is necessary so that if the asset is added back again, the cache is gone, and we prevent a full page reload.\n let oldDeps = modules[asset.id][1];\n for (let dep in oldDeps) {\n if (!deps[dep] || deps[dep] !== oldDeps[dep]) {\n let id = oldDeps[dep];\n let parents = getParents(module.bundle.root, id);\n if (parents.length === 1) {\n hmrDelete(module.bundle.root, id);\n }\n }\n }\n }\n if (supportsSourceURL) {\n // Global eval. We would use `new Function` here but browser\n // support for source maps is better with eval.\n (0, eval)(asset.output);\n }\n\n // $FlowFixMe\n let fn = global.parcelHotUpdate[asset.id];\n modules[asset.id] = [fn, deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n }\n}\nfunction hmrDelete(bundle, id) {\n let modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (modules[id]) {\n // Collect dependencies that will become orphaned when this module is deleted.\n let deps = modules[id][1];\n let orphans = [];\n for (let dep in deps) {\n let parents = getParents(module.bundle.root, deps[dep]);\n if (parents.length === 1) {\n orphans.push(deps[dep]);\n }\n }\n\n // Delete the module. This must be done before deleting dependencies in case of circular dependencies.\n delete modules[id];\n delete bundle.cache[id];\n\n // Now delete the orphans.\n orphans.forEach(id => {\n hmrDelete(module.bundle.root, id);\n });\n } else if (bundle.parent) {\n hmrDelete(bundle.parent, id);\n }\n}\nfunction hmrAcceptCheck(bundle /*: ParcelRequire */, id /*: string */, depsByBundle /*: ?{ [string]: { [string]: string } }*/) {\n if (hmrAcceptCheckOne(bundle, id, depsByBundle)) {\n return true;\n }\n\n // Traverse parents breadth first. All possible ancestries must accept the HMR update, or we'll reload.\n let parents = getParents(module.bundle.root, id);\n let accepted = false;\n while (parents.length > 0) {\n let v = parents.shift();\n let a = hmrAcceptCheckOne(v[0], v[1], null);\n if (a) {\n // If this parent accepts, stop traversing upward, but still consider siblings.\n accepted = true;\n } else {\n // Otherwise, queue the parents in the next level upward.\n let p = getParents(module.bundle.root, v[1]);\n if (p.length === 0) {\n // If there are no parents, then we've reached an entry without accepting. Reload.\n accepted = false;\n break;\n }\n parents.push(...p);\n }\n }\n return accepted;\n}\nfunction hmrAcceptCheckOne(bundle /*: ParcelRequire */, id /*: string */, depsByBundle /*: ?{ [string]: { [string]: string } }*/) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) {\n // If we reached the root bundle without finding where the asset should go,\n // there's nothing to do. Mark as \"accepted\" so we don't reload the page.\n if (!bundle.parent) {\n return true;\n }\n return hmrAcceptCheck(bundle.parent, id, depsByBundle);\n }\n if (checkedAssets[id]) {\n return true;\n }\n checkedAssets[id] = true;\n var cached = bundle.cache[id];\n assetsToDispose.push([bundle, id]);\n if (!cached || cached.hot && cached.hot._acceptCallbacks.length) {\n assetsToAccept.push([bundle, id]);\n return true;\n }\n}\nfunction hmrDispose(bundle /*: ParcelRequire */, id /*: string */) {\n var cached = bundle.cache[id];\n bundle.hotData[id] = {};\n if (cached && cached.hot) {\n cached.hot.data = bundle.hotData[id];\n }\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData[id]);\n });\n }\n delete bundle.cache[id];\n}\nfunction hmrAccept(bundle /*: ParcelRequire */, id /*: string */) {\n // Execute the module.\n bundle(id);\n\n // Run the accept callbacks in the new version of the module.\n var cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n var assetsToAlsoAccept = cb(function () {\n return getParents(module.bundle.root, id);\n });\n if (assetsToAlsoAccept && assetsToAccept.length) {\n assetsToAlsoAccept.forEach(function (a) {\n hmrDispose(a[0], a[1]);\n });\n\n // $FlowFixMe[method-unbinding]\n assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept);\n }\n });\n }\n}","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\n\n// src/rendering/dom/create.ts\nvar setAttributesOnElement = (element, attributes) => {\n for (const key in attributes) {\n if (key === \"__self\")\n continue;\n if (key === \"value\") {\n element.value = attributes[key];\n } else {\n element.setAttribute(key, attributes[key]);\n }\n }\n};\nvar setEventsOnElement = (element, events, publish) => {\n const eventMaps = {};\n for (const domEvent in events) {\n const eventName = events[domEvent];\n const listener = (event) => publish(eventName, event);\n element.addEventListener(domEvent, listener);\n eventMaps[domEvent] = {\n domEvent,\n busEvent: eventName,\n listener\n };\n }\n element.eventMaps = eventMaps;\n};\nvar createNode = (type, document) => {\n document = document || window.document;\n return document.createElement(type);\n};\nvar createTextNode = (value, document) => {\n document = document || window.document;\n return document.createTextNode(value);\n};\nvar createDecoratedNode = (type, attributes, events, renderKit) => {\n const dom = createNode(type, renderKit.document);\n setAttributesOnElement(dom, attributes);\n setEventsOnElement(dom, events, renderKit.publish);\n return dom;\n};\n\n// src/rendering/dom/attributesAndEvents.ts\nvar separateAttrsAndEvents = (combined, defaultValue = \"\") => {\n const attributes = {};\n const events = {};\n for (const key in combined) {\n const value = combined[key];\n if (key.match(/^on.+/i)) {\n const eventKey = key.slice(2).toLowerCase();\n events[eventKey] = value;\n } else {\n attributes[key] = normalizeValueForKey(combined, key, defaultValue);\n }\n }\n return {\n attributes,\n events\n };\n};\nvar normalizeValueForKey = (object, key, defaultValue = \"\") => {\n if (object[key] === undefined)\n return defaultValue;\n return object[key];\n};\n\n// src/rendering/templates/text.ts\nclass TextTemplate {\n value;\n constructor(content) {\n this.value = content.toString();\n }\n render(renderKit) {\n const textNode = createTextNode(this.value, renderKit.document);\n if (!textNode)\n return [];\n textNode.__jsx = \"TextNode\";\n return [textNode];\n }\n}\n\n// src/rendering/templates/children.ts\nvar ensureArray = (children) => {\n if (Array.isArray(children)) {\n return children.flat();\n }\n if (!children) {\n return [];\n }\n return [children];\n};\nvar recursiveRender = (children, renderKit, rendered = []) => children.reduce(renderReducer(renderKit), rendered).flat();\nvar renderReducer = (renderKit) => (aggregate, view) => {\n if (!view)\n return aggregate;\n if (Array.isArray(view)) {\n const dom = recursiveRender(view, renderKit, aggregate);\n return dom;\n }\n view.render(renderKit).forEach((template) => aggregate.push(template));\n return aggregate;\n};\nvar replaceTextNodes = (child) => {\n if (isTextNode(child)) {\n return textNode(child);\n }\n return child;\n};\nvar isTextNode = (child) => {\n return typeof child === \"string\" || typeof child === \"number\";\n};\nvar textNode = (content) => {\n return new TextTemplate(content);\n};\n\nclass Children {\n collection;\n parentElement;\n constructor(jsxChildren) {\n this.collection = ensureArray(jsxChildren);\n this.collection = this.collection.map(replaceTextNodes);\n this.collection = this.collection.flat();\n }\n render(renderKit, parentElement) {\n this.parentElement = parentElement;\n const dom = this.generateDom(renderKit);\n this.attachToParent(dom);\n return dom;\n }\n generateDom(renderKit) {\n return recursiveRender(this.collection, renderKit);\n }\n attachToParent(dom) {\n if (this.parentElement === undefined)\n return;\n const parent = this.parentElement;\n dom.forEach((node) => parent.appendChild(node));\n }\n}\n\n// src/rendering/templates/tag.ts\nclass Tag {\n type;\n events;\n attributes;\n children;\n constructor(tagType, combinedAttributes, children2) {\n this.type = tagType;\n const { events, attributes } = separateAttrsAndEvents(combinedAttributes);\n this.events = events;\n this.attributes = attributes;\n this.children = new Children(children2);\n }\n render(renderKit) {\n const dom = this.generateDom(renderKit);\n if (!dom)\n return [];\n this.children.render(renderKit, dom);\n return [dom];\n }\n generateDom(renderKit) {\n const node = createDecoratedNode(this.type, this.attributes, this.events, renderKit);\n node.__jsx = this.key();\n return node;\n }\n key() {\n return this.attributes.key || this.source() || this.createKey();\n }\n source() {\n if (this.attributes.__source) {\n const { fileName, lineNumber, columnNumber } = this.attributes.__source;\n return `${fileName}:${lineNumber}:${columnNumber}`;\n }\n }\n createKey() {\n const id = this.attributes.id ? `#${this.attributes.id}` : \"\";\n const type = this.attributes.type ? `[type=${this.attributes.type}]` : \"\";\n const name = this.attributes.name ? `[name=${this.attributes.name}]` : \"\";\n return `${this.type}${id}${type}${name}`;\n }\n}\n\n// src/jsx.js\nvar ensureChildrenArray = (maybeChildren, attributes) => maybeChildren || attributes.children || [];\nvar packageAttributes = (maybeAttributes, maybeChildren) => {\n const attributes = maybeAttributes || {};\n const children3 = ensureChildrenArray(maybeChildren, attributes);\n attributes.children = attributes.children || children3;\n return attributes;\n};\nvar jsx = (type, attributes, ...children3) => {\n if (typeof type === \"string\") {\n return new Tag(type, attributes, children3);\n }\n return type(packageAttributes(attributes, children3));\n};\njsx.fragment = (attributes, maybeChildren) => {\n const children3 = ensureChildrenArray(maybeChildren, attributes);\n return new Children(children3);\n};\nvar jsx_default = jsx;\n// src/rendering/templates/root.ts\nclass Root {\n template;\n selector;\n renderKit;\n dom;\n parentElement;\n constructor(template, selector, renderKit) {\n this.template = template;\n this.selector = selector;\n this.renderKit = renderKit;\n this.dom = [];\n this.parentElement = null;\n }\n renderAndAttach(renderKit) {\n this.parentElement = this.getParentElement();\n this.dom = this.render({ ...renderKit, parent: this.parentElement });\n if (this.parentElement) {\n this.attach();\n }\n }\n render(renderKit) {\n return this.template.render(renderKit);\n }\n attach() {\n this.parentElement && (this.parentElement.innerHTML = \"\");\n this.dom.forEach((element) => {\n this.parentElement && this.parentElement.appendChild(element);\n });\n }\n getParentElement() {\n return this.renderKit.document.querySelector(this.selector);\n }\n}\nvar render = (template, selector, renderKit) => {\n const root = new Root(template, selector, renderKit);\n root.renderAndAttach(renderKit);\n return root;\n};\n// src/state/testingTypes.js\nvar isBoolean = (value) => typeof value === \"boolean\";\nvar isNumber = (value) => typeof value === \"number\";\nvar isString = (value) => typeof value === \"string\";\nvar isArray = (value) => Array.isArray(value);\nvar isObject = (value) => value !== null && !isArray(value) && typeof value === \"object\";\n\n// src/state/equality.js\nvar areElementEqual = (oldValue, newValue) => oldValue === newValue;\nvar keyLengthSame = (oldValue, newValue) => Object.keys(oldValue).length === Object.keys(newValue).length;\nvar areObjectsEqual = (oldValue, newValue) => {\n if (!(isObject(oldValue) && isObject(newValue)))\n return false;\n if (!keyLengthSame(oldValue, newValue))\n return false;\n Object.keys(oldValue).every((key) => {\n const oldInnerValue = oldValue[key];\n const newInnerValue = newValue[key];\n return areEqual(oldInnerValue, newInnerValue);\n });\n};\nvar areArraysEqual = (oldValue, newValue) => {\n if (!(isArray(oldValue) && isArray(newValue)))\n return false;\n if (oldValue.length !== newValue.length)\n return false;\n oldValue.every((oldInnerValue, index) => {\n const newInnerValue = newValue[index];\n return areEqual(oldInnerValue, newInnerValue);\n });\n};\nvar areEqual = (oldValue, newValue) => {\n if (isObject(oldValue))\n return areObjectsEqual(oldValue, newValue);\n if (isArray(oldValue))\n return areArraysEqual(oldValue, newValue);\n return areElementEqual(oldValue, newValue);\n};\n\n// src/state/stores.js\nclass GeneralStore {\n nullEvent = {};\n constructor({ name, value, parent }) {\n this.name = name;\n this.value = value;\n this.parent = parent;\n this.initialState = value;\n }\n update(newValue) {\n if (this.isEqual(newValue))\n return;\n this.value = newValue;\n return this.parent.publish(this.event());\n }\n reset() {\n this.update(this.initialState);\n }\n isEqual(newValue) {\n return areElementEqual(this.value, newValue);\n }\n event() {\n return {\n name: this.name,\n value: this.value\n };\n }\n}\n\nclass BooleanStore extends GeneralStore {\n toggle() {\n this.update(!this.value);\n }\n}\n\nclass NumericStore extends GeneralStore {\n}\n\nclass StringStore extends GeneralStore {\n}\n\nclass ListStore extends GeneralStore {\n isEqual(newValue) {\n return areArraysEqual(this.value, newValue);\n }\n push(newValue) {\n const value = [...this.value, newValue];\n this.update(value);\n }\n}\n\nclass RecordStore extends GeneralStore {\n isEqual(newValue) {\n return areObjectsEqual(this.value, newValue);\n }\n}\n\n// src/state.js\nvar eventPrefix = \"state-change\";\nvar eventName = (name) => `${eventPrefix}:${name}`;\n\nclass State {\n constructor(publish) {\n this.publisher = publish;\n this.stores = {};\n this.events = [];\n this.transacting = false;\n }\n create(name, value) {\n const StoreClass = this.storeTypeFor(value);\n const store = new StoreClass({ name, value, parent: this });\n this.addStore(name, store);\n }\n add(store) {\n const name = store.name;\n this.addStore(name, store);\n }\n getStore(name) {\n return this.stores[name];\n }\n addStore(name, store) {\n this.stores[name] = store;\n this[name] = store;\n }\n storeTypeFor(value) {\n if (isArray(value))\n return ListStore;\n if (isObject(value))\n return RecordStore;\n if (isNumber(value))\n return NumericStore;\n if (isBoolean(value))\n return BooleanStore;\n if (isString(value))\n return StringStore;\n return GeneralStore;\n }\n publish(event) {\n this.events.push(event);\n if (!this.transacting)\n this.publishAll();\n }\n publishAll() {\n const publishedStores = [];\n this.events.reverse().forEach((event) => {\n const { name, value } = event;\n if (!publishedStores.includes(name)) {\n publishedStores.push(name);\n this.publisher(`${eventPrefix}:${name}`, value);\n }\n });\n this.events = [];\n }\n transaction(setter) {\n this.transacting = true;\n setter(this);\n this.transacting = false;\n this.publishAll();\n }\n value() {\n return Object.keys(this.stores).reduce((valueObject, key) => {\n valueObject[key] = this.stores[key].value;\n return valueObject;\n }, {});\n }\n}\n\n// src/types.ts\nvar ChangeInstructions;\n(function(ChangeInstructions2) {\n ChangeInstructions2[ChangeInstructions2[\"removeNode\"] = 0] = \"removeNode\";\n ChangeInstructions2[ChangeInstructions2[\"insertNode\"] = 1] = \"insertNode\";\n ChangeInstructions2[ChangeInstructions2[\"replaceNode\"] = 2] = \"replaceNode\";\n ChangeInstructions2[ChangeInstructions2[\"removeAttribute\"] = 3] = \"removeAttribute\";\n ChangeInstructions2[ChangeInstructions2[\"addAttribute\"] = 4] = \"addAttribute\";\n ChangeInstructions2[ChangeInstructions2[\"updateAttribute\"] = 5] = \"updateAttribute\";\n ChangeInstructions2[ChangeInstructions2[\"removeEvent\"] = 6] = \"removeEvent\";\n ChangeInstructions2[ChangeInstructions2[\"addEvent\"] = 7] = \"addEvent\";\n ChangeInstructions2[ChangeInstructions2[\"updateEvent\"] = 8] = \"updateEvent\";\n ChangeInstructions2[ChangeInstructions2[\"changeValue\"] = 9] = \"changeValue\";\n ChangeInstructions2[ChangeInstructions2[\"changeText\"] = 10] = \"changeText\";\n})(ChangeInstructions || (ChangeInstructions = {}));\n\n// src/rendering/change/instructions/generate.ts\nvar changeText = (source, target) => ({\n source,\n target,\n type: ChangeInstructions.changeText,\n data: {}\n});\nvar replaceNode = (source, target) => ({\n source,\n target,\n type: ChangeInstructions.replaceNode,\n data: {}\n});\nvar removeAttribute = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.removeAttribute\n});\nvar addAttribute = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.addAttribute\n});\nvar updateAttribute = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.updateAttribute\n});\nvar removeEvent = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.removeEvent\n});\nvar addEvent = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.addEvent\n});\nvar updateEvent = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.updateEvent\n});\nvar removeNode = (source) => ({\n source,\n target: source,\n type: ChangeInstructions.removeNode,\n data: {}\n});\nvar insertNode = (target, data) => ({\n target,\n source: target,\n type: ChangeInstructions.insertNode,\n data\n});\nvar changeValue = (source, target, data) => ({\n source,\n target,\n type: ChangeInstructions.changeValue,\n data\n});\n\n// src/rendering/change/instructions/idMap.js\nvar nullMatch = { index: -1 };\n\nclass IdMap {\n constructor() {\n this.map = {};\n }\n populate(list) {\n list.forEach((element, i) => {\n const id = element.__jsx;\n if (id) {\n this.map[id] = this.map[id] || [];\n this.map[id].push({\n element,\n index: i\n });\n }\n });\n }\n pullMatch(element) {\n const id = element && element.__jsx;\n if (!id)\n return nullMatch;\n if (!(this.map[id] && this.map[id].length))\n return nullMatch;\n return this.map[id].shift();\n }\n clear(element) {\n const id = element && element.__jsx;\n if (!(id && this.map[id] && this.map[id].length))\n return;\n const matches = this.map[id];\n this.map[id] = matches.reduce((collection, possibleMatch) => {\n if (possibleMatch.element !== element)\n collection.push(possibleMatch);\n return collection;\n }, []);\n }\n check(element) {\n const id = element && element.__jsx;\n if (!(id && this.map[id]))\n return false;\n return this.map[id].length > 0;\n }\n remaining() {\n return Object.values(this.map).flat();\n }\n}\nvar createIdMap = (list) => {\n const map = new IdMap;\n map.populate(list);\n return map;\n};\n\n// src/rendering/change/instructions/attributes.ts\nvar compileForAttributes = (source, target) => {\n const instructions = [];\n const sourceAttributes = source.attributes;\n const sourceLength = sourceAttributes.length;\n const targetAttributes = target.attributes;\n const targetLength = targetAttributes.length;\n let index;\n let innerIndex;\n let matchingAttribute;\n for (index = 0;index < sourceLength; index++) {\n matchingAttribute = null;\n const sourceAttribute = sourceAttributes.item(index);\n if (!sourceAttribute)\n continue;\n for (innerIndex = 0;innerIndex < targetLength; innerIndex++) {\n const targetAttribute = targetAttributes.item(innerIndex);\n if (!targetAttribute)\n continue;\n if (sourceAttribute.name == targetAttribute.name) {\n matchingAttribute = targetAttribute;\n break;\n }\n }\n if (!matchingAttribute) {\n instructions.push(removeAttribute(source, target, { name: sourceAttribute.name }));\n } else if (sourceAttribute.value !== matchingAttribute.value) {\n instructions.push(updateAttribute(source, target, {\n name: sourceAttribute.name,\n value: matchingAttribute.value\n }));\n }\n }\n for (index = 0;index < targetLength; index++) {\n matchingAttribute = null;\n const targetAttribute = targetAttributes.item(index);\n if (!targetAttribute)\n continue;\n for (innerIndex = 0;innerIndex < sourceLength; innerIndex++) {\n const sourceAttribute = sourceAttributes.item(innerIndex);\n if (!sourceAttribute)\n continue;\n if (sourceAttribute.name == targetAttribute.name) {\n matchingAttribute = sourceAttribute;\n break;\n }\n }\n if (!matchingAttribute) {\n instructions.push(addAttribute(source, target, {\n name: targetAttribute.name,\n value: targetAttribute.value\n }));\n }\n }\n return instructions;\n};\n\n// src/rendering/change/instructions/events.ts\nvar compileForEvents = (source, target) => {\n const instructions = [];\n const sourceEventMaps = source.eventMaps;\n const targetEventMaps = target.eventMaps;\n const sourceDomEvents = Object.keys(sourceEventMaps);\n const targetDomEvents = Object.keys(targetEventMaps);\n sourceDomEvents.forEach((domEvent) => {\n const sourceEventMap = sourceEventMaps[domEvent];\n const targetEventMap = targetEventMaps[domEvent];\n if (!targetEventMap) {\n instructions.push(removeEvent(source, target, {\n name: sourceEventMap.domEvent,\n value: sourceEventMap.listener\n }));\n } else if (targetEventMap.busEvent !== sourceEventMap.busEvent) {\n instructions.push(updateEvent(source, target, {\n name: domEvent,\n targetValue: targetEventMap.listener,\n sourceValue: sourceEventMap.listener\n }));\n }\n });\n targetDomEvents.forEach((domEvent) => {\n const sourceEventMap = sourceEventMaps[domEvent];\n const targetEventMap = targetEventMaps[domEvent];\n if (!sourceEventMap) {\n instructions.push(addEvent(source, target, {\n name: targetEventMap.domEvent,\n value: targetEventMap.listener\n }));\n }\n });\n return instructions;\n};\n\n// src/rendering/change/instructions/element.ts\nvar compileForElement = (source, target) => {\n const attributeInstructions = compileForAttributes(source, target);\n const eventInstructions = compileForEvents(source, target);\n const valueInstructions = compileForInputValue(source, target);\n return attributeInstructions.concat(eventInstructions).concat(valueInstructions);\n};\nvar compileForInputValue = (sourceElement, targetElement) => {\n const instructions = [];\n if (sourceElement.tagName !== \"INPUT\") {\n return instructions;\n }\n const source = sourceElement;\n const target = targetElement;\n if (source.value !== target.value) {\n instructions.push(changeValue(source, target, { name: \"value\", value: target.value }));\n }\n return instructions;\n};\n\n// src/rendering/change/instructions/text.ts\nvar compileForText = (source, target) => {\n if (source.textContent !== target.textContent) {\n return [changeText(source, target)];\n }\n return [];\n};\n\n// src/rendering/change/instructions/node.ts\nvar NodeTypes;\n(function(NodeTypes2) {\n NodeTypes2[NodeTypes2[\"ElementNode\"] = 1] = \"ElementNode\";\n NodeTypes2[NodeTypes2[\"TextNode\"] = 3] = \"TextNode\";\n})(NodeTypes || (NodeTypes = {}));\nvar compileForNodeGenerator = (compileForCollection) => (source, target) => {\n let instructions = [];\n if (source.nodeType === NodeTypes.ElementNode) {\n const sourceElement = source;\n const targetElement = target;\n const baseInstructions = compileForElement(sourceElement, targetElement);\n const childrenInstructions = compileForCollection(sourceElement.childNodes, targetElement.childNodes, sourceElement);\n instructions = baseInstructions.concat(childrenInstructions);\n } else if (source.nodeType === NodeTypes.TextNode) {\n instructions = compileForText(source, target);\n }\n return instructions;\n};\n\n// src/debugging.js\nvar debug = (...message) => {\n if (process.env.DEBUG === \"true\") {\n console.log(...message);\n }\n};\n\n// src/rendering/change/instructions/children.ts\nvar compileChildren = (sourceList, targetList, parent) => {\n const baseInstructions = [];\n const length = largerLength(sourceList, targetList);\n const sourceMap = createIdMap(sourceList);\n const targetMap = createIdMap(targetList);\n const nodesPairsToDiff = [];\n let index = 0;\n for (;index < length; index++) {\n const source = sourceList[index];\n const target = targetList[index];\n debug(\"\\n\", \"loop index\", index, source && source.__jsx, target && target.__jsx);\n if (target && targetMap.check(target)) {\n debug(\"target\", target.__jsx, \"index\", index);\n const matchingSource = sourceMap.pullMatch(target);\n targetMap.clear(target);\n if (matchingSource.element) {\n debug(\"matching source found for target\");\n if (matchingSource.index !== index) {\n debug(\"moving source\", matchingSource.element.__jsx, index);\n baseInstructions.push(insertNode(matchingSource.element, { parent, index }));\n }\n debug(\"updating to match target\", matchingSource.element.__jsx, matchingSource.element.classList, target.__jsx, target.classList);\n nodesPairsToDiff.push({\n source: matchingSource.element,\n target\n });\n } else if (source) {\n debug(\"NO matching source for target but source in slot\", source.__jsx);\n if (targetMap.check(source)) {\n debug(\"adding\", target.__jsx, \"at\", index);\n baseInstructions.push(insertNode(target, { parent, index }));\n } else {\n debug(\"replacing\", source.__jsx, target.__jsx, \"at\", index);\n sourceMap.clear(source);\n baseInstructions.push(replaceNode(source, target));\n }\n } else {\n debug(\"adding target to end\", target.__jsx);\n baseInstructions.push(insertNode(target, { parent, index }));\n }\n } else if (source) {\n const matchingSource = sourceMap.pullMatch(source);\n if (matchingSource.element) {\n debug(\"removing\", source.__jsx);\n baseInstructions.push(removeNode(source));\n }\n }\n }\n sourceMap.remaining().forEach(({ element: element2 }) => {\n debug(\"removing\", element2.__jsx);\n baseInstructions.push(removeNode(element2));\n });\n const nodeInstructions = nodesPairsToDiff.reduce((collection, { source, target }) => {\n return collection.concat(compileForNode(source, target));\n }, []);\n return baseInstructions.concat(nodeInstructions).sort(instructionsSorter);\n};\nvar instructionsSorter = (left, right) => {\n if (left.type > right.type)\n return 1;\n if (left.type < right.type)\n return -1;\n return 0;\n};\nvar largerLength = (sourceList, targetList) => {\n const sourceLength = Array.from(sourceList).length;\n const targetLength = Array.from(targetList).length;\n return sourceLength > targetLength ? sourceLength : targetLength;\n};\nvar compileForNode = compileForNodeGenerator(compileChildren);\n// src/rendering/change.ts\nvar change = (source, target, parent) => {\n const instructions = compileChildren(source, target, parent);\n debug(\"instructions\", instructions.map((instruction) => instruction.type));\n instructions.forEach((instruction) => {\n performInstruction(instruction);\n });\n};\nvar performInstruction = (instruction) => {\n const performer = performers[instruction.type] || noop;\n performer(instruction);\n};\nvar noop = (_instruction) => {\n};\nvar changeText2 = (instruction) => {\n const { source, target } = instruction;\n source.nodeValue = target.textContent;\n};\nvar removeNode2 = (instruction) => {\n const { source } = instruction;\n source.remove();\n debug(\"removeNode called on\", source.nodeName);\n};\nvar insertNode2 = (instruction) => {\n const { target, data } = instruction;\n const { parent, index } = data;\n const sibling = parent.childNodes[index];\n if (!sibling) {\n parent.appendChild(target);\n } else if (sibling && sibling !== target) {\n parent.insertBefore(target, sibling);\n }\n};\nvar replaceNode2 = (instruction) => {\n const { source, target } = instruction;\n source.replaceWith(target);\n debug(\"replaceNode called on\", source.nodeName, \"with\", target.nodeName);\n debug(\"parent\", source.parentElement);\n};\nvar removeAttribute2 = (instruction) => {\n const { source, data } = instruction;\n const { name } = data;\n source.removeAttribute(name);\n};\nvar addAttribute2 = (instruction) => {\n const { source, data } = instruction;\n const { name, value } = data;\n source.setAttribute(name, value);\n};\nvar updateAttribute2 = (instruction) => {\n addAttribute2(instruction);\n};\nvar removeEvent2 = (instruction) => {\n const data = instruction.data;\n const source = instruction.source;\n const { name, value } = data;\n source.removeEventListener(name, value);\n};\nvar addEvent2 = (instruction) => {\n const data = instruction.data;\n const source = instruction.source;\n const { name, value } = data;\n source.addEventListener(name, value);\n};\nvar updateEvent2 = (instruction) => {\n const data = instruction.data;\n const source = instruction.source;\n const { name, sourceValue, targetValue } = data;\n source.removeEventListener(name, sourceValue);\n source.addEventListener(name, targetValue);\n};\nvar changeValue2 = (instruction) => {\n const data = instruction.data;\n const source = instruction.source;\n const { value } = data;\n source.value = value;\n};\nvar performers = {\n [ChangeInstructions.changeText]: changeText2,\n [ChangeInstructions.removeNode]: removeNode2,\n [ChangeInstructions.insertNode]: insertNode2,\n [ChangeInstructions.replaceNode]: replaceNode2,\n [ChangeInstructions.removeAttribute]: removeAttribute2,\n [ChangeInstructions.addAttribute]: addAttribute2,\n [ChangeInstructions.updateAttribute]: updateAttribute2,\n [ChangeInstructions.removeEvent]: removeEvent2,\n [ChangeInstructions.addEvent]: addEvent2,\n [ChangeInstructions.updateEvent]: updateEvent2,\n [ChangeInstructions.changeValue]: changeValue2\n};\n\n// src/rendering/templates/bound.js\nclass Bound {\n constructor(TemplateClass, viewModel, subscriptions, attributes2) {\n this.TemplateClass = TemplateClass;\n this.viewModel = viewModel;\n this.attributes = attributes2 || {};\n this.subscriptions = subscriptions;\n this.dom = [];\n }\n render(renderKit) {\n this.parentElement = renderKit.parent;\n this.renderKit = renderKit;\n this.subscribeForRerender();\n this.dom = this._render(renderKit);\n return this.dom;\n }\n _render(renderKit) {\n const props = {\n ...this.attributes,\n ...this.viewModel(renderKit.state.value())\n };\n const template = this.TemplateClass(props);\n const dom = !template ? [] : template.render(renderKit);\n return dom;\n }\n rerender() {\n if (!this.parentElement) {\n this.parentElement = this.dom[0] && this.dom[0].parentElement;\n }\n const newDom = this._render(this.renderKit);\n change(this.dom, newDom, this.parentElement);\n if (this.parentElement) {\n this.dom = Array.from(this.parentElement.childNodes);\n }\n }\n subscribeForRerender() {\n this.subscriptions.forEach((storeName) => {\n this.renderKit.subscribe(eventName(storeName), () => this.rerender());\n });\n }\n}\nvar bind = ({ Template, viewModel, subscriptions }) => {\n subscriptions = subscriptions || [];\n return (attributes2) => new Bound(Template, viewModel, subscriptions, attributes2);\n};\n// src/messageBus.ts\nclass MessageBus {\n listeners;\n options;\n constructor() {\n this.options = {};\n this.listeners = {};\n }\n subscribe(eventName2, listener) {\n this.ensureListenerCollection(eventName2);\n this.listeners[eventName2].push(listener);\n }\n publish(eventName2, payload) {\n const listeners = this.listeners[eventName2];\n if (!listeners)\n return false;\n listeners.forEach((listener) => {\n listener(payload, this.buildListenerKit(eventName2));\n });\n return true;\n }\n ensureListenerCollection(eventName2) {\n if (this.listeners[eventName2])\n return;\n this.listeners[eventName2] = [];\n }\n buildListenerKit(eventName2) {\n return {\n eventName: eventName2,\n publish: this.publish.bind(this),\n ...this.options\n };\n }\n addListenerOptions(options) {\n this.options = {\n ...this.options,\n ...options\n };\n }\n}\nvar createBus = () => {\n const bus = new MessageBus;\n const publish = bus.publish.bind(bus);\n const subscribe = bus.subscribe.bind(bus);\n return {\n bus,\n publish,\n subscribe\n };\n};\n// src/navigation/routeState.js\nvar createRouteState = (state2) => {\n const store = new RecordStore({\n name: \"route\",\n value: {\n host: \"\",\n path: \"\",\n query: \"\"\n },\n parent: state2\n });\n state2.add(store);\n};\n\n// src/navigation/setupHistory.js\nvar locationChangeEvent = \"locationChange\";\nvar routeChangeEvent = \"routeChange\";\nvar extractQueryParams = (queryString) => {\n return queryString.replace(/^\\?/, \"\").split(\"&\").reduce((aggregate, pairString) => {\n if (!pairString)\n return aggregate;\n const pair = pairString.split(\"=\");\n aggregate[pair[0]] = pair[1];\n return aggregate;\n }, {});\n};\nvar onLocationChange = (_payload, { publish, state: state2 }) => {\n const { host, pathname, search } = window.location;\n const path = pathname;\n const query = extractQueryParams(search);\n state2.route.update({\n host,\n path,\n query\n });\n publish(routeChangeEvent, { host, path, query });\n};\nvar setupHistory = (app) => {\n const { publish, subscribe, state: state2 } = app;\n createRouteState(state2);\n window.addEventListener(\"popstate\", () => publish(locationChangeEvent));\n subscribe(locationChangeEvent, onLocationChange);\n};\n\n// src/navigation/findHref.js\nvar findHref = (node2) => {\n if (!node2 || !node2.getAttribute)\n return \"\";\n while (!node2.getAttribute(\"href\")) {\n node2 = node2.parentNode;\n if (!node2 || !node2.getAttribute)\n return \"\";\n }\n return node2.getAttribute(\"href\");\n};\n\n// src/navigation/setupNavigation.js\nvar linkNavigationEvent = \"goToHref\";\nvar programmaticNavigationEvent = \"navigate\";\nvar navigate = (path, { publish }) => {\n window.history.pushState(null, \"\", path);\n publish(locationChangeEvent);\n};\nvar onLinkClick = (domEvent, { publish }) => {\n if (!domEvent || !domEvent.target)\n return;\n domEvent.preventDefault();\n const href = findHref(domEvent.target);\n navigate(href, { publish });\n};\nvar setupNavigation = (app) => {\n const { subscribe } = app;\n subscribe(linkNavigationEvent, onLinkClick);\n subscribe(programmaticNavigationEvent, navigate);\n};\n\n// src/app.ts\nvar setupBus = (app) => {\n const { publish, subscribe, bus } = createBus();\n app.publish = publish;\n app.subscribe = subscribe;\n app.bus = bus;\n};\nvar setupState = (app) => {\n const state3 = new State(app.publish);\n app.state = state3;\n};\nvar connectBusToState = (app) => {\n const { bus } = app;\n bus.addListenerOptions({ state: app.state });\n};\nvar setupRenderKit = (app, document) => {\n app.renderKit = {\n publish: app.publish,\n subscribe: app.subscribe,\n state: app.state,\n document\n };\n};\nvar triggerRoute = (app) => {\n const publish = app.publish;\n setTimeout(() => {\n publish(locationChangeEvent, null);\n }, 0);\n};\nvar addRender = (app) => {\n app.render = (template, selector) => {\n return render(template, selector, app.renderKit);\n };\n};\nvar createApp = (document = window.document) => {\n const app = {};\n setupBus(app);\n setupState(app);\n connectBusToState(app);\n setupRenderKit(app, document);\n setupHistory(app);\n setupNavigation(app);\n triggerRoute(app);\n addRender(app);\n return app;\n};\n// src/navigation.ts\nvar exports_navigation = {};\n__export(exports_navigation, {\n setupNavigation: () => {\n {\n return setupNavigation;\n }\n },\n setupHistory: () => {\n {\n return setupHistory;\n }\n }\n});\n// src/views/conditionals.jsx\nvar exports_conditionals = {};\n__export(exports_conditionals, {\n Unless: () => {\n {\n return Unless;\n }\n },\n IfElse: () => {\n {\n return IfElse;\n }\n },\n If: () => {\n {\n return If;\n }\n }\n});\nvar If = ({ condition, children: children3 }) => {\n if (!condition)\n return;\n return jsx_default(jsx_default.fragment, null, children3);\n};\nvar Unless = ({ condition, children: children3 }) => {\n if (condition)\n return;\n return jsx_default(jsx_default.fragment, null, children3);\n};\nvar IfElse = ({ condition, children: children3 }) => {\n const [first, ...rest] = children3;\n if (condition)\n return jsx_default(jsx_default.fragment, null, first);\n return jsx_default(jsx_default.fragment, null, rest);\n};\n\n// src/views/link.jsx\nvar Link = ({ children: children3, ...props }) => {\n return jsx_default(\"a\", {\n ...props,\n onClick: \"goToHref\"\n }, children3);\n};\n\n// src/views.js\nvar views = {\n ...exports_conditionals,\n Link\n};\nexport {\n views,\n render,\n exports_navigation as navigation,\n jsx_default as jsx,\n createBus,\n createApp,\n bind,\n State\n};\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"add-remove-root-children.3bb9b3f5.js.map","sourceRoot":"/__parcel_source_root/"}
1
+ {"mappings":"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","sources":["node_modules/@parcel/runtime-browser-hmr/lib/runtime-530046016dc577f1.js","dist/jaxs.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["var HMR_HOST = null;var HMR_PORT = null;var HMR_SECURE = false;var HMR_ENV_HASH = \"d6ea1d42532a7575\";module.bundle.HMR_BUNDLE_ID = \"64a677193bb9b3f5\";\"use strict\";\n\n/* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE, chrome, browser, __parcel__import__, __parcel__importScripts__, ServiceWorkerGlobalScope */\n/*::\nimport type {\n HMRAsset,\n HMRMessage,\n} from '@parcel/reporter-dev-server/src/HMRServer.js';\ninterface ParcelRequire {\n (string): mixed;\n cache: {|[string]: ParcelModule|};\n hotData: {|[string]: mixed|};\n Module: any;\n parent: ?ParcelRequire;\n isParcelRequire: true;\n modules: {|[string]: [Function, {|[string]: string|}]|};\n HMR_BUNDLE_ID: string;\n root: ParcelRequire;\n}\ninterface ParcelModule {\n hot: {|\n data: mixed,\n accept(cb: (Function) => void): void,\n dispose(cb: (mixed) => void): void,\n // accept(deps: Array<string> | string, cb: (Function) => void): void,\n // decline(): void,\n _acceptCallbacks: Array<(Function) => void>,\n _disposeCallbacks: Array<(mixed) => void>,\n |};\n}\ninterface ExtensionContext {\n runtime: {|\n reload(): void,\n getURL(url: string): string;\n getManifest(): {manifest_version: number, ...};\n |};\n}\ndeclare var module: {bundle: ParcelRequire, ...};\ndeclare var HMR_HOST: string;\ndeclare var HMR_PORT: string;\ndeclare var HMR_ENV_HASH: string;\ndeclare var HMR_SECURE: boolean;\ndeclare var chrome: ExtensionContext;\ndeclare var browser: ExtensionContext;\ndeclare var __parcel__import__: (string) => Promise<void>;\ndeclare var __parcel__importScripts__: (string) => Promise<void>;\ndeclare var globalThis: typeof self;\ndeclare var ServiceWorkerGlobalScope: Object;\n*/\nvar OVERLAY_ID = '__parcel__error__overlay__';\nvar OldModule = module.bundle.Module;\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData[moduleName],\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n module.bundle.hotData[moduleName] = undefined;\n}\nmodule.bundle.Module = Module;\nmodule.bundle.hotData = {};\nvar checkedAssets /*: {|[string]: boolean|} */, assetsToDispose /*: Array<[ParcelRequire, string]> */, assetsToAccept /*: Array<[ParcelRequire, string]> */;\n\nfunction getHostname() {\n return HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost');\n}\nfunction getPort() {\n return HMR_PORT || location.port;\n}\n\n// eslint-disable-next-line no-redeclare\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = getHostname();\n var port = getPort();\n var protocol = HMR_SECURE || location.protocol == 'https:' && !['localhost', '127.0.0.1', '0.0.0.0'].includes(hostname) ? 'wss' : 'ws';\n var ws;\n try {\n ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/');\n } catch (err) {\n if (err.message) {\n console.error(err.message);\n }\n ws = {};\n }\n\n // Web extension context\n var extCtx = typeof browser === 'undefined' ? typeof chrome === 'undefined' ? null : chrome : browser;\n\n // Safari doesn't support sourceURL in error stacks.\n // eval may also be disabled via CSP, so do a quick check.\n var supportsSourceURL = false;\n try {\n (0, eval)('throw new Error(\"test\"); //# sourceURL=test.js');\n } catch (err) {\n supportsSourceURL = err.stack.includes('test.js');\n }\n\n // $FlowFixMe\n ws.onmessage = async function (event /*: {data: string, ...} */) {\n checkedAssets = {} /*: {|[string]: boolean|} */;\n assetsToAccept = [];\n assetsToDispose = [];\n var data /*: HMRMessage */ = JSON.parse(event.data);\n if (data.type === 'update') {\n // Remove error overlay if there is one\n if (typeof document !== 'undefined') {\n removeErrorOverlay();\n }\n let assets = data.assets.filter(asset => asset.envHash === HMR_ENV_HASH);\n\n // Handle HMR Update\n let handled = assets.every(asset => {\n return asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle);\n });\n if (handled) {\n console.clear();\n\n // Dispatch custom event so other runtimes (e.g React Refresh) are aware.\n if (typeof window !== 'undefined' && typeof CustomEvent !== 'undefined') {\n window.dispatchEvent(new CustomEvent('parcelhmraccept'));\n }\n await hmrApplyUpdates(assets);\n\n // Dispose all old assets.\n let processedAssets = {} /*: {|[string]: boolean|} */;\n for (let i = 0; i < assetsToDispose.length; i++) {\n let id = assetsToDispose[i][1];\n if (!processedAssets[id]) {\n hmrDispose(assetsToDispose[i][0], id);\n processedAssets[id] = true;\n }\n }\n\n // Run accept callbacks. This will also re-execute other disposed assets in topological order.\n processedAssets = {};\n for (let i = 0; i < assetsToAccept.length; i++) {\n let id = assetsToAccept[i][1];\n if (!processedAssets[id]) {\n hmrAccept(assetsToAccept[i][0], id);\n processedAssets[id] = true;\n }\n }\n } else fullReload();\n }\n if (data.type === 'error') {\n // Log parcel errors to console\n for (let ansiDiagnostic of data.diagnostics.ansi) {\n let stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack;\n console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\\n' + stack + '\\n\\n' + ansiDiagnostic.hints.join('\\n'));\n }\n if (typeof document !== 'undefined') {\n // Render the fancy html overlay\n removeErrorOverlay();\n var overlay = createErrorOverlay(data.diagnostics.html);\n // $FlowFixMe\n document.body.appendChild(overlay);\n }\n }\n };\n ws.onerror = function (e) {\n if (e.message) {\n console.error(e.message);\n }\n };\n ws.onclose = function () {\n console.warn('[parcel] 🚨 Connection to the HMR server was lost');\n };\n}\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n console.log('[parcel] ✨ Error resolved');\n }\n}\nfunction createErrorOverlay(diagnostics) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n let errorHTML = '<div style=\"background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;\">';\n for (let diagnostic of diagnostics) {\n let stack = diagnostic.frames.length ? diagnostic.frames.reduce((p, frame) => {\n return `${p}\n<a href=\"/__parcel_launch_editor?file=${encodeURIComponent(frame.location)}\" style=\"text-decoration: underline; color: #888\" onclick=\"fetch(this.href); return false\">${frame.location}</a>\n${frame.code}`;\n }, '') : diagnostic.stack;\n errorHTML += `\n <div>\n <div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">\n 🚨 ${diagnostic.message}\n </div>\n <pre>${stack}</pre>\n <div>\n ${diagnostic.hints.map(hint => '<div>💡 ' + hint + '</div>').join('')}\n </div>\n ${diagnostic.documentation ? `<div>📝 <a style=\"color: violet\" href=\"${diagnostic.documentation}\" target=\"_blank\">Learn more</a></div>` : ''}\n </div>\n `;\n }\n errorHTML += '</div>';\n overlay.innerHTML = errorHTML;\n return overlay;\n}\nfunction fullReload() {\n if ('reload' in location) {\n location.reload();\n } else if (extCtx && extCtx.runtime && extCtx.runtime.reload) {\n extCtx.runtime.reload();\n }\n}\nfunction getParents(bundle, id) /*: Array<[ParcelRequire, string]> */{\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n var parents = [];\n var k, d, dep;\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {\n parents.push([bundle, k]);\n }\n }\n }\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n return parents;\n}\nfunction updateLink(link) {\n var href = link.getAttribute('href');\n if (!href) {\n return;\n }\n var newLink = link.cloneNode();\n newLink.onload = function () {\n if (link.parentNode !== null) {\n // $FlowFixMe\n link.parentNode.removeChild(link);\n }\n };\n newLink.setAttribute('href',\n // $FlowFixMe\n href.split('?')[0] + '?' + Date.now());\n // $FlowFixMe\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n // $FlowFixMe[incompatible-type]\n var href /*: string */ = links[i].getAttribute('href');\n var hostname = getHostname();\n var servedFromHMRServer = hostname === 'localhost' ? new RegExp('^(https?:\\\\/\\\\/(0.0.0.0|127.0.0.1)|localhost):' + getPort()).test(href) : href.indexOf(hostname + ':' + getPort());\n var absolute = /^https?:\\/\\//i.test(href) && href.indexOf(location.origin) !== 0 && !servedFromHMRServer;\n if (!absolute) {\n updateLink(links[i]);\n }\n }\n cssTimeout = null;\n }, 50);\n}\nfunction hmrDownload(asset) {\n if (asset.type === 'js') {\n if (typeof document !== 'undefined') {\n let script = document.createElement('script');\n script.src = asset.url + '?t=' + Date.now();\n if (asset.outputFormat === 'esmodule') {\n script.type = 'module';\n }\n return new Promise((resolve, reject) => {\n var _document$head;\n script.onload = () => resolve(script);\n script.onerror = reject;\n (_document$head = document.head) === null || _document$head === void 0 || _document$head.appendChild(script);\n });\n } else if (typeof importScripts === 'function') {\n // Worker scripts\n if (asset.outputFormat === 'esmodule') {\n return __parcel__import__(asset.url + '?t=' + Date.now());\n } else {\n return new Promise((resolve, reject) => {\n try {\n __parcel__importScripts__(asset.url + '?t=' + Date.now());\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n }\n }\n }\n}\nasync function hmrApplyUpdates(assets) {\n global.parcelHotUpdate = Object.create(null);\n let scriptsToRemove;\n try {\n // If sourceURL comments aren't supported in eval, we need to load\n // the update from the dev server over HTTP so that stack traces\n // are correct in errors/logs. This is much slower than eval, so\n // we only do it if needed (currently just Safari).\n // https://bugs.webkit.org/show_bug.cgi?id=137297\n // This path is also taken if a CSP disallows eval.\n if (!supportsSourceURL) {\n let promises = assets.map(asset => {\n var _hmrDownload;\n return (_hmrDownload = hmrDownload(asset)) === null || _hmrDownload === void 0 ? void 0 : _hmrDownload.catch(err => {\n // Web extension fix\n if (extCtx && extCtx.runtime && extCtx.runtime.getManifest().manifest_version == 3 && typeof ServiceWorkerGlobalScope != 'undefined' && global instanceof ServiceWorkerGlobalScope) {\n extCtx.runtime.reload();\n return;\n }\n throw err;\n });\n });\n scriptsToRemove = await Promise.all(promises);\n }\n assets.forEach(function (asset) {\n hmrApply(module.bundle.root, asset);\n });\n } finally {\n delete global.parcelHotUpdate;\n if (scriptsToRemove) {\n scriptsToRemove.forEach(script => {\n if (script) {\n var _document$head2;\n (_document$head2 = document.head) === null || _document$head2 === void 0 || _document$head2.removeChild(script);\n }\n });\n }\n }\n}\nfunction hmrApply(bundle /*: ParcelRequire */, asset /*: HMRAsset */) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (asset.type === 'css') {\n reloadCSS();\n } else if (asset.type === 'js') {\n let deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID];\n if (deps) {\n if (modules[asset.id]) {\n // Remove dependencies that are removed and will become orphaned.\n // This is necessary so that if the asset is added back again, the cache is gone, and we prevent a full page reload.\n let oldDeps = modules[asset.id][1];\n for (let dep in oldDeps) {\n if (!deps[dep] || deps[dep] !== oldDeps[dep]) {\n let id = oldDeps[dep];\n let parents = getParents(module.bundle.root, id);\n if (parents.length === 1) {\n hmrDelete(module.bundle.root, id);\n }\n }\n }\n }\n if (supportsSourceURL) {\n // Global eval. We would use `new Function` here but browser\n // support for source maps is better with eval.\n (0, eval)(asset.output);\n }\n\n // $FlowFixMe\n let fn = global.parcelHotUpdate[asset.id];\n modules[asset.id] = [fn, deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n }\n}\nfunction hmrDelete(bundle, id) {\n let modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (modules[id]) {\n // Collect dependencies that will become orphaned when this module is deleted.\n let deps = modules[id][1];\n let orphans = [];\n for (let dep in deps) {\n let parents = getParents(module.bundle.root, deps[dep]);\n if (parents.length === 1) {\n orphans.push(deps[dep]);\n }\n }\n\n // Delete the module. This must be done before deleting dependencies in case of circular dependencies.\n delete modules[id];\n delete bundle.cache[id];\n\n // Now delete the orphans.\n orphans.forEach(id => {\n hmrDelete(module.bundle.root, id);\n });\n } else if (bundle.parent) {\n hmrDelete(bundle.parent, id);\n }\n}\nfunction hmrAcceptCheck(bundle /*: ParcelRequire */, id /*: string */, depsByBundle /*: ?{ [string]: { [string]: string } }*/) {\n if (hmrAcceptCheckOne(bundle, id, depsByBundle)) {\n return true;\n }\n\n // Traverse parents breadth first. All possible ancestries must accept the HMR update, or we'll reload.\n let parents = getParents(module.bundle.root, id);\n let accepted = false;\n while (parents.length > 0) {\n let v = parents.shift();\n let a = hmrAcceptCheckOne(v[0], v[1], null);\n if (a) {\n // If this parent accepts, stop traversing upward, but still consider siblings.\n accepted = true;\n } else {\n // Otherwise, queue the parents in the next level upward.\n let p = getParents(module.bundle.root, v[1]);\n if (p.length === 0) {\n // If there are no parents, then we've reached an entry without accepting. Reload.\n accepted = false;\n break;\n }\n parents.push(...p);\n }\n }\n return accepted;\n}\nfunction hmrAcceptCheckOne(bundle /*: ParcelRequire */, id /*: string */, depsByBundle /*: ?{ [string]: { [string]: string } }*/) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) {\n // If we reached the root bundle without finding where the asset should go,\n // there's nothing to do. Mark as \"accepted\" so we don't reload the page.\n if (!bundle.parent) {\n return true;\n }\n return hmrAcceptCheck(bundle.parent, id, depsByBundle);\n }\n if (checkedAssets[id]) {\n return true;\n }\n checkedAssets[id] = true;\n var cached = bundle.cache[id];\n assetsToDispose.push([bundle, id]);\n if (!cached || cached.hot && cached.hot._acceptCallbacks.length) {\n assetsToAccept.push([bundle, id]);\n return true;\n }\n}\nfunction hmrDispose(bundle /*: ParcelRequire */, id /*: string */) {\n var cached = bundle.cache[id];\n bundle.hotData[id] = {};\n if (cached && cached.hot) {\n cached.hot.data = bundle.hotData[id];\n }\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData[id]);\n });\n }\n delete bundle.cache[id];\n}\nfunction hmrAccept(bundle /*: ParcelRequire */, id /*: string */) {\n // Execute the module.\n bundle(id);\n\n // Run the accept callbacks in the new version of the module.\n var cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n var assetsToAlsoAccept = cb(function () {\n return getParents(module.bundle.root, id);\n });\n if (assetsToAlsoAccept && assetsToAccept.length) {\n assetsToAlsoAccept.forEach(function (a) {\n hmrDispose(a[0], a[1]);\n });\n\n // $FlowFixMe[method-unbinding]\n assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept);\n }\n });\n }\n}","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\n\n// src/rendering/dom/create.ts\nvar setAttributesOnElement = (element, attributes) => {\n for (const key in attributes) {\n if (key === \"__self\")\n continue;\n if (key === \"value\") {\n element.value = attributes[key];\n } else {\n element.setAttribute(key, attributes[key]);\n }\n }\n};\nvar setEventsOnElement = (element, events, publish) => {\n const eventMaps = {};\n for (const domEvent in events) {\n const eventName = events[domEvent];\n const listener = (event) => publish(eventName, event);\n element.addEventListener(domEvent, listener);\n eventMaps[domEvent] = {\n domEvent,\n busEvent: eventName,\n listener\n };\n }\n element.eventMaps = eventMaps;\n};\nvar createNode = (type, document) => {\n document = document || window.document;\n return document.createElement(type);\n};\nvar createTextNode = (value, document) => {\n document = document || window.document;\n return document.createTextNode(value);\n};\nvar createDecoratedNode = (type, attributes, events, renderKit) => {\n const dom = createNode(type, renderKit.document);\n setAttributesOnElement(dom, attributes);\n setEventsOnElement(dom, events, renderKit.publish);\n return dom;\n};\n\n// src/rendering/dom/attributesAndEvents.ts\nvar separateAttrsAndEvents = (combined, defaultValue = \"\") => {\n const attributes = {};\n const events = {};\n for (const key in combined) {\n const value = combined[key];\n if (key.match(/^on.+/i)) {\n const eventKey = key.slice(2).toLowerCase();\n events[eventKey] = value;\n } else {\n attributes[key] = normalizeValueForKey(combined, key, defaultValue);\n }\n }\n return {\n attributes,\n events\n };\n};\nvar normalizeValueForKey = (object, key, defaultValue = \"\") => {\n if (object[key] === undefined)\n return defaultValue;\n return object[key];\n};\n\n// src/rendering/dom/svg.ts\nvar isSvgTag = (tagType) => tagType === \"svg\";\nvar createSvgNode = (type, attributes, renderKit) => {\n const document = renderKit && renderKit.document || window.document;\n const xmlns = \"http://www.w3.org/2000/svg\";\n const node = document.createElementNS(xmlns, type, xmlns);\n for (const key in attributes) {\n if (key === \"__self\" || key === \"xmlns\")\n continue;\n node.setAttributeNS(null, key, attributes[key]);\n }\n return node;\n};\n\n// src/rendering/templates/text.ts\nclass TextTemplate {\n value;\n constructor(content) {\n this.value = content.toString();\n }\n render(renderKit) {\n const textNode = createTextNode(this.value, renderKit.document);\n if (!textNode)\n return [];\n textNode.__jsx = \"TextNode\";\n return [textNode];\n }\n}\n\n// src/rendering/templates/children.ts\nvar ensureArray = (children) => {\n if (Array.isArray(children)) {\n return children.flat();\n }\n if (!children) {\n return [];\n }\n return [children];\n};\nvar recursiveRender = (children, renderKit, rendered = []) => children.reduce(renderReducer(renderKit), rendered).flat();\nvar renderReducer = (renderKit) => (aggregate, view) => {\n if (!view)\n return aggregate;\n if (Array.isArray(view)) {\n const dom = recursiveRender(view, renderKit, aggregate);\n return dom;\n }\n view.render(renderKit).forEach((template) => aggregate.push(template));\n return aggregate;\n};\nvar replaceTextNodes = (child) => {\n if (isTextNode(child)) {\n return textNode(child);\n }\n return child;\n};\nvar isTextNode = (child) => {\n return typeof child === \"string\" || typeof child === \"number\";\n};\nvar textNode = (content) => {\n return new TextTemplate(content);\n};\nvar withSvgFlag = (isSvg) => (template) => {\n template && (template.isSvg = template.isSvg || isSvg);\n return template;\n};\n\nclass Children {\n collection;\n parentElement;\n isSvg;\n constructor(jsxChildren, isSvg = false) {\n this.collection = ensureArray(jsxChildren);\n this.collection = this.collection.map(replaceTextNodes);\n this.collection = this.collection.flat();\n this.collection = this.collection.map(withSvgFlag(isSvg));\n this.isSvg = isSvg;\n }\n render(renderKit, parentElement) {\n this.parentElement = parentElement;\n const dom = this.generateDom(renderKit);\n this.attachToParent(dom);\n return dom;\n }\n generateDom(renderKit) {\n return recursiveRender(this.collection, renderKit);\n }\n attachToParent(dom) {\n if (this.parentElement === undefined)\n return;\n const parent = this.parentElement;\n dom.forEach((node) => parent.appendChild(node));\n }\n}\n\n// src/rendering/templates/tag.ts\nclass Tag {\n type;\n events;\n attributes;\n children;\n isSvg;\n constructor(tagType, combinedAttributes, children2, isSvg = false) {\n this.type = tagType;\n const { events, attributes } = separateAttrsAndEvents(combinedAttributes);\n this.events = events;\n this.attributes = attributes;\n this.isSvg = isSvg || isSvgTag(this.type);\n this.children = new Children(children2, this.isSvg);\n console.log(this.type, this.isSvg);\n }\n render(renderKit) {\n const dom = this.generateDom(renderKit);\n if (!dom)\n return [];\n this.children.render(renderKit, dom);\n return [dom];\n }\n generateDom(renderKit) {\n if (this.isSvg) {\n console.log(\"rendering\", this.type, \"as svg\");\n return this.generateSvnDom(renderKit);\n } else {\n console.log(\"rendering\", this.type, \"as normal node\");\n return this.generateHtmlDom(renderKit);\n }\n }\n generateHtmlDom(renderKit) {\n const node = createDecoratedNode(this.type, this.attributes, this.events, renderKit);\n node.__jsx = this.key();\n return node;\n }\n generateSvnDom(renderKit) {\n const node = createSvgNode(this.type, this.attributes, renderKit);\n node.__jsx = this.key();\n return node;\n }\n key() {\n return this.attributes.key || this.source() || this.createKey();\n }\n source() {\n if (this.attributes.__source) {\n const { fileName, lineNumber, columnNumber } = this.attributes.__source;\n return `${fileName}:${lineNumber}:${columnNumber}`;\n }\n }\n createKey() {\n const id = this.attributes.id ? `#${this.attributes.id}` : \"\";\n const type = this.attributes.type ? `[type=${this.attributes.type}]` : \"\";\n const name = this.attributes.name ? `[name=${this.attributes.name}]` : \"\";\n return `${this.type}${id}${type}${name}`;\n }\n}\n\n// src/jsx.js\nvar ensureChildrenArray = (maybeChildren, attributes) => maybeChildren || attributes.children || [];\nvar packageAttributes = (maybeAttributes, maybeChildren) => {\n const attributes = maybeAttributes || {};\n const children3 = ensureChildrenArray(maybeChildren, attributes);\n attributes.children = attributes.children || children3;\n return attributes;\n};\nvar jsx = (type, attributes, ...children3) => {\n if (typeof type === \"string\") {\n return new Tag(type, attributes, children3);\n }\n return type(packageAttributes(attributes, children3));\n};\njsx.fragment = (attributes, maybeChildren) => {\n const children3 = ensureChildrenArray(maybeChildren, attributes);\n return new Children(children3);\n};\nvar jsx_default = jsx;\n// src/rendering/templates/root.ts\nclass Root {\n template;\n selector;\n renderKit;\n dom;\n parentElement;\n constructor(template, selector, renderKit) {\n this.template = template;\n this.selector = selector;\n this.renderKit = renderKit;\n this.dom = [];\n this.parentElement = null;\n }\n renderAndAttach(renderKit) {\n this.parentElement = this.getParentElement();\n this.dom = this.render({ ...renderKit, parent: this.parentElement });\n if (this.parentElement) {\n this.attach();\n }\n }\n render(renderKit) {\n return this.template.render(renderKit);\n }\n attach() {\n this.parentElement && (this.parentElement.innerHTML = \"\");\n this.dom.forEach((element) => {\n this.parentElement && this.parentElement.appendChild(element);\n });\n }\n getParentElement() {\n return this.renderKit.document.querySelector(this.selector);\n }\n}\nvar render = (template, selector, renderKit) => {\n const root = new Root(template, selector, renderKit);\n root.renderAndAttach(renderKit);\n return root;\n};\n// src/state/testingTypes.js\nvar isBoolean = (value) => typeof value === \"boolean\";\nvar isNumber = (value) => typeof value === \"number\";\nvar isString = (value) => typeof value === \"string\";\nvar isArray = (value) => Array.isArray(value);\nvar isObject = (value) => value !== null && !isArray(value) && typeof value === \"object\";\n\n// src/state/equality.js\nvar areElementEqual = (oldValue, newValue) => oldValue === newValue;\nvar keyLengthSame = (oldValue, newValue) => Object.keys(oldValue).length === Object.keys(newValue).length;\nvar areObjectsEqual = (oldValue, newValue) => {\n if (!(isObject(oldValue) && isObject(newValue)))\n return false;\n if (!keyLengthSame(oldValue, newValue))\n return false;\n Object.keys(oldValue).every((key) => {\n const oldInnerValue = oldValue[key];\n const newInnerValue = newValue[key];\n return areEqual(oldInnerValue, newInnerValue);\n });\n};\nvar areArraysEqual = (oldValue, newValue) => {\n if (!(isArray(oldValue) && isArray(newValue)))\n return false;\n if (oldValue.length !== newValue.length)\n return false;\n oldValue.every((oldInnerValue, index) => {\n const newInnerValue = newValue[index];\n return areEqual(oldInnerValue, newInnerValue);\n });\n};\nvar areEqual = (oldValue, newValue) => {\n if (isObject(oldValue))\n return areObjectsEqual(oldValue, newValue);\n if (isArray(oldValue))\n return areArraysEqual(oldValue, newValue);\n return areElementEqual(oldValue, newValue);\n};\n\n// src/state/stores.js\nclass GeneralStore {\n nullEvent = {};\n constructor({ name, value, parent }) {\n this.name = name;\n this.value = value;\n this.parent = parent;\n this.initialState = value;\n }\n update(newValue) {\n if (this.isEqual(newValue))\n return;\n this.value = newValue;\n return this.parent.publish(this.event());\n }\n reset() {\n this.update(this.initialState);\n }\n isEqual(newValue) {\n return areElementEqual(this.value, newValue);\n }\n event() {\n return {\n name: this.name,\n value: this.value\n };\n }\n}\n\nclass BooleanStore extends GeneralStore {\n toggle() {\n this.update(!this.value);\n }\n}\n\nclass NumericStore extends GeneralStore {\n}\n\nclass StringStore extends GeneralStore {\n}\n\nclass ListStore extends GeneralStore {\n isEqual(newValue) {\n return areArraysEqual(this.value, newValue);\n }\n push(newValue) {\n const value = [...this.value, newValue];\n this.update(value);\n }\n}\n\nclass RecordStore extends GeneralStore {\n isEqual(newValue) {\n return areObjectsEqual(this.value, newValue);\n }\n}\n\n// src/state.js\nvar eventPrefix = \"state-change\";\nvar eventName = (name) => `${eventPrefix}:${name}`;\n\nclass State {\n constructor(publish) {\n this.publisher = publish;\n this.stores = {};\n this.events = [];\n this.transacting = false;\n }\n create(name, value) {\n const StoreClass = this.storeTypeFor(value);\n const store = new StoreClass({ name, value, parent: this });\n this.addStore(name, store);\n }\n add(store) {\n const name = store.name;\n this.addStore(name, store);\n }\n getStore(name) {\n return this.stores[name];\n }\n addStore(name, store) {\n this.stores[name] = store;\n this[name] = store;\n }\n storeTypeFor(value) {\n if (isArray(value))\n return ListStore;\n if (isObject(value))\n return RecordStore;\n if (isNumber(value))\n return NumericStore;\n if (isBoolean(value))\n return BooleanStore;\n if (isString(value))\n return StringStore;\n return GeneralStore;\n }\n publish(event) {\n this.events.push(event);\n if (!this.transacting)\n this.publishAll();\n }\n publishAll() {\n const publishedStores = [];\n this.events.reverse().forEach((event) => {\n const { name, value } = event;\n if (!publishedStores.includes(name)) {\n publishedStores.push(name);\n this.publisher(`${eventPrefix}:${name}`, value);\n }\n });\n this.events = [];\n }\n transaction(setter) {\n this.transacting = true;\n setter(this);\n this.transacting = false;\n this.publishAll();\n }\n value() {\n return Object.keys(this.stores).reduce((valueObject, key) => {\n valueObject[key] = this.stores[key].value;\n return valueObject;\n }, {});\n }\n}\n\n// src/types.ts\nvar ChangeInstructions;\n(function(ChangeInstructions2) {\n ChangeInstructions2[ChangeInstructions2[\"removeNode\"] = 0] = \"removeNode\";\n ChangeInstructions2[ChangeInstructions2[\"insertNode\"] = 1] = \"insertNode\";\n ChangeInstructions2[ChangeInstructions2[\"replaceNode\"] = 2] = \"replaceNode\";\n ChangeInstructions2[ChangeInstructions2[\"removeAttribute\"] = 3] = \"removeAttribute\";\n ChangeInstructions2[ChangeInstructions2[\"addAttribute\"] = 4] = \"addAttribute\";\n ChangeInstructions2[ChangeInstructions2[\"updateAttribute\"] = 5] = \"updateAttribute\";\n ChangeInstructions2[ChangeInstructions2[\"removeEvent\"] = 6] = \"removeEvent\";\n ChangeInstructions2[ChangeInstructions2[\"addEvent\"] = 7] = \"addEvent\";\n ChangeInstructions2[ChangeInstructions2[\"updateEvent\"] = 8] = \"updateEvent\";\n ChangeInstructions2[ChangeInstructions2[\"changeValue\"] = 9] = \"changeValue\";\n ChangeInstructions2[ChangeInstructions2[\"changeText\"] = 10] = \"changeText\";\n})(ChangeInstructions || (ChangeInstructions = {}));\n\n// src/rendering/change/instructions/generate.ts\nvar changeText = (source, target) => ({\n source,\n target,\n type: ChangeInstructions.changeText,\n data: {}\n});\nvar replaceNode = (source, target) => ({\n source,\n target,\n type: ChangeInstructions.replaceNode,\n data: {}\n});\nvar removeAttribute = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.removeAttribute\n});\nvar addAttribute = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.addAttribute\n});\nvar updateAttribute = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.updateAttribute\n});\nvar removeEvent = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.removeEvent\n});\nvar addEvent = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.addEvent\n});\nvar updateEvent = (source, target, data) => ({\n source,\n target,\n data,\n type: ChangeInstructions.updateEvent\n});\nvar removeNode = (source) => ({\n source,\n target: source,\n type: ChangeInstructions.removeNode,\n data: {}\n});\nvar insertNode = (target, data) => ({\n target,\n source: target,\n type: ChangeInstructions.insertNode,\n data\n});\nvar changeValue = (source, target, data) => ({\n source,\n target,\n type: ChangeInstructions.changeValue,\n data\n});\n\n// src/rendering/change/instructions/idMap.js\nvar nullMatch = { index: -1 };\n\nclass IdMap {\n constructor() {\n this.map = {};\n }\n populate(list) {\n list.forEach((element, i) => {\n const id = element.__jsx;\n if (id) {\n this.map[id] = this.map[id] || [];\n this.map[id].push({\n element,\n index: i\n });\n }\n });\n }\n pullMatch(element) {\n const id = element && element.__jsx;\n if (!id)\n return nullMatch;\n if (!(this.map[id] && this.map[id].length))\n return nullMatch;\n return this.map[id].shift();\n }\n clear(element) {\n const id = element && element.__jsx;\n if (!(id && this.map[id] && this.map[id].length))\n return;\n const matches = this.map[id];\n this.map[id] = matches.reduce((collection, possibleMatch) => {\n if (possibleMatch.element !== element)\n collection.push(possibleMatch);\n return collection;\n }, []);\n }\n check(element) {\n const id = element && element.__jsx;\n if (!(id && this.map[id]))\n return false;\n return this.map[id].length > 0;\n }\n remaining() {\n return Object.values(this.map).flat();\n }\n}\nvar createIdMap = (list) => {\n const map = new IdMap;\n map.populate(list);\n return map;\n};\n\n// src/rendering/change/instructions/attributes.ts\nvar compileForAttributes = (source, target) => {\n const instructions = [];\n const sourceAttributes = source.attributes;\n const sourceLength = sourceAttributes.length;\n const targetAttributes = target.attributes;\n const targetLength = targetAttributes.length;\n let index;\n let innerIndex;\n let matchingAttribute;\n for (index = 0;index < sourceLength; index++) {\n matchingAttribute = null;\n const sourceAttribute = sourceAttributes.item(index);\n if (!sourceAttribute)\n continue;\n for (innerIndex = 0;innerIndex < targetLength; innerIndex++) {\n const targetAttribute = targetAttributes.item(innerIndex);\n if (!targetAttribute)\n continue;\n if (sourceAttribute.name == targetAttribute.name) {\n matchingAttribute = targetAttribute;\n break;\n }\n }\n if (!matchingAttribute) {\n instructions.push(removeAttribute(source, target, { name: sourceAttribute.name }));\n } else if (sourceAttribute.value !== matchingAttribute.value) {\n instructions.push(updateAttribute(source, target, {\n name: sourceAttribute.name,\n value: matchingAttribute.value\n }));\n }\n }\n for (index = 0;index < targetLength; index++) {\n matchingAttribute = null;\n const targetAttribute = targetAttributes.item(index);\n if (!targetAttribute)\n continue;\n for (innerIndex = 0;innerIndex < sourceLength; innerIndex++) {\n const sourceAttribute = sourceAttributes.item(innerIndex);\n if (!sourceAttribute)\n continue;\n if (sourceAttribute.name == targetAttribute.name) {\n matchingAttribute = sourceAttribute;\n break;\n }\n }\n if (!matchingAttribute) {\n instructions.push(addAttribute(source, target, {\n name: targetAttribute.name,\n value: targetAttribute.value\n }));\n }\n }\n return instructions;\n};\n\n// src/rendering/change/instructions/events.ts\nvar compileForEvents = (source, target) => {\n const instructions = [];\n const sourceEventMaps = source.eventMaps;\n const targetEventMaps = target.eventMaps;\n const sourceDomEvents = Object.keys(sourceEventMaps);\n const targetDomEvents = Object.keys(targetEventMaps);\n sourceDomEvents.forEach((domEvent) => {\n const sourceEventMap = sourceEventMaps[domEvent];\n const targetEventMap = targetEventMaps[domEvent];\n if (!targetEventMap) {\n instructions.push(removeEvent(source, target, {\n name: sourceEventMap.domEvent,\n value: sourceEventMap.listener\n }));\n } else if (targetEventMap.busEvent !== sourceEventMap.busEvent) {\n instructions.push(updateEvent(source, target, {\n name: domEvent,\n targetValue: targetEventMap.listener,\n sourceValue: sourceEventMap.listener\n }));\n }\n });\n targetDomEvents.forEach((domEvent) => {\n const sourceEventMap = sourceEventMaps[domEvent];\n const targetEventMap = targetEventMaps[domEvent];\n if (!sourceEventMap) {\n instructions.push(addEvent(source, target, {\n name: targetEventMap.domEvent,\n value: targetEventMap.listener\n }));\n }\n });\n return instructions;\n};\n\n// src/rendering/change/instructions/element.ts\nvar compileForElement = (source, target) => {\n const attributeInstructions = compileForAttributes(source, target);\n const eventInstructions = compileForEvents(source, target);\n const valueInstructions = compileForInputValue(source, target);\n return attributeInstructions.concat(eventInstructions).concat(valueInstructions);\n};\nvar compileForInputValue = (sourceElement, targetElement) => {\n const instructions = [];\n if (sourceElement.tagName !== \"INPUT\") {\n return instructions;\n }\n const source = sourceElement;\n const target = targetElement;\n if (source.value !== target.value) {\n instructions.push(changeValue(source, target, { name: \"value\", value: target.value }));\n }\n return instructions;\n};\n\n// src/rendering/change/instructions/text.ts\nvar compileForText = (source, target) => {\n if (source.textContent !== target.textContent) {\n return [changeText(source, target)];\n }\n return [];\n};\n\n// src/rendering/change/instructions/node.ts\nvar NodeTypes;\n(function(NodeTypes2) {\n NodeTypes2[NodeTypes2[\"ElementNode\"] = 1] = \"ElementNode\";\n NodeTypes2[NodeTypes2[\"TextNode\"] = 3] = \"TextNode\";\n})(NodeTypes || (NodeTypes = {}));\nvar compileForNodeGenerator = (compileForCollection) => (source, target) => {\n let instructions = [];\n if (source.nodeType === NodeTypes.ElementNode) {\n const sourceElement = source;\n const targetElement = target;\n const baseInstructions = compileForElement(sourceElement, targetElement);\n const childrenInstructions = compileForCollection(sourceElement.childNodes, targetElement.childNodes, sourceElement);\n instructions = baseInstructions.concat(childrenInstructions);\n } else if (source.nodeType === NodeTypes.TextNode) {\n instructions = compileForText(source, target);\n }\n return instructions;\n};\n\n// src/debugging.js\nvar debug = (...message) => {\n if (process.env.DEBUG === \"true\") {\n console.log(...message);\n }\n};\n\n// src/rendering/change/instructions/children.ts\nvar compileChildren = (sourceList, targetList, parent) => {\n const baseInstructions = [];\n const length = largerLength(sourceList, targetList);\n const sourceMap = createIdMap(sourceList);\n const targetMap = createIdMap(targetList);\n const nodesPairsToDiff = [];\n let index = 0;\n for (;index < length; index++) {\n const source = sourceList[index];\n const target = targetList[index];\n debug(\"\\n\", \"loop index\", index, source && source.__jsx, target && target.__jsx);\n if (target && targetMap.check(target)) {\n debug(\"target\", target.__jsx, \"index\", index);\n const matchingSource = sourceMap.pullMatch(target);\n targetMap.clear(target);\n if (matchingSource.element) {\n debug(\"matching source found for target\");\n if (matchingSource.index !== index) {\n debug(\"moving source\", matchingSource.element.__jsx, index);\n baseInstructions.push(insertNode(matchingSource.element, { parent, index }));\n }\n debug(\"updating to match target\", matchingSource.element.__jsx, matchingSource.element.classList, target.__jsx, target.classList);\n nodesPairsToDiff.push({\n source: matchingSource.element,\n target\n });\n } else if (source) {\n debug(\"NO matching source for target but source in slot\", source.__jsx);\n if (targetMap.check(source)) {\n debug(\"adding\", target.__jsx, \"at\", index);\n baseInstructions.push(insertNode(target, { parent, index }));\n } else {\n debug(\"replacing\", source.__jsx, target.__jsx, \"at\", index);\n sourceMap.clear(source);\n baseInstructions.push(replaceNode(source, target));\n }\n } else {\n debug(\"adding target to end\", target.__jsx);\n baseInstructions.push(insertNode(target, { parent, index }));\n }\n } else if (source) {\n const matchingSource = sourceMap.pullMatch(source);\n if (matchingSource.element) {\n debug(\"removing\", source.__jsx);\n baseInstructions.push(removeNode(source));\n }\n }\n }\n sourceMap.remaining().forEach(({ element: element2 }) => {\n debug(\"removing\", element2.__jsx);\n baseInstructions.push(removeNode(element2));\n });\n const nodeInstructions = nodesPairsToDiff.reduce((collection, { source, target }) => {\n return collection.concat(compileForNode(source, target));\n }, []);\n return baseInstructions.concat(nodeInstructions).sort(instructionsSorter);\n};\nvar instructionsSorter = (left, right) => {\n if (left.type > right.type)\n return 1;\n if (left.type < right.type)\n return -1;\n return 0;\n};\nvar largerLength = (sourceList, targetList) => {\n const sourceLength = Array.from(sourceList).length;\n const targetLength = Array.from(targetList).length;\n return sourceLength > targetLength ? sourceLength : targetLength;\n};\nvar compileForNode = compileForNodeGenerator(compileChildren);\n// src/rendering/change.ts\nvar change = (source, target, parent) => {\n const instructions = compileChildren(source, target, parent);\n debug(\"instructions\", instructions.map((instruction) => instruction.type));\n instructions.forEach((instruction) => {\n performInstruction(instruction);\n });\n};\nvar performInstruction = (instruction) => {\n const performer = performers[instruction.type] || noop;\n performer(instruction);\n};\nvar noop = (_instruction) => {\n};\nvar changeText2 = (instruction) => {\n const { source, target } = instruction;\n source.nodeValue = target.textContent;\n};\nvar removeNode2 = (instruction) => {\n const { source } = instruction;\n source.remove();\n debug(\"removeNode called on\", source.nodeName);\n};\nvar insertNode2 = (instruction) => {\n const { target, data } = instruction;\n const { parent, index } = data;\n const sibling = parent.childNodes[index];\n if (!sibling) {\n parent.appendChild(target);\n } else if (sibling && sibling !== target) {\n parent.insertBefore(target, sibling);\n }\n};\nvar replaceNode2 = (instruction) => {\n const { source, target } = instruction;\n source.replaceWith(target);\n debug(\"replaceNode called on\", source.nodeName, \"with\", target.nodeName);\n debug(\"parent\", source.parentElement);\n};\nvar removeAttribute2 = (instruction) => {\n const { source, data } = instruction;\n const { name } = data;\n source.removeAttribute(name);\n};\nvar addAttribute2 = (instruction) => {\n const { source, data } = instruction;\n const { name, value } = data;\n source.setAttribute(name, value);\n};\nvar updateAttribute2 = (instruction) => {\n addAttribute2(instruction);\n};\nvar removeEvent2 = (instruction) => {\n const data = instruction.data;\n const source = instruction.source;\n const { name, value } = data;\n source.removeEventListener(name, value);\n};\nvar addEvent2 = (instruction) => {\n const data = instruction.data;\n const source = instruction.source;\n const { name, value } = data;\n source.addEventListener(name, value);\n};\nvar updateEvent2 = (instruction) => {\n const data = instruction.data;\n const source = instruction.source;\n const { name, sourceValue, targetValue } = data;\n source.removeEventListener(name, sourceValue);\n source.addEventListener(name, targetValue);\n};\nvar changeValue2 = (instruction) => {\n const data = instruction.data;\n const source = instruction.source;\n const { value } = data;\n source.value = value;\n};\nvar performers = {\n [ChangeInstructions.changeText]: changeText2,\n [ChangeInstructions.removeNode]: removeNode2,\n [ChangeInstructions.insertNode]: insertNode2,\n [ChangeInstructions.replaceNode]: replaceNode2,\n [ChangeInstructions.removeAttribute]: removeAttribute2,\n [ChangeInstructions.addAttribute]: addAttribute2,\n [ChangeInstructions.updateAttribute]: updateAttribute2,\n [ChangeInstructions.removeEvent]: removeEvent2,\n [ChangeInstructions.addEvent]: addEvent2,\n [ChangeInstructions.updateEvent]: updateEvent2,\n [ChangeInstructions.changeValue]: changeValue2\n};\n\n// src/rendering/templates/bound.js\nclass Bound {\n constructor(TemplateClass, viewModel, subscriptions, attributes2) {\n this.TemplateClass = TemplateClass;\n this.viewModel = viewModel;\n this.attributes = attributes2 || {};\n this.subscriptions = subscriptions;\n this.dom = [];\n }\n render(renderKit) {\n this.parentElement = renderKit.parent;\n this.renderKit = renderKit;\n this.subscribeForRerender();\n this.dom = this._render(renderKit);\n return this.dom;\n }\n _render(renderKit) {\n const props = {\n ...this.attributes,\n ...this.viewModel(renderKit.state.value())\n };\n const template = this.TemplateClass(props);\n const dom = !template ? [] : template.render(renderKit);\n return dom;\n }\n rerender() {\n if (!this.parentElement) {\n this.parentElement = this.dom[0] && this.dom[0].parentElement;\n }\n const newDom = this._render(this.renderKit);\n change(this.dom, newDom, this.parentElement);\n if (this.parentElement) {\n this.dom = Array.from(this.parentElement.childNodes);\n }\n }\n subscribeForRerender() {\n this.subscriptions.forEach((storeName) => {\n this.renderKit.subscribe(eventName(storeName), () => this.rerender());\n });\n }\n}\nvar bind = ({ Template, viewModel, subscriptions }) => {\n subscriptions = subscriptions || [];\n return (attributes2) => new Bound(Template, viewModel, subscriptions, attributes2);\n};\n// src/messageBus.ts\nclass MessageBus {\n listeners;\n options;\n constructor() {\n this.options = {};\n this.listeners = {};\n }\n subscribe(eventName2, listener) {\n this.ensureListenerCollection(eventName2);\n this.listeners[eventName2].push(listener);\n }\n publish(eventName2, payload) {\n const listeners = this.listeners[eventName2];\n if (!listeners)\n return false;\n listeners.forEach((listener) => {\n listener(payload, this.buildListenerKit(eventName2));\n });\n return true;\n }\n ensureListenerCollection(eventName2) {\n if (this.listeners[eventName2])\n return;\n this.listeners[eventName2] = [];\n }\n buildListenerKit(eventName2) {\n return {\n eventName: eventName2,\n publish: this.publish.bind(this),\n ...this.options\n };\n }\n addListenerOptions(options) {\n this.options = {\n ...this.options,\n ...options\n };\n }\n}\nvar createBus = () => {\n const bus = new MessageBus;\n const publish = bus.publish.bind(bus);\n const subscribe = bus.subscribe.bind(bus);\n return {\n bus,\n publish,\n subscribe\n };\n};\n// src/navigation/routeState.js\nvar createRouteState = (state2) => {\n const store = new RecordStore({\n name: \"route\",\n value: {\n host: \"\",\n path: \"\",\n query: \"\"\n },\n parent: state2\n });\n state2.add(store);\n};\n\n// src/navigation/setupHistory.js\nvar locationChangeEvent = \"locationChange\";\nvar routeChangeEvent = \"routeChange\";\nvar extractQueryParams = (queryString) => {\n return queryString.replace(/^\\?/, \"\").split(\"&\").reduce((aggregate, pairString) => {\n if (!pairString)\n return aggregate;\n const pair = pairString.split(\"=\");\n aggregate[pair[0]] = pair[1];\n return aggregate;\n }, {});\n};\nvar onLocationChange = (_payload, { publish, state: state2 }) => {\n const { host, pathname, search } = window.location;\n const path = pathname;\n const query = extractQueryParams(search);\n state2.route.update({\n host,\n path,\n query\n });\n publish(routeChangeEvent, { host, path, query });\n};\nvar setupHistory = (app) => {\n const { publish, subscribe, state: state2 } = app;\n createRouteState(state2);\n window.addEventListener(\"popstate\", () => publish(locationChangeEvent));\n subscribe(locationChangeEvent, onLocationChange);\n};\n\n// src/navigation/findHref.js\nvar findHref = (node2) => {\n if (!node2 || !node2.getAttribute)\n return \"\";\n while (!node2.getAttribute(\"href\")) {\n node2 = node2.parentNode;\n if (!node2 || !node2.getAttribute)\n return \"\";\n }\n return node2.getAttribute(\"href\");\n};\n\n// src/navigation/setupNavigation.js\nvar linkNavigationEvent = \"goToHref\";\nvar programmaticNavigationEvent = \"navigate\";\nvar navigate = (path, { publish }) => {\n window.history.pushState(null, \"\", path);\n publish(locationChangeEvent);\n};\nvar onLinkClick = (domEvent, { publish }) => {\n if (!domEvent || !domEvent.target)\n return;\n domEvent.preventDefault();\n const href = findHref(domEvent.target);\n navigate(href, { publish });\n};\nvar setupNavigation = (app) => {\n const { subscribe } = app;\n subscribe(linkNavigationEvent, onLinkClick);\n subscribe(programmaticNavigationEvent, navigate);\n};\n\n// src/app.ts\nvar setupBus = (app) => {\n const { publish, subscribe, bus } = createBus();\n app.publish = publish;\n app.subscribe = subscribe;\n app.bus = bus;\n};\nvar setupState = (app) => {\n const state3 = new State(app.publish);\n app.state = state3;\n};\nvar connectBusToState = (app) => {\n const { bus } = app;\n bus.addListenerOptions({ state: app.state });\n};\nvar setupRenderKit = (app, document) => {\n app.renderKit = {\n publish: app.publish,\n subscribe: app.subscribe,\n state: app.state,\n document\n };\n};\nvar triggerRoute = (app) => {\n const publish = app.publish;\n setTimeout(() => {\n publish(locationChangeEvent, null);\n }, 0);\n};\nvar addRender = (app) => {\n app.render = (template, selector) => {\n return render(template, selector, app.renderKit);\n };\n};\nvar createApp = (document = window.document) => {\n const app = {};\n setupBus(app);\n setupState(app);\n connectBusToState(app);\n setupRenderKit(app, document);\n setupHistory(app);\n setupNavigation(app);\n triggerRoute(app);\n addRender(app);\n return app;\n};\n// src/navigation.ts\nvar exports_navigation = {};\n__export(exports_navigation, {\n setupNavigation: () => {\n {\n return setupNavigation;\n }\n },\n setupHistory: () => {\n {\n return setupHistory;\n }\n }\n});\n// src/views/conditionals.jsx\nvar exports_conditionals = {};\n__export(exports_conditionals, {\n Unless: () => {\n {\n return Unless;\n }\n },\n IfElse: () => {\n {\n return IfElse;\n }\n },\n If: () => {\n {\n return If;\n }\n }\n});\nvar If = ({ condition, children: children3 }) => {\n if (!condition)\n return;\n return jsx_default(jsx_default.fragment, null, children3);\n};\nvar Unless = ({ condition, children: children3 }) => {\n if (condition)\n return;\n return jsx_default(jsx_default.fragment, null, children3);\n};\nvar IfElse = ({ condition, children: children3 }) => {\n const [first, ...rest] = children3;\n if (condition)\n return jsx_default(jsx_default.fragment, null, first);\n return jsx_default(jsx_default.fragment, null, rest);\n};\n\n// src/views/link.jsx\nvar Link = ({ children: children3, ...props }) => {\n return jsx_default(\"a\", {\n ...props,\n onClick: \"goToHref\"\n }, children3);\n};\n\n// src/views.js\nvar views = {\n ...exports_conditionals,\n Link\n};\nexport {\n views,\n render,\n exports_navigation as navigation,\n jsx_default as jsx,\n createBus,\n createApp,\n bind,\n State\n};\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"add-remove-root-children.3bb9b3f5.js.map","sourceRoot":"/__parcel_source_root/"}