From 409185d66e615be9fb6acd90c2ccdd8c0443e935 Mon Sep 17 00:00:00 2001 From: Dan Macumber Date: Mon, 27 Jul 2026 22:02:51 -0600 Subject: [PATCH] Add 1.12.0-rc2 --- app/static/js/466a2c10b5943f63fd7f.js | 2 +- app/static/js/466a2c10b5943f63fd7f.js.map | 2 +- openstudioreleases/src/releases/releases.json | 59 +++++++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/app/static/js/466a2c10b5943f63fd7f.js b/app/static/js/466a2c10b5943f63fd7f.js index 93faaa3..50ba9b6 100644 --- a/app/static/js/466a2c10b5943f63fd7f.js +++ b/app/static/js/466a2c10b5943f63fd7f.js @@ -79,5 +79,5 @@ attempted value: ${o} mutation: ${this.mutation.toString()} }`}}class bF{constructor(e,t){this.count=e,this.unchangedNames=t}}function bU(e){if(void 0===e)return gg("GRPC error has no .code"),gw.UNKNOWN;switch(e){case eb.OK:return gw.OK;case eb.CANCELLED:return gw.CANCELLED;case eb.UNKNOWN:return gw.UNKNOWN;case eb.DEADLINE_EXCEEDED:return gw.DEADLINE_EXCEEDED;case eb.RESOURCE_EXHAUSTED:return gw.RESOURCE_EXHAUSTED;case eb.INTERNAL:return gw.INTERNAL;case eb.UNAVAILABLE:return gw.UNAVAILABLE;case eb.UNAUTHENTICATED:return gw.UNAUTHENTICATED;case eb.INVALID_ARGUMENT:return gw.INVALID_ARGUMENT;case eb.NOT_FOUND:return gw.NOT_FOUND;case eb.ALREADY_EXISTS:return gw.ALREADY_EXISTS;case eb.PERMISSION_DENIED:return gw.PERMISSION_DENIED;case eb.FAILED_PRECONDITION:return gw.FAILED_PRECONDITION;case eb.ABORTED:return gw.ABORTED;case eb.OUT_OF_RANGE:return gw.OUT_OF_RANGE;case eb.UNIMPLEMENTED:return gw.UNIMPLEMENTED;case eb.DATA_LOSS:return gw.DATA_LOSS;default:return gy()}}(ey=eb||(eb={}))[ey.OK=0]="OK",ey[ey.CANCELLED=1]="CANCELLED",ey[ey.UNKNOWN=2]="UNKNOWN",ey[ey.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",ey[ey.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",ey[ey.NOT_FOUND=5]="NOT_FOUND",ey[ey.ALREADY_EXISTS=6]="ALREADY_EXISTS",ey[ey.PERMISSION_DENIED=7]="PERMISSION_DENIED",ey[ey.UNAUTHENTICATED=16]="UNAUTHENTICATED",ey[ey.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",ey[ey.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",ey[ey.ABORTED=10]="ABORTED",ey[ey.OUT_OF_RANGE=11]="OUT_OF_RANGE",ey[ey.UNIMPLEMENTED=12]="UNIMPLEMENTED",ey[ey.INTERNAL=13]="INTERNAL",ey[ey.UNAVAILABLE=14]="UNAVAILABLE",ey[ey.DATA_LOSS=15]="DATA_LOSS";let bj=new es([4294967295,4294967295],0);function bz(e){let t=(new TextEncoder).encode(e),n=new el;return n.update(t),new Uint8Array(n.digest())}function bH(e){let t=new DataView(e.buffer),n=t.getUint32(0,!0),r=t.getUint32(4,!0),i=t.getUint32(8,!0),o=t.getUint32(12,!0);return[new es([n,r],0),new es([i,o],0)]}class bZ{constructor(e,t,n){if(this.bitmap=e,this.padding=t,this.hashCount=n,t<0||t>=8)throw new bV(`Invalid padding: ${t}`);if(n<0||e.length>0&&0===this.hashCount)throw new bV(`Invalid hash count: ${n}`);if(0===e.length&&0!==t)throw new bV(`Invalid padding when bitmap length is 0: ${t}`);this.Ie=8*e.length-t,this.Te=es.fromNumber(this.Ie)}Ee(e,t,n){let r=e.add(t.multiply(es.fromNumber(n)));return 1===r.compare(bj)&&(r=new es([r.getBits(0),r.getBits(1)],0)),r.modulo(this.Te).toNumber()}de(e){return 0!=(this.bitmap[Math.floor(e/8)]&1<r.insert(e)),r}insert(e){if(0===this.Ie)return;let[t,n]=bH(bz(e));for(let e=0;e0&&(this.we=!0,this.pe=e)}ve(){let e=bs(),t=bs(),n=bs();return this.ge.forEach((r,i)=>{switch(i){case 0:e=e.add(r);break;case 2:t=t.add(r);break;case 1:n=n.add(r);break;default:gy()}}),new bW(this.pe,this.ye,e,t,n)}Ce(){this.we=!1,this.ge=b$()}Fe(e,t){this.we=!0,this.ge=this.ge.insert(e,t)}Me(e){this.we=!0,this.ge=this.ge.remove(e)}xe(){this.fe+=1}Oe(){var e;this.fe-=1,this.fe>=0||gy()}Ne(){this.we=!0,this.ye=!0}}class bX{constructor(e){this.Le=e,this.Be=new Map,this.ke=A8,this.qe=bJ(),this.Qe=new g0(gD)}Ke(e){for(let t of e.Re)e.Ve&&e.Ve.isFoundDocument()?this.$e(t,e.Ve):this.Ue(t,e.key,e.Ve);for(let t of e.removedTargetIds)this.Ue(t,e.key,e.Ve)}We(e){this.forEachTarget(e,t=>{let n=this.Ge(t);switch(e.state){case 0:this.ze(t)&&n.De(e.resumeToken);break;case 1:n.Oe(),n.Se||n.Ce(),n.De(e.resumeToken);break;case 2:n.Oe(),n.Se||this.removeTarget(t);break;case 3:this.ze(t)&&(n.Ne(),n.De(e.resumeToken));break;case 4:this.ze(t)&&(this.je(t),n.De(e.resumeToken));break;default:gy()}})}forEachTarget(e,t){e.targetIds.length>0?e.targetIds.forEach(t):this.Be.forEach((e,n)=>{this.ze(n)&&t(n)})}He(e){let t=e.targetId,n=e.me.count,r=this.Je(t);if(r){let o=r.target;if(Aq(o)){if(0===n){let e=new gH(o.path);this.Ue(t,e,AT.newNoDocument(e,gB.min()))}else{var i;1===n||gy()}}else{let r=this.Ye(t);if(r!==n){let n=this.Ze(e),i=n?this.Xe(n,e,r):1;if(0!==i){this.je(t);this.Qe=this.Qe.insert(t,2===i?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch")}}}}}Ze(e){let t,n;let r=e.me.unchangedNames;if(!r||!r.bits)return null;let{bits:{bitmap:i="",padding:o=0},hashCount:a=0}=r;try{t=At(i).toUint8Array()}catch(e){if(e instanceof g7)return gA("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{n=new bZ(t,o,a)}catch(e){return gA(e instanceof bV?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===n.Ie?null:n}Xe(e,t,n){return t.me.count===n-this.nt(e,t.targetId)?0:2}nt(e,t){let n=this.Le.getRemoteKeysForTarget(t),r=0;return n.forEach(n=>{let i=this.Le.tt(),o=`projects/${i.projectId}/databases/${i.database}/documents/${n.path.canonicalString()}`;e.mightContain(o)||(this.Ue(t,n,null),r++)}),r}rt(e){let t=new Map;this.Be.forEach((n,r)=>{let i=this.Je(r);if(i){if(n.current&&Aq(i.target)){let t=new gH(i.target.path);null!==this.ke.get(t)||this.it(r,t)||this.Ue(r,t,AT.newNoDocument(t,e))}n.be&&(t.set(r,n.ve()),n.Ce())}});let n=bs();this.qe.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{let t=this.Je(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1,!1)}),r&&(n=n.add(e))}),this.ke.forEach((t,n)=>n.setReadTime(e));let r=new bG(e,t,this.Qe,this.ke,n);return this.ke=A8,this.qe=bJ(),this.Qe=new g0(gD),r}$e(e,t){if(!this.ze(e))return;let n=this.it(e,t.key)?2:0;this.Ge(e).Fe(t.key,n),this.ke=this.ke.insert(t.key,t),this.qe=this.qe.insert(t.key,this.st(t.key).add(e))}Ue(e,t,n){if(!this.ze(e))return;let r=this.Ge(e);this.it(e,t)?r.Fe(t,1):r.Me(t),this.qe=this.qe.insert(t,this.st(t).delete(e)),n&&(this.ke=this.ke.insert(t,n))}removeTarget(e){this.Be.delete(e)}Ye(e){let t=this.Ge(e).ve();return this.Le.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}xe(e){this.Ge(e).xe()}Ge(e){let t=this.Be.get(e);return t||(t=new bY,this.Be.set(e,t)),t}st(e){let t=this.qe.get(e);return t||(t=new g4(gD),this.qe=this.qe.insert(e,t)),t}ze(e){let t=null!==this.Je(e);return t||gm("WatchChangeAggregator","Detected inactive target",e),t}Je(e){let t=this.Be.get(e);return t&&t.Se?null:this.Le.ot(e)}je(e){this.Be.set(e,new bY),this.Le.getRemoteKeysForTarget(e).forEach(t=>{this.Ue(e,t,null)})}it(e,t){return this.Le.getRemoteKeysForTarget(e).has(t)}}function bJ(){return new g0(gH.comparator)}function b$(){return new g0(gH.comparator)}let b0={asc:"ASCENDING",desc:"DESCENDING"},b1={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},b2={and:"AND",or:"OR"};class b4{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function b3(e,t){return e.useProto3Json||null==t?t:{value:t}}function b6(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function b7(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function b8(e){var t;return!e&&gy(),gB.fromTimestamp(function(e){let t=g9(e);return new gL(t.seconds,t.nanos)}(e))}function b5(e,t){return b9(e,t).canonicalString()}function b9(e,t){var n;let r=new gU(["projects",(n=e).projectId,"databases",n.database]).child("documents");return void 0===t?r:r.child(t)}function ye(e){var t;let n=gU.fromString(e);return yu(n)||gy(),n}function yt(e,t){return b5(e.databaseId,t.path)}function yn(e,t){let n=ye(t);if(n.get(1)!==e.databaseId.projectId)throw new gE(gw.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+e.databaseId.projectId);if(n.get(3)!==e.databaseId.database)throw new gE(gw.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+e.databaseId.database);return new gH(yo(n))}function yr(e,t){return b5(e.databaseId,t)}function yi(e){return new gU(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function yo(e){var t;return e.length>4&&"documents"===e.get(4)||gy(),e.popFirst(5)}function ya(e,t,n){return{name:yt(e,t),fields:n.value.mapValue.fields}}function ys(e){return{fieldPath:e.canonicalString()}}function yl(e){return gz.fromServerFormat(e.fieldPath)}function yu(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}class yc{constructor(e,t,n,r,i=gB.min(),o=gB.min(),a=g8.EMPTY_BYTE_STRING,s=null){this.target=e,this.targetId=t,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=o,this.resumeToken=a,this.expectedCount=s}withSequenceNumber(e){return new yc(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new yc(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new yc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new yc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class yp{constructor(e){this.ct=e}}class yd{constructor(){}It(e,t){this.Tt(e,t),t.Et()}Tt(e,t){if("nullValue"in e)this.dt(t,5);else if("booleanValue"in e)this.dt(t,10),t.At(e.booleanValue?1:0);else if("integerValue"in e)this.dt(t,15),t.At(Ae(e.integerValue));else if("doubleValue"in e){let n=Ae(e.doubleValue);isNaN(n)?this.dt(t,13):(this.dt(t,15),gY(n)?t.At(0):t.At(n))}else if("timestampValue"in e){let n=e.timestampValue;this.dt(t,20),"string"==typeof n&&(n=g9(n)),t.Rt(`${n.seconds||""}`),t.At(n.nanos||0)}else if("stringValue"in e)this.Vt(e.stringValue,t),this.ft(t);else if("bytesValue"in e)this.dt(t,30),t.gt(At(e.bytesValue)),this.ft(t);else if("referenceValue"in e)this.yt(e.referenceValue,t);else if("geoPointValue"in e){let n=e.geoPointValue;this.dt(t,45),t.At(n.latitude||0),t.At(n.longitude||0)}else"mapValue"in e?AE(e)?this.dt(t,Number.MAX_SAFE_INTEGER):AS(e)?this.wt(e.mapValue,t):(this.St(e.mapValue,t),this.ft(t)):"arrayValue"in e?(this.bt(e.arrayValue,t),this.ft(t)):gy()}Vt(e,t){this.dt(t,25),this.Dt(e,t)}Dt(e,t){t.Rt(e)}St(e,t){let n=e.fields||{};for(let e of(this.dt(t,55),Object.keys(n)))this.Vt(e,t),this.Tt(n[e],t)}wt(e,t){var n,r;let i=e.fields||{};this.dt(t,53);let o="value",a=(null===(r=null===(n=i[o].arrayValue)||void 0===n?void 0:n.values)||void 0===r?void 0:r.length)||0;this.dt(t,15),t.At(Ae(a)),this.Vt(o,t),this.Tt(i[o],t)}bt(e,t){let n=e.values||[];for(let e of(this.dt(t,50),n))this.Tt(e,t)}yt(e,t){this.dt(t,37),gH.fromName(e).path.forEach(e=>{this.dt(t,60),this.Dt(e,t)})}dt(e,t){e.At(t)}ft(e){e.At(2)}}yd.vt=new yd;class yh{constructor(){this.un=new yf}addToCollectionParentIndex(e,t){return this.un.add(t),gW.resolve()}getCollectionParents(e,t){return gW.resolve(this.un.getEntries(t))}addFieldIndex(e,t){return gW.resolve()}deleteFieldIndex(e,t){return gW.resolve()}deleteAllFieldIndexes(e){return gW.resolve()}createTargetIndexes(e,t){return gW.resolve()}getDocumentsMatchingTarget(e,t){return gW.resolve(null)}getIndexType(e,t){return gW.resolve(0)}getFieldIndexes(e,t){return gW.resolve([])}getNextCollectionGroupToUpdate(e){return gW.resolve(null)}getMinOffset(e,t){return gW.resolve(gZ.min())}getMinOffsetFromCollectionGroup(e,t){return gW.resolve(gZ.min())}updateCollectionGroup(e,t,n){return gW.resolve()}updateIndexEntries(e,t){return gW.resolve()}}class yf{constructor(){this.index={}}add(e){let t=e.lastSegment(),n=e.popLast(),r=this.index[t]||new g4(gU.comparator),i=!r.has(n);return this.index[t]=r.add(n),i}has(e){let t=e.lastSegment(),n=e.popLast(),r=this.index[t];return r&&r.has(n)}getEntries(e){return(this.index[e]||new g4(gU.comparator)).toArray()}}new Uint8Array(0);class ym{constructor(e,t,n){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=n}static withCacheSize(e){return new ym(e,ym.DEFAULT_COLLECTION_PERCENTILE,ym.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}}ym.DEFAULT_COLLECTION_PERCENTILE=10,ym.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,ym.DEFAULT=new ym(41943040,ym.DEFAULT_COLLECTION_PERCENTILE,ym.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),ym.DISABLED=new ym(-1,0,0);class yg{constructor(e){this.Ln=e}next(){return this.Ln+=2,this.Ln}static Bn(){return new yg(0)}static kn(){return new yg(-1)}}class yA{constructor(){this.changes=new A7(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,AT.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();let n=this.changes.get(t);return void 0!==n?gW.resolve(n):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class yb{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class yy{constructor(e,t,n,r){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=n,this.indexManager=r}getDocument(e,t){let n=null;return this.documentOverlayCache.getOverlay(e,t).next(r=>(n=r,this.remoteDocumentCache.getEntry(e,t))).next(e=>(null!==n&&bC(n.mutation,e,g6.empty(),gL.now()),e))}getDocuments(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.getLocalViewOfDocuments(e,t,bs()).next(()=>t))}getLocalViewOfDocuments(e,t,n=bs()){let r=bi();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,n).next(e=>{let t=be();return e.forEach((e,n)=>{t=t.insert(e,n.overlayedDocument)}),t}))}getOverlayedDocuments(e,t){let n=bi();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,bs()))}populateOverlays(e,t,n){let r=[];return n.forEach(e=>{t.has(e)||r.push(e)}),this.documentOverlayCache.getOverlays(e,r).next(e=>{e.forEach((e,n)=>{t.set(e,n)})})}computeViews(e,t,n,r){let i=A8,o=bi(),a=bi();return t.forEach((e,t)=>{let a=n.get(t.key);r.has(t.key)&&(void 0===a||a.mutation instanceof bk)?i=i.insert(t.key,t):void 0!==a?(o.set(t.key,a.mutation.getFieldMask()),bC(a.mutation,t,a.mutation.getFieldMask(),gL.now())):o.set(t.key,g6.empty())}),this.recalculateAndSaveOverlays(e,i).next(e=>(e.forEach((e,t)=>o.set(e,t)),t.forEach((e,t)=>{var n;return a.set(e,new yb(t,null!==(n=o.get(e))&&void 0!==n?n:null))}),a))}recalculateAndSaveOverlays(e,t){let n=bi(),r=new g0((e,t)=>e-t),i=bs();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(e,t).next(e=>{for(let i of e)i.keys().forEach(e=>{let o=t.get(e);if(null===o)return;let a=n.get(e)||g6.empty();a=i.applyToLocalView(o,a),n.set(e,a);let s=(r.get(i.batchId)||bs()).add(e);r=r.insert(i.batchId,s)})}).next(()=>{let o=[],a=r.getReverseIterator();for(;a.hasNext();){let r=a.getNext(),s=r.key,l=r.value,u=bi();l.forEach(e=>{if(!i.has(e)){let r=bT(t.get(e),n.get(e));null!==r&&u.set(e,r),i=i.add(e)}}),o.push(this.documentOverlayCache.saveOverlays(e,s,u))}return gW.waitFor(o)}).next(()=>n)}recalculateAndSaveOverlaysForDocumentKeys(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.recalculateAndSaveOverlays(e,t))}getDocumentsMatchingQuery(e,t,n,r){var i;return(i=t,gH.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length)?this.getDocumentsMatchingDocumentQuery(e,t.path):null!==t.collectionGroup?this.getDocumentsMatchingCollectionGroupQuery(e,t,n,r):this.getDocumentsMatchingCollectionQuery(e,t,n,r)}getNextDocuments(e,t,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(e,t,n,r).next(i=>{let o=r-i.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(e,t,n.largestBatchId,r-i.size):gW.resolve(bi()),a=-1,s=i;return o.next(t=>gW.forEach(t,(t,n)=>(a{s=s.insert(t,e)}))).next(()=>this.populateOverlays(e,t,i)).next(()=>this.computeViews(e,s,t,bs())).next(e=>({batchId:a,changes:bt(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new gH(t)).next(e=>{let t=be();return e.isFoundDocument()&&(t=t.insert(e.key,e)),t})}getDocumentsMatchingCollectionGroupQuery(e,t,n,r){let i=t.collectionGroup,o=be();return this.indexManager.getCollectionParents(e,i).next(a=>gW.forEach(a,a=>{var s;let l=(s=t,new AK(a.child(i),null,s.explicitOrderBy.slice(),s.filters.slice(),s.limit,s.limitType,s.startAt,s.endAt));return this.getDocumentsMatchingCollectionQuery(e,l,n,r).next(e=>{e.forEach((e,t)=>{o=o.insert(e,t)})})}).next(()=>o))}getDocumentsMatchingCollectionQuery(e,t,n,r){let i;return this.documentOverlayCache.getOverlaysForCollection(e,t.path,n.largestBatchId).next(o=>(i=o,this.remoteDocumentCache.getDocumentsMatchingQuery(e,t,n,i,r))).next(e=>{i.forEach((t,n)=>{let r=n.getKey();null===e.get(r)&&(e=e.insert(r,AT.newInvalidDocument(r)))});let n=be();return e.forEach((e,r)=>{let o=i.get(e);void 0!==o&&bC(o.mutation,r,g6.empty(),gL.now()),A3(t,r)&&(n=n.insert(e,r))}),n})}}class yv{constructor(e){this.serializer=e,this.hr=new Map,this.Pr=new Map}getBundleMetadata(e,t){return gW.resolve(this.hr.get(t))}saveBundleMetadata(e,t){var n;return this.hr.set(t.id,{id:(n=t).id,version:n.version,createTime:b8(n.createTime)}),gW.resolve()}getNamedQuery(e,t){return gW.resolve(this.Pr.get(t))}saveNamedQuery(e,t){var n;return this.Pr.set(t.name,{name:(n=t).name,query:function(e){let t=function(e){var t,n,r;let i,o=function(e){let t=ye(e);return 4===t.length?gU.emptyPath():yo(t)}(e.parent),a=e.structuredQuery,s=a.from?a.from.length:0,l=null;if(s>0){;1===s||gy();let e=a.from[0];e.allDescendants?l=e.collectionId:o=o.child(e.collectionId)}let u=[];a.where&&(u=function(e){var t;let n=function e(t){var n,r;return void 0!==t.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":let t=yl(e.unaryFilter.field);return AR.create(t,"==",{doubleValue:NaN});case"IS_NULL":let n=yl(e.unaryFilter.field);return AR.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=yl(e.unaryFilter.field);return AR.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let i=yl(e.unaryFilter.field);return AR.create(i,"!=",{nullValue:"NULL_VALUE"});default:return gy()}}(t):void 0!==t.fieldFilter?(n=t,AR.create(yl(n.fieldFilter.field),function(e){switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return gy()}}(n.fieldFilter.op),n.fieldFilter.value)):void 0!==t.compositeFilter?(r=t,AP.create(r.compositeFilter.filters.map(t=>e(t)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return gy()}}(r.compositeFilter.op))):gy()}(e);return n instanceof AP&&AM(t=n)&&AN(t)?n.getFilters():[n]}(a.where));let c=[];a.orderBy&&(c=a.orderBy.map(e=>{var t;return new Ak(yl((t=e).field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}));let p=null;a.limit&&(p=null==(i="object"==typeof(n=a.limit)?n.value:n)?null:i);let d=null;a.startAt&&(d=function(e){let t=!!e.before;return new AC(e.values||[],t)}(a.startAt));let h=null;return a.endAt&&(h=function(e){let t=!e.before;return new AC(e.values||[],t)}(a.endAt)),r="F",new AK(o,l,c,u,p,"F",d,h)}({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?A0(t,t.limit,"L"):t}(n.bundledQuery),readTime:b8(n.readTime)}),gW.resolve()}}class yS{constructor(){this.overlays=new g0(gH.comparator),this.Ir=new Map}getOverlay(e,t){return gW.resolve(this.overlays.get(t))}getOverlays(e,t){let n=bi();return gW.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&n.set(t,e)})).next(()=>n)}saveOverlays(e,t,n){return n.forEach((n,r)=>{this.ht(e,t,r)}),gW.resolve()}removeOverlaysForBatchId(e,t,n){let r=this.Ir.get(n);return void 0!==r&&(r.forEach(e=>this.overlays=this.overlays.remove(e)),this.Ir.delete(n)),gW.resolve()}getOverlaysForCollection(e,t,n){let r=bi(),i=t.length+1,o=new gH(t.child("")),a=this.overlays.getIteratorFrom(o);for(;a.hasNext();){let e=a.getNext().value,o=e.getKey();if(!t.isPrefixOf(o.path))break;o.path.length===i&&e.largestBatchId>n&&r.set(e.getKey(),e)}return gW.resolve(r)}getOverlaysForCollectionGroup(e,t,n,r){let i=new g0((e,t)=>e-t),o=this.overlays.getIterator();for(;o.hasNext();){let e=o.getNext().value;if(e.getKey().getCollectionGroup()===t&&e.largestBatchId>n){let t=i.get(e.largestBatchId);null===t&&(t=bi(),i=i.insert(e.largestBatchId,t)),t.set(e.getKey(),e)}}let a=bi(),s=i.getIterator();for(;s.hasNext()&&(s.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=r)););return gW.resolve(a)}ht(e,t,n){let r=this.overlays.get(n.key);if(null!==r){let e=this.Ir.get(r.largestBatchId).delete(n.key);this.Ir.set(r.largestBatchId,e)}this.overlays=this.overlays.insert(n.key,new bB(t,n));let i=this.Ir.get(t);void 0===i&&(i=bs(),this.Ir.set(t,i)),this.Ir.set(t,i.add(n.key))}}class yw{constructor(){this.sessionToken=g8.EMPTY_BYTE_STRING}getSessionToken(e){return gW.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,gW.resolve()}}class yE{constructor(){this.Tr=new g4(yO.Er),this.dr=new g4(yO.Ar)}isEmpty(){return this.Tr.isEmpty()}addReference(e,t){let n=new yO(e,t);this.Tr=this.Tr.add(n),this.dr=this.dr.add(n)}Rr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Vr(new yO(e,t))}mr(e,t){e.forEach(e=>this.removeReference(e,t))}gr(e){let t=new gH(new gU([])),n=new yO(t,e),r=new yO(t,e+1),i=[];return this.dr.forEachInRange([n,r],e=>{this.Vr(e),i.push(e.key)}),i}pr(){this.Tr.forEach(e=>this.Vr(e))}Vr(e){this.Tr=this.Tr.delete(e),this.dr=this.dr.delete(e)}yr(e){let t=new gH(new gU([])),n=new yO(t,e),r=new yO(t,e+1),i=bs();return this.dr.forEachInRange([n,r],e=>{i=i.add(e.key)}),i}containsKey(e){let t=new yO(e,0),n=this.Tr.firstAfterOrEqual(t);return null!==n&&e.isEqual(n.key)}}class yO{constructor(e,t){this.key=e,this.wr=t}static Er(e,t){return gH.comparator(e.key,t.key)||gD(e.wr,t.wr)}static Ar(e,t){return gD(e.wr,t.wr)||gH.comparator(e.key,t.key)}}class yT{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Sr=1,this.br=new g4(yO.Er)}checkEmpty(e){return gW.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,n,r){let i=this.Sr;this.Sr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];let o=new bM(i,t,n,r);for(let t of(this.mutationQueue.push(o),r))this.br=this.br.add(new yO(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return gW.resolve(o)}lookupMutationBatch(e,t){return gW.resolve(this.Dr(t))}getNextMutationBatchAfterBatchId(e,t){let n=this.vr(t+1),r=n<0?0:n;return gW.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return gW.resolve(0===this.mutationQueue.length?-1:this.Sr-1)}getAllMutationBatches(e){return gW.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let n=new yO(t,0),r=new yO(t,Number.POSITIVE_INFINITY),i=[];return this.br.forEachInRange([n,r],e=>{let t=this.Dr(e.wr);i.push(t)}),gW.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new g4(gD);return t.forEach(e=>{let t=new yO(e,0),r=new yO(e,Number.POSITIVE_INFINITY);this.br.forEachInRange([t,r],e=>{n=n.add(e.wr)})}),gW.resolve(this.Cr(n))}getAllMutationBatchesAffectingQuery(e,t){let n=t.path,r=n.length+1,i=n;gH.isDocumentKey(i)||(i=i.child(""));let o=new yO(new gH(i),0),a=new g4(gD);return this.br.forEachWhile(e=>{let t=e.key.path;return!!n.isPrefixOf(t)&&(t.length===r&&(a=a.add(e.wr)),!0)},o),gW.resolve(this.Cr(a))}Cr(e){let t=[];return e.forEach(e=>{let n=this.Dr(e);null!==n&&t.push(n)}),t}removeMutationBatch(e,t){var n;0===this.Fr(t.batchId,"removed")||gy(),this.mutationQueue.shift();let r=this.br;return gW.forEach(t.mutations,n=>{let i=new yO(n.key,t.batchId);return r=r.delete(i),this.referenceDelegate.markPotentiallyOrphaned(e,n.key)}).next(()=>{this.br=r})}On(e){}containsKey(e,t){let n=new yO(t,0),r=this.br.firstAfterOrEqual(n);return gW.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,gW.resolve()}Fr(e,t){return this.vr(e)}vr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Dr(e){let t=this.vr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class yC{constructor(e){this.Mr=e,this.docs=new g0(gH.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){let n=t.key,r=this.docs.get(n),i=r?r.size:0,o=this.Mr(t);return this.docs=this.docs.insert(n,{document:t.mutableCopy(),size:o}),this.size+=o-i,this.indexManager.addToCollectionParentIndex(e,n.path.popLast())}removeEntry(e){let t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){let n=this.docs.get(t);return gW.resolve(n?n.document.mutableCopy():AT.newInvalidDocument(t))}getEntries(e,t){let n=A8;return t.forEach(e=>{let t=this.docs.get(e);n=n.insert(e,t?t.document.mutableCopy():AT.newInvalidDocument(e))}),gW.resolve(n)}getDocumentsMatchingQuery(e,t,n,r){let i=A8,o=t.path,a=new gH(o.child("")),s=this.docs.getIteratorFrom(a);for(;s.hasNext();){var l;let{key:e,value:{document:a}}=s.getNext();if(!o.isPrefixOf(e.path))break;e.path.length>o.length+1||0>=function(e,t){let n=e.readTime.compareTo(t.readTime);return 0!==n?n:0!==(n=gH.comparator(e.documentKey,t.documentKey))?n:gD(e.largestBatchId,t.largestBatchId)}(new gZ((l=a).readTime,l.key,-1),n)||(r.has(a.key)||A3(t,a))&&(i=i.insert(a.key,a.mutableCopy()))}return gW.resolve(i)}getAllFromCollectionGroup(e,t,n,r){gy()}Or(e,t){return gW.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new yx(this)}getSize(e){return gW.resolve(this.size)}}class yx extends yA{constructor(e){super(),this.cr=e}applyChanges(e){let t=[];return this.changes.forEach((n,r)=>{r.isValidDocument()?t.push(this.cr.addEntry(e,r)):this.cr.removeEntry(n)}),gW.waitFor(t)}getFromCache(e,t){return this.cr.getEntry(e,t)}getAllFromCache(e,t){return this.cr.getEntries(e,t)}}class yI{constructor(e){this.persistence=e,this.Nr=new A7(e=>AW(e),AQ),this.lastRemoteSnapshotVersion=gB.min(),this.highestTargetId=0,this.Lr=0,this.Br=new yE,this.targetCount=0,this.kr=yg.Bn()}forEachTarget(e,t){return this.Nr.forEach((e,n)=>t(n)),gW.resolve()}getLastRemoteSnapshotVersion(e){return gW.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return gW.resolve(this.Lr)}allocateTargetId(e){return this.highestTargetId=this.kr.next(),gW.resolve(this.highestTargetId)}setTargetsMetadata(e,t,n){return n&&(this.lastRemoteSnapshotVersion=n),t>this.Lr&&(this.Lr=t),gW.resolve()}Kn(e){this.Nr.set(e.target,e);let t=e.targetId;t>this.highestTargetId&&(this.kr=new yg(t),this.highestTargetId=t),e.sequenceNumber>this.Lr&&(this.Lr=e.sequenceNumber)}addTargetData(e,t){return this.Kn(t),this.targetCount+=1,gW.resolve()}updateTargetData(e,t){return this.Kn(t),gW.resolve()}removeTargetData(e,t){return this.Nr.delete(t.target),this.Br.gr(t.targetId),this.targetCount-=1,gW.resolve()}removeTargets(e,t,n){let r=0,i=[];return this.Nr.forEach((o,a)=>{a.sequenceNumber<=t&&null===n.get(a.targetId)&&(this.Nr.delete(o),i.push(this.removeMatchingKeysForTargetId(e,a.targetId)),r++)}),gW.waitFor(i).next(()=>r)}getTargetCount(e){return gW.resolve(this.targetCount)}getTargetData(e,t){let n=this.Nr.get(t)||null;return gW.resolve(n)}addMatchingKeys(e,t,n){return this.Br.Rr(t,n),gW.resolve()}removeMatchingKeys(e,t,n){this.Br.mr(t,n);let r=this.persistence.referenceDelegate,i=[];return r&&t.forEach(t=>{i.push(r.markPotentiallyOrphaned(e,t))}),gW.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.Br.gr(t),gW.resolve()}getMatchingKeysForTargetId(e,t){let n=this.Br.yr(t);return gW.resolve(n)}containsKey(e,t){return gW.resolve(this.Br.containsKey(t))}}class yk{constructor(e,t){this.qr={},this.overlays={},this.Qr=new gq(0),this.Kr=!1,this.Kr=!0,this.$r=new yw,this.referenceDelegate=e(this),this.Ur=new yI(this),this.indexManager=new yh,this.remoteDocumentCache=new yC(e=>this.referenceDelegate.Wr(e)),this.serializer=new yp(t),this.Gr=new yv(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.Kr=!1,Promise.resolve()}get started(){return this.Kr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new yS,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let n=this.qr[e.toKey()];return n||(n=new yT(t,this.referenceDelegate),this.qr[e.toKey()]=n),n}getGlobalsCache(){return this.$r}getTargetCache(){return this.Ur}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Gr}runTransaction(e,t,n){gm("MemoryPersistence","Starting transaction:",e);let r=new y_(this.Qr.next());return this.referenceDelegate.zr(),n(r).next(e=>this.referenceDelegate.jr(r).next(()=>e)).toPromise().then(e=>(r.raiseOnCommittedEvent(),e))}Hr(e,t){return gW.or(Object.values(this.qr).map(n=>()=>n.containsKey(e,t)))}}class y_ extends gV{constructor(e){super(),this.currentSequenceNumber=e}}class yR{constructor(e){this.persistence=e,this.Jr=new yE,this.Yr=null}static Zr(e){return new yR(e)}get Xr(){if(this.Yr)return this.Yr;throw gy()}addReference(e,t,n){return this.Jr.addReference(n,t),this.Xr.delete(n.toString()),gW.resolve()}removeReference(e,t,n){return this.Jr.removeReference(n,t),this.Xr.add(n.toString()),gW.resolve()}markPotentiallyOrphaned(e,t){return this.Xr.add(t.toString()),gW.resolve()}removeTarget(e,t){this.Jr.gr(t.targetId).forEach(e=>this.Xr.add(e.toString()));let n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.Xr.add(e.toString()))}).next(()=>n.removeTargetData(e,t))}zr(){this.Yr=new Set}jr(e){let t=this.persistence.getRemoteDocumentCache().newChangeBuffer();return gW.forEach(this.Xr,n=>{let r=gH.fromPath(n);return this.ei(e,r).next(e=>{e||t.removeEntry(r,gB.min())})}).next(()=>(this.Yr=null,t.apply(e)))}updateLimboDocument(e,t){return this.ei(e,t).next(e=>{e?this.Xr.delete(t.toString()):this.Xr.add(t.toString())})}Wr(e){return 0}ei(e,t){return gW.or([()=>gW.resolve(this.Jr.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Hr(e,t)])}}class yP{constructor(e,t,n,r){this.targetId=e,this.fromCache=t,this.$i=n,this.Ui=r}static Wi(e,t){let n=bs(),r=bs();for(let e of t.docChanges)switch(e.type){case 0:n=n.add(e.doc.key);break;case 1:r=r.add(e.doc.key)}return new yP(e,t.fromCache,n,r)}}class yN{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class yD{constructor(){this.Gi=!1,this.zi=!1,this.ji=100,this.Hi=!function(){var e;let t=null===(e=p5())||void 0===e?void 0:e.forceEnvironment;if("node"===t)return!0;if("browser"===t)return!1;try{return"[object process]"===Object.prototype.toString.call(n.g.process)}catch(e){return!1}}()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")?8:function(e){let t=e.match(/Android ([\d.]+)/i);return Number(t?t[1].split(".").slice(0,2).join("."):"-1")}(da())>0?6:4}initialize(e,t){this.Ji=e,this.indexManager=t,this.Gi=!0}getDocumentsMatchingQuery(e,t,n,r){let i={result:null};return this.Yi(e,t).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.Zi(e,t,r,n).next(e=>{i.result=e})}).next(()=>{if(i.result)return;let n=new yN;return this.Xi(e,t,n).next(r=>{if(i.result=r,this.zi)return this.es(e,t,n,r.size)})}).next(()=>i.result)}es(e,t,n,r){return n.documentReadCountthis.Hi*r?(gf()<=ea.DEBUG&&gm("QueryEngine","The SDK decides to create cache indexes for query:",A4(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,A$(t))):gW.resolve())}Yi(e,t){if(AX(t))return gW.resolve(null);let n=A$(t);return this.indexManager.getIndexType(e,n).next(r=>0===r?null:(null!==t.limit&&1===r&&(n=A$(t=A0(t,null,"F"))),this.indexManager.getDocumentsMatchingTarget(e,n).next(r=>{let i=bs(...r);return this.Ji.getDocuments(e,i).next(r=>this.indexManager.getMinOffset(e,n).next(n=>{let o=this.ts(t,r);return this.ns(t,o,i,n.readTime)?this.Yi(e,A0(t,null,"F")):this.rs(e,o,t,n)}))})))}Zi(e,t,n,r){return AX(t)||r.isEqual(gB.min())?gW.resolve(null):this.Ji.getDocuments(e,n).next(i=>{let o=this.ts(t,i);return this.ns(t,o,n,r)?gW.resolve(null):(gf()<=ea.DEBUG&&gm("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),A4(t)),this.rs(e,o,t,function(e,t){let n=e.toTimestamp().seconds,r=e.toTimestamp().nanoseconds+1;return new gZ(gB.fromTimestamp(1e9===r?new gL(n+1,0):new gL(n,r)),gH.empty(),-1)}(r,-1)).next(e=>e))})}ts(e,t){let n=new g4(A6(e));return t.forEach((t,r)=>{A3(e,r)&&(n=n.add(r))}),n}ns(e,t,n,r){if(null===e.limit)return!1;if(n.size!==t.size)return!0;let i="F"===e.limitType?t.last():t.first();return!!i&&(i.hasPendingWrites||i.version.compareTo(r)>0)}Xi(e,t,n){return gf()<=ea.DEBUG&&gm("QueryEngine","Using full collection scan to execute query:",A4(t)),this.Ji.getDocumentsMatchingQuery(e,t,gZ.min(),n)}rs(e,t,n,r){return this.Ji.getDocumentsMatchingQuery(e,n,r).next(e=>(t.forEach(t=>{e=e.insert(t.key,t)}),e))}}class yM{constructor(e,t,n,r){this.persistence=e,this.ss=t,this.serializer=r,this.os=new g0(gD),this._s=new A7(e=>AW(e),AQ),this.us=new Map,this.cs=e.getRemoteDocumentCache(),this.Ur=e.getTargetCache(),this.Gr=e.getBundleCache(),this.ls(n)}ls(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new yy(this.cs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.cs.setIndexManager(this.indexManager),this.ss.initialize(this.localDocuments,this.indexManager)}collectGarbage(e){return this.persistence.runTransaction("Collect garbage","readwrite-primary",t=>e.collect(t,this.os))}}async function yL(e,t){var n;return await e.persistence.runTransaction("Handle user change","readonly",n=>{let r;return e.mutationQueue.getAllMutationBatches(n).next(i=>(r=i,e.ls(t),e.mutationQueue.getAllMutationBatches(n))).next(t=>{let i=[],o=[],a=bs();for(let e of r)for(let t of(i.push(e.batchId),e.mutations))a=a.add(t.key);for(let e of t)for(let t of(o.push(e.batchId),e.mutations))a=a.add(t.key);return e.localDocuments.getDocuments(n,a).next(e=>({hs:e,removedBatchIds:i,addedBatchIds:o}))})})}function yB(e){var t;return e.persistence.runTransaction("Get last remote snapshot version","readonly",t=>e.Ur.getLastRemoteSnapshotVersion(t))}async function yF(e,t,n){var r;let i=e.os.get(t);try{n||await e.persistence.runTransaction("Release target",n?"readwrite":"readwrite-primary",t=>e.persistence.referenceDelegate.removeTarget(t,i))}catch(e){if(!gQ(e))throw e;gm("LocalStore",`Failed to update sequence numbers for target ${t}: ${e}`)}e.os=e.os.remove(t),e._s.delete(i.target)}function yU(e,t,n){var r;let i=gB.min(),o=bs();return e.persistence.runTransaction("Execute query","readwrite",r=>(function(e,t,n){var r;let i=e._s.get(n);return void 0!==i?gW.resolve(e.os.get(i)):e.Ur.getTargetData(t,n)})(e,r,A$(t)).next(t=>{if(t)return i=t.lastLimboFreeSnapshotVersion,e.Ur.getMatchingKeysForTargetId(r,t.targetId).next(e=>{o=e})}).next(()=>e.ss.getDocumentsMatchingQuery(r,t,n?i:gB.min(),n?o:bs())).next(n=>{var r;return function(e,t,n){let r=e.us.get(t)||gB.min();n.forEach((e,t)=>{t.readTime.compareTo(r)>0&&(r=t.readTime)}),e.us.set(t,r)}(e,(r=t).collectionGroup||(r.path.length%2==1?r.path.lastSegment():r.path.get(r.path.length-2)),n),{documents:n,Ts:o}}))}class yj{constructor(){this.activeTargetIds=bl}fs(e){this.activeTargetIds=this.activeTargetIds.add(e)}gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Vs(){return JSON.stringify({activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()})}}class yz{constructor(){this.so=new yj,this.oo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,n){}addLocalQueryTarget(e,t=!0){return t&&this.so.fs(e),this.oo[e]||"not-current"}updateQueryState(e,t,n){this.oo[e]=t}removeLocalQueryTarget(e){this.so.gs(e)}isLocalQueryTarget(e){return this.so.activeTargetIds.has(e)}clearQueryState(e){delete this.oo[e]}getAllActiveQueryTargets(){return this.so.activeTargetIds}isActiveQueryTarget(e){return this.so.activeTargetIds.has(e)}start(){return this.so=new yj,Promise.resolve()}handleUserChange(e,t,n){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class yH{_o(e){}shutdown(){}}class yZ{constructor(){this.ao=()=>this.uo(),this.co=()=>this.lo(),this.ho=[],this.Po()}_o(e){this.ho.push(e)}shutdown(){window.removeEventListener("online",this.ao),window.removeEventListener("offline",this.co)}Po(){window.addEventListener("online",this.ao),window.addEventListener("offline",this.co)}uo(){for(let e of(gm("ConnectivityMonitor","Network connectivity changed: AVAILABLE"),this.ho))e(0)}lo(){for(let e of(gm("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE"),this.ho))e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let yV=null;function yG(){return null===yV?yV=268435456+Math.round(2147483648*Math.random()):yV++,"0x"+yV.toString(16)}let yW={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class yQ{constructor(e){this.Io=e.Io,this.To=e.To}Eo(e){this.Ao=e}Ro(e){this.Vo=e}mo(e){this.fo=e}onMessage(e){this.po=e}close(){this.To()}send(e){this.Io(e)}yo(){this.Ao()}wo(){this.Vo()}So(e){this.fo(e)}bo(e){this.po(e)}}let yq="WebChannelConnection";class yK extends class{constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;let t=e.ssl?"https":"http",n=encodeURIComponent(this.databaseId.projectId),r=encodeURIComponent(this.databaseId.database);this.Do=t+"://"+e.host,this.vo=`projects/${n}/databases/${r}`,this.Co="(default)"===this.databaseId.database?`project_id=${n}`:`project_id=${n}&database_id=${r}`}get Fo(){return!1}Mo(e,t,n,r,i){let o=yG(),a=this.xo(e,t.toUriEncodedString());gm("RestConnection",`Sending RPC '${e}' ${o}:`,a,n);let s={"google-cloud-resource-prefix":this.vo,"x-goog-request-params":this.Co};return this.Oo(s,r,i),this.No(e,a,s,n).then(t=>(gm("RestConnection",`Received RPC '${e}' ${o}: `,t),t),t=>{throw gA("RestConnection",`RPC '${e}' ${o} failed with error: `,t,"url: ",a,"request:",n),t})}Lo(e,t,n,r,i,o){return this.Mo(e,t,n,r,i)}Oo(e,t,n){e["X-Goog-Api-Client"]=function(){return"gl-js/ fire/"+gd}(),e["Content-Type"]="text/plain",this.databaseInfo.appId&&(e["X-Firebase-GMPID"]=this.databaseInfo.appId),t&&t.headers.forEach((t,n)=>e[n]=t),n&&n.headers.forEach((t,n)=>e[n]=t)}xo(e,t){let n=yW[e];return`${this.Do}/v1/${t}:${n}`}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}No(e,t,n,r){let i=yG();return new Promise((o,a)=>{let s=new eu;s.setWithCredentials(!0),s.listenOnce(ed.COMPLETE,()=>{try{switch(s.getLastErrorCode()){case eh.NO_ERROR:let t=s.getResponseJson();gm(yq,`XHR for RPC '${e}' ${i} received:`,JSON.stringify(t)),o(t);break;case eh.TIMEOUT:gm(yq,`RPC '${e}' ${i} timed out`),a(new gE(gw.DEADLINE_EXCEEDED,"Request time out"));break;case eh.HTTP_ERROR:let n=s.getStatus();if(gm(yq,`RPC '${e}' ${i} failed with status:`,n,"response text:",s.getResponseText()),n>0){let e=s.getResponseJson();Array.isArray(e)&&(e=e[0]);let t=null==e?void 0:e.error;if(t&&t.status&&t.message){let e=function(e){let t=e.toLowerCase().replace(/_/g,"-");return Object.values(gw).indexOf(t)>=0?t:gw.UNKNOWN}(t.status);a(new gE(e,t.message))}else a(new gE(gw.UNKNOWN,"Server responded with status "+s.getStatus()))}else a(new gE(gw.UNAVAILABLE,"Connection failed."));break;default:gy()}}finally{gm(yq,`RPC '${e}' ${i} completed.`)}});let l=JSON.stringify(r);gm(yq,`RPC '${e}' ${i} sending request:`,r),s.send(t,"POST",l,n,15)})}Bo(e,t,n){let r=yG(),i=[this.Do,"/","google.firestore.v1.Firestore","/",e,"/channel"],o=eA(),a=eg(),s={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},l=this.longPollingOptions.timeoutSeconds;void 0!==l&&(s.longPollingTimeout=Math.round(1e3*l)),this.useFetchStreams&&(s.useFetchStreams=!0),this.Oo(s.initMessageHeaders,t,n),s.encodeInitMessageHeaders=!0;let u=i.join("");gm(yq,`Creating RPC '${e}' stream ${r}: ${u}`,s);let c=o.createWebChannel(u,s),p=!1,d=!1,h=new yQ({Io:t=>{d?gm(yq,`Not sending because RPC '${e}' stream ${r} is closed:`,t):(p||(gm(yq,`Opening RPC '${e}' stream ${r} transport.`),c.open(),p=!0),gm(yq,`RPC '${e}' stream ${r} sending:`,t),c.send(t))},To:()=>c.close()}),f=(e,t,n)=>{e.listen(t,e=>{try{n(e)}catch(e){setTimeout(()=>{throw e},0)}})};return f(c,ep.EventType.OPEN,()=>{d||(gm(yq,`RPC '${e}' stream ${r} transport opened.`),h.yo())}),f(c,ep.EventType.CLOSE,()=>{d||(d=!0,gm(yq,`RPC '${e}' stream ${r} transport closed`),h.So())}),f(c,ep.EventType.ERROR,t=>{d||(d=!0,gA(yq,`RPC '${e}' stream ${r} transport errored:`,t),h.So(new gE(gw.UNAVAILABLE,"The operation could not be completed")))}),f(c,ep.EventType.MESSAGE,t=>{var n,i;if(!d){;let i=t.data[0];!i&&gy();let o=i.error||(null===(n=i[0])||void 0===n?void 0:n.error);if(o){gm(yq,`RPC '${e}' stream ${r} received error:`,o);let t=o.status,n=function(e){let t=eb[e];if(void 0!==t)return bU(t)}(t),i=o.message;void 0===n&&(n=gw.INTERNAL,i="Unknown error status: "+t+" with message "+o.message),d=!0,h.So(new gE(n,i)),c.close()}else gm(yq,`RPC '${e}' stream ${r} received:`,i),h.bo(i)}}),f(a,em.STAT_EVENT,t=>{t.stat===ef.PROXY?gm(yq,`RPC '${e}' stream ${r} detected buffering proxy`):t.stat===ef.NOPROXY&&gm(yq,`RPC '${e}' stream ${r} detected no buffering proxy`)}),setTimeout(()=>{h.wo()},0),h}}function yY(){return"undefined"!=typeof document?document:null}function yX(e){return new b4(e,!0)}class yJ{constructor(e,t,n=1e3,r=1.5,i=6e4){this.ui=e,this.timerId=t,this.ko=n,this.qo=r,this.Qo=i,this.Ko=0,this.$o=null,this.Uo=Date.now(),this.reset()}reset(){this.Ko=0}Wo(){this.Ko=this.Qo}Go(e){this.cancel();let t=Math.floor(this.Ko+this.zo()),n=Math.max(0,Date.now()-this.Uo),r=Math.max(0,t-n);r>0&&gm("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.Ko} ms, delay with jitter: ${t} ms, last attempt: ${n} ms ago)`),this.$o=this.ui.enqueueAfterDelay(this.timerId,r,()=>(this.Uo=Date.now(),e())),this.Ko*=this.qo,this.Kothis.Qo&&(this.Ko=this.Qo)}jo(){null!==this.$o&&(this.$o.skipDelay(),this.$o=null)}cancel(){null!==this.$o&&(this.$o.cancel(),this.$o=null)}zo(){return(Math.random()-.5)*this.Ko}}class y${constructor(e,t,n,r,i,o,a,s){this.ui=e,this.Ho=n,this.Jo=r,this.connection=i,this.authCredentialsProvider=o,this.appCheckCredentialsProvider=a,this.listener=s,this.state=0,this.Yo=0,this.Zo=null,this.Xo=null,this.stream=null,this.e_=0,this.t_=new yJ(e,t)}n_(){return 1===this.state||5===this.state||this.r_()}r_(){return 2===this.state||3===this.state}start(){this.e_=0,4!==this.state?this.auth():this.i_()}async stop(){this.n_()&&await this.close(0)}s_(){this.state=0,this.t_.reset()}o_(){this.r_()&&null===this.Zo&&(this.Zo=this.ui.enqueueAfterDelay(this.Ho,6e4,()=>this.__()))}a_(e){this.u_(),this.stream.send(e)}async __(){if(this.r_())return this.close(0)}u_(){this.Zo&&(this.Zo.cancel(),this.Zo=null)}c_(){this.Xo&&(this.Xo.cancel(),this.Xo=null)}async close(e,t){this.u_(),this.c_(),this.t_.cancel(),this.Yo++,4!==e?this.t_.reset():t&&t.code===gw.RESOURCE_EXHAUSTED?(gg(t.toString()),gg("Using maximum backoff delay to prevent overloading the backend."),this.t_.Wo()):t&&t.code===gw.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.l_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.mo(t)}l_(){}auth(){this.state=1;let e=this.h_(this.Yo),t=this.Yo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,n])=>{this.Yo===t&&this.P_(e,n)},t=>{e(()=>{let e=new gE(gw.UNKNOWN,"Fetching auth token failed: "+t.message);return this.I_(e)})})}P_(e,t){let n=this.h_(this.Yo);this.stream=this.T_(e,t),this.stream.Eo(()=>{n(()=>this.listener.Eo())}),this.stream.Ro(()=>{n(()=>(this.state=2,this.Xo=this.ui.enqueueAfterDelay(this.Jo,1e4,()=>(this.r_()&&(this.state=3),Promise.resolve())),this.listener.Ro()))}),this.stream.mo(e=>{n(()=>this.I_(e))}),this.stream.onMessage(e=>{n(()=>1==++this.e_?this.E_(e):this.onNext(e))})}i_(){this.state=5,this.t_.Go(async()=>{this.state=0,this.start()})}I_(e){return gm("PersistentStream",`close with error: ${e}`),this.stream=null,this.close(4,e)}h_(e){return t=>{this.ui.enqueueAndForget(()=>this.Yo===e?t():(gm("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class y0 extends y${constructor(e,t,n,r,i,o){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,n,r,o),this.serializer=i}T_(e,t){return this.connection.Bo("Listen",e,t)}E_(e){return this.onNext(e)}onNext(e){this.t_.reset();let t=function(e,t){let n;if("targetChange"in t){var r,i,o,a,s,l;t.targetChange;let u="NO_CHANGE"===(r=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===r?1:"REMOVE"===r?2:"CURRENT"===r?3:"RESET"===r?4:gy(),c=t.targetChange.targetIds||[],p=(i=e,o=t.targetChange.resumeToken,i.useProto3Json?(void 0===o||"string"==typeof o||gy(),g8.fromBase64String(o||"")):(void 0===o||o instanceof gu||o instanceof Uint8Array||gy(),g8.fromUint8Array(o||new Uint8Array))),d=t.targetChange.cause;n=new bK(u,c,p,d&&new gE(void 0===(l=d).code?gw.UNKNOWN:bU(l.code),l.message||"")||null)}else if("documentChange"in t){t.documentChange;let r=t.documentChange;r.document,r.document.name,r.document.updateTime;let i=yn(e,r.document.name),o=b8(r.document.updateTime),a=r.document.createTime?b8(r.document.createTime):gB.min(),s=new AO({mapValue:{fields:r.document.fields}}),l=AT.newFoundDocument(i,o,a,s),u=r.targetIds||[];n=new bQ(u,r.removedTargetIds||[],l.key,l)}else if("documentDelete"in t){t.documentDelete;let r=t.documentDelete;r.document;let i=yn(e,r.document),o=r.readTime?b8(r.readTime):gB.min(),a=AT.newNoDocument(i,o);n=new bQ([],r.removedTargetIds||[],a.key,a)}else if("documentRemove"in t){t.documentRemove;let r=t.documentRemove;r.document;let i=yn(e,r.document);n=new bQ([],r.removedTargetIds||[],i,null)}else{if(!("filter"in t))return gy();{t.filter;let e=t.filter;e.targetId;let{count:r=0,unchangedNames:i}=e,o=new bF(r,i);n=new bq(e.targetId,o)}}return n}(this.serializer,e),n=function(e){if(!("targetChange"in e))return gB.min();let t=e.targetChange;return t.targetIds&&t.targetIds.length?gB.min():t.readTime?b8(t.readTime):gB.min()}(e);return this.listener.d_(t,n)}A_(e){let t={};t.database=yi(this.serializer),t.addTarget=function(e,t){let n;let r=t.target;if((n=Aq(r)?{documents:{documents:[yr(e,r.path)]}}:{query:function(e,t){var n,r;let i;let o={structuredQuery:{}},a=t.path;null!==t.collectionGroup?(i=a,o.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=a.popLast(),o.structuredQuery.from=[{collectionId:a.lastSegment()}]),o.parent=yr(e,i);let s=function(e){if(0!==e.length)return function e(t){return t instanceof AR?function(e){if("=="===e.op){if(Ay(e.value))return{unaryFilter:{field:ys(e.field),op:"IS_NAN"}};if(Ab(e.value))return{unaryFilter:{field:ys(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(Ay(e.value))return{unaryFilter:{field:ys(e.field),op:"IS_NOT_NAN"}};if(Ab(e.value))return{unaryFilter:{field:ys(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:ys(e.field),op:b1[e.op],value:e.value}}}(t):t instanceof AP?function(t){let n=t.getFilters().map(t=>e(t));if(1===n.length)return n[0];return{compositeFilter:{op:b2[t.op],filters:n}}}(t):gy()}(AP.create(e,"and"))}(t.filters);s&&(o.structuredQuery.where=s);let l=function(e){if(0!==e.length)return e.map(e=>{var t;return{field:ys((t=e).field),direction:function(e){return b0[e]}(t.dir)}})}(t.orderBy);l&&(o.structuredQuery.orderBy=l);let u=b3(e,t.limit);return null!==u&&(o.structuredQuery.limit=u),t.startAt&&(o.structuredQuery.startAt={before:(n=t.startAt).inclusive,values:n.position}),t.endAt&&(o.structuredQuery.endAt={before:!(r=t.endAt).inclusive,values:r.position}),{_t:o,parent:i}}(e,r)._t}).targetId=t.targetId,t.resumeToken.approximateByteSize()>0){n.resumeToken=b7(e,t.resumeToken);let r=b3(e,t.expectedCount);null!==r&&(n.expectedCount=r)}else if(t.snapshotVersion.compareTo(gB.min())>0){n.readTime=b6(e,t.snapshotVersion.toTimestamp());let r=b3(e,t.expectedCount);null!==r&&(n.expectedCount=r)}return n}(this.serializer,e);let n=function(e,t){let n=function(e){switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return gy()}}(t.purpose);return null==n?null:{"goog-listen-tags":n}}(this.serializer,e);n&&(t.labels=n),this.a_(t)}R_(e){let t={};t.database=yi(this.serializer),t.removeTarget=e,this.a_(t)}}class y1 extends y${constructor(e,t,n,r,i,o){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,n,r,o),this.serializer=i}get V_(){return this.e_>0}start(){this.lastStreamToken=void 0,super.start()}l_(){this.V_&&this.m_([])}T_(e,t){return this.connection.Bo("Write",e,t)}E_(e){var t,n;return!e.streamToken&&gy(),this.lastStreamToken=e.streamToken,e.writeResults&&0!==e.writeResults.length&&gy(),this.listener.f_()}onNext(e){var t,n,r,i;e.streamToken||gy(),this.lastStreamToken=e.streamToken,this.t_.reset();let o=(n=e.writeResults,r=e.commitTime,n&&n.length>0?(void 0!==r||gy(),n.map(e=>{var t,n;let i;return t=e,n=r,(i=t.updateTime?b8(t.updateTime):b8(n)).isEqual(gB.min())&&(i=b8(n)),new bS(i,t.transformResults||[])})):[]),a=b8(e.commitTime);return this.listener.g_(a,o)}p_(){let e={};e.database=yi(this.serializer),this.a_(e)}m_(e){let t={streamToken:this.lastStreamToken,writes:e.map(e=>(function(e,t){var n,r;let i;if(t instanceof bI)i={update:ya(e,t.key,t.value)};else if(t instanceof bN)i={delete:yt(e,t.key)};else if(t instanceof bk)i={update:ya(e,t.key,t.data),updateMask:function(e){let t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}}(t.fieldMask)};else{if(!(t instanceof bD))return gy();i={verify:yt(e,t.key)}}return t.fieldTransforms.length>0&&(i.updateTransforms=t.fieldTransforms.map(e=>(function(e,t){let n=t.transform;if(n instanceof bh)return{fieldPath:t.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof bf)return{fieldPath:t.field.canonicalString(),appendMissingElements:{values:n.elements}};if(n instanceof bg)return{fieldPath:t.field.canonicalString(),removeAllFromArray:{values:n.elements}};if(n instanceof bb)return{fieldPath:t.field.canonicalString(),increment:n.Pe};throw gy()})(0,e))),t.precondition.isNone||(i.currentDocument=(n=e,void 0!==(r=t.precondition).updateTime?{updateTime:b6(n,r.updateTime.toTimestamp())}:void 0!==r.exists?{exists:r.exists}:gy())),i})(this.serializer,e))};this.a_(t)}}class y2 extends class{}{constructor(e,t,n,r){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=n,this.serializer=r,this.y_=!1}w_(){if(this.y_)throw new gE(gw.FAILED_PRECONDITION,"The client has already been terminated.")}Mo(e,t,n,r){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([i,o])=>this.connection.Mo(e,b9(t,n),r,i,o)).catch(e=>{throw"FirebaseError"===e.name?(e.code===gw.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new gE(gw.UNKNOWN,e.toString())})}Lo(e,t,n,r,i){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([o,a])=>this.connection.Lo(e,b9(t,n),r,o,a,i)).catch(e=>{throw"FirebaseError"===e.name?(e.code===gw.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new gE(gw.UNKNOWN,e.toString())})}terminate(){this.y_=!0,this.connection.terminate()}}class y4{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.S_=0,this.b_=null,this.D_=!0}v_(){0===this.S_&&(this.C_("Unknown"),this.b_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.b_=null,this.F_("Backend didn't respond within 10 seconds."),this.C_("Offline"),Promise.resolve())))}M_(e){"Online"===this.state?this.C_("Unknown"):(this.S_++,this.S_>=1&&(this.x_(),this.F_(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.C_("Offline")))}set(e){this.x_(),this.S_=0,"Online"===e&&(this.D_=!1),this.C_(e)}C_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}F_(e){let t=`Could not reach Cloud Firestore backend. ${e} This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.D_?(gg(t),this.D_=!1):gm("OnlineStateTracker",t)}x_(){null!==this.b_&&(this.b_.cancel(),this.b_=null)}}class y3{constructor(e,t,n,r,i){this.localStore=e,this.datastore=t,this.asyncQueue=n,this.remoteSyncer={},this.O_=[],this.N_=new Map,this.L_=new Set,this.B_=[],this.k_=i,this.k_._o(e=>{n.enqueueAndForget(async()=>{vr(this)&&(gm("RemoteStore","Restarting streams for network reachability change."),await async function(e){var t;e.L_.add(4),await y7(e),e.q_.set("Unknown"),e.L_.delete(4),await y6(e)}(this))})}),this.q_=new y4(n,r)}}async function y6(e){if(vr(e))for(let t of e.B_)await t(!0)}async function y7(e){for(let t of e.B_)await t(!1)}function y8(e,t){var n;e.N_.has(t.targetId)||(e.N_.set(t.targetId,t),vn(e)?vt(e):vv(e).r_()&&y9(e,t))}function y5(e,t){var n;let r=vv(e);e.N_.delete(t),r.r_()&&ve(e,t),0===e.N_.size&&(r.r_()?r.o_():vr(e)&&e.q_.set("Unknown"))}function y9(e,t){if(e.Q_.xe(t.targetId),t.resumeToken.approximateByteSize()>0||t.snapshotVersion.compareTo(gB.min())>0){let n=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size;t=t.withExpectedCount(n)}vv(e).A_(t)}function ve(e,t){e.Q_.xe(t),vv(e).R_(t)}function vt(e){e.Q_=new bX({getRemoteKeysForTarget:t=>e.remoteSyncer.getRemoteKeysForTarget(t),ot:t=>e.N_.get(t)||null,tt:()=>e.datastore.serializer.databaseId}),vv(e).start(),e.q_.v_()}function vn(e){return vr(e)&&!vv(e).n_()&&e.N_.size>0}function vr(e){var t;return 0===e.L_.size}function vi(e){e.Q_=void 0}async function vo(e){e.q_.set("Online")}async function va(e){e.N_.forEach((t,n)=>{y9(e,t)})}async function vs(e,t){e.Q_=void 0,vn(e)?(e.q_.M_(t),vt(e)):e.q_.set("Unknown")}async function vl(e,t,n){if(e.q_.set("Online"),t instanceof bK&&2===t.state&&t.cause)try{await async function(e,t){let n=t.cause;for(let r of t.targetIds)e.N_.has(r)&&(await e.remoteSyncer.rejectListen(r,n),e.N_.delete(r),e.Q_.removeTarget(r))}(e,t)}catch(n){gm("RemoteStore","Failed to remove targets %s: %s ",t.targetIds.join(","),n),await vu(e,n)}else if(t instanceof bQ?e.Q_.Ke(t):t instanceof bq?e.Q_.He(t):e.Q_.We(t),!n.isEqual(gB.min()))try{let t=await yB(e.localStore);n.compareTo(t)>=0&&await function(e,t){let n=e.Q_.rt(t);return n.targetChanges.forEach((n,r)=>{if(n.resumeToken.approximateByteSize()>0){let i=e.N_.get(r);i&&e.N_.set(r,i.withResumeToken(n.resumeToken,t))}}),n.targetMismatches.forEach((t,n)=>{let r=e.N_.get(t);if(!r)return;e.N_.set(t,r.withResumeToken(g8.EMPTY_BYTE_STRING,r.snapshotVersion)),ve(e,t);let i=new yc(r.target,t,n,r.sequenceNumber);y9(e,i)}),e.remoteSyncer.applyRemoteEvent(n)}(e,n)}catch(t){gm("RemoteStore","Failed to raise snapshot:",t),await vu(e,t)}}async function vu(e,t,n){if(!gQ(t))throw t;e.L_.add(1),await y7(e),e.q_.set("Offline"),n||(n=()=>yB(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{gm("RemoteStore","Retrying IndexedDB access"),await n(),e.L_.delete(1),await y6(e)})}function vc(e,t){return t().catch(n=>vu(e,n,t))}async function vp(e){var t;let n=vS(e),r=e.O_.length>0?e.O_[e.O_.length-1].batchId:-1;for(;function(e){return vr(e)&&e.O_.length<10}(e);)try{let t=await function(e,t){var n;return e.persistence.runTransaction("Get next mutation batch","readonly",n=>(void 0===t&&(t=-1),e.mutationQueue.getNextMutationBatchAfterBatchId(n,t)))}(e.localStore,r);if(null===t){0===e.O_.length&&n.o_();break}r=t.batchId,function(e,t){e.O_.push(t);let n=vS(e);n.r_()&&n.V_&&n.m_(t.mutations)}(e,t)}catch(t){await vu(e,t)}vd(e)&&vh(e)}function vd(e){return vr(e)&&!vS(e).n_()&&e.O_.length>0}function vh(e){vS(e).start()}async function vf(e){vS(e).p_()}async function vm(e){let t=vS(e);for(let n of e.O_)t.m_(n.mutations)}async function vg(e,t,n){let r=e.O_.shift(),i=bL.from(r,t,n);await vc(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await vp(e)}async function vA(e,t){t&&vS(e).V_&&await async function(e,t){var n;if(function(e){switch(e){default:return gy();case gw.CANCELLED:case gw.UNKNOWN:case gw.DEADLINE_EXCEEDED:case gw.RESOURCE_EXHAUSTED:case gw.INTERNAL:case gw.UNAVAILABLE:case gw.UNAUTHENTICATED:return!1;case gw.INVALID_ARGUMENT:case gw.NOT_FOUND:case gw.ALREADY_EXISTS:case gw.PERMISSION_DENIED:case gw.FAILED_PRECONDITION:case gw.ABORTED:case gw.OUT_OF_RANGE:case gw.UNIMPLEMENTED:case gw.DATA_LOSS:return!0}}(n=t.code)&&n!==gw.ABORTED){let n=e.O_.shift();vS(e).s_(),await vc(e,()=>e.remoteSyncer.rejectFailedWrite(n.batchId,t)),await vp(e)}}(e,t),vd(e)&&vh(e)}async function vb(e,t){var n;e.asyncQueue.verifyOperationInProgress(),gm("RemoteStore","RemoteStore received new credentials");let r=vr(e);e.L_.add(3),await y7(e),r&&e.q_.set("Unknown"),await e.remoteSyncer.handleCredentialChange(t),e.L_.delete(3),await y6(e)}async function vy(e,t){var n;t?(e.L_.delete(2),await y6(e)):t||(e.L_.add(2),await y7(e),e.q_.set("Unknown"))}function vv(e){var t,n,r,i;return e.K_||(e.K_=(t=e.datastore,n=e.asyncQueue,r={Eo:vo.bind(null,e),Ro:va.bind(null,e),mo:vs.bind(null,e),d_:vl.bind(null,e)},t.w_(),new y0(n,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,r)),e.B_.push(async t=>{t?(e.K_.s_(),vn(e)?vt(e):e.q_.set("Unknown")):(await e.K_.stop(),e.Q_=void 0)})),e.K_}function vS(e){var t,n,r,i;return e.U_||(e.U_=(t=e.datastore,n=e.asyncQueue,r={Eo:()=>Promise.resolve(),Ro:vf.bind(null,e),mo:vA.bind(null,e),f_:vm.bind(null,e),g_:vg.bind(null,e)},t.w_(),new y1(n,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,r)),e.B_.push(async t=>{t?(e.U_.s_(),await vp(e)):(await e.U_.stop(),e.O_.length>0&&(gm("RemoteStore",`Stopping write stream with ${e.O_.length} pending writes`),e.O_=[]))})),e.U_}class vw{constructor(e,t,n,r,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=n,this.op=r,this.removalCallback=i,this.deferred=new gO,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,n,r,i){let o=new vw(e,t,Date.now()+n,r,i);return o.start(n),o}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new gE(gw.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function vE(e,t){if(gg("AsyncQueue",`${t}: ${e}`),gQ(e))return new gE(gw.UNAVAILABLE,`${t}: ${e}`);throw e}class vO{constructor(e){this.comparator=e?(t,n)=>e(t,n)||gH.comparator(t.key,n.key):(e,t)=>gH.comparator(e.key,t.key),this.keyedMap=be(),this.sortedSet=new g0(this.comparator)}static emptySet(e){return new vO(e.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){let t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(e){this.sortedSet.inorderTraversal((t,n)=>(e(t),!1))}add(e){let t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){let t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof vO)||this.size!==e.size)return!1;let t=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();for(;t.hasNext();){let e=t.getNext().key,r=n.getNext().key;if(!e.isEqual(r))return!1}return!0}toString(){let e=[];return this.forEach(t=>{e.push(t.toString())}),0===e.length?"DocumentSet ()":"DocumentSet (\n "+e.join(" \n")+"\n)"}copy(e,t){let n=new vO;return n.comparator=this.comparator,n.keyedMap=e,n.sortedSet=t,n}}class vT{constructor(){this.W_=new g0(gH.comparator)}track(e){let t=e.doc.key,n=this.W_.get(t);n?0!==e.type&&3===n.type?this.W_=this.W_.insert(t,e):3===e.type&&1!==n.type?this.W_=this.W_.insert(t,{type:n.type,doc:e.doc}):2===e.type&&2===n.type?this.W_=this.W_.insert(t,{type:2,doc:e.doc}):2===e.type&&0===n.type?this.W_=this.W_.insert(t,{type:0,doc:e.doc}):1===e.type&&0===n.type?this.W_=this.W_.remove(t):1===e.type&&2===n.type?this.W_=this.W_.insert(t,{type:1,doc:n.doc}):0===e.type&&1===n.type?this.W_=this.W_.insert(t,{type:2,doc:e.doc}):gy():this.W_=this.W_.insert(t,e)}G_(){let e=[];return this.W_.inorderTraversal((t,n)=>{e.push(n)}),e}}class vC{constructor(e,t,n,r,i,o,a,s,l){this.query=e,this.docs=t,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=i,this.fromCache=o,this.syncStateChanged=a,this.excludesMetadataChanges=s,this.hasCachedResults=l}static fromInitialDocuments(e,t,n,r,i){let o=[];return t.forEach(e=>{o.push({type:0,doc:e})}),new vC(e,t,vO.emptySet(t),o,n,r,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&A1(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;let t=this.docChanges,n=e.docChanges;if(t.length!==n.length)return!1;for(let e=0;ee.J_())}}class vI{constructor(){this.queries=vk(),this.onlineState="Unknown",this.Y_=new Set}terminate(){!function(e,t){var n;let r=e.queries;e.queries=vk(),r.forEach((e,n)=>{for(let e of n.j_)e.onError(t)})}(this,new gE(gw.ABORTED,"Firestore shutting down"))}}function vk(){return new A7(e=>A2(e),A1)}async function v_(e,t){var n;let r=3,i=t.query,o=e.queries.get(i);o?!o.H_()&&t.J_()&&(r=2):(o=new vx,r=t.J_()?0:1);try{switch(r){case 0:o.z_=await e.onListen(i,!0);break;case 1:o.z_=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(n){let e=vE(n,`Initialization of query '${A4(t.query)}' failed`);return void t.onError(e)}e.queries.set(i,o),o.j_.push(t),t.Z_(e.onlineState),o.z_&&t.X_(o.z_)&&vD(e)}async function vR(e,t){var n;let r=t.query,i=3,o=e.queries.get(r);if(o){let e=o.j_.indexOf(t);e>=0&&(o.j_.splice(e,1),0===o.j_.length?i=t.J_()?0:1:!o.H_()&&t.J_()&&(i=2))}switch(i){case 0:return e.queries.delete(r),e.onUnlisten(r,!0);case 1:return e.queries.delete(r),e.onUnlisten(r,!1);case 2:return e.onLastRemoteStoreUnlisten(r);default:return}}function vP(e,t){var n;let r=!1;for(let n of t){let t=n.query,i=e.queries.get(t);if(i){for(let e of i.j_)e.X_(n)&&(r=!0);i.z_=n}}r&&vD(e)}function vN(e,t,n){var r;let i=e.queries.get(t);if(i)for(let e of i.j_)e.onError(n);e.queries.delete(t)}function vD(e){e.Y_.forEach(e=>{e.next()})}(eS=ev||(ev={})).ea="default",eS.Cache="cache";class vM{constructor(e,t,n){this.query=e,this.ta=t,this.na=!1,this.ra=null,this.onlineState="Unknown",this.options=n||{}}X_(e){if(!this.options.includeMetadataChanges){let t=[];for(let n of e.docChanges)3!==n.type&&t.push(n);e=new vC(e.query,e.docs,e.oldDocs,t,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let t=!1;return this.na?this.ia(e)&&(this.ta.next(e),t=!0):this.sa(e,this.onlineState)&&(this.oa(e),t=!0),this.ra=e,t}onError(e){this.ta.error(e)}Z_(e){this.onlineState=e;let t=!1;return this.ra&&!this.na&&this.sa(this.ra,e)&&(this.oa(this.ra),t=!0),t}sa(e,t){return!(e.fromCache&&this.J_())||(!this.options._a||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}ia(e){if(e.docChanges.length>0)return!0;let t=this.ra&&this.ra.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges}oa(e){e=vC.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.na=!0,this.ta.next(e)}J_(){return this.options.source!==ev.Cache}}class vL{constructor(e){this.key=e}}class vB{constructor(e){this.key=e}}class vF{constructor(e,t){this.query=e,this.Ta=t,this.Ea=null,this.hasCachedResults=!1,this.current=!1,this.da=bs(),this.mutatedKeys=bs(),this.Aa=A6(e),this.Ra=new vO(this.Aa)}get Va(){return this.Ta}ma(e,t){let n=t?t.fa:new vT,r=t?t.Ra:this.Ra,i=t?t.mutatedKeys:this.mutatedKeys,o=r,a=!1,s="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,l="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(e.inorderTraversal((e,t)=>{let u=r.get(e),c=A3(this.query,t)?t:null,p=!!u&&this.mutatedKeys.has(u.key),d=!!c&&(c.hasLocalMutations||this.mutatedKeys.has(c.key)&&c.hasCommittedMutations),h=!1;u&&c?u.data.isEqual(c.data)?p!==d&&(n.track({type:3,doc:c}),h=!0):this.ga(u,c)||(n.track({type:2,doc:c}),h=!0,(s&&this.Aa(c,s)>0||l&&0>this.Aa(c,l))&&(a=!0)):!u&&c?(n.track({type:0,doc:c}),h=!0):u&&!c&&(n.track({type:1,doc:u}),h=!0,(s||l)&&(a=!0)),h&&(c?(o=o.add(c),i=d?i.add(e):i.delete(e)):(o=o.delete(e),i=i.delete(e)))}),null!==this.query.limit)for(;o.size>this.query.limit;){let e="F"===this.query.limitType?o.last():o.first();o=o.delete(e.key),i=i.delete(e.key),n.track({type:1,doc:e})}return{Ra:o,fa:n,ns:a,mutatedKeys:i}}ga(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,n,r){let i=this.Ra;this.Ra=e.Ra,this.mutatedKeys=e.mutatedKeys;let o=e.fa.G_();o.sort((e,t)=>(function(e,t){let n=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return gy()}};return n(e)-n(t)})(e.type,t.type)||this.Aa(e.doc,t.doc)),this.pa(n),r=null!=r&&r;let a=t&&!r?this.ya():[],s=0===this.da.size&&this.current&&!r?1:0,l=s!==this.Ea;return(this.Ea=s,0!==o.length||l)?{snapshot:new vC(this.query,e.Ra,i,o,e.mutatedKeys,0===s,l,!1,!!n&&n.resumeToken.approximateByteSize()>0),wa:a}:{wa:a}}Z_(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Ra:this.Ra,fa:new vT,mutatedKeys:this.mutatedKeys,ns:!1},!1)):{wa:[]}}Sa(e){return!this.Ta.has(e)&&!!this.Ra.has(e)&&!this.Ra.get(e).hasLocalMutations}pa(e){e&&(e.addedDocuments.forEach(e=>this.Ta=this.Ta.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Ta=this.Ta.delete(e)),this.current=e.current)}ya(){if(!this.current)return[];let e=this.da;this.da=bs(),this.Ra.forEach(e=>{this.Sa(e.key)&&(this.da=this.da.add(e.key))});let t=[];return e.forEach(e=>{this.da.has(e)||t.push(new vB(e))}),this.da.forEach(n=>{e.has(n)||t.push(new vL(n))}),t}ba(e){this.Ta=e.Ts,this.da=bs();let t=this.ma(e.documents);return this.applyChanges(t,!0)}Da(){return vC.fromInitialDocuments(this.query,this.Ra,this.mutatedKeys,0===this.Ea,this.hasCachedResults)}}class vU{constructor(e,t,n){this.query=e,this.targetId=t,this.view=n}}class vj{constructor(e){this.key=e,this.va=!1}}class vz{constructor(e,t,n,r,i,o){this.localStore=e,this.remoteStore=t,this.eventManager=n,this.sharedClientState=r,this.currentUser=i,this.maxConcurrentLimboResolutions=o,this.Ca={},this.Fa=new A7(e=>A2(e),A1),this.Ma=new Map,this.xa=new Set,this.Oa=new g0(gH.comparator),this.Na=new Map,this.La=new yE,this.Ba={},this.ka=new Map,this.qa=yg.kn(),this.onlineState="Unknown",this.Qa=void 0}get isPrimaryClient(){return!0===this.Qa}}async function vH(e,t,n=!0){let r;let i=v9(e),o=i.Fa.get(t);return o?(i.sharedClientState.addLocalQueryTarget(o.targetId),r=o.view.Da()):r=await vV(i,t,n,!0),r}async function vZ(e,t){let n=v9(e);await vV(n,t,!0,!1)}async function vV(e,t,n,r){var i,o,a;let s;let l=await (i=e.localStore,o=A$(t),i.persistence.runTransaction("Allocate target","readwrite",e=>{let t;return i.Ur.getTargetData(e,o).next(n=>n?(t=n,gW.resolve(t)):i.Ur.allocateTargetId(e).next(n=>(t=new yc(o,n,"TargetPurposeListen",e.currentSequenceNumber),i.Ur.addTargetData(e,t).next(()=>t))))}).then(e=>{let t=i.os.get(e.targetId);return(null===t||e.snapshotVersion.compareTo(t.snapshotVersion)>0)&&(i.os=i.os.insert(e.targetId,e),i._s.set(o,e.targetId)),e})),u=l.targetId,c=e.sharedClientState.addLocalQueryTarget(u,n);return r&&(s=await vG(e,t,u,"current"===c,l.resumeToken)),e.isPrimaryClient&&n&&y8(e.remoteStore,l),s}async function vG(e,t,n,r,i){e.Ka=(t,n,r)=>(async function(e,t,n,r){let i=t.view.ma(n);i.ns&&(i=await yU(e.localStore,t.query,!1).then(({documents:e})=>t.view.ma(e,i)));let o=r&&r.targetChanges.get(t.targetId),a=r&&null!=r.targetMismatches.get(t.targetId),s=t.view.applyChanges(i,e.isPrimaryClient,o,a);return v3(e,t.targetId,s.wa),s.snapshot})(e,t,n,r);let o=await yU(e.localStore,t,!0),a=new vF(t,o.Ts),s=a.ma(o.documents),l=bW.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==e.onlineState,i),u=a.applyChanges(s,e.isPrimaryClient,l);v3(e,n,u.wa);let c=new vU(t,n,a);return e.Fa.set(t,c),e.Ma.has(n)?e.Ma.get(n).push(t):e.Ma.set(n,[t]),u.snapshot}async function vW(e,t,n){var r;let i=e.Fa.get(t),o=e.Ma.get(i.targetId);if(o.length>1)return e.Ma.set(i.targetId,o.filter(e=>!A1(e,t))),void e.Fa.delete(t);e.isPrimaryClient?(e.sharedClientState.removeLocalQueryTarget(i.targetId),e.sharedClientState.isActiveQueryTarget(i.targetId)||await yF(e.localStore,i.targetId,!1).then(()=>{e.sharedClientState.clearQueryState(i.targetId),n&&y5(e.remoteStore,i.targetId),v2(e,i.targetId)}).catch(gG)):(v2(e,i.targetId),await yF(e.localStore,i.targetId,!0))}async function vQ(e,t){var n;let r=e.Fa.get(t),i=e.Ma.get(r.targetId);e.isPrimaryClient&&1===i.length&&(e.sharedClientState.removeLocalQueryTarget(r.targetId),y5(e.remoteStore,r.targetId))}async function vq(e,t,n){let r=function(e){var t;return e.remoteStore.remoteSyncer.applySuccessfulWrite=vJ.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=v$.bind(null,e),e}(e);try{var i,o,a;let e,s=await function(e,t){var n;let r,i;let o=gL.now(),a=t.reduce((e,t)=>e.add(t.key),bs());return e.persistence.runTransaction("Locally write mutations","readwrite",n=>{let s=A8,l=bs();return e.cs.getEntries(n,a).next(e=>{(s=e).forEach((e,t)=>{t.isValidDocument()||(l=l.add(e))})}).next(()=>e.localDocuments.getOverlayedDocuments(n,s)).next(i=>{r=i;let a=[];for(let e of t){let t=function(e,t){let n=null;for(let r of e.fieldTransforms){let e=t.data.field(r.field),i=bd(r.transform,e||null);null!=i&&(null===n&&(n=AO.empty()),n.set(r.field,i))}return n||null}(e,r.get(e.key).overlayedDocument);null!=t&&a.push(new bk(e.key,t,function e(t){let n=[];return gJ(t.fields,(t,r)=>{let i=new gz([t]);if(Av(r)){let t=e(r.mapValue).fields;if(0===t.length)n.push(i);else for(let e of t)n.push(i.child(e))}else n.push(i)}),new g6(n)}(t.value.mapValue),bw.exists(!0)))}return e.mutationQueue.addMutationBatch(n,o,a,t)}).next(t=>{i=t;let o=t.applyToLocalDocumentSet(r,l);return e.documentOverlayCache.saveOverlays(n,t.batchId,o)})}).then(()=>({batchId:i.batchId,changes:bt(r)}))}(r.localStore,t);r.sharedClientState.addPendingMutation(s.batchId),i=r,o=s.batchId,a=n,(e=i.Ba[i.currentUser.toKey()])||(e=new g0(gD)),e=e.insert(o,a),i.Ba[i.currentUser.toKey()]=e,await v7(r,s.changes),await vp(r.remoteStore)}catch(t){let e=vE(t,"Failed to persist write");n.reject(e)}}async function vK(e,t){var n;try{let n=await function(e,t){var n;let r=t.snapshotVersion,i=e.os;return e.persistence.runTransaction("Apply remote event","readwrite-primary",n=>{let o=e.cs.newChangeBuffer({trackRemovals:!0});i=e.os;let a=[];t.targetChanges.forEach((o,s)=>{var l,u,c;let p=i.get(s);if(!p)return;a.push(e.Ur.removeMatchingKeys(n,o.removedDocuments,s).next(()=>e.Ur.addMatchingKeys(n,o.addedDocuments,s)));let d=p.withSequenceNumber(n.currentSequenceNumber);null!==t.targetMismatches.get(s)?d=d.withResumeToken(g8.EMPTY_BYTE_STRING,gB.min()).withLastLimboFreeSnapshotVersion(gB.min()):o.resumeToken.approximateByteSize()>0&&(d=d.withResumeToken(o.resumeToken,r)),i=i.insert(s,d),l=p,u=d,c=o,(0===l.resumeToken.approximateByteSize()||u.snapshotVersion.toMicroseconds()-l.snapshotVersion.toMicroseconds()>=3e8||c.addedDocuments.size+c.modifiedDocuments.size+c.removedDocuments.size>0)&&a.push(e.Ur.updateTargetData(n,d))});let s=A8,l=bs();if(t.documentUpdates.forEach(r=>{t.resolvedLimboDocuments.has(r)&&a.push(e.persistence.referenceDelegate.updateLimboDocument(n,r))}),a.push((function(e,t,n){let r=bs(),i=bs();return n.forEach(e=>r=r.add(e)),t.getEntries(e,r).next(e=>{let r=A8;return n.forEach((n,o)=>{let a=e.get(n);o.isFoundDocument()!==a.isFoundDocument()&&(i=i.add(n)),o.isNoDocument()&&o.version.isEqual(gB.min())?(t.removeEntry(n,o.readTime),r=r.insert(n,o)):!a.isValidDocument()||o.version.compareTo(a.version)>0||0===o.version.compareTo(a.version)&&a.hasPendingWrites?(t.addEntry(o),r=r.insert(n,o)):gm("LocalStore","Ignoring outdated watch update for ",n,". Current version:",a.version," Watch version:",o.version)}),{Ps:r,Is:i}})})(n,o,t.documentUpdates).next(e=>{s=e.Ps,l=e.Is})),!r.isEqual(gB.min())){let t=e.Ur.getLastRemoteSnapshotVersion(n).next(t=>e.Ur.setTargetsMetadata(n,n.currentSequenceNumber,r));a.push(t)}return gW.waitFor(a).next(()=>o.apply(n)).next(()=>e.localDocuments.getLocalViewOfDocuments(n,s,l)).next(()=>s)}).then(t=>(e.os=i,t))}(e.localStore,t);t.targetChanges.forEach((t,n)=>{var r,i,o;let a=e.Na.get(n);a&&(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1||gy(),t.addedDocuments.size>0?a.va=!0:t.modifiedDocuments.size>0?a.va||gy():t.removedDocuments.size>0&&(a.va||gy(),a.va=!1))}),await v7(e,n,t)}catch(e){await gG(e)}}function vY(e,t,n){var r,i,o,a;if(e.isPrimaryClient&&0===n||!e.isPrimaryClient&&1===n){;let n,r=[];e.Fa.forEach((e,n)=>{let i=n.view.Z_(t);i.snapshot&&r.push(i.snapshot)}),i=e.eventManager,o=t,i.onlineState=o,n=!1,i.queries.forEach((e,t)=>{for(let e of t.j_)e.Z_(o)&&(n=!0)}),n&&vD(i),r.length&&e.Ca.d_(r),e.onlineState=t,e.isPrimaryClient&&e.sharedClientState.setOnlineState(t)}}async function vX(e,t,n){var r;e.sharedClientState.updateQueryState(t,"rejected",n);let i=e.Na.get(t),o=i&&i.key;if(o){let n=new g0(gH.comparator);n=n.insert(o,AT.newNoDocument(o,gB.min()));let r=bs().add(o),i=new bG(gB.min(),new Map,new g0(gD),n,r);await vK(e,i),e.Oa=e.Oa.remove(o),e.Na.delete(t),v6(e)}else await yF(e.localStore,t,!1).then(()=>v2(e,t,n)).catch(gG)}async function vJ(e,t){var n,r,i,o;let a=t.batch.batchId;try{;let n=await (r=e.localStore,i=t,r.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=i.batch.keys(),n=r.cs.newChangeBuffer({trackRemovals:!0});return(function(e,t,n,r){let i=n.batch,o=i.keys(),a=gW.resolve();return o.forEach(e=>{a=a.next(()=>r.getEntry(t,e)).next(t=>{var o;let a=n.docVersions.get(e);null!==a||gy(),0>t.version.compareTo(a)&&(i.applyToRemoteDocument(t,n),t.isValidDocument()&&(t.setReadTime(n.commitVersion),r.addEntry(t)))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,i))})(r,e,i,n).next(()=>n.apply(e)).next(()=>r.mutationQueue.performConsistencyCheck(e)).next(()=>r.documentOverlayCache.removeOverlaysForBatchId(e,t,i.batch.batchId)).next(()=>r.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let t=bs();for(let n=0;n0&&(t=t.add(e.batch.mutations[n].key));return t}(i))).next(()=>r.localDocuments.getDocuments(e,t))}));v1(e,a,null),v0(e,a),e.sharedClientState.updateMutationState(a,"acknowledged"),await v7(e,n)}catch(e){await gG(e)}}async function v$(e,t,n){var r,i,o,a;try{;let r=await (i=e.localStore,o=t,i.persistence.runTransaction("Reject batch","readwrite-primary",e=>{let t;return i.mutationQueue.lookupMutationBatch(e,o).next(n=>{var r;return null!==n||gy(),t=n.keys(),i.mutationQueue.removeMutationBatch(e,n)}).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,o)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,t)).next(()=>i.localDocuments.getDocuments(e,t))}));v1(e,t,n),v0(e,t),e.sharedClientState.updateMutationState(t,"rejected",n),await v7(e,r)}catch(e){await gG(e)}}function v0(e,t){(e.ka.get(t)||[]).forEach(e=>{e.resolve()}),e.ka.delete(t)}function v1(e,t,n){var r;let i=e.Ba[e.currentUser.toKey()];if(i){let r=i.get(t);r&&(n?r.reject(n):r.resolve(),i=i.remove(t)),e.Ba[e.currentUser.toKey()]=i}}function v2(e,t,n=null){for(let r of(e.sharedClientState.removeLocalQueryTarget(t),e.Ma.get(t)))e.Fa.delete(r),n&&e.Ca.$a(r,n);e.Ma.delete(t),e.isPrimaryClient&&e.La.gr(t).forEach(t=>{e.La.containsKey(t)||v4(e,t)})}function v4(e,t){e.xa.delete(t.path.canonicalString());let n=e.Oa.get(t);null!==n&&(y5(e.remoteStore,n),e.Oa=e.Oa.remove(t),e.Na.delete(n),v6(e))}function v3(e,t,n){for(let r of n)r instanceof vL?(e.La.addReference(r.key,t),function(e,t){let n=t.key,r=n.path.canonicalString();e.Oa.get(n)||e.xa.has(r)||(gm("SyncEngine","New document in limbo: "+n),e.xa.add(r),v6(e))}(e,r)):r instanceof vB?(gm("SyncEngine","Document no longer in limbo: "+r.key),e.La.removeReference(r.key,t),e.La.containsKey(r.key)||v4(e,r.key)):gy()}function v6(e){for(;e.xa.size>0&&e.Oa.size{a.push(e.Ka(s,t,n).then(t=>{var r;if((t||n)&&e.isPrimaryClient){let i=t?!t.fromCache:null===(r=null==n?void 0:n.targetChanges.get(s.targetId))||void 0===r?void 0:r.current;e.sharedClientState.updateQueryState(s.targetId,i?"current":"not-current")}if(t){i.push(t);let e=yP.Wi(s.targetId,t);o.push(e)}}))}),await Promise.all(a),e.Ca.d_(i),await async function(e,t){var n;try{await e.persistence.runTransaction("notifyLocalViewChanges","readwrite",n=>gW.forEach(t,t=>gW.forEach(t.$i,r=>e.persistence.referenceDelegate.addReference(n,t.targetId,r)).next(()=>gW.forEach(t.Ui,r=>e.persistence.referenceDelegate.removeReference(n,t.targetId,r)))))}catch(e){if(!gQ(e))throw e;gm("LocalStore","Failed to update sequence numbers: "+e)}for(let n of t){let t=n.targetId;if(!n.fromCache){let n=e.os.get(t),r=n.snapshotVersion,i=n.withLastLimboFreeSnapshotVersion(r);e.os=e.os.insert(t,i)}}}(e.localStore,o))}async function v8(e,t){var n,r,i;if(!e.currentUser.isEqual(t)){;gm("SyncEngine","User change. New user:",t.toKey());let n=await yL(e.localStore,t);e.currentUser=t,i="'waitForPendingWrites' promise is rejected due to a user change.",(r=e).ka.forEach(e=>{e.forEach(e=>{e.reject(new gE(gw.CANCELLED,i))})}),r.ka.clear(),e.sharedClientState.handleUserChange(t,n.removedBatchIds,n.addedBatchIds),await v7(e,n.hs)}}function v5(e,t){var n;let r=e.Na.get(t);if(r&&r.va)return bs().add(r.key);{let n=bs(),r=e.Ma.get(t);if(!r)return n;for(let t of r){let r=e.Fa.get(t);n=n.unionWith(r.view.Va)}return n}}function v9(e){var t;return e.remoteStore.remoteSyncer.applyRemoteEvent=vK.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=v5.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=vX.bind(null,e),e.Ca.d_=vP.bind(null,e.eventManager),e.Ca.$a=vN.bind(null,e.eventManager),e}class Se{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=yX(e.databaseInfo.databaseId),this.sharedClientState=this.Wa(e),this.persistence=this.Ga(e),await this.persistence.start(),this.localStore=this.za(e),this.gcScheduler=this.ja(e,this.localStore),this.indexBackfillerScheduler=this.Ha(e,this.localStore)}ja(e,t){return null}Ha(e,t){return null}za(e){var t,n,r;return t=this.persistence,n=new yD,r=e.initialUser,new yM(t,n,r,this.serializer)}Ga(e){return new yk(yR.Zr,this.serializer)}Wa(e){return new yz}async terminate(){var e,t;null===(e=this.gcScheduler)||void 0===e||e.stop(),null===(t=this.indexBackfillerScheduler)||void 0===t||t.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}Se.provider={build:()=>new Se};class St{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>vY(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=v8.bind(null,this.syncEngine),await vy(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new vI}createDatastore(e){var t,n;let r=yX(e.databaseInfo.databaseId),i=new yK(e.databaseInfo);return t=e.authCredentials,n=e.appCheckCredentials,new y2(t,n,i,r)}createRemoteStore(e){var t,n,r;return t=this.localStore,n=this.datastore,r=e.asyncQueue,new y3(t,n,r,e=>vY(this.syncEngine,e,0),yZ.D()?new yZ:new yH)}createSyncEngine(e,t){return function(e,t,n,r,i,o,a){let s=new vz(e,t,n,r,i,o);return a&&(s.Qa=!0),s}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,e.initialUser,e.maxConcurrentLimboResolutions,t)}async terminate(){var e,t;await async function(e){var t;gm("RemoteStore","RemoteStore shutting down."),e.L_.add(5),await y7(e),e.k_.shutdown(),e.q_.set("Unknown")}(this.remoteStore),null===(e=this.datastore)||void 0===e||e.terminate(),null===(t=this.eventManager)||void 0===t||t.terminate()}}St.provider={build:()=>new St};class Sn{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ya(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ya(this.observer.error,e):gg("Uncaught Error in snapshot listener:",e.toString()))}Za(){this.muted=!0}Ya(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class Sr{constructor(e,t,n,r,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=n,this.databaseInfo=r,this.user=gp.UNAUTHENTICATED,this.clientId=gN.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(n,async e=>{gm("FirestoreClient","Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(n,e=>(gm("FirestoreClient","Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let e=new gO;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(n){let t=vE(n,"Failed to shutdown persistence");e.reject(t)}}),e.promise}}async function Si(e,t){e.asyncQueue.verifyOperationInProgress(),gm("FirestoreClient","Initializing OfflineComponentProvider");let n=e.configuration;await t.initialize(n);let r=n.initialUser;e.setCredentialChangeListener(async e=>{r.isEqual(e)||(await yL(t.localStore,e),r=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function So(e,t){e.asyncQueue.verifyOperationInProgress();let n=await Sa(e);gm("FirestoreClient","Initializing OnlineComponentProvider"),await t.initialize(n,e.configuration),e.setCredentialChangeListener(e=>vb(t.remoteStore,e)),e.setAppCheckTokenChangeListener((e,n)=>vb(t.remoteStore,n)),e._onlineComponents=t}async function Sa(e){if(!e._offlineComponents){if(e._uninitializedComponentsProvider){gm("FirestoreClient","Using user provided OfflineComponentProvider");try{await Si(e,e._uninitializedComponentsProvider._offline)}catch(n){var t;if(!("FirebaseError"===(t=n).name?t.code===gw.FAILED_PRECONDITION||t.code===gw.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code))throw n;gA("Error using user provided cache. Falling back to memory cache: "+n),await Si(e,new Se)}}else gm("FirestoreClient","Using default OfflineComponentProvider"),await Si(e,new Se)}return e._offlineComponents}async function Ss(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(gm("FirestoreClient","Using user provided OnlineComponentProvider"),await So(e,e._uninitializedComponentsProvider._online)):(gm("FirestoreClient","Using default OnlineComponentProvider"),await So(e,new St))),e._onlineComponents}async function Sl(e){let t=await Ss(e),n=t.eventManager;return n.onListen=vH.bind(null,t.syncEngine),n.onUnlisten=vW.bind(null,t.syncEngine),n.onFirstRemoteStoreListen=vZ.bind(null,t.syncEngine),n.onLastRemoteStoreUnlisten=vQ.bind(null,t.syncEngine),n}function Su(e){let t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let Sc=new Map;function Sp(e){if(!gH.isDocumentKey(e))throw new gE(gw.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function Sd(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return e.length>20&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"==typeof e){if(e instanceof Array)return"an array";{var t;let n=(t=e).constructor?t.constructor.name:null;return n?`a custom ${n} object`:"an object"}}return"function"==typeof e?"a function":gy()}function Sh(e,t){if("_delegate"in e&&(e=e._delegate),!(e instanceof t)){if(t.name===e.constructor.name)throw new gE(gw.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{let n=Sd(e);throw new gE(gw.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: ${n}`)}}return e}class Sf{constructor(e){var t,n;if(void 0===e.host){if(void 0!==e.ssl)throw new gE(gw.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=e.host,this.ssl=null===(t=e.ssl)||void 0===t||t;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new gE(gw.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}(function(e,t,n,r){if(!0===t&&!0===r)throw new gE(gw.INVALID_ARGUMENT,`${e} and ${n} cannot be used together.`)})("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Su(null!==(n=e.experimentalLongPollingOptions)&&void 0!==n?n:{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new gE(gw.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new gE(gw.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new gE(gw.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){var t,n;return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,n=e.experimentalLongPollingOptions,t.timeoutSeconds===n.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams}}class Sm{constructor(e,t,n,r){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Sf({}),this._settingsFrozen=!1,this._terminateTask="notTerminated"}get app(){if(!this._app)throw new gE(gw.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new gE(gw.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new Sf(e),void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new gC;switch(e.type){case"firstParty":return new g_(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new gE(gw.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(e.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(e){let t=Sc.get(e);t&&(gm("ComponentProvider","Removing Datastore"),Sc.delete(e),t.terminate())}(this),Promise.resolve()}}class Sg{constructor(e,t,n){this.converter=t,this._query=n,this.type="query",this.firestore=e}withConverter(e){return new Sg(this.firestore,e,this._query)}}class SA{constructor(e,t,n){this.converter=t,this._key=n,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new Sb(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new SA(this.firestore,e,this._key)}}class Sb extends Sg{constructor(e,t,n){super(e,t,new AK(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){let e=this._path.popLast();return e.isEmpty()?null:new SA(this.firestore,null,new gH(e))}withConverter(e){return new Sb(this.firestore,e,this._path)}}function Sy(e,t,...n){if(e=dS(e),1==arguments.length&&(t=gN.newId()),function(e,t,n){if(!n)throw new gE(gw.INVALID_ARGUMENT,`Function doc() cannot be called with an empty ${t}.`)}("doc","path",t),e instanceof Sm){let r=gU.fromString(t,...n);return Sp(r),new SA(e,null,new gH(r))}{if(!(e instanceof SA||e instanceof Sb))throw new gE(gw.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let r=e._path.child(gU.fromString(t,...n));return Sp(r),new SA(e.firestore,e instanceof Sb?e.converter:null,new gH(r))}}class Sv{constructor(e=Promise.resolve()){this.Pu=[],this.Iu=!1,this.Tu=[],this.Eu=null,this.du=!1,this.Au=!1,this.Ru=[],this.t_=new yJ(this,"async_queue_retry"),this.Vu=()=>{let e=yY();e&&gm("AsyncQueue","Visibility state changed to "+e.visibilityState),this.t_.jo()},this.mu=e;let t=yY();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Vu)}get isShuttingDown(){return this.Iu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.fu(),this.gu(e)}enterRestrictedMode(e){if(!this.Iu){this.Iu=!0,this.Au=e||!1;let t=yY();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.Vu)}}enqueue(e){if(this.fu(),this.Iu)return new Promise(()=>{});let t=new gO;return this.gu(()=>this.Iu&&this.Au?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Pu.push(e),this.pu()))}async pu(){if(0!==this.Pu.length){try{await this.Pu[0](),this.Pu.shift(),this.t_.reset()}catch(e){if(!gQ(e))throw e;gm("AsyncQueue","Operation failed with retryable error: "+e)}this.Pu.length>0&&this.t_.Go(()=>this.pu())}}gu(e){let t=this.mu.then(()=>(this.du=!0,e().catch(e=>{var t;let n;this.Eu=e,this.du=!1;throw gg("INTERNAL UNHANDLED ERROR: ",(n=(t=e).message||"",t.stack&&(n=t.stack.includes(t.message)?t.stack:t.message+"\n"+t.stack),n)),e}).then(e=>(this.du=!1,e))));return this.mu=t,t}enqueueAfterDelay(e,t,n){this.fu(),this.Ru.indexOf(e)>-1&&(t=0);let r=vw.createAndSchedule(this,e,t,n,e=>this.yu(e));return this.Tu.push(r),r}fu(){this.Eu&&gy()}verifyOperationInProgress(){}async wu(){let e;do e=this.mu,await e;while(e!==this.mu)}Su(e){for(let t of this.Tu)if(t.timerId===e)return!0;return!1}bu(e){return this.wu().then(()=>{for(let t of(this.Tu.sort((e,t)=>e.targetTimeMs-t.targetTimeMs),this.Tu))if(t.skipDelay(),"all"!==e&&t.timerId===e)break;return this.wu()})}Du(e){this.Ru.push(e)}yu(e){let t=this.Tu.indexOf(e);this.Tu.splice(t,1)}}class SS extends Sm{constructor(e,t,n,r){super(e,t,n,r),this.type="firestore",this._queue=new Sv,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new Sv(e),this._firestoreClient=void 0,await e}}}function Sw(e){if(e._terminated)throw new gE(gw.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||function(e){var t,n,r,i,o,a,s;let l=e._freezeSettings(),u=(i=e._databaseId,o=(null===(t=e._app)||void 0===t?void 0:t.options.appId)||"",a=e._persistenceKey,new Ao(i,o,a,(s=l).host,s.ssl,s.experimentalForceLongPolling,s.experimentalAutoDetectLongPolling,Su(s.experimentalLongPollingOptions),s.useFetchStreams));e._componentsProvider||(null===(n=l.localCache)||void 0===n?void 0:n._offlineComponentProvider)&&(null===(r=l.localCache)||void 0===r?void 0:r._onlineComponentProvider)&&(e._componentsProvider={_offline:l.localCache._offlineComponentProvider,_online:l.localCache._onlineComponentProvider}),e._firestoreClient=new Sr(e._authCredentials,e._appCheckCredentials,e._queue,u,e._componentsProvider&&function(e){let t=null==e?void 0:e._online.build();return{_offline:null==e?void 0:e._offline.build(t),_online:t}}(e._componentsProvider))}(e),e._firestoreClient}class SE{constructor(e){this._byteString=e}static fromBase64String(e){try{return new SE(g8.fromBase64String(e))}catch(e){throw new gE(gw.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new SE(g8.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class SO{constructor(...e){for(let t=0;t90)throw new gE(gw.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||t>180)throw new gE(gw.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return gD(this._lat,e._lat)||gD(this._long,e._long)}}class Sx{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){return function(e,t){if(e.length!==t.length)return!1;for(let n=0;ne.isPrefixOf(t))||void 0!==this.fieldTransforms.find(t=>e.isPrefixOf(t.field))}vu(){if(this.path)for(let e=0;e=Number.MIN_SAFE_INTEGER?bc(r):bu(n,r)}if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){let n=gL.fromDate(e);return{timestampValue:b6(t.serializer,n)}}if(e instanceof gL){let n=new gL(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:b6(t.serializer,n)}}if(e instanceof SC)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof SE)return{bytesValue:b7(t.serializer,e._byteString)};if(e instanceof SA){let n=t.databaseId,r=e.firestore._databaseId;if(!r.isEqual(n))throw t.Bu(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:b5(e.firestore._databaseId||t.databaseId,e._key.path)}}if(e instanceof Sx){;return o=e,a=t,{mapValue:{fields:{__type__:{stringValue:"__vector__"},value:{arrayValue:{values:o.toArray().map(e=>{if("number"!=typeof e)throw a.Bu("VectorValues must only contain numeric values.");return bu(a.serializer,e)})}}}}}}throw t.Bu(`Unsupported field value: ${Sd(e)}`)}(e,t)}function SB(e,t){let n={};return g$(e)?t.path&&t.path.length>0&&t.fieldMask.push(t.path):gJ(e,(e,r)=>{let i=SL(r,t.Mu(e));null!=i&&(n[e]=i)}),{mapValue:{fields:n}}}function SF(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof gL||e instanceof SC||e instanceof SE||e instanceof SA||e instanceof ST||e instanceof Sx)}function SU(e,t,n){var r;if(!SF(n)||!("object"==typeof(r=n)&&null!==r&&(Object.getPrototypeOf(r)===Object.prototype||null===Object.getPrototypeOf(r)))){let r=Sd(n);throw"an object"===r?t.Bu(e+" a custom object"):t.Bu(e+" "+r)}}function Sj(e,t,n){if((t=dS(t))instanceof SO)return t._internalPath;if("string"==typeof t)return SH(e,t);throw SZ("Field path arguments must be of type string or ",e,!1,void 0,n)}let Sz=RegExp("[~\\*/\\[\\]]");function SH(e,t,n){if(t.search(Sz)>=0)throw SZ(`Invalid field path (${t}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,n);try{return new SO(...t.split("."))._internalPath}catch(r){throw SZ(`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,n)}}function SZ(e,t,n,r,i){let o=r&&!r.isEmpty(),a=void 0!==i,s=`Function ${t}() called with invalid data`;n&&(s+=" (via `toFirestore()`)"),s+=". ";let l="";return(o||a)&&(l+=" (found",o&&(l+=` in field ${r}`),a&&(l+=` in document ${i}`),l+=")"),new gE(gw.INVALID_ARGUMENT,s+e+l)}function SV(e,t){return e.some(e=>e.isEqual(t))}class SG{constructor(e,t,n,r,i){this._firestore=e,this._userDataWriter=t,this._key=n,this._document=r,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new SA(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){let e=new SW(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){let t=this._document.data.field(SQ("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class SW extends SG{data(){return super.data()}}function SQ(e,t){return"string"==typeof t?SH(e,t):t instanceof SO?t._internalPath:t._delegate._internalPath}class Sq{convertValue(e,t="none"){switch(Al(e)){case 0:return null;case 1:return e.booleanValue;case 2:return Ae(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(At(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw gy()}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,t="none"){let n={};return gJ(e,(e,r)=>{n[e]=this.convertValue(r,t)}),n}convertVectorValue(e){var t,n,r;return new Sx(null===(r=null===(n=null===(t=e.fields)||void 0===t?void 0:t.value.arrayValue)||void 0===n?void 0:n.values)||void 0===r?void 0:r.map(e=>Ae(e.doubleValue)))}convertGeoPoint(e){return new SC(Ae(e.latitude),Ae(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":let n=Ar(e);return null==n?null:this.convertValue(n,t);case"estimate":return this.convertTimestamp(Ai(e));default:return null}}convertTimestamp(e){let t=g9(e);return new gL(t.seconds,t.nanos)}convertDocumentKey(e,t){var n;let r=gU.fromString(e);yu(r)||gy();let i=new Aa(r.get(1),r.get(3)),o=new gH(r.popFirst(5));return i.isEqual(t)||gg(`Document ${o} contains a document reference within a different database (${i.projectId}/${i.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),o}}class SK{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class SY extends SG{constructor(e,t,n,r,i,o){super(e,t,n,r,o),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){let t=new SX(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(t,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,t={}){if(this._document){let n=this._document.data.field(SQ("DocumentSnapshot.get",e));if(null!==n)return this._userDataWriter.convertValue(n,t.serverTimestamps)}}}class SX extends SY{data(e={}){return super.data(e)}}class SJ extends Sq{constructor(e){super(),this.firestore=e}convertBytes(e){return new SE(e)}convertReference(e){let t=this.convertDocumentKey(e,this.firestore._databaseId);return new SA(this.firestore,null,t)}}function S$(e,t,n){var r,i,o;let a;e=Sh(e,SA);let s=Sh(e.firestore,SS),l=(r=e.converter,i=t,o=n,r?o&&(o.merge||o.mergeFields)?r.toFirestore(i,o):r.toFirestore(i):i);return S0(s,[(function(e,t,n,r,i,o={}){let a,s;let l=e.Qu(o.merge||o.mergeFields?2:0,t,n,i);SU("Data must be an object, but it was:",l,r);let u=SB(r,l);if(o.merge)a=new g6(l.fieldMask),s=l.fieldTransforms;else if(o.mergeFields){let e=[];for(let r of o.mergeFields){let i=Sj(t,r,n);if(!l.contains(i))throw new gE(gw.INVALID_ARGUMENT,`Field '${i}' is specified in your field mask but missing from your input data.`);SV(e,i)||e.push(i)}a=new g6(e),s=l.fieldTransforms.filter(e=>a.covers(e.field))}else a=null,s=l.fieldTransforms;return new Sk(new AO(u),a,s)})(SD(s),"setDoc",e._key,l,null!==e.converter,n).toMutation(e._key,bw.none())])}function S0(e,t){return function(e,t){let n=new gO;return e.asyncQueue.enqueueAndForget(async()=>vq(await Ss(e).then(e=>e.syncEngine),t,n)),n.promise}(Sw(e),t)}new WeakMap,!function(e,t=!0){gd=d8,d2(new dw("firestore",(e,{instanceIdentifier:n,options:r})=>{let i=e.getProvider("app").getImmediate(),o=new SS(new gI(e.getProvider("auth-internal")),new gP(e.getProvider("app-check-internal")),function(e,t){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new gE(gw.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new Aa(e.options.projectId,t)}(i,n),i);return r=Object.assign({useFetchStreams:t},r),o._setSettings(r),o},"PUBLIC").setMultipleInstances(!0)),he(gc,"4.7.3",void 0),he(gc,"4.7.3","esm2017")}();let S1="firebasestorage.googleapis.com",S2="storageBucket";class S4 extends dc{constructor(e,t,n=0){super(S3(e),`Firebase Storage: ${t} (${S3(e)})`),this.status_=n,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,S4.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return S3(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=`${this._baseMessage} -${this.customData.serverResponse}`:this.message=this._baseMessage}}function S3(e){return"storage/"+e}function S6(){return new S4(ew.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}(T=ew||(ew={})).UNKNOWN="unknown",T.OBJECT_NOT_FOUND="object-not-found",T.BUCKET_NOT_FOUND="bucket-not-found",T.PROJECT_NOT_FOUND="project-not-found",T.QUOTA_EXCEEDED="quota-exceeded",T.UNAUTHENTICATED="unauthenticated",T.UNAUTHORIZED="unauthorized",T.UNAUTHORIZED_APP="unauthorized-app",T.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",T.INVALID_CHECKSUM="invalid-checksum",T.CANCELED="canceled",T.INVALID_EVENT_NAME="invalid-event-name",T.INVALID_URL="invalid-url",T.INVALID_DEFAULT_BUCKET="invalid-default-bucket",T.NO_DEFAULT_BUCKET="no-default-bucket",T.CANNOT_SLICE_BLOB="cannot-slice-blob",T.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",T.NO_DOWNLOAD_URL="no-download-url",T.INVALID_ARGUMENT="invalid-argument",T.INVALID_ARGUMENT_COUNT="invalid-argument-count",T.APP_DELETED="app-deleted",T.INVALID_ROOT_OPERATION="invalid-root-operation",T.INVALID_FORMAT="invalid-format",T.INTERNAL_ERROR="internal-error",T.UNSUPPORTED_ENVIRONMENT="unsupported-environment";function S7(e){return new S4(ew.INVALID_ARGUMENT,e)}function S8(){return new S4(ew.APP_DELETED,"The Firebase app was deleted.")}function S5(e){throw new S4(ew.INTERNAL_ERROR,"Internal error: "+e)}class S9{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){let e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(e,t){var n;let r;try{r=S9.makeFromUrl(e,t)}catch(t){return new S9(e,"")}if(""===r.path)return r;throw n=e,new S4(ew.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+n+"'.")}static makeFromUrl(e,t){let n=null,r="([A-Za-z0-9.\\-_]+)",i=RegExp("^gs://"+r+"(/(.*))?$","i");function o(e){e.path_=decodeURIComponent(e.path)}let a=t.replace(/[.]/g,"\\."),s=RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${r}/o(/([^?#]*).*)?$`,"i"),l=t===S1?"(?:storage.googleapis.com|storage.cloud.google.com)":t,u=RegExp(`^https?://${l}/${r}/([^?#]*)`,"i"),c=[{regex:i,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:s,indices:{bucket:1,path:3},postModify:o},{regex:u,indices:{bucket:1,path:2},postModify:o}];for(let t=0;tn)throw S7(`Invalid value for '${e}'. Expected ${n} or less.`)}function wr(e,t,n){let r=t;return null==n&&(r=`https://${t}`),`${n}://${r}/v0${e}`}function wi(e){let t=encodeURIComponent,n="?";for(let r in e)e.hasOwnProperty(r)&&(n=n+(t(r)+"="+t(e[r]))+"&");return n=n.slice(0,-1)}(C=eE||(eE={}))[C.NO_ERROR=0]="NO_ERROR",C[C.NETWORK_ERROR=1]="NETWORK_ERROR",C[C.ABORT=2]="ABORT";class wo{constructor(e,t,n,r,i,o,a,s,l,u,c,p=!0){this.url_=e,this.method_=t,this.headers_=n,this.body_=r,this.successCodes_=i,this.additionalRetryCodes_=o,this.callback_=a,this.errorCallback_=s,this.timeout_=l,this.progressCallback_=u,this.connectionFactory_=c,this.retry=p,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){let e=(e,t)=>{let n=this.resolve_,r=this.reject_,i=t.connection;if(t.wasSuccessCode)try{var o;let e=this.callback_(i,i.getResponse());if(o=e,void 0!==o)n(e);else n()}catch(e){r(e)}else if(null!==i){let e=S6();e.serverResponse=i.getErrorText(),r(this.errorCallback_?this.errorCallback_(i,e):e)}else r(t.canceled?this.appDelete_?S8():new S4(ew.CANCELED,"User canceled the upload/download."):new S4(ew.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again."))};this.canceled_?e(!1,new wa(!1,null,!0)):this.backoffId_=function(e,t,n){let r=1,i=null,o=null,a=!1,s=0;function l(){return 2===s}let u=!1;function c(...e){!u&&(u=!0,t.apply(null,e))}function p(t){i=setTimeout(()=>{i=null,e(h,2===s)},t)}function d(){o&&clearTimeout(o)}function h(e,...t){let n;if(u){d();return}if(e||2===s||a){d(),c.call(null,e,...t);return}r<64&&(r*=2),1===s?(s=2,n=0):n=(r+Math.random())*1e3,p(n)}let f=!1;function m(e){if(f)return;if(f=!0,d(),!u)null!==i?(!e&&(s=2),clearTimeout(i),p(0)):!e&&(s=1)}return p(0),o=setTimeout(()=>{a=!0,m(!0)},n),m}((e,t)=>{if(t){e(!1,new wa(!1,null,!0));return}let n=this.connectionFactory_();this.pendingConnection_=n;let r=e=>{let t=e.loaded,n=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,n)};null!==this.progressCallback_&&n.addUploadProgressListener(r),n.send(this.url_,this.method_,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&n.removeUploadProgressListener(r),this.pendingConnection_=null;let t=n.getErrorCode()===eE.NO_ERROR,i=n.getStatus();if(!t||function(e,t){let n=e>=500&&e<600,r=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return n||r||i}(i,this.additionalRetryCodes_)&&this.retry){e(!1,new wa(!1,null,n.getErrorCode()===eE.ABORT));return}e(!0,new wa(-1!==this.successCodes_.indexOf(i),n))})},e,this.timeout_)}getPromise(){return this.promise_}cancel(e){if(this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_)(0,this.backoffId_)(!1);null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class wa{constructor(e,t,n){this.wasSuccessCode=e,this.connection=t,this.canceled=!!n}}function ws(e){var t;let n;try{n=JSON.parse(e)}catch(e){return null}return"object"!=typeof(t=n)||Array.isArray(t)?null:n}function wl(e){let t=e.lastIndexOf("/",e.length-2);return -1===t?e:e.slice(t+1)}function wu(e,t){return t}class wc{constructor(e,t,n,r){this.server=e,this.local=t||e,this.writable=!!n,this.xform=r||wu}}let wp=null;function wd(){if(wp)return wp;let e=[];e.push(new wc("bucket")),e.push(new wc("generation")),e.push(new wc("metageneration")),e.push(new wc("name","fullPath",!0));let t=new wc("name");t.xform=function(e,t){var n;return!wt(n=t)||n.length<2?n:wl(n)},e.push(t);let n=new wc("size");return n.xform=function(e,t){return void 0!==t?Number(t):t},e.push(n),e.push(new wc("timeCreated")),e.push(new wc("updated")),e.push(new wc("md5Hash",null,!0)),e.push(new wc("cacheControl",null,!0)),e.push(new wc("contentDisposition",null,!0)),e.push(new wc("contentEncoding",null,!0)),e.push(new wc("contentLanguage",null,!0)),e.push(new wc("contentType",null,!0)),e.push(new wc("metadata","customMetadata",!0)),wp=e}function wh(e,t,n){let r=ws(t);return null===r?null:function(e,t,n){var r,i;let o={};o.type="file";let a=n.length;for(let e=0;e{this.xhr_.addEventListener("abort",()=>{this.errorCode_=eE.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=eE.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,n,r){if(this.sent_)throw S5("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==r)for(let e in r)r.hasOwnProperty(e)&&this.xhr_.setRequestHeader(e,r[e].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(!this.sent_)throw S5("cannot .getErrorCode() before sending");return this.errorCode_}getStatus(){if(!this.sent_)throw S5("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return -1}}getResponse(){if(!this.sent_)throw S5("cannot .getResponse() before sending");return this.xhr_.response}getErrorText(){if(!this.sent_)throw S5("cannot .getErrorText() before sending");return this.xhr_.statusText}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}class wb extends wA{initXhr(){this.xhr_.responseType="text"}}function wy(){return new wb}class wv{constructor(e,t){this._service=e,t instanceof S9?this._location=t:this._location=S9.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new wv(e,t)}get root(){let e=new S9(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return wl(this._location.path)}get storage(){return this._service}get parent(){let e=function(e){if(0===e.length)return null;let t=e.lastIndexOf("/");return -1===t?"":e.slice(0,t)}(this._location.path);if(null===e)return null;let t=new S9(this._location.bucket,e);return new wv(this._service,t)}_throwIfRoot(e){if(""===this._location.path){var t;throw t=e,new S4(ew.INVALID_ROOT_OPERATION,"The operation '"+t+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}}}function wS(e,t){let n=null==t?void 0:t[S2];return null==n?null:S9.makeFromBucketSpec(n,e)}class ww{constructor(e,t,n,r,i){this.app=e,this._authProvider=t,this._appCheckProvider=n,this._url=r,this._firebaseVersion=i,this._bucket=null,this._host=S1,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,null!=r?this._bucket=S9.makeFromBucketSpec(r,this._host):this._bucket=wS(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=S9.makeFromBucketSpec(this._url,e):this._bucket=wS(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){wn("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){wn("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;let e=this._authProvider.getImmediate({optional:!0});if(e){let t=await e.getToken();if(null!==t)return t.accessToken}return null}async _getAppCheckToken(){let e=this._appCheckProvider.getImmediate({optional:!0});return e?(await e.getToken()).token:null}_delete(){return!this._deleted&&(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new wv(this,e)}_makeRequest(e,t,n,r,i=!0){if(this._deleted)return new we(S8());{let o=function(e,t,n,r,i,o,a=!0){var s,l,u,c,p,d,h,f;let m=wi(e.urlParams),g=e.url+m,A=Object.assign({},e.headers);return s=A,(l=t)&&(s["X-Firebase-GMPID"]=l),u=A,null!==(c=n)&&c.length>0&&(u.Authorization="Firebase "+c),p=A,d=o,p["X-Firebase-Storage-Version"]="webjs/"+(null!=d?d:"AppManager"),h=A,null!==(f=r)&&(h["X-Firebase-AppCheck"]=f),new wo(g,e.method,A,e.body,e.successCodes,e.additionalRetryCodes,e.handler,e.errorHandler,e.timeout,e.progressCallback,i,a)}(e,this._appId,n,r,t,this._firebaseVersion,i);return this._requests.add(o),o.getPromise().then(()=>this._requests.delete(o),()=>this._requests.delete(o)),o}}async makeRequestWithTokens(e,t){let[n,r]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,n,r).getPromise()}}let wE="@firebase/storage",wO="0.13.2",wT="storage";function wC(e,t){return function(e,t){var n;if(!(t&&(n=t,/^[A-Za-z]+:\/\//.test(n))))return function e(t,n){if(t instanceof ww){if(null==t._bucket)throw new S4(ew.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+S2+"' property when initializing the app?");let r=new wv(t,t._bucket);return null!=n?e(r,n):r}return void 0!==n?function(e,t){let n=function(e,t){let n=t.split("/").filter(e=>e.length>0).join("/");return 0===e.length?n:e+"/"+n}(e._location.path,t),r=new S9(e._location.bucket,n);return new wv(e.storage,r)}(t,n):t}(e,t);if(e instanceof ww)return new wv(e,t);throw S7("To use ref(service, url), the first argument must be a Storage instance.")}(e=dS(e),t)}function wx(e,{instanceIdentifier:t}){let n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal");return new ww(n,r,e.getProvider("app-check-internal"),t,d8)}d2(new dw(wT,wx,"PUBLIC").setMultipleInstances(!0)),he(wE,wO,""),he(wE,wO,"esm2017");let wI="@firebase/installations",wk="0.6.9",w_=`w:${wk}`,wR="FIS_v2",wP=new dp("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function wN(e){return e instanceof dc&&e.code.includes("request-failed")}function wD({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function wM(e){return{token:e.token,requestStatus:2,expiresIn:function(e){return Number(e.replace("s","000"))}(e.expiresIn),creationTime:Date.now()}}async function wL(e,t){let n=(await t.json()).error;return wP.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function wB({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}async function wF(e){let t=await e();return t.status>=500&&t.status<600?e():t}async function wU({appConfig:e,heartbeatServiceProvider:t},{fid:n}){let r=wD(e),i=wB(e),o=t.getImmediate({optional:!0});if(o){let e=await o.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}let a={method:"POST",headers:i,body:JSON.stringify({fid:n,authVersion:wR,appId:e.appId,sdkVersion:w_})},s=await wF(()=>fetch(r,a));if(s.ok){let e=await s.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:wM(e.authToken)}}throw await wL("Create Installation",s)}function wj(e){return new Promise(t=>{setTimeout(t,e)})}let wz=/^[cdef][\w-]{21}$/;function wH(e){return`${e.appName}!${e.appId}`}let wZ=new Map;function wV(e,t){let n=wH(e);wG(n,t),function(e,t){let n=function(){return!wW&&"BroadcastChannel"in self&&((wW=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{wG(e.data.key,e.data.fid)}),wW}();n&&n.postMessage({key:e,fid:t}),function(){0===wZ.size&&wW&&(wW.close(),wW=null)}()}(n,t)}function wG(e,t){let n=wZ.get(e);if(!!n)for(let e of n)e(t)}let wW=null,wQ="firebase-installations-store",wq=null;function wK(){return!wq&&(wq=dz("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(wQ)}})),wq}async function wY(e,t){let n=wH(e),r=(await wK()).transaction(wQ,"readwrite"),i=r.objectStore(wQ),o=await i.get(n);return await i.put(t,n),await r.done,(!o||o.fid!==t.fid)&&wV(e,t.fid),t}async function wX(e){let t=wH(e),n=(await wK()).transaction(wQ,"readwrite");await n.objectStore(wQ).delete(t),await n.done}async function wJ(e,t){let n=wH(e),r=(await wK()).transaction(wQ,"readwrite"),i=r.objectStore(wQ),o=await i.get(n),a=t(o);return void 0===a?await i.delete(n):await i.put(a,n),await r.done,a&&(!o||o.fid!==a.fid)&&wV(e,a.fid),a}async function w$(e){let t;let n=await wJ(e.appConfig,n=>{let r=function(e,t){if(0===t.registrationStatus){if(!navigator.onLine)return{installationEntry:t,registrationPromise:Promise.reject(wP.create("app-offline"))};let n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=w0(e,n);return{installationEntry:n,registrationPromise:r}}if(1===t.registrationStatus)return{installationEntry:t,registrationPromise:w1(e)};return{installationEntry:t}}(e,function(e){return w4(e||{fid:function(){try{let e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;let t=function(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").substr(0,22)}(e);return wz.test(t)?t:""}catch(e){return""}}(),registrationStatus:0})}(n));return t=r.registrationPromise,r.installationEntry});return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function w0(e,t){try{let n=await wU(e,t);return wY(e.appConfig,n)}catch(n){throw wN(n)&&409===n.customData.serverCode?await wX(e.appConfig):await wY(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}async function w1(e){let t=await w2(e.appConfig);for(;1===t.registrationStatus;)await wj(100),t=await w2(e.appConfig);if(0===t.registrationStatus){let{installationEntry:t,registrationPromise:n}=await w$(e);return n?n:t}return t}function w2(e){return wJ(e,e=>{if(!e)throw wP.create("installation-not-found");return w4(e)})}function w4(e){return function(e){return 1===e.registrationStatus&&e.registrationTime+1e4fetch(r,a));if(s.ok)return wM(await s.json());throw await wL("Generate Auth Token",s)}async function w6(e,t=!1){let n;let r=await wJ(e.appConfig,r=>{if(!w9(r))throw wP.create("not-registered");let i=r.authToken;if(!t&&function(e){return 2===e.requestStatus&&!function(e){let t=Date.now();return t{if(!w9(e))throw wP.create("not-registered");return function(e){return 1===e.requestStatus&&e.requestTime+1e4{let t=e.getProvider("app").getImmediate(),n=function(e){if(!e||!e.options)throw Er("App Configuration");if(!e.name)throw Er("App Name");for(let t of["projectId","apiKey","appId"])if(!e.options[t])throw Er(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t),r=d4(t,"heartbeat");return{app:t,appConfig:n,heartbeatServiceProvider:r,_delete:()=>Promise.resolve()}},Ea=e=>{let t=d4(e.getProvider("app").getImmediate(),Ei).getImmediate();return{getId:()=>Ee(t),getToken:e=>Et(t,e)}};d2(new dw(Ei,Eo,"PUBLIC")),d2(new dw("installations-internal",Ea,"PRIVATE")),he(wI,wk),he(wI,wk,"esm2017");let Es="analytics",El="https://www.googletagmanager.com/gtag/js",Eu=new dR("@firebase/analytics"),Ec=new dp("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function Ep(e){if(!e.startsWith(El)){let t=Ec.create("invalid-gtag-resource",{gtagURL:e});return Eu.warn(t.message),""}return e}function Ed(e){return Promise.all(e.map(e=>e.catch(e=>e)))}async function Eh(e,t,n,r,i,o){let a=r[i];try{if(a)await t[a];else{let e=(await Ed(n)).find(e=>e.measurementId===i);e&&await t[e.appId]}}catch(e){Eu.error(e)}e("config",i,o)}async function Ef(e,t,n,r,i){try{let o=[];if(i&&i.send_to){let e=i.send_to;!Array.isArray(e)&&(e=[e]);let r=await Ed(n);for(let n of e){let e=r.find(e=>e.measurementId===n),i=e&&t[e.appId];if(i)o.push(i);else{o=[];break}}}0===o.length&&(o=Object.values(t)),await Promise.all(o),e("event",r,i||{})}catch(e){Eu.error(e)}}let Em=new class e{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function Eg(e){var t;let{appId:n,apiKey:r}=e,i={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},o="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig".replace("{app-id}",n),a=await fetch(o,i);if(200!==a.status&&304!==a.status){let e="";try{let n=await a.json();(null===(t=n.error)||void 0===t?void 0:t.message)&&(e=n.error.message)}catch(e){}throw Ec.create("config-fetch-failed",{httpStatus:a.status,responseMessage:e})}return a.json()}async function EA(e,t=Em,n){let{appId:r,apiKey:i,measurementId:o}=e.options;if(!r)throw Ec.create("no-app-id");if(!i){if(o)return{measurementId:o,appId:r};throw Ec.create("no-api-key")}let a=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()},s=new Ey;return setTimeout(async()=>{s.abort()},void 0!==n?n:6e4),Eb({appId:r,apiKey:i,measurementId:o},a,s,t)}async function Eb(e,{throttleEndTimeMillis:t,backoffCount:n},r,i=Em){var o;let{appId:a,measurementId:s}=e;try{await function(e,t){return new Promise((n,r)=>{let i=setTimeout(n,Math.max(t-Date.now(),0));e.addEventListener(()=>{clearTimeout(i),r(Ec.create("fetch-throttle",{throttleEndTimeMillis:t}))})})}(r,t)}catch(e){if(s)return Eu.warn(`Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID ${s} provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:a,measurementId:s};throw e}try{let t=await Eg(e);return i.deleteThrottleMetadata(a),t}catch(u){if(!function(e){if(!(e instanceof dc)||!e.customData)return!1;let t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}(u)){if(i.deleteThrottleMetadata(a),s)return Eu.warn(`Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID ${s} provided in the "measurementId" field in the local Firebase config. [${null==u?void 0:u.message}]`),{appId:a,measurementId:s};throw u}let t=503===Number(null===(o=null==u?void 0:u.customData)||void 0===o?void 0:o.httpStatus)?dv(n,i.intervalMillis,30):dv(n,i.intervalMillis),l={throttleEndTimeMillis:Date.now()+t,backoffCount:n+1};return i.setThrottleMetadata(a,l),Eu.debug(`Calling attemptFetch again in ${t} millis`),Eb(e,l,r,i)}}class Ey{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function Ev(e,t,n,r,i){if(i&&i.global){e("event",n,r);return}{let i=await t;e("event",n,Object.assign(Object.assign({},r),{send_to:i}))}}async function ES(){if(!dl())return Eu.warn(Ec.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await du()}catch(e){return Eu.warn(Ec.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0}async function Ew(e,t,n,r,i,o,a){var s;let c=EA(e);c.then(t=>{n[t.measurementId]=t.appId,e.options.measurementId&&t.measurementId!==e.options.measurementId&&Eu.warn(`The measurement ID in the local Firebase config (${e.options.measurementId}) does not match the measurement ID fetched from the server (${t.measurementId}). To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.`)}).catch(e=>Eu.error(e)),t.push(c);let p=ES().then(e=>e?r.getId():void 0),[d,h]=await Promise.all([c,p]);if(!function(e){for(let t of Object.values(window.document.getElementsByTagName("script")))if(t.src&&t.src.includes(El)&&t.src.includes(e))return t;return null}(o)&&!function(e,t){var n,r;let i;let o=(n="firebase-js-sdk-policy",r={createScriptURL:Ep},window.trustedTypes&&(i=window.trustedTypes.createPolicy(n,r)),i),a=document.createElement("script"),s=`${El}?l=${e}&id=${t}`;a.src=o?null==o?void 0:o.createScriptURL(s):s,a.async=!0,document.head.appendChild(a)}(o,d.measurementId),u)i("consent","default",u),u=void 0;i("js",new Date);let f=null!==(s=null==a?void 0:a.config)&&void 0!==s?s:{};if(f.origin="firebase",f.update=!0,null!=h&&(f.firebase_id=h),i("config",d.measurementId,f),l)i("set",l),l=void 0;return d.measurementId}class EE{constructor(e){this.app=e}_delete(){return delete EO[this.app.options.appId],Promise.resolve()}}let EO={},ET=[],EC={},Ex="dataLayer",EI=!1;function Ek(e,t,n,r){e=dS(e),Ev(p,EO[e.app.options.appId],t,n,r).catch(e=>Eu.error(e))}let E_="@firebase/analytics",ER="0.10.8";d2(new dw(Es,(e,{options:t})=>{let n=e.getProvider("app").getImmediate();return function(e,t,n){!function(){let e=[];if(ds()&&e.push("This is a browser extension environment."),!("undefined"!=typeof navigator&&navigator.cookieEnabled)&&e.push("Cookies are not available."),e.length>0){let t=e.map((e,t)=>`(${t+1}) ${e}`).join(" "),n=Ec.create("invalid-analytics-context",{errorInfo:t});Eu.warn(n.message)}}();let r=e.options.appId;if(!r)throw Ec.create("no-app-id");if(!e.options.apiKey){if(e.options.measurementId)Eu.warn(`The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID ${e.options.measurementId} provided in the "measurementId" field in the local Firebase config.`);else throw Ec.create("no-api-key")}if(null!=EO[r])throw Ec.create("already-exists",{id:r});if(!EI){var i,o,a,s,l,u,d,h,f,m;let e,t;i=Ex,e=[],Array.isArray(window[i])?e=window[i]:window[i]=e;let{wrappedGtag:n,gtagCore:r}=(o=EO,a=ET,s=EC,l=Ex,u="gtag",t=function(...e){window[l].push(arguments)},window[u]&&"function"==typeof window[u]&&(t=window[u]),window[u]=(d=t,h=o,f=a,m=s,async function e(t,...n){try{if("event"===t){let[e,t]=n;await Ef(d,h,f,e,t)}else if("config"===t){let[e,t]=n;await Eh(d,h,f,m,e,t)}else if("consent"===t){let[e,t]=n;d("consent",e,t)}else if("get"===t){let[e,t,r]=n;d("get",e,t,r)}else if("set"===t){let[e]=n;d("set",e)}else d(t,...n)}catch(e){Eu.error(e)}}),{gtagCore:t,wrappedGtag:window[u]});p=n,c=r,EI=!0}return EO[r]=Ew(e,ET,EC,t,c,Ex,n),new EE(e)}(n,e.getProvider("installations-internal").getImmediate(),t)},"PUBLIC")),d2(new dw("analytics-internal",function(e){try{let t=e.getProvider(Es).getImmediate();return{logEvent:(e,n,r)=>Ek(t,e,n,r)}}catch(e){throw Ec.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),he(E_,ER),he(E_,ER,"esm2017");var EP=d5(JSON.parse('{"apiKey":"AIzaSyBrp4sEJltP_Dz2QXnnBoKEMx74MKWheLk","authDomain":"osc-downloads.firebaseapp.com","projectId":"osc-downloads","storageBucket":"gs://osc-downloads.appspot.com","messagingSenderId":"891236007779","appId":"1:891236007779:web:6fbdd2dd40ce2e72d19d56","measurementId":"G-YE9RWQVV9V"}')),EN=function(e=d9()){let t=d4(e,"auth");if(t.isInitialized())return t.getImmediate();let n=function(e,t){let n=d4(e,"auth");if(n.isInitialized()){let e=n.getImmediate();if(dh(n.getOptions(),null!=t?t:{}))return e;hg(e,"already-initialized")}return n.initialize({options:t})}(e,{popupRedirectResolver:m4,persistence:[mS,mi,mo]}),r=dn("authTokenSyncURL");if(r&&"boolean"==typeof isSecureContext&&isSecureContext){let e=new URL(r,location.origin);if(location.origin===e.origin){var i,o,a,s,l,u,c;let t=gi(e.toString());i=n,o=t,a=()=>t(n.currentUser),dS(i).beforeAuthStateChanged(o,a),s=n,l=e=>t(e),dS(s).onIdTokenChanged(l,void 0,void 0)}}let p=p9("auth");return p&&!function(e,t,n){let r=dS(e);hS(r._canInitEmulator,r,"emulator-config-failed"),hS(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");let i=false,o=fE(t),{host:a,port:s}=function(e){let t=fE(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};let r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){let e=i[1];return{host:e,port:fO(r.substr(e.length+1))}}{let[e,t]=r.split(":");return{host:e,port:fO(t)}}}(t),l=null===s?"":`:${s}`;r.config.emulator={url:`${o}//${a}${l}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:a,port:s,protocol:o.replace(":",""),options:Object.freeze({disableWarnings:i})}),!i&&function(){function e(){let e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(n,`http://${p}`),n}(EP),ED=function(e,t){let n=d4("object"==typeof e?e:d9(),"firestore").getImmediate({identifier:"string"==typeof e?e:"(default)"});if(!n._initialized){let e=de("firestore");e&&function(e,t,n,r={}){var i;let o=(e=Sh(e,Sm))._getSettings(),a=`${t}:${n}`;if("firestore.googleapis.com"!==o.host&&o.host!==a&&gA("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),e._setSettings(Object.assign(Object.assign({},o),{host:a,ssl:!1})),r.mockUserToken){let t,n;if("string"==typeof r.mockUserToken)t=r.mockUserToken,n=gp.MOCK_USER;else{t=di(r.mockUserToken,null===(i=e._app)||void 0===i?void 0:i.options.projectId);let o=r.mockUserToken.sub||r.mockUserToken.user_id;if(!o)throw new gE(gw.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new gp(o)}e._authCredentials=new gx(new gT(t,n))}}(n,...e)}return n}(EP),EM=function(e=d9(),t){let n=d4(e=dS(e),wT).getImmediate({identifier:void 0}),r=de("storage");return r&&function(e,t,n,r={}){!function(e,t,n,r={}){e.host=`${t}:${n}`,e._protocol="http";let{mockUserToken:i}=r;i&&(e._overrideAuthToken="string"==typeof i?i:di(i,e.app.options.projectId))}(e,t,n,r)}(n,...r),n}(EP),EL=function(e=d9()){let t=d4(e=dS(e),Es);return t.isInitialized()?t.getImmediate():function(e,t={}){let n=d4(e,Es);if(n.isInitialized()){let e=n.getImmediate();if(dh(t,n.getOptions()))return e;throw Ec.create("already-initialized")}return n.initialize({options:t})}(e)}(EP),EB=new fQ;let EF=function(){for(var e,t,n=0,r="";n{if("object"==typeof window){let t=(e?e.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return t.nonce=window.__nonce__,t.parentNode||(e||document.head).appendChild(t),t.firstChild}return e||EU},Ez=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,EH=/\/\*[^]*?\*\/| +/g,EZ=/\n+/g,EV=(e,t)=>{let n="",r="",i="";for(let o in e){let a=e[o];"@"==o[0]?"i"==o[1]?n=o+" "+a+";":r+="f"==o[1]?EV(a,o):o+"{"+EV(a,"k"==o[1]?"":t)+"}":"object"==typeof a?r+=EV(a,t?t.replace(/([^,])+/g,e=>o.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):o):null!=a&&(o="-"==o[1]?o:o.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=EV.p?EV.p(o,a):o+":"+a+";")}return n+(t&&i?t+"{"+i+"}":i)+r},EG={},EW=e=>{if("object"==typeof e){let t="";for(let n in e)t+=n+EW(e[n]);return t}return e},EQ=(e,t,n,r,i)=>{var o,a,s,l;let u=EW(e),c=EG[u]||(EG[u]=(e=>{let t=0,n=11;for(;t>>0;return"go"+n})(u));if(!EG[c]){let t=u!==e?e:(e=>{let t,n,r=[{}];for(;t=Ez.exec(e.replace(EH,""));)t[4]?r.shift():t[3]?(n=t[3].replace(EZ," ").trim(),r.unshift(r[0][n]=r[0][n]||{})):r[0][t[1]]=t[2].replace(EZ," ").trim();return r[0]})(e);EG[c]=EV(i?{["@keyframes "+c]:t}:t,n?"":"."+c)}let p=n&&EG.g;return n&&(EG.g=EG[c]),o=EG[c],a=t,s=r,(l=p)?a.data=a.data.replace(l,o):-1===a.data.indexOf(o)&&(a.data=s?o+a.data:a.data+o),c},Eq=(e,t,n)=>e.reduce((e,r,i)=>{let o=t[i];if(o&&o.call){let e=o(n),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;o=t?"."+t:e&&"object"==typeof e?e.props?"":EV(e,""):!1===e?"":e}return e+r+(null==o?"":o)},"");function EK(e){let t=this||{},n=e.call?e(t.p):e;return EQ(n.unshift?n.raw?Eq(n,[].slice.call(arguments,1),t.p):n.reduce((e,n)=>Object.assign(e,n&&n.call?n(t.p):n),{}):n,Ej(t.target),t.g,t.o,t.k)}function EY(e,t){for(var n=0;n=0)&&(i[n]=e[n]);return i}function E1(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}EK.bind({g:1}),EK.bind({k:1});var E2=function(){return""},E4=e0.createContext({enqueueSnackbar:E2,closeSnackbar:E2}),E3="@media (max-width:599.95px)",E6="@media (min-width:600px)",E7=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},E8=function(e){return""+E7(e.vertical)+E7(e.horizontal)},E5=function(e){return!!e||0===e},E9="unmounted",Oe="exited",Ot="entering",On="entered",Or="exiting",Oi=function(e){function t(t){n=e.call(this,t)||this;var n,r,i=t.appear;return n.appearStatus=null,t.in?i?(r=Oe,n.appearStatus=Ot):r=On:r=t.unmountOnExit||t.mountOnEnter?E9:Oe,n.state={status:r},n.nextCallback=null,n}E$(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===E9?{status:Oe}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==Ot&&n!==On&&(t=Ot):(n===Ot||n===On)&&(t=Or)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e=this.props.timeout,t=e,n=e;return null!=e&&"number"!=typeof e&&"string"!=typeof e&&(n=e.exit,t=e.enter),{exit:n,enter:t}},n.updateStatus=function(e,t){void 0===e&&(e=!1),null!==t?(this.cancelNextCallback(),t===Ot?this.performEnter(e):this.performExit()):this.props.unmountOnExit&&this.state.status===Oe&&this.setState({status:E9})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.getTimeouts();if(!e&&!n){this.safeSetState({status:On},function(){t.props.onEntered&&t.props.onEntered(t.node,e)});return}this.props.onEnter&&this.props.onEnter(this.node,e),this.safeSetState({status:Ot},function(){t.props.onEntering&&t.props.onEntering(t.node,e),t.onTransitionEnd(r.enter,function(){t.safeSetState({status:On},function(){t.props.onEntered&&t.props.onEntered(t.node,e)})})})},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts();if(!t){this.safeSetState({status:Oe},function(){e.props.onExited&&e.props.onExited(e.node)});return}this.props.onExit&&this.props.onExit(this.node),this.safeSetState({status:Or},function(){e.props.onExiting&&e.props.onExiting(e.node),e.onTransitionEnd(n.exit,function(){e.safeSetState({status:Oe},function(){e.props.onExited&&e.props.onExited(e.node)})})})},n.cancelNextCallback=function(){null!==this.nextCallback&&this.nextCallback.cancel&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(){n&&(n=!1,t.nextCallback=null,e())},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=null==e&&!this.props.addEndListener;if(!this.node||n){setTimeout(this.nextCallback,0);return}this.props.addEndListener&&this.props.addEndListener(this.node,this.nextCallback),null!=e&&setTimeout(this.nextCallback,e)},n.render=function(){var e=this.state.status;if(e===E9)return null;var t=this.props;return(0,t.children)(e,E0(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]))},EX(t,[{key:"node",get:function(){var e,t=null===(e=this.props.nodeRef)||void 0===e?void 0:e.current;if(!t)throw Error("notistack - Custom snackbar is not refForwarding");return t}}]),t}(e0.Component);function Oo(){}function Oa(e,t){"function"==typeof e?e(t):e&&(e.current=t)}function Os(e,t){return(0,e0.useMemo)(function(){return null==e&&null==t?null:function(n){Oa(e,n),Oa(t,n)}},[e,t])}function Ol(e){var t=e.timeout,n=e.style,r=void 0===n?{}:n,i=e.mode;return{duration:"object"==typeof t?t[i]||0:t,easing:r.transitionTimingFunction,delay:r.transitionDelay}}Oi.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Oo,onEntering:Oo,onEntered:Oo,onExit:Oo,onExiting:Oo,onExited:Oo};var Ou={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Oc=function(e){e.scrollTop=e.scrollTop},Op=function(e){return Math.round(e)+"ms"};function Od(e,t){void 0===e&&(e=["all"]);var n=t||{},r=n.duration,i=void 0===r?300:r,o=n.easing,a=void 0===o?Ou.easeInOut:o,s=n.delay,l=void 0===s?0:s;return(Array.isArray(e)?e:[e]).map(function(e){return e+" "+("string"==typeof i?i:Op(i))+" "+a+" "+("string"==typeof l?l:Op(l))}).join(",")}function Oh(e){var t;return((t=e)&&t.ownerDocument||document).defaultView||window}function Of(e,t){if(t){var n=function(e,t){var n,r=t.getBoundingClientRect(),i=Oh(t);if(t.fakeTransform)n=t.fakeTransform;else{var o=i.getComputedStyle(t);n=o.getPropertyValue("-webkit-transform")||o.getPropertyValue("transform")}var a=0,s=0;if(n&&"none"!==n&&"string"==typeof n){var l=n.split("(")[1].split(")")[0].split(",");a=parseInt(l[4],10),s=parseInt(l[5],10)}switch(e){case"left":return"translateX("+(i.innerWidth+a-r.left)+"px)";case"right":return"translateX(-"+(r.left+r.width-a)+"px)";case"up":return"translateY("+(i.innerHeight+s-r.top)+"px)";default:return"translateY(-"+(r.top+r.height-s)+"px)"}}(e,t);n&&(t.style.webkitTransform=n,t.style.transform=n)}}var Om=(0,e0.forwardRef)(function(e,t){var n=e.children,r=e.direction,i=void 0===r?"down":r,o=e.in,a=e.style,s=e.timeout,l=void 0===s?0:s,u=e.onEnter,c=e.onEntered,p=e.onExit,d=e.onExited,h=E0(e,["children","direction","in","style","timeout","onEnter","onEntered","onExit","onExited"]),f=(0,e0.useRef)(null),m=Os(n.ref,f),g=Os(m,t),A=(0,e0.useCallback)(function(){f.current&&Of(i,f.current)},[i]);return(0,e0.useEffect)(function(){if(!o&&"down"!==i&&"right"!==i){var e=function(e,t){var n;function r(){for(var r=this,i=arguments.length,o=Array(i),a=0;a-1,i=e.snacks.findIndex(t)>-1;if(r||i)return e}return n.handleDisplaySnack(EJ({},e,{queue:[].concat(e.queue,[h])}))}),p},n.handleDisplaySnack=function(e){return e.snacks.length>=n.maxSnack?n.handleDismissOldest(e):n.processQueue(e)},n.processQueue=function(e){var t=e.queue,n=e.snacks;return t.length>0?EJ({},e,{snacks:[].concat(n,[t[0]]),queue:t.slice(1,t.length)}):e},n.handleDismissOldest=function(e){if(e.snacks.some(function(e){return!e.open||e.requestClose}))return e;var t=!1,r=!1;e.snacks.reduce(function(e,t){return e+(t.open&&t.persist?1:0)},0)===n.maxSnack&&(r=!0);var i=e.snacks.map(function(e){if(!t&&(!e.persist||r))return(t=!0,e.entered)?(e.onClose&&e.onClose(null,"maxsnack",e.id),n.props.onClose&&n.props.onClose(null,"maxsnack",e.id),EJ({},e,{open:!1})):EJ({},e,{requestClose:!0});return EJ({},e)});return EJ({},e,{snacks:i})},n.handleEnteredSnack=function(e,t,r){if(!E5(r))throw Error("handleEnteredSnack Cannot be called with undefined key");n.setState(function(e){return{snacks:e.snacks.map(function(e){return e.id===r?EJ({},e,{entered:!0}):EJ({},e)})}})},n.handleCloseSnack=function(e,t,r){n.props.onClose&&n.props.onClose(e,t,r);var i=void 0===r;n.setState(function(e){var t=e.snacks,n=e.queue;return{snacks:t.map(function(e){return i||e.id===r?e.entered?EJ({},e,{open:!1}):EJ({},e,{requestClose:!0}):EJ({},e)}),queue:n.filter(function(e){return e.id!==r})}})},n.closeSnackbar=function(e){var t=n.state.snacks.find(function(t){return t.id===e});E5(e)&&t&&t.onClose&&t.onClose(null,"instructed",e),n.handleCloseSnack(null,"instructed",e)},n.handleExitedSnack=function(e,t){if(!E5(t))throw Error("handleExitedSnack Cannot be called with undefined key");n.setState(function(e){var r=n.processQueue(EJ({},e,{snacks:e.snacks.filter(function(e){return e.id!==t})}));return 0===r.queue.length?r:n.handleDismissOldest(r)})},e_=n.enqueueSnackbar,eR=n.closeSnackbar,n.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:n.enqueueSnackbar.bind(E1(n)),closeSnackbar:n.closeSnackbar.bind(E1(n))}},n}return E$(t,e),t.prototype.render=function(){var e=this,t=this.state.contextValue,n=this.props,r=n.domRoot,i=n.children,o=n.dense,a=void 0!==o&&o,s=n.Components,l=void 0===s?{}:s,u=n.classes,c=this.state.snacks.reduce(function(e,t){var n,r=E8(t.anchorOrigin),i=e[r]||[];return EJ({},e,((n={})[r]=[].concat(i,[t]),n))},{}),p=Object.keys(c).map(function(t){var n=c[t],r=n[0];return e0.createElement(OQ,{key:t,dense:a,anchorOrigin:r.anchorOrigin,classes:u},n.map(function(t){return e0.createElement(OH,{key:t.id,snack:t,classes:u,Component:l[t.variant],onClose:e.handleCloseSnack,onEnter:e.props.onEnter,onExit:e.props.onExit,onExited:OR([e.handleExitedSnack,e.props.onExited],t.id),onEntered:OR([e.handleEnteredSnack,e.props.onEntered],t.id)})}))});return e0.createElement(E4.Provider,{value:t},i,r?(0,e2.createPortal)(p,r):p)},EX(t,[{key:"maxSnack",get:function(){return this.props.maxSnack||OA.maxSnack}}]),t}(e0.Component),OY=n("49089"),OX=function(e){var t=(0,e0.useRef)();return(0,e0.useEffect)(function(){t.current=e}),t.current},OJ=function(){var e=ny();OX(e),(0,e0.useEffect)(function(){},[e])},O$=function(e){console.log("gaLoginEvent",e,{category:"User",action:"Login",label:e}),OY.default.event({category:"User",action:"Login",label:e}),Ek(EL,"login",{category:"User",action:"Login",label:e})},O0=function(e,t,n){console.log("gaDownloadClick",e,{file_name:e,release_version:t,platform:n}),OY.default.event("file_download",{file_name:e,release_version:t,platform:n}),Ek(EL,"file_download",{file_name:e,release_version:t,platform:n}),Ek(EL,"select_content",{content_type:e,item_id:e,file_name:e,release_version:t,platform:n})};function O1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n\\r\\n\\r\\nClick to see details\\r\\n\\r\\n**Closed Issues: 7**\\r\\n- ➕ [#757]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/757 ), Implement a method to specify monthly ground temperature schedule\\r\\n- ✔️ [#850]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/850 ), v1.11.0-rc1 Testing: Call for help from the community - updated to include v1.11.0-rc2\\r\\n- ✔️ [#861]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/861 ), Can\'t build with Qt 6.5.2 with macOS Tahoe 26.x\\r\\n- ➕ [#862]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/862 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\r\\n- ➕ [#872]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/872 ), 1.11.0 release is missing the mac and windows installers\\r\\n- ✔️ [#878]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/878 ), BCL Library not working\\r\\n- ✔️ [#879]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/879 ), BCL not online\\r\\n\\r\\n**Accepted Pull Requests: 17**\\r\\n- ✔️ [#837]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/837 ), Work In Progress - Replace QtCharts with LGPL compliant JKQtPlotter\\r\\n- ✔️ [#856]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/856 ), Future proof pinging bcl.nlr.gov instead of bcl.nrel.gov\\r\\n- ✔️ [#858]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/858 ), Merge for OpenStudio Application v1.11.0 release\\r\\n- ➕ [#859]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/859 ), #757 - Implement a Site subtab for ground temperatures\\r\\n- ➕ [#863]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/863 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\r\\n- ✔️ [#864]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/864 ), Remove Qt from ModelEditor Ruby bindings\\r\\n- ✔️ [#865]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/865 ), Refactor with architecture and developer documentation\\r\\n- ✔️ [#867]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/867 ), Remove qt5compat\\r\\n- ✔️ [#868]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/868 ), Bump Qt from 6.5.2 to Qt 6.11.0\\r\\n- ✔️ [#869]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/869 ), Remove shared library exports for Windows\\r\\n- ✔️ [#870]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/870 ), Add docker build container for AI agents to use\\r\\n- ✔️ [#873]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/873 ), Complete language support to all GUI tabs\\r\\n- ✔️ [#874]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/874 ), Complete language support to all GUI tabs\\r\\n- ✔️ [#877]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/877 ), Complete language support to all GUI tabs (#876)\\r\\n- ✔️ [#881]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/881 ), Create 1.11.1 patch changing NREL to NLR\\r\\n- ✔️ [#884]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/884 ), Update actions to avoid warnings\\r\\n- ✔️ [#885]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/885 ), Merge for 1.12.0-rc.1\\r\\n\\r\\n**Total Open Issues: 134** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #851, #852, #857, #860, #866, #871, #875, #880, #882)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#876, #883)\\r\\n\\r\\n\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453851342","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453851503","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453857412","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453857546","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453848339","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453848538","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453848409","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453848497","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453860932","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453861000","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Windows.zip"}]},{"name":"v1.11.1","tag_name":"v1.11.1","published_at":"2026-06-17T11:30:54Z","prerelease":false,"body":"This is essentially the same as v1.11.0, but patched so that BCL is accessed at the new url bcl.nlr.gov now that bcl.nrel.gov was dropped without any redirects.\\r\\n\\r\\n## What\'s Changed\\r\\n* Create 1.11.1 patch changing NREL to NLR by [@macumber](https://github.com/macumber) in [#881](https://github.com/openstudiocoalition/OpenStudioApplication/pull/881)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.11.0...v1.11.1](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.11.0...v1.11.1)\\n\\n## Changelog\\n\\n\\n**Date Range: 2025-02-09** (v1.9.0) - **2026-06-17:**\\n\\n**New Issues: 51**\\n\\n**Closed Issues: 35**\\n\\n**Accepted Pull Requests: 38**\\n\\n**Total Open Issues: 134**\\n\\n**Total Open Pull Requests: 5**\\n\\n\\n
\\n\\n Click to see details\\n\\n**Closed Issues: 35**\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\n- ➕ [#757]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/757 ), Implement a method to specify monthly ground temperature schedule\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\n- ✔️ [#819]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/819 ), v1.10.0-rc2 Testing: Call for help from the community\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\n- ✔️ [#832]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/832 ), openstudio怎么使用\\n- ✔️ [#833]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/833 ), OpenStudio Results Report html is sometimes Garbled\\n- ✔️ [#835]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/835 ), Resources for OpenStudio installation on Linux\\n- ✔️ [#836]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/836 ), OpenStudio Application uses GPLv3 only licensed QtCharts\\n- ✔️ [#840]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/840 ), OpenStudioApp fails to start in Windows 11\\n- ✔️ [#843]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/843 ), Deleting an object does not delete children that are OS:Table:IndependentVariable\\n- ➕ [#844]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/844 ), Add build instructions\\n- ✔️ [#850]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/850 ), v1.11.0-rc1 Testing: Call for help from the community - updated to include v1.11.0-rc2\\n- ✔️ [#853]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/853 ), I am trying to set \\"CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule\\" but keep getting \'incompatible ScheduleTypeLimits\' error OpenstudioSDK 3.10.0\\n- ✔️ [#861]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/861 ), Can\'t build with Qt 6.5.2 with macOS Tahoe 26.x\\n- ➕ [#862]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/862 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\n- ➕ [#872]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/872 ), 1.11.0 release is missing the mac and windows installers\\n- ✔️ [#878]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/878 ), BCL Library not working\\n- ✔️ [#879]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/879 ), BCL not online\\n\\n**Accepted Pull Requests: 38**\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\n- ✔️ [#837]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/837 ), Work In Progress - Replace QtCharts with LGPL compliant JKQtPlotter\\n- ✔️ [#838]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/838 ), Fix #836 - QtCharts is GPL only\\n- ✔️ [#839]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/839 ), Fixup empty elsif preventing Werror\\n- ✔️ [#841]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/841 ), Fixup empty elsif preventing Werror \\n- ✔️ [#842]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/842 ), Fix #836 - QtCharts is GPL only\\n- ✔️ [#845]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/845 ), Update to OpenStudio SDK v3.11.0-RC1\\n- ✔️ [#846]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/846 ), Update to MacOS 15 runners\\n- ✔️ [#848]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/848 ), Update for 1.11.0-rc1\\n- ✔️ [#849]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/849 ), Update OpenStudio Standards to 0.8.5\\n- ✔️ [#854]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/854 ), Update actions to work after clearing cache, bump to RC2\\n- ✔️ [#855]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/855 ), Update actions to work after clearing cache, bump to RC2 (#854)\\n- ✔️ [#856]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/856 ), Future proof pinging bcl.nlr.gov instead of bcl.nrel.gov\\n- ✔️ [#858]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/858 ), Merge for OpenStudio Application v1.11.0 release\\n- ➕ [#859]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/859 ), #757 - Implement a Site subtab for ground temperatures\\n- ➕ [#863]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/863 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\n- ✔️ [#864]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/864 ), Remove Qt from ModelEditor Ruby bindings\\n- ✔️ [#867]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/867 ), Remove qt5compat\\n- ✔️ [#868]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/868 ), Bump Qt from 6.5.2 to Qt 6.11.0\\n- ✔️ [#869]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/869 ), Remove shared library exports for Windows\\n- ✔️ [#870]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/870 ), Add docker build container for AI agents to use\\n- ✔️ [#874]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/874 ), Complete language support to all GUI tabs\\n- ✔️ [#881]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/881 ), Create 1.11.1 patch changing NREL to NLR\\n\\n**Total Open Issues: 134** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #851, #852, #857, #860, #866, #871, #875, #880, #882)\\n\\n**Total Open Pull Requests: 5** (#865, #873, #876, #877, #883)\\n\\n
\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450185533","name":"OpenStudioApplication-1.11.1+b19f3a988b-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450185683","name":"OpenStudioApplication-1.11.1+b19f3a988b-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/452007399","name":"OpenStudioApplication-1.11.1+b19f3a988b-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/452007642","name":"OpenStudioApplication-1.11.1+b19f3a988b-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450189855","name":"OpenStudioApplication-1.11.1+b19f3a988b-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450190057","name":"OpenStudioApplication-1.11.1+b19f3a988b-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450188405","name":"OpenStudioApplication-1.11.1+b19f3a988b-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450188548","name":"OpenStudioApplication-1.11.1+b19f3a988b-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450219569","name":"OpenStudioApplication-1.11.1+b19f3a988b-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450219810","name":"OpenStudioApplication-1.11.1+b19f3a988b-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Windows.zip"}]},{"name":"v1.11.0","tag_name":"v1.11.0","published_at":"2026-02-18T03:32:35Z","prerelease":false,"body":"The OpenStudio Application 1.11.0 release updates the application to OpenStudio 3.11.0, EnergyPlus 25.2.0. This version of the OpenStudio SDK is based on Ruby version 3.2.2. This allows OpenStudio Application 1.11.0 to be compatible with the embedded Ruby interpreter in SketchUp 2024, 2025, and 2026.\\r\\n\\r\\nThe OpenStudio Application 1.11.0 installers are hosted on the new member’s only section of the https://openstudiocoalition.org/ website. This new section provides a secure location to download installers for this and future releases. Create an account, give it a try, and let us know what you think!\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## What\'s Changed\\r\\n* Fixup empty elsif preventing Werror by [@jmarrec](https://github.com/jmarrec) in [#841](https://github.com/openstudiocoalition/OpenStudioApplication/pull/841)\\r\\n* Update to OpenStudio SDK v3.11.0-RC1 by [@jmarrec](https://github.com/jmarrec) in [#845](https://github.com/openstudiocoalition/OpenStudioApplication/pull/845)\\r\\n* Fix #836 - QtCharts is GPL only by [@jmarrec](https://github.com/jmarrec) in [#842](https://github.com/openstudiocoalition/OpenStudioApplication/pull/842)\\r\\n* Update to MacOS 15 runners by [@macumber](https://github.com/macumber) in [#846](https://github.com/openstudiocoalition/OpenStudioApplication/pull/846)\\r\\n* Update for 1.11.0-rc1 by [@macumber](https://github.com/macumber) in [#848](https://github.com/openstudiocoalition/OpenStudioApplication/pull/848)\\r\\n* Update actions to work after clearing cache, bump to RC2 (#854) by [@macumber](https://github.com/macumber) in [#855](https://github.com/openstudiocoalition/OpenStudioApplication/pull/855)\\r\\n* Merge for OpenStudio Application v1.11.0 release by [@macumber](https://github.com/macumber) in [#858](https://github.com/openstudiocoalition/OpenStudioApplication/pull/858)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.10.0...v1.11.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.10.0...v1.11.0)\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2026-02-18:**\\r\\n\\r\\n**New Issues: 40**\\r\\n\\r\\n**Closed Issues: 28**\\r\\n\\r\\n**Accepted Pull Requests: 27**\\r\\n\\r\\n**Total Open Issues: 130**\\r\\n\\r\\n**Total Open Pull Requests: 4**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 28**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\r\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\r\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\r\\n- ✔️ [#819]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/819 ), v1.10.0-rc2 Testing: Call for help from the community\\r\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\r\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\r\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\r\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\r\\n- ✔️ [#832]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/832 ), openstudio怎么使用\\r\\n- ✔️ [#833]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/833 ), OpenStudio Results Report html is sometimes Garbled\\r\\n- ✔️ [#835]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/835 ), Resources for OpenStudio installation on Linux\\r\\n- ✔️ [#836]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/836 ), OpenStudio Application uses GPLv3 only licensed QtCharts\\r\\n- ✔️ [#840]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/840 ), OpenStudioApp fails to start in Windows 11\\r\\n- ✔️ [#843]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/843 ), Deleting an object does not delete children that are OS:Table:IndependentVariable\\r\\n- ➕ [#844]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/844 ), Add build instructions\\r\\n- ✔️ [#853]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/853 ), I am trying to set \\"CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule\\" but keep getting \'incompatible ScheduleTypeLimits\' error OpenstudioSDK 3.10.0\\r\\n\\r\\n**Accepted Pull Requests: 27**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\r\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\r\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\r\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\r\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\r\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\r\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\r\\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\r\\n- ✔️ [#838]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/838 ), Fix #836 - QtCharts is GPL only\\r\\n- ✔️ [#839]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/839 ), Fixup empty elsif preventing Werror\\r\\n- ✔️ [#841]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/841 ), Fixup empty elsif preventing Werror \\r\\n- ✔️ [#842]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/842 ), Fix #836 - QtCharts is GPL only\\r\\n- ✔️ [#845]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/845 ), Update to OpenStudio SDK v3.11.0-RC1\\r\\n- ✔️ [#846]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/846 ), Update to MacOS 15 runners\\r\\n- ✔️ [#848]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/848 ), Update for 1.11.0-rc1\\r\\n- ✔️ [#849]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/849 ), Update OpenStudio Standards to 0.8.5\\r\\n- ✔️ [#854]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/854 ), Update actions to work after clearing cache, bump to RC2\\r\\n- ✔️ [#855]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/855 ), Update actions to work after clearing cache, bump to RC2 (#854)\\r\\n- ✔️ [#858]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/858 ), Merge for OpenStudio Application v1.11.0 release\\r\\n\\r\\n**Total Open Issues: 130** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #850, #851, #852, #857)\\r\\n\\r\\n**Total Open Pull Requests: 4** (#236, #470, #837, #856)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357727681","name":"OpenStudioApplication-1.11.0+856a164b97-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357727754","name":"OpenStudioApplication-1.11.0+856a164b97-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357728153","name":"OpenStudioApplication-1.11.0+856a164b97-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357728329","name":"OpenStudioApplication-1.11.0+856a164b97-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357722963","name":"OpenStudioApplication-1.11.0+856a164b97-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357723114","name":"OpenStudioApplication-1.11.0+856a164b97-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357722934","name":"OpenStudioApplication-1.11.0+856a164b97-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357723038","name":"OpenStudioApplication-1.11.0+856a164b97-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357730929","name":"OpenStudioApplication-1.11.0+856a164b97-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357731002","name":"OpenStudioApplication-1.11.0+856a164b97-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Windows.zip"}]},{"name":"v1.11.0-rc2","tag_name":"v1.11.0-rc2","published_at":"2026-02-01T04:50:52Z","prerelease":true,"body":"\\n\\n## Changelog\\n\\n\\n**Date Range: 2025-02-09** (v1.9.0) - **2026-02-01:**\\n\\n**New Issues: 39**\\n\\n**Closed Issues: 28**\\n\\n**Accepted Pull Requests: 26**\\n\\n**Total Open Issues: 129**\\n\\n**Total Open Pull Requests: 3**\\n\\n\\n
\\n\\n Click to see details\\n\\n**Closed Issues: 28**\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\n- ✔️ [#819]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/819 ), v1.10.0-rc2 Testing: Call for help from the community\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\n- ✔️ [#832]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/832 ), openstudio怎么使用\\n- ✔️ [#833]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/833 ), OpenStudio Results Report html is sometimes Garbled\\n- ✔️ [#835]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/835 ), Resources for OpenStudio installation on Linux\\n- ✔️ [#836]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/836 ), OpenStudio Application uses GPLv3 only licensed QtCharts\\n- ✔️ [#840]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/840 ), OpenStudioApp fails to start in Windows 11\\n- ✔️ [#843]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/843 ), Deleting an object does not delete children that are OS:Table:IndependentVariable\\n- ➕ [#844]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/844 ), Add build instructions\\n- ✔️ [#853]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/853 ), I am trying to set \\"CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule\\" but keep getting \'incompatible ScheduleTypeLimits\' error OpenstudioSDK 3.10.0\\n\\n**Accepted Pull Requests: 26**\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\n- ✔️ [#838]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/838 ), Fix #836 - QtCharts is GPL only\\n- ✔️ [#839]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/839 ), Fixup empty elsif preventing Werror\\n- ✔️ [#841]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/841 ), Fixup empty elsif preventing Werror \\n- ✔️ [#842]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/842 ), Fix #836 - QtCharts is GPL only\\n- ✔️ [#845]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/845 ), Update to OpenStudio SDK v3.11.0-RC1\\n- ✔️ [#846]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/846 ), Update to MacOS 15 runners\\n- ✔️ [#848]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/848 ), Update for 1.11.0-rc1\\n- ✔️ [#849]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/849 ), Update OpenStudio Standards to 0.8.5\\n- ✔️ [#854]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/854 ), Update actions to work after clearing cache, bump to RC2\\n- ✔️ [#855]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/855 ), Update actions to work after clearing cache, bump to RC2 (#854)\\n\\n**Total Open Issues: 129** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #850, #851, #852)\\n\\n**Total Open Pull Requests: 3** (#236, #470, #837)\\n\\n
\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348965092","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348965146","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348966520","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348966576","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348962781","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348962902","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348963243","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348963333","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348968468","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348968535","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Windows.zip"}]},{"name":"v1.11.0-rc1","tag_name":"v1.11.0-rc1","published_at":"2026-01-19T08:05:58Z","prerelease":true,"body":"## What\'s Changed\\r\\n\\r\\n* Fixup empty elsif preventing Werror by [@jmarrec](https://github.com/jmarrec) in [#841](https://github.com/openstudiocoalition/OpenStudioApplication/pull/841)\\r\\n* Update to OpenStudio SDK v3.11.0-RC1 by [@jmarrec](https://github.com/jmarrec) in [#845](https://github.com/openstudiocoalition/OpenStudioApplication/pull/845)\\r\\n* Fix #836 - QtCharts is GPL only by [@jmarrec](https://github.com/jmarrec) in [#842](https://github.com/openstudiocoalition/OpenStudioApplication/pull/842)\\r\\n* Update to MacOS 15 runners by [@macumber](https://github.com/macumber) in [#846](https://github.com/openstudiocoalition/OpenStudioApplication/pull/846)\\r\\n* Update for 1.11.0-rc1 by [@macumber](https://github.com/macumber) in [#848](https://github.com/openstudiocoalition/OpenStudioApplication/pull/848)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.10.0...v1.11.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.10.0...v1.11.0)-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2026-01-19:**\\r\\n\\r\\n**New Issues: 35**\\r\\n\\r\\n**Closed Issues: 27**\\r\\n\\r\\n**Accepted Pull Requests: 24**\\r\\n\\r\\n**Total Open Issues: 126**\\r\\n\\r\\n**Total Open Pull Requests: 3**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 27**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\r\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\r\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\r\\n- ✔️ [#819]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/819 ), v1.10.0-rc2 Testing: Call for help from the community\\r\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\r\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\r\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\r\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\r\\n- ✔️ [#832]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/832 ), openstudio怎么使用\\r\\n- ✔️ [#833]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/833 ), OpenStudio Results Report html is sometimes Garbled\\r\\n- ✔️ [#835]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/835 ), Resources for OpenStudio installation on Linux\\r\\n- ✔️ [#836]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/836 ), OpenStudio Application uses GPLv3 only licensed QtCharts\\r\\n- ✔️ [#840]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/840 ), OpenStudioApp fails to start in Windows 11\\r\\n- ✔️ [#843]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/843 ), Deleting an object does not delete children that are OS:Table:IndependentVariable\\r\\n- ➕ [#844]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/844 ), Add build instructions\\r\\n\\r\\n**Accepted Pull Requests: 24**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\r\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\r\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\r\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\r\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\r\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\r\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\r\\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\r\\n- ✔️ [#838]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/838 ), Fix #836 - QtCharts is GPL only\\r\\n- ✔️ [#839]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/839 ), Fixup empty elsif preventing Werror\\r\\n- ✔️ [#841]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/841 ), Fixup empty elsif preventing Werror \\r\\n- ✔️ [#842]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/842 ), Fix #836 - QtCharts is GPL only\\r\\n- ✔️ [#845]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/845 ), Update to OpenStudio SDK v3.11.0-RC1\\r\\n- ✔️ [#846]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/846 ), Update to MacOS 15 runners\\r\\n- ✔️ [#848]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/848 ), Update for 1.11.0-rc1\\r\\n- ✔️ [#849]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/849 ), Update OpenStudio Standards to 0.8.5\\r\\n\\r\\n**Total Open Issues: 126** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847)\\r\\n\\r\\n**Total Open Pull Requests: 3** (#236, #470, #837)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342656044","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342656105","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342657181","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342657267","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342651517","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342651658","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342651380","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342651479","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342859479","name":"Unsigned_OpenStudioApplication-1.11.0-rc1+4cbabd9925-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/Unsigned_OpenStudioApplication-1.11.0-rc1%2B4cbabd9925-Windows.exe"}]},{"name":"v1.10.0","tag_name":"v1.10.0","published_at":"2025-07-26T17:39:32Z","prerelease":false,"body":"The OpenStudio Application 1.10.0 release updates the application to OpenStudio 3.10.0, EnergyPlus 25.1.0. This version of the OpenStudio SDK is based on Ruby version 3.2.2. This allows OpenStudio Application 1.10.0 to be compatible with the embedded Ruby interpreter in SketchUp 2024 and 2025.\\r\\n\\r\\n**The OpenStudio Application 1.10.0 installers are hosted on the new member’s only section of the [https://openstudiocoalition.org/](https://openstudiocoalition.org/) website**. This new section provides a secure location to download installers for this and future releases. Create an account, give it a try, and let us know what you think!\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## What\'s Changed\\r\\n* Fix #796 - Add ScheduleFile to MainRightColumnController by [@jmarrec](https://github.com/jmarrec) in [#797](https://github.com/openstudiocoalition/OpenStudioApplication/pull/797)\\r\\n* Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes by [@jmarrec](https://github.com/jmarrec) in [#809](https://github.com/openstudiocoalition/OpenStudioApplication/pull/809)\\r\\n* Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition by [@jmarrec](https://github.com/jmarrec) in [#793](https://github.com/openstudiocoalition/OpenStudioApplication/pull/793)\\r\\n* Issue #166 - Sort measures alphabetically in GUI by [@antonszilasi](https://github.com/antonszilasi) in [#795](https://github.com/openstudiocoalition/OpenStudioApplication/pull/795)\\r\\n* Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days by [@antonszilasi](https://github.com/antonszilasi) in [#791](https://github.com/openstudiocoalition/OpenStudioApplication/pull/791)\\r\\n* Update version to 1.10.0-rc1 by [@macumber](https://github.com/macumber) in [#813](https://github.com/openstudiocoalition/OpenStudioApplication/pull/813)\\r\\n* PR to create 1.10.0-RC1 by [@macumber](https://github.com/macumber) in [#814](https://github.com/openstudiocoalition/OpenStudioApplication/pull/814)\\r\\n* #799 - Add Support for AlmaLinux9 by [@jmarrec](https://github.com/jmarrec) in [#822](https://github.com/openstudiocoalition/OpenStudioApplication/pull/822)\\r\\n* Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App by [@jmarrec](https://github.com/jmarrec) in [#820](https://github.com/openstudiocoalition/OpenStudioApplication/pull/820)\\r\\n* Fix #815 - Add OutputControl:ResilienceSummaries to OS App by [@jmarrec](https://github.com/jmarrec) in [#821](https://github.com/openstudiocoalition/OpenStudioApplication/pull/821)\\r\\n* Revert changes to BuildingComponentDialogCentralWidget from PR #795 by [@macumber](https://github.com/macumber) in [#824](https://github.com/openstudiocoalition/OpenStudioApplication/pull/824)\\r\\n* #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab by [@jmarrec](https://github.com/jmarrec) in [#826](https://github.com/openstudiocoalition/OpenStudioApplication/pull/826)\\r\\n* Merge for RC2 by [@macumber](https://github.com/macumber) in [#827](https://github.com/openstudiocoalition/OpenStudioApplication/pull/827)\\r\\n* Use noexcept versions of filesystem by [@macumber](https://github.com/macumber) in [#829](https://github.com/openstudiocoalition/OpenStudioApplication/pull/829)\\r\\n* Merge for 1.10.0 Release by [@macumber](https://github.com/macumber) in [#830](https://github.com/openstudiocoalition/OpenStudioApplication/pull/830)\\r\\n\\r\\n## New Contributors\\r\\n* [@antonszilasi](https://github.com/antonszilasi) made their first contribution in [#795](https://github.com/openstudiocoalition/OpenStudioApplication/pull/795)\\r\\n\\r\\n**Full Changelog**: [v1.9.0...v1.10.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.9.0...v1.10.0)\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2025-07-26:**\\r\\n\\r\\n**New Issues: 27**\\r\\n\\r\\n**Closed Issues: 19**\\r\\n\\r\\n**Accepted Pull Requests: 16**\\r\\n\\r\\n**Total Open Issues: 126**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 19**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\r\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\r\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\r\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\r\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\r\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\r\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\r\\n\\r\\n**Accepted Pull Requests: 16**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\r\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\r\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\r\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\r\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\r\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\r\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\r\\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\r\\n\\r\\n**Total Open Issues: 126** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #819, #832)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276618840","name":"OpenStudioApplication-1.10.0+14257a978b-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276619226","name":"OpenStudioApplication-1.10.0+14257a978b-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276622321","name":"OpenStudioApplication-1.10.0+14257a978b-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276622381","name":"OpenStudioApplication-1.10.0+14257a978b-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276617352","name":"OpenStudioApplication-1.10.0+14257a978b-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276617378","name":"OpenStudioApplication-1.10.0+14257a978b-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276617395","name":"OpenStudioApplication-1.10.0+14257a978b-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276617422","name":"OpenStudioApplication-1.10.0+14257a978b-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276619465","name":"OpenStudioApplication-1.10.0+14257a978b-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276619489","name":"OpenStudioApplication-1.10.0+14257a978b-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Windows.zip"}]},{"name":"v1.10.0-rc2","tag_name":"v1.10.0-rc2","published_at":"2025-07-19T21:36:26Z","prerelease":true,"body":"Pre-release RC2 for 1.10.0 release\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2025-07-19:**\\r\\n\\r\\n**New Issues: 24**\\r\\n\\r\\n**Closed Issues: 16**\\r\\n\\r\\n**Accepted Pull Requests: 14**\\r\\n\\r\\n**Total Open Issues: 126**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 16**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\r\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\r\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\r\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\r\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Terrain field is missing from Site tab\\r\\n\\r\\n**Accepted Pull Requests: 14**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\r\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\r\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\r\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\r\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\r\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\r\\n\\r\\n**Total Open Issues: 126** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #806, #810, #811, #817, #818, #819)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274565984","name":"OpenStudioApplication-1.10.0-rc2+4e212b2f46-AlmaLinux9.6.rpm","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2B4e212b2f46-AlmaLinux9.6.rpm"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274566140","name":"OpenStudioApplication-1.10.0-rc2+4e212b2f46-AlmaLinux9.6.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2B4e212b2f46-AlmaLinux9.6.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274461618","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274462128","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274461616","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274461678","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274458421","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274458471","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274458742","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274458821","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274463153","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274463176","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Windows.zip"}]},{"name":"v1.10.0-rc1","tag_name":"v1.10.0-rc1","published_at":"2025-07-07T07:32:43Z","prerelease":true,"body":"Pre-release RC1 for 1.10.0 release\\r\\n\\r\\n## What\'s Changed\\r\\n* Fix #796 - Add ScheduleFile to MainRightColumnController by [@jmarrec](https://github.com/jmarrec) in [#797](https://github.com/openstudiocoalition/OpenStudioApplication/pull/797)\\r\\n* Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes by [@jmarrec](https://github.com/jmarrec) in [#809](https://github.com/openstudiocoalition/OpenStudioApplication/pull/809)\\r\\n* Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition by [@jmarrec](https://github.com/jmarrec) in [#793](https://github.com/openstudiocoalition/OpenStudioApplication/pull/793)\\r\\n* Issue #166 - Sort measures alphabetically in GUI by [@antonszilasi](https://github.com/antonszilasi) in [#795](https://github.com/openstudiocoalition/OpenStudioApplication/pull/795)\\r\\n* Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days by [@antonszilasi](https://github.com/antonszilasi) in [#791](https://github.com/openstudiocoalition/OpenStudioApplication/pull/791)\\r\\n* Update version to 1.10.0-rc1 by [@macumber](https://github.com/macumber) in [#813](https://github.com/openstudiocoalition/OpenStudioApplication/pull/813)\\r\\n* PR to create 1.10.0-RC1 by [@macumber](https://github.com/macumber) in [#814](https://github.com/openstudiocoalition/OpenStudioApplication/pull/814)\\r\\n\\r\\n## New Contributors\\r\\n* [@antonszilasi](https://github.com/antonszilasi) made their first contribution in [#795](https://github.com/openstudiocoalition/OpenStudioApplication/pull/795)\\r\\n\\r\\n**Full Changelog**: [v1.9.0...v1.10.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.9.0...v1.10.0)-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2025-07-07:**\\r\\n\\r\\n**New Issues: 17**\\r\\n\\r\\n**Closed Issues: 10**\\r\\n\\r\\n**Accepted Pull Requests: 8**\\r\\n\\r\\n**Total Open Issues: 125**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 10**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ➕ [#166]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/166 ), Sort measures alphabetically in GUI\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n\\r\\n**Accepted Pull Requests: 8**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n\\r\\n**Total Open Issues: 125** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #742, #751, #752, #757, #760, #770, #776, #782, #784, #786, #787, #794, #798, #799, #801, #802, #803, #805, #806, #810, #811)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270741574","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-AlmaLinux9.6.rpm","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-AlmaLinux9.6.rpm"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270741621","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-AlmaLinux9.6.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-AlmaLinux9.6.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270628491","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270628739","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270627186","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270627260","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270625381","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270625429","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270625722","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270625790","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270628705","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270628750","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Windows.zip"}]},{"name":"v1.9.0","tag_name":"v1.9.0","published_at":"2025-02-09T05:18:31Z","prerelease":false,"body":"The OpenStudio Application 1.9.0 release updates the application to OpenStudio 3.9.0, EnergyPlus 24.2.0. This version of the OpenStudio SDK is based on Ruby version 3.2.2. This allows OpenStudio Application 1.9.0 to be compatible with the embedded Ruby interpreter in SketchUp 2024 and 2025.\\r\\n\\r\\n**The OpenStudio Application 1.9.0 installers are hosted on the new member’s only section of the [https://openstudiocoalition.org/](https://openstudiocoalition.org/) website**. This new section provides a secure location to download installers for this and future releases. Create an account, give it a try, and let us know what you think!\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). \\r\\n\\r\\nThe OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## What\'s Changed\\r\\n* PR to master for 1.8.0 by [@macumber](https://github.com/macumber) in [#755](https://github.com/openstudiocoalition/OpenStudioApplication/pull/755)\\r\\n* Update README.md by [@jmarrec](https://github.com/jmarrec) in [#756](https://github.com/openstudiocoalition/OpenStudioApplication/pull/756)\\r\\n* Fix #758 - Properly encode path to QUrl when trying to display results by [@jmarrec](https://github.com/jmarrec) in [#759](https://github.com/openstudiocoalition/OpenStudioApplication/pull/759)\\r\\n* Fix #763 - Adjust deps for debian bookworm by [@jmarrec](https://github.com/jmarrec) in [#765](https://github.com/openstudiocoalition/OpenStudioApplication/pull/765)\\r\\n* Fix #262 #263 - Handle Path Arguments (QFileDialog) by [@jmarrec](https://github.com/jmarrec) in [#761](https://github.com/openstudiocoalition/OpenStudioApplication/pull/761)\\r\\n* Update installer qss script by [@macumber](https://github.com/macumber) in [#775](https://github.com/openstudiocoalition/OpenStudioApplication/pull/775)\\r\\n* Update to OS 3.9.0 by [@macumber](https://github.com/macumber) in [#771](https://github.com/openstudiocoalition/OpenStudioApplication/pull/771)\\r\\n* Show empty required object-list fields with warning icon, remove unused IGdefaultRemoved slot by [@macumber](https://github.com/macumber) in [#780](https://github.com/openstudiocoalition/OpenStudioApplication/pull/780)\\r\\n* Write settings on change, fixes #766 by [@macumber](https://github.com/macumber) in [#781](https://github.com/openstudiocoalition/OpenStudioApplication/pull/781)\\r\\n* PR to create 1.9.0-RC1 by [@macumber](https://github.com/macumber) in [#783](https://github.com/openstudiocoalition/OpenStudioApplication/pull/783)\\r\\n* Fixes #785 by selecting the first idd object type by [@macumber](https://github.com/macumber) in [#788](https://github.com/openstudiocoalition/OpenStudioApplication/pull/788)\\r\\n* Remove pre-release by [@macumber](https://github.com/macumber) in [#789](https://github.com/openstudiocoalition/OpenStudioApplication/pull/789)\\r\\n* Merge for 1.9.0 release by [@macumber](https://github.com/macumber) in [#790](https://github.com/openstudiocoalition/OpenStudioApplication/pull/790)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.8.0...v1.9.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0...v1.9.0)\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-09-18** (v1.8.0) - **2025-02-09:**\\r\\n\\r\\n**New Issues: 22**\\r\\n\\r\\n**Closed Issues: 28**\\r\\n\\r\\n**Accepted Pull Requests: 15**\\r\\n\\r\\n**Total Open Issues: 118**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 28**\\r\\n- ➕ [#42]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/42 ), Consider linking to FloorSpaceJS instead of embedding\\r\\n- ✔️ [#116]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/116 ), Space Types library item collapses after dragging in Space Type from library\\r\\n- ✔️ [#213]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/213 ), A bug related to OS:Schedule:File and OS:External:File with OpenStudio App\\r\\n- ➕ [#262]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/262 ), Add file system browse control for measure path arguments\\r\\n- ✔️ [#263]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/263 ), Cannot enter path arguments in apply measure now\\r\\n- ➕ [#271]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/271 ), Allow compact schedules editing in the schedules graphical editor\\r\\n- ✔️ [#272]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/272 ), OS:SpaceInfiltration:DesignFlowRate edit panel displays wrong units\\r\\n- ➕ [#279]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/279 ), Package Reporting Measure with OS App\\r\\n- ✔️ [#280]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/280 ), Generated files in Apply Measure Now\\r\\n- ✔️ [#322]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/322 ), Delete the coil unit in the air loop\\r\\n- ➕ [#417]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/417 ), Allow access to AdditionalProperties\\r\\n- ✔️ [#493]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/493 ), Geometry editor is missing the ruler when grid view is on\\r\\n- ➕ [#668]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/668 ), Upgrade from Conan v1 to Conan v2\\r\\n- ✔️ [#743]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/743 ), v1.8.0-rc3 Testing: Call for help from the community\\r\\n- ✔️ [#758]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/758 ), Results tab shows Your file couldn’t be accessed\\r\\n- ✔️ [#762]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/762 ), The problem of gathering Openstudio reports\\r\\n- ➕ [#763]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/763 ), Support Debian\\r\\n- ✔️ [#764]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/764 ), Version 2.9.1 not working for some Intel chips\\r\\n- ✔️ [#766]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/766 ), Units selection reverts when opening or reverting\\r\\n- ✔️ [#767]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/767 ), Python Measures break after opening OS 1.4.0\\r\\n- ✔️ [#768]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/768 ), OS:Rendering:Color objects added every time the geometry tab is clicked and the model is saved again\\r\\n- ➕ [#769]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/769 ), HVAC Schedule Flaw\\r\\n- ➕ [#772]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/772 ), Providing Supply and Demand node in the OpenStudio Application for WaterHeater:Mixed\\r\\n- ➕ [#773]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/773 ), WaterHeater:HeatPump Field !- Tank Element Control Logic is not exposed\\r\\n- ✔️ [#777]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/777 ), Add back capability to add AirLoopHVAC:ReturnPlenum\\r\\n- ✔️ [#778]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/778 ), Unable to assign zone name to Refrigeration:Case\\r\\n- ➕ [#779]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/779 ), SolarCollector:FlatPlate:Water volumetric water flow rate specified in CFM\\r\\n- ✔️ [#785]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/785 ), Crash on empty model when no subcategory is selected (eg Materials) and \\"Add\\" is clicked\\r\\n\\r\\n**Accepted Pull Requests: 15**\\r\\n- ✔️ [#754]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/754 ), Add an Ubuntu-2404 runner\\r\\n- ✔️ [#755]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/755 ), PR to master for 1.8.0\\r\\n- ✔️ [#756]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/756 ), Update README.md\\r\\n- ✔️ [#759]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/759 ), Fix #758 - Properly encode path to QUrl when trying to display results\\r\\n- ➕ [#761]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/761 ), Fix #262 #263 - Handle Path Arguments (QFileDialog)\\r\\n- ✔️ [#765]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/765 ), Fix #763 - Adjust deps for debian bookworm\\r\\n- ✔️ [#771]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/771 ), Update to OS 3.9.0\\r\\n- ✔️ [#774]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/774 ), Update qss script\\r\\n- ✔️ [#775]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/775 ), Update installer qss script\\r\\n- ✔️ [#780]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/780 ), Show empty required object-list fields with warning icon, remove unused IGdefaultRemoved slot\\r\\n- ✔️ [#781]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/781 ), Write settings on change, fixes #766\\r\\n- ✔️ [#783]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/783 ), PR to create 1.9.0-RC1\\r\\n- ✔️ [#788]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/788 ), Fixes #785 by selecting the first idd object type \\r\\n- ✔️ [#789]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/789 ), Remove pre-release\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n\\r\\n**Total Open Issues: 118** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #485, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #742, #751, #752, #757, #760, #770, #776, #782, #784, #786, #787)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553855","name":"OpenStudioApplication-1.9.0+d1f890902a-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553963","name":"OpenStudioApplication-1.9.0+d1f890902a-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227555678","name":"OpenStudioApplication-1.9.0+d1f890902a-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227555720","name":"OpenStudioApplication-1.9.0+d1f890902a-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553241","name":"OpenStudioApplication-1.9.0+d1f890902a-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553261","name":"OpenStudioApplication-1.9.0+d1f890902a-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553265","name":"OpenStudioApplication-1.9.0+d1f890902a-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553313","name":"OpenStudioApplication-1.9.0+d1f890902a-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227554849","name":"OpenStudioApplication-1.9.0+d1f890902a-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227554872","name":"OpenStudioApplication-1.9.0+d1f890902a-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Windows.zip"}]},{"name":"v1.9.0-rc1","tag_name":"v1.9.0-rc1","published_at":"2025-01-12T23:09:50Z","prerelease":true,"body":"Pre-release RC1 for 1.9.0 release\\r\\n\\r\\n## What\'s Changed\\r\\n\\r\\n* PR to master for 1.8.0 by [@macumber](https://github.com/macumber) in [#755](https://github.com/openstudiocoalition/OpenStudioApplication/pull/755)\\r\\n* Update README.md by [@jmarrec](https://github.com/jmarrec) in [#756](https://github.com/openstudiocoalition/OpenStudioApplication/pull/756)\\r\\n* Fix #758 - Properly encode path to QUrl when trying to display results by [@jmarrec](https://github.com/jmarrec) in [#759](https://github.com/openstudiocoalition/OpenStudioApplication/pull/759)\\r\\n* Fix #763 - Adjust deps for debian bookworm by [@jmarrec](https://github.com/jmarrec) in [#765](https://github.com/openstudiocoalition/OpenStudioApplication/pull/765)\\r\\n* Fix #262 #263 - Handle Path Arguments (QFileDialog) by [@jmarrec](https://github.com/jmarrec) in [#761](https://github.com/openstudiocoalition/OpenStudioApplication/pull/761)\\r\\n* Update installer qss script by [@macumber](https://github.com/macumber) in [#775](https://github.com/openstudiocoalition/OpenStudioApplication/pull/775)\\r\\n* Update to OS 3.9.0 by [@macumber](https://github.com/macumber) in [#771](https://github.com/openstudiocoalition/OpenStudioApplication/pull/771)\\r\\n* Show empty required object-list fields with warning icon, remove unused IGdefaultRemoved slot by [@macumber](https://github.com/macumber) in [#780](https://github.com/openstudiocoalition/OpenStudioApplication/pull/780)\\r\\n* Write settings on change, fixes #766 by [@macumber](https://github.com/macumber) in [#781](https://github.com/openstudiocoalition/OpenStudioApplication/pull/781)\\r\\n* PR to create 1.9.0-RC1 by [@macumber](https://github.com/macumber) in [#783](https://github.com/openstudiocoalition/OpenStudioApplication/pull/783)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.8.0...v1.9.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0...v1.9.0)-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-09-18** (v1.8.0) - **2025-01-12:**\\r\\n\\r\\n**New Issues: 18**\\r\\n\\r\\n**Closed Issues: 27**\\r\\n\\r\\n**Accepted Pull Requests: 12**\\r\\n\\r\\n**Total Open Issues: 115**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 27**\\r\\n- ➕ [#42]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/42 ), Consider linking to FloorSpaceJS instead of embedding\\r\\n- ✔️ [#116]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/116 ), Space Types library item collapses after dragging in Space Type from library\\r\\n- ✔️ [#213]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/213 ), A bug related to OS:Schedule:File and OS:External:File with OpenStudio App\\r\\n- ➕ [#262]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/262 ), Add file system browse control for measure path arguments\\r\\n- ✔️ [#263]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/263 ), Cannot enter path arguments in apply measure now\\r\\n- ➕ [#271]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/271 ), Allow compact schedules editing in the schedules graphical editor\\r\\n- ✔️ [#272]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/272 ), OS:SpaceInfiltration:DesignFlowRate edit panel displays wrong units\\r\\n- ➕ [#279]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/279 ), Package Reporting Measure with OS App\\r\\n- ✔️ [#280]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/280 ), Generated files in Apply Measure Now\\r\\n- ✔️ [#322]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/322 ), Delete the coil unit in the air loop\\r\\n- ➕ [#417]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/417 ), Allow access to AdditionalProperties\\r\\n- ✔️ [#493]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/493 ), Geometry editor is missing the ruler when grid view is on\\r\\n- ➕ [#668]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/668 ), Upgrade from Conan v1 to Conan v2\\r\\n- ✔️ [#743]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/743 ), v1.8.0-rc3 Testing: Call for help from the community\\r\\n- ✔️ [#758]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/758 ), Results tab shows Your file couldn’t be accessed\\r\\n- ✔️ [#762]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/762 ), The problem of gathering Openstudio reports\\r\\n- ➕ [#763]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/763 ), Support Debian\\r\\n- ✔️ [#764]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/764 ), Version 2.9.1 not working for some Intel chips\\r\\n- ✔️ [#766]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/766 ), Units selection reverts when opening or reverting\\r\\n- ✔️ [#767]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/767 ), Python Measures break after opening OS 1.4.0\\r\\n- ✔️ [#768]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/768 ), OS:Rendering:Color objects added every time the geometry tab is clicked and the model is saved again\\r\\n- ➕ [#769]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/769 ), HVAC Schedule Flaw\\r\\n- ➕ [#772]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/772 ), Providing Supply and Demand node in the OpenStudio Application for WaterHeater:Mixed\\r\\n- ➕ [#773]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/773 ), WaterHeater:HeatPump Field !- Tank Element Control Logic is not exposed\\r\\n- ✔️ [#777]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/777 ), Add back capability to add AirLoopHVAC:ReturnPlenum\\r\\n- ✔️ [#778]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/778 ), Unable to assign zone name to Refrigeration:Case\\r\\n- ➕ [#779]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/779 ), SolarCollector:FlatPlate:Water volumetric water flow rate specified in CFM\\r\\n\\r\\n**Accepted Pull Requests: 12**\\r\\n- ✔️ [#754]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/754 ), Add an Ubuntu-2404 runner\\r\\n- ✔️ [#755]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/755 ), PR to master for 1.8.0\\r\\n- ✔️ [#756]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/756 ), Update README.md\\r\\n- ✔️ [#759]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/759 ), Fix #758 - Properly encode path to QUrl when trying to display results\\r\\n- ➕ [#761]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/761 ), Fix #262 #263 - Handle Path Arguments (QFileDialog)\\r\\n- ✔️ [#765]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/765 ), Fix #763 - Adjust deps for debian bookworm\\r\\n- ✔️ [#771]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/771 ), Update to OS 3.9.0\\r\\n- ✔️ [#774]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/774 ), Update qss script\\r\\n- ✔️ [#775]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/775 ), Update installer qss script\\r\\n- ✔️ [#780]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/780 ), Show empty required object-list fields with warning icon, remove unused IGdefaultRemoved slot\\r\\n- ✔️ [#781]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/781 ), Write settings on change, fixes #766\\r\\n- ✔️ [#783]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/783 ), PR to create 1.9.0-RC1\\r\\n\\r\\n**Total Open Issues: 115** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #485, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #742, #751, #752, #757, #760, #770, #776, #782)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219928134","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219929115","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219933303","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219933312","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219926214","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219926241","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219926247","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219926284","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219940673","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219940720","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Windows.zip"}]},{"name":"v1.8.0","tag_name":"v1.8.0","published_at":"2024-09-20T23:44:26Z","prerelease":false,"body":"The OpenStudio Application 1.8.0 release updates the application to OpenStudio 3.8.0, EnergyPlus 24.1.0. This version of the OpenStudio SDK updates the version of the embedded Ruby interpreter from 2.7.2 to 3.2.2. This allows OpenStudio Application 1.8.0 to be compatible with the embedded Ruby interpreter in SketchUp 2024.\\r\\n\\r\\nThe OpenStudio SDK update to 3.8.0 was not backwards compatible with many measures on the BCL. This release updates the OpenStudio Application to be compatible with the newest released versions of these measures.\\r\\n\\r\\nThe OpenStudio Application 1.8.0 installers are hosted on GitHub as well as a new member’s only section of the https://openstudiocoalition.org/ website. This new section will provide a secure location to download installers in future releases. Create an account, give it a try, and let us know what you think!\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## What\'s Changed\\r\\n* Conan v2 + OS SDK 3.8.0-rc2 by [@jmarrec](https://github.com/jmarrec) in [#712](https://github.com/openstudiocoalition/OpenStudioApplication/pull/712)\\r\\n* #672 - More BCLSearchResults info (pending a PR) by [@jmarrec](https://github.com/jmarrec) in [#698](https://github.com/openstudiocoalition/OpenStudioApplication/pull/698)\\r\\n* Updates for SketchUp 2024 by [@macumber](https://github.com/macumber) in [#714](https://github.com/openstudiocoalition/OpenStudioApplication/pull/714)\\r\\n* Update floorspace by [@macumber](https://github.com/macumber) in [#718](https://github.com/openstudiocoalition/OpenStudioApplication/pull/718)\\r\\n* Implement support for further grouping by category in Library (HVAC, Schedules, etc) by [@manuvarkey](https://github.com/manuvarkey) in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n* #612 - Display Name by [@jmarrec](https://github.com/jmarrec) in [#715](https://github.com/openstudiocoalition/OpenStudioApplication/pull/715)\\r\\n* Fix issues with MeasureManager by [@macumber](https://github.com/macumber) in [#720](https://github.com/openstudiocoalition/OpenStudioApplication/pull/720)\\r\\n* Update scripts to Ruby 3.2 by [@macumber](https://github.com/macumber) in [#724](https://github.com/openstudiocoalition/OpenStudioApplication/pull/724)\\r\\n* Configure compressed ext for different builds by [@macumber](https://github.com/macumber) in [#725](https://github.com/openstudiocoalition/OpenStudioApplication/pull/725)\\r\\n* Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone by [@jmarrec](https://github.com/jmarrec) in [#729](https://github.com/openstudiocoalition/OpenStudioApplication/pull/729)\\r\\n* Codesign on macOS by [@jmarrec](https://github.com/jmarrec) in [#727](https://github.com/openstudiocoalition/OpenStudioApplication/pull/727)\\r\\n* Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile by [@jmarrec](https://github.com/jmarrec) in [#731](https://github.com/openstudiocoalition/OpenStudioApplication/pull/731)\\r\\n* Fix a race condition during CPack packaging when creating symlink on Apple by [@jmarrec](https://github.com/jmarrec) in [#732](https://github.com/openstudiocoalition/OpenStudioApplication/pull/732)\\r\\n* Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop by [@jmarrec](https://github.com/jmarrec) in [#730](https://github.com/openstudiocoalition/OpenStudioApplication/pull/730)\\r\\n* Hotfix #730 - QtCharts not needed by modeleditor by [@jmarrec](https://github.com/jmarrec) in [#734](https://github.com/openstudiocoalition/OpenStudioApplication/pull/734)\\r\\n* Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation by [@jmarrec](https://github.com/jmarrec) in [#733](https://github.com/openstudiocoalition/OpenStudioApplication/pull/733)\\r\\n* Fix #736 #738 - resources install by [@macumber](https://github.com/macumber) in [#737](https://github.com/openstudiocoalition/OpenStudioApplication/pull/737)\\r\\n* Fix #739 - Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing by [@jmarrec](https://github.com/jmarrec) in [#740](https://github.com/openstudiocoalition/OpenStudioApplication/pull/740)\\r\\n* Fix #633 - Apply short style copyright and hopefully for the last time by [@jmarrec](https://github.com/jmarrec) in [#741](https://github.com/openstudiocoalition/OpenStudioApplication/pull/741)\\r\\n* Fix #744 Fix #745 - fixup icon and Can\'t see QtWebEngine pages on macOS by [@jmarrec](https://github.com/jmarrec) in [#746](https://github.com/openstudiocoalition/OpenStudioApplication/pull/746)\\r\\n* Fix #747 - crash shoebox by [@jmarrec](https://github.com/jmarrec) in [#748](https://github.com/openstudiocoalition/OpenStudioApplication/pull/748)\\r\\n* Improve installer by [@jmarrec](https://github.com/jmarrec) in [#749](https://github.com/openstudiocoalition/OpenStudioApplication/pull/749)\\r\\n* Add an Ubuntu-2404 runner by [@jmarrec](https://github.com/jmarrec) in [#754](https://github.com/openstudiocoalition/OpenStudioApplication/pull/754)\\r\\n\\r\\n## New Contributors\\r\\n* [@manuvarkey](https://github.com/manuvarkey) made their first contribution in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n\\r\\n**Full Changelog**: [v1.7.2...v1.8.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.2...v1.8.0)\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-09-20:**\\r\\n\\r\\n**New Issues: 41**\\r\\n\\r\\n**Closed Issues: 52**\\r\\n\\r\\n**Accepted Pull Requests: 37**\\r\\n\\r\\n**Total Open Issues: 124**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 52**\\r\\n- ➕ [#112]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/112 ), Refrigeration Spreadsheet GUI: drop-down lists\\r\\n- ✔️ [#115]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/115 ), Delete a measure, re-add it from library: no prompt and duplicated folders\\r\\n- ➕ [#123]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/123 ), Organize HVAC library by category\\r\\n- ✔️ [#142]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/142 ), Double click to open does not work on Mac\\r\\n- ✔️ [#143]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/143 ), Start OpenStudio button does not work in sketchup if osm is on network drive\\r\\n- ➕ [#162]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/162 ), Allow visualization of Schedule:Compact and Schedule:Constant on Schedules tab in OS App\\r\\n- ➕ [#175]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/175 ), Add ability for OS app to look for updated BCL components and measures.\\r\\n- ✔️ [#179]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/179 ), CMakeLists.txt incorrectly assumes that any LSB release ID that\'s not 18.04 must be 16.04\\r\\n- ✔️ [#217]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/217 ), App crashes when multiplying (cloning) Dual Duct AirLoopHVAC\\r\\n- ➕ [#475]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/475 ), Add \\"Launch OS App Now\\" and \\"Install Shortcuts\\" checkboxes to installer\\r\\n- ✔️ [#512]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/512 ), Fix TGZ installer on Mac\\r\\n- ➕ [#557]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/557 ), Upgrade Ruby to 3.1\\r\\n- ✔️ [#561]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/561 ), Subsurfaces across thermal zones do not have outside boundary condition object assigned\\r\\n- ➕ [#612]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/612 ), Show displayname in grid view\\r\\n- ✔️ [#620]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/620 ), `sync project measures with library` does not work as before\\r\\n- ➕ [#633]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/633 ), Simplify license docstring in files\\r\\n- ✔️ [#656]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/656 ), Application crash when using Python measures without Python Bindings component installed\\r\\n- ➕ [#669]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/669 ), v1.7.0-rc2 Testing: Call for help from the community\\r\\n- ➕ [#670]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/670 ), Show Python/Ruby measure badge on measures in the workflow\\r\\n- ➕ [#671]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/671 ), Mark Python measures as in error if using classic CLI\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ➕ [#706]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/706 ), v1.7.1-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n- ➕ [#708]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/708 ), Support more SetpointManager types on HVACSystemViews\\r\\n- ✔️ [#716]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/716 ), Disable classic CLI option if not working\\r\\n- ✔️ [#717]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/717 ), \\"Do you want to reset Measure Manager settings?\\" does not work\\r\\n- ✔️ [#719]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/719 ), Windows build no longer works on Windows2022 github runner\\r\\n- ➕ [#721]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/721 ), Add space infiltration design flow rate schedule selection at space level\\r\\n- ✔️ [#722]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/722 ), OpenStudio Results Measure is broken\\r\\n- ✔️ [#726]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/726 ), OS X 14.5 1.71 Crash on attempt to open gbXML\\r\\n- ✔️ [#728]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/728 ), Adding ERV Crashes OpenStudioApplication\\r\\n- ✔️ [#735]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/735 ), v1.8.0-rc2 Testing: Call for help from the community \\r\\n- ✔️ [#736]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/736 ), [v1.8.0-rc2] Bundled openstudio_results measure is at wrong location\\r\\n- ✔️ [#738]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/738 ), [v1.8.0-rc2] Cannot launch, Qt6OpenGLWidgets.dll was not found on Windows\\r\\n- ➕ [#739]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/739 ), [v1.8.0-rc2] Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing.\\r\\n- ✔️ [#744]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/744 ), [v1.8.0-rc3] os.icns is outdated\\r\\n- ✔️ [#745]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/745 ), [v1.8.0-rc3] Can\'t see QtWebEngine pages on macOS\\r\\n- ✔️ [#747]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/747 ), [v1.8.0-rc3] Opening Shoebox Model several times in a row produces a crash\\r\\n- ✔️ [#750]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/750 ), v1.8.0 does not appear to be compatible with BCL measure\\r\\n- ✔️ [#753]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/753 ), [1.8.0-rc3] Crash when new or revert to saved after apply measure now to a model.\\r\\n\\r\\n**Accepted Pull Requests: 37**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#698]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/698 ), #672 - More BCLSearchResults info (pending a PR)\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n- ✔️ [#712]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/712 ), Conan v2 + OS SDK 3.8.0-rc2\\r\\n- ✔️ [#713]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/713 ), Implement support for further grouping by category in Library (HVAC, Schedules, etc)\\r\\n- ✔️ [#714]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/714 ), Updates for SketchUp 2024\\r\\n- ✔️ [#715]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/715 ), #612 - Display Name\\r\\n- ✔️ [#718]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/718 ), Update floorspace\\r\\n- ✔️ [#720]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/720 ), Fix issues with MeasureManager\\r\\n- ✔️ [#723]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/723 ), v1.7.2 patch to not automatically download results measure\\r\\n- ✔️ [#724]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/724 ), Update scripts to Ruby 3.2\\r\\n- ✔️ [#725]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/725 ), Configure compressed ext for different builds\\r\\n- ➕ [#727]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/727 ), Codesign on macOS\\r\\n- ➕ [#729]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/729 ), Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone\\r\\n- ➕ [#730]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/730 ), Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop\\r\\n- ➕ [#731]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/731 ), Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile\\r\\n- ✔️ [#732]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/732 ), Fix a race condition during CPack packaging when creating symlink on Apple\\r\\n- ✔️ [#733]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/733 ), Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation\\r\\n- ✔️ [#734]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/734 ), Hotfix #730 - QtCharts not needed by modeleditor\\r\\n- ✔️ [#737]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/737 ), Fix #736 #738 - resources install\\r\\n- ➕ [#740]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/740 ), Fix #739 - Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing\\r\\n- ✔️ [#741]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/741 ), Fix #633 - Apply short style copyright and hopefully for the last time\\r\\n- ✔️ [#746]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/746 ), Fix #744 Fix #745 - fixup icon and Can\'t see QtWebEngine pages on macOS\\r\\n- ✔️ [#748]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/748 ), Fix #747 - crash shoebox\\r\\n- ➕ [#749]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/749 ), Improve installer\\r\\n- ✔️ [#754]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/754 ), Add an Ubuntu-2404 runner\\r\\n- ✔️ [#755]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/755 ), PR to master for 1.8.0\\r\\n\\r\\n**Total Open Issues: 124** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #199, #206, #213, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #481, #485, #491, #493, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #668, #679, #680, #687, #704, #709, #711, #742, #743, #751, #752)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193941155","name":"OpenStudioApplication-1.8.0+2722e3e751-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193941217","name":"OpenStudioApplication-1.8.0+2722e3e751-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193941056","name":"OpenStudioApplication-1.8.0+2722e3e751-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193941442","name":"OpenStudioApplication-1.8.0+2722e3e751-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938525","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938564","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938486","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938527","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938485","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938522","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193943346","name":"OpenStudioApplication-1.8.0+2722e3e751-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193943356","name":"OpenStudioApplication-1.8.0+2722e3e751-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Windows.zip"}]},{"name":"v1.8.0-rc3","tag_name":"v1.8.0-rc3","published_at":"2024-09-04T11:29:04Z","prerelease":true,"body":"Pre-release RC3 for 1.8.0 release\\r\\n\\r\\n## What\'s Changed (Since v1.8.0-rc2)\\r\\n\\r\\n* Fix #736 #738 - resources install by [@macumber](https://github.com/macumber) in [#737](https://github.com/openstudiocoalition/OpenStudioApplication/pull/737)\\r\\n* Fix #739 - Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing by [@jmarrec](https://github.com/jmarrec) in [#740](https://github.com/openstudiocoalition/OpenStudioApplication/pull/740)\\r\\n* Fix #633 - Apply short style copyright and hopefully for the last time by [@jmarrec](https://github.com/jmarrec) in [#741](https://github.com/openstudiocoalition/OpenStudioApplication/pull/741)\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0-rc2...v1.8.0-rc3\\r\\n\\r\\n---- \\r\\n\\r\\n## What\'s Changed (since v1.8.0-rc1)\\r\\n\\r\\n* Update scripts to Ruby 3.2 by [@macumber](https://github.com/macumber) in [#724](https://github.com/openstudiocoalition/OpenStudioApplication/pull/724)\\r\\n* Configure compressed ext for different builds by [@macumber](https://github.com/macumber) in [#725](https://github.com/openstudiocoalition/OpenStudioApplication/pull/725)\\r\\n* Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone by [@jmarrec](https://github.com/jmarrec) in [#729](https://github.com/openstudiocoalition/OpenStudioApplication/pull/729)\\r\\n* Codesign on macOS by [@jmarrec](https://github.com/jmarrec) in [#727](https://github.com/openstudiocoalition/OpenStudioApplication/pull/727)\\r\\n* Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile by [@jmarrec](https://github.com/jmarrec) in [#731](https://github.com/openstudiocoalition/OpenStudioApplication/pull/731)\\r\\n* Fix a race condition during CPack packaging when creating symlink on Apple by [@jmarrec](https://github.com/jmarrec) in [#732](https://github.com/openstudiocoalition/OpenStudioApplication/pull/732)\\r\\n* Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop by [@jmarrec](https://github.com/jmarrec) in [#730](https://github.com/openstudiocoalition/OpenStudioApplication/pull/730)\\r\\n* Hotfix #730 - QtCharts not needed by modeleditor by [@jmarrec](https://github.com/jmarrec) in [#734](https://github.com/openstudiocoalition/OpenStudioApplication/pull/734)\\r\\n* Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation by [@jmarrec](https://github.com/jmarrec) in [#733](https://github.com/openstudiocoalition/OpenStudioApplication/pull/733)\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0-rc1...v1.8.0-rc2\\r\\n\\r\\n\\r\\n-----\\r\\n\\r\\n## What\'s Changed (since v1.7.2)\\r\\n\\r\\n* Conan v2 + OS SDK 3.8.0-rc2 by [@jmarrec](https://github.com/jmarrec) in [#712](https://github.com/openstudiocoalition/OpenStudioApplication/pull/712)\\r\\n* #672 - More BCLSearchResults info (pending a PR) by [@jmarrec](https://github.com/jmarrec) in [#698](https://github.com/openstudiocoalition/OpenStudioApplication/pull/698)\\r\\n* Updates for SketchUp 2024 by [@macumber](https://github.com/macumber) in [#714](https://github.com/openstudiocoalition/OpenStudioApplication/pull/714)\\r\\n* Update floorspace by [@macumber](https://github.com/macumber) in [#718](https://github.com/openstudiocoalition/OpenStudioApplication/pull/718)\\r\\n* Implement support for further grouping by category in Library (HVAC, Schedules, etc) by [@manuvarkey](https://github.com/manuvarkey) in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n* #612 - Display Name by [@jmarrec](https://github.com/jmarrec) in [#715](https://github.com/openstudiocoalition/OpenStudioApplication/pull/715)\\r\\n* Fix issues with MeasureManager by [@macumber](https://github.com/macumber) in [#720](https://github.com/openstudiocoalition/OpenStudioApplication/pull/720)\\r\\n\\r\\n**Full Changelog**: [v1.7.2...v1.8.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.2...v1.8.0)-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-09-04:**\\r\\n\\r\\n**New Issues: 32**\\r\\n\\r\\n**Closed Issues: 44**\\r\\n\\r\\n**Accepted Pull Requests: 32**\\r\\n\\r\\n**Total Open Issues: 123**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 44**\\r\\n- ➕ [#112]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/112 ), Refrigeration Spreadsheet GUI: drop-down lists\\r\\n- ✔️ [#115]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/115 ), Delete a measure, re-add it from library: no prompt and duplicated folders\\r\\n- ➕ [#123]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/123 ), Organize HVAC library by category\\r\\n- ✔️ [#142]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/142 ), Double click to open does not work on Mac\\r\\n- ✔️ [#143]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/143 ), Start OpenStudio button does not work in sketchup if osm is on network drive\\r\\n- ➕ [#162]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/162 ), Allow visualization of Schedule:Compact and Schedule:Constant on Schedules tab in OS App\\r\\n- ➕ [#175]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/175 ), Add ability for OS app to look for updated BCL components and measures.\\r\\n- ✔️ [#179]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/179 ), CMakeLists.txt incorrectly assumes that any LSB release ID that\'s not 18.04 must be 16.04\\r\\n- ✔️ [#512]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/512 ), Fix TGZ installer on Mac\\r\\n- ➕ [#557]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/557 ), Upgrade Ruby to 3.1\\r\\n- ✔️ [#561]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/561 ), Subsurfaces across thermal zones do not have outside boundary condition object assigned\\r\\n- ➕ [#612]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/612 ), Show displayname in grid view\\r\\n- ✔️ [#620]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/620 ), `sync project measures with library` does not work as before\\r\\n- ➕ [#633]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/633 ), Simplify license docstring in files\\r\\n- ✔️ [#656]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/656 ), Application crash when using Python measures without Python Bindings component installed\\r\\n- ➕ [#669]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/669 ), v1.7.0-rc2 Testing: Call for help from the community\\r\\n- ➕ [#670]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/670 ), Show Python/Ruby measure badge on measures in the workflow\\r\\n- ➕ [#671]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/671 ), Mark Python measures as in error if using classic CLI\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ➕ [#706]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/706 ), v1.7.1-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n- ➕ [#708]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/708 ), Support more SetpointManager types on HVACSystemViews\\r\\n- ✔️ [#716]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/716 ), Disable classic CLI option if not working\\r\\n- ✔️ [#717]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/717 ), \\"Do you want to reset Measure Manager settings?\\" does not work\\r\\n- ✔️ [#719]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/719 ), Windows build no longer works on Windows2022 github runner\\r\\n- ➕ [#721]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/721 ), Add space infiltration design flow rate schedule selection at space level\\r\\n- ✔️ [#722]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/722 ), OpenStudio Results Measure is broken\\r\\n- ✔️ [#726]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/726 ), OS X 14.5 1.71 Crash on attempt to open gbXML\\r\\n- ✔️ [#728]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/728 ), Adding ERV Crashes OpenStudioApplication\\r\\n- ✔️ [#736]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/736 ), [v1.8.0-rc2] Bundled openstudio_results measure is at wrong location\\r\\n- ✔️ [#738]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/738 ), [v1.8.0-rc2] Cannot launch, Qt6OpenGLWidgets.dll was not found on Windows\\r\\n- ➕ [#739]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/739 ), [v1.8.0-rc2] Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing.\\r\\n\\r\\n**Accepted Pull Requests: 32**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#698]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/698 ), #672 - More BCLSearchResults info (pending a PR)\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n- ✔️ [#712]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/712 ), Conan v2 + OS SDK 3.8.0-rc2\\r\\n- ✔️ [#713]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/713 ), Implement support for further grouping by category in Library (HVAC, Schedules, etc)\\r\\n- ✔️ [#714]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/714 ), Updates for SketchUp 2024\\r\\n- ✔️ [#715]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/715 ), #612 - Display Name\\r\\n- ✔️ [#718]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/718 ), Update floorspace\\r\\n- ✔️ [#720]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/720 ), Fix issues with MeasureManager\\r\\n- ✔️ [#723]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/723 ), v1.7.2 patch to not automatically download results measure\\r\\n- ✔️ [#724]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/724 ), Update scripts to Ruby 3.2\\r\\n- ✔️ [#725]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/725 ), Configure compressed ext for different builds\\r\\n- ➕ [#727]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/727 ), Codesign on macOS\\r\\n- ➕ [#729]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/729 ), Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone\\r\\n- ➕ [#730]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/730 ), Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop\\r\\n- ➕ [#731]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/731 ), Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile\\r\\n- ✔️ [#732]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/732 ), Fix a race condition during CPack packaging when creating symlink on Apple\\r\\n- ✔️ [#733]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/733 ), Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation\\r\\n- ✔️ [#734]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/734 ), Hotfix #730 - QtCharts not needed by modeleditor\\r\\n- ✔️ [#737]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/737 ), Fix resources install\\r\\n- ➕ [#740]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/740 ), Fix #739 - Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing\\r\\n- ✔️ [#741]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/741 ), Fix #633 - Apply short style copyright and hopefully for the last time\\r\\n\\r\\n**Total Open Issues: 123** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #668, #679, #680, #687, #704, #709, #711, #735)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190356917","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190357059","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190352638","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353133","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353646","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353660","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353512","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353540","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190361970","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190361995","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Windows.zip"}]},{"name":"v1.8.0-rc2","tag_name":"v1.8.0-rc2","published_at":"2024-09-03T12:27:43Z","prerelease":true,"body":"Pre-release RC2 for 1.8.0 release\\r\\n\\r\\n## What\'s Changed (since v1.8.0-rc1)\\r\\n\\r\\n* Update scripts to Ruby 3.2 by [@macumber](https://github.com/macumber) in [#724](https://github.com/openstudiocoalition/OpenStudioApplication/pull/724)\\r\\n* Configure compressed ext for different builds by [@macumber](https://github.com/macumber) in [#725](https://github.com/openstudiocoalition/OpenStudioApplication/pull/725)\\r\\n* Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone by [@jmarrec](https://github.com/jmarrec) in [#729](https://github.com/openstudiocoalition/OpenStudioApplication/pull/729)\\r\\n* Codesign on macOS by [@jmarrec](https://github.com/jmarrec) in [#727](https://github.com/openstudiocoalition/OpenStudioApplication/pull/727)\\r\\n* Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile by [@jmarrec](https://github.com/jmarrec) in [#731](https://github.com/openstudiocoalition/OpenStudioApplication/pull/731)\\r\\n* Fix a race condition during CPack packaging when creating symlink on Apple by [@jmarrec](https://github.com/jmarrec) in [#732](https://github.com/openstudiocoalition/OpenStudioApplication/pull/732)\\r\\n* Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop by [@jmarrec](https://github.com/jmarrec) in [#730](https://github.com/openstudiocoalition/OpenStudioApplication/pull/730)\\r\\n* Hotfix #730 - QtCharts not needed by modeleditor by [@jmarrec](https://github.com/jmarrec) in [#734](https://github.com/openstudiocoalition/OpenStudioApplication/pull/734)\\r\\n* Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation by [@jmarrec](https://github.com/jmarrec) in [#733](https://github.com/openstudiocoalition/OpenStudioApplication/pull/733)\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0-rc1...v1.8.0-rc2\\r\\n\\r\\n\\r\\n-----\\r\\n\\r\\n\\r\\n## What\'s Changed (since v1.7.2)\\r\\n\\r\\n* Conan v2 + OS SDK 3.8.0-rc2 by [@jmarrec](https://github.com/jmarrec) in [#712](https://github.com/openstudiocoalition/OpenStudioApplication/pull/712)\\r\\n* #672 - More BCLSearchResults info (pending a PR) by [@jmarrec](https://github.com/jmarrec) in [#698](https://github.com/openstudiocoalition/OpenStudioApplication/pull/698)\\r\\n* Updates for SketchUp 2024 by [@macumber](https://github.com/macumber) in [#714](https://github.com/openstudiocoalition/OpenStudioApplication/pull/714)\\r\\n* Update floorspace by [@macumber](https://github.com/macumber) in [#718](https://github.com/openstudiocoalition/OpenStudioApplication/pull/718)\\r\\n* Implement support for further grouping by category in Library (HVAC, Schedules, etc) by [@manuvarkey](https://github.com/manuvarkey) in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n* #612 - Display Name by [@jmarrec](https://github.com/jmarrec) in [#715](https://github.com/openstudiocoalition/OpenStudioApplication/pull/715)\\r\\n* Fix issues with MeasureManager by [@macumber](https://github.com/macumber) in [#720](https://github.com/openstudiocoalition/OpenStudioApplication/pull/720)\\r\\n* Update scripts to Ruby 3.2 by [@macumber](https://github.com/macumber) in [#724](https://github.com/openstudiocoalition/OpenStudioApplication/pull/724)\\r\\n* Configure compressed ext for different builds by [@macumber](https://github.com/macumber) in [#725](https://github.com/openstudiocoalition/OpenStudioApplication/pull/725)\\r\\n* Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone by [@jmarrec](https://github.com/jmarrec) in [#729](https://github.com/openstudiocoalition/OpenStudioApplication/pull/729)\\r\\n* Codesign on macOS by [@jmarrec](https://github.com/jmarrec) in [#727](https://github.com/openstudiocoalition/OpenStudioApplication/pull/727)\\r\\n* Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile by [@jmarrec](https://github.com/jmarrec) in [#731](https://github.com/openstudiocoalition/OpenStudioApplication/pull/731)\\r\\n* Fix a race condition during CPack packaging when creating symlink on Apple by [@jmarrec](https://github.com/jmarrec) in [#732](https://github.com/openstudiocoalition/OpenStudioApplication/pull/732)\\r\\n* Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop by [@jmarrec](https://github.com/jmarrec) in [#730](https://github.com/openstudiocoalition/OpenStudioApplication/pull/730)\\r\\n* Hotfix #730 - QtCharts not needed by modeleditor by [@jmarrec](https://github.com/jmarrec) in [#734](https://github.com/openstudiocoalition/OpenStudioApplication/pull/734)\\r\\n* Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation by [@jmarrec](https://github.com/jmarrec) in [#733](https://github.com/openstudiocoalition/OpenStudioApplication/pull/733)\\r\\n\\r\\n## New Contributors\\r\\n* [@manuvarkey](https://github.com/manuvarkey) made their first contribution in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n\\r\\n**Full Changelog**: [v1.7.2...v1.8.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.2...v1.8.0)-rc2\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-09-03:**\\r\\n\\r\\n**New Issues: 28**\\r\\n\\r\\n**Closed Issues: 40**\\r\\n\\r\\n**Accepted Pull Requests: 29**\\r\\n\\r\\n**Total Open Issues: 123**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 40**\\r\\n- ➕ [#112]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/112 ), Refrigeration Spreadsheet GUI: drop-down lists\\r\\n- ✔️ [#115]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/115 ), Delete a measure, re-add it from library: no prompt and duplicated folders\\r\\n- ➕ [#123]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/123 ), Organize HVAC library by category\\r\\n- ✔️ [#142]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/142 ), Double click to open does not work on Mac\\r\\n- ✔️ [#143]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/143 ), Start OpenStudio button does not work in sketchup if osm is on network drive\\r\\n- ➕ [#162]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/162 ), Allow visualization of Schedule:Compact and Schedule:Constant on Schedules tab in OS App\\r\\n- ➕ [#175]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/175 ), Add ability for OS app to look for updated BCL components and measures.\\r\\n- ✔️ [#179]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/179 ), CMakeLists.txt incorrectly assumes that any LSB release ID that\'s not 18.04 must be 16.04\\r\\n- ✔️ [#512]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/512 ), Fix TGZ installer on Mac\\r\\n- ➕ [#557]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/557 ), Upgrade Ruby to 3.1\\r\\n- ✔️ [#561]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/561 ), Subsurfaces across thermal zones do not have outside boundary condition object assigned\\r\\n- ➕ [#612]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/612 ), Show displayname in grid view\\r\\n- ✔️ [#620]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/620 ), `sync project measures with library` does not work as before\\r\\n- ✔️ [#656]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/656 ), Application crash when using Python measures without Python Bindings component installed\\r\\n- ➕ [#669]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/669 ), v1.7.0-rc2 Testing: Call for help from the community\\r\\n- ➕ [#670]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/670 ), Show Python/Ruby measure badge on measures in the workflow\\r\\n- ➕ [#671]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/671 ), Mark Python measures as in error if using classic CLI\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ➕ [#706]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/706 ), v1.7.1-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n- ➕ [#708]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/708 ), Support more SetpointManager types on HVACSystemViews\\r\\n- ✔️ [#716]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/716 ), Disable classic CLI option if not working\\r\\n- ✔️ [#717]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/717 ), \\"Do you want to reset Measure Manager settings?\\" does not work\\r\\n- ✔️ [#719]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/719 ), Windows build no longer works on Windows2022 github runner\\r\\n- ➕ [#721]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/721 ), Add space infiltration design flow rate schedule selection at space level\\r\\n- ✔️ [#722]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/722 ), OpenStudio Results Measure is broken\\r\\n- ✔️ [#726]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/726 ), OS X 14.5 1.71 Crash on attempt to open gbXML\\r\\n- ✔️ [#728]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/728 ), Adding ERV Crashes OpenStudioApplication\\r\\n\\r\\n**Accepted Pull Requests: 29**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#698]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/698 ), #672 - More BCLSearchResults info (pending a PR)\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n- ✔️ [#712]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/712 ), Conan v2 + OS SDK 3.8.0-rc2\\r\\n- ✔️ [#713]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/713 ), Implement support for further grouping by category in Library (HVAC, Schedules, etc)\\r\\n- ✔️ [#714]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/714 ), Updates for SketchUp 2024\\r\\n- ✔️ [#715]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/715 ), #612 - Display Name\\r\\n- ✔️ [#718]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/718 ), Update floorspace\\r\\n- ✔️ [#720]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/720 ), Fix issues with MeasureManager\\r\\n- ✔️ [#723]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/723 ), v1.7.2 patch to not automatically download results measure\\r\\n- ✔️ [#724]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/724 ), Update scripts to Ruby 3.2\\r\\n- ✔️ [#725]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/725 ), Configure compressed ext for different builds\\r\\n- ➕ [#727]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/727 ), Codesign on macOS\\r\\n- ➕ [#729]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/729 ), Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone\\r\\n- ➕ [#730]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/730 ), Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop\\r\\n- ➕ [#731]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/731 ), Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile\\r\\n- ✔️ [#732]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/732 ), Fix a race condition during CPack packaging when creating symlink on Apple\\r\\n- ✔️ [#733]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/733 ), Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation\\r\\n- ✔️ [#734]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/734 ), Hotfix #730 - QtCharts not needed by modeleditor\\r\\n\\r\\n**Total Open Issues: 123** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #520, #529, #542, #555, #571, #615, #633, #649, #658, #659, #668, #679, #680, #687, #704, #709, #711)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190109070","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190109179","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190108221","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190108636","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190107770","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190107796","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190106380","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190106419","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190111923","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190111944","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Windows.zip"}]},{"name":"v1.8.0-rc1","tag_name":"v1.8.0-rc1","published_at":"2024-08-02T17:17:53Z","prerelease":true,"body":"Pre-release RC1 for 1.8.0 release\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-08-06:**\\r\\n\\r\\n**New Issues: 26**\\r\\n\\r\\n**Closed Issues: 29**\\r\\n\\r\\n**Accepted Pull Requests: 20**\\r\\n\\r\\n**Total Open Issues: 132**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 29**\\r\\n- ✔️ [#115]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/115 ), Delete a measure, re-add it from library: no prompt and duplicated folders\\r\\n- ➕ [#123]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/123 ), Organize HVAC library by category\\r\\n- ➕ [#175]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/175 ), Add ability for OS app to look for updated BCL components and measures.\\r\\n- ✔️ [#179]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/179 ), CMakeLists.txt incorrectly assumes that any LSB release ID that\'s not 18.04 must be 16.04\\r\\n- ➕ [#557]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/557 ), Upgrade Ruby to 3.1\\r\\n- ✔️ [#620]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/620 ), `sync project measures with library` does not work as before\\r\\n- ✔️ [#656]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/656 ), Application crash when using Python measures without Python Bindings component installed\\r\\n- ➕ [#669]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/669 ), v1.7.0-rc2 Testing: Call for help from the community\\r\\n- ➕ [#670]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/670 ), Show Python/Ruby measure badge on measures in the workflow\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ➕ [#706]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/706 ), v1.7.1-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n- ✔️ [#716]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/716 ), Disable classic CLI option if not working\\r\\n- ✔️ [#717]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/717 ), \\"Do you want to reset Measure Manager settings?\\" does not work\\r\\n- ✔️ [#719]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/719 ), Windows build no longer works on Windows2022 github runner\\r\\n- ➕ [#721]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/721 ), Add space infiltration design flow rate schedule selection at space level\\r\\n- ✔️ [#722]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/722 ), OpenStudio Results Measure is broken\\r\\n\\r\\n**Accepted Pull Requests: 20**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#698]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/698 ), #672 - More BCLSearchResults info (pending a PR)\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n- ✔️ [#712]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/712 ), Conan v2 + OS SDK 3.8.0-rc2\\r\\n- ✔️ [#713]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/713 ), Implement support for further grouping by category in Library (HVAC, Schedules, etc)\\r\\n- ✔️ [#714]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/714 ), Updates for SketchUp 2024\\r\\n- ✔️ [#715]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/715 ), #612 - Display Name\\r\\n- ✔️ [#718]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/718 ), Update floorspace\\r\\n- ✔️ [#720]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/720 ), Fix issues with MeasureManager\\r\\n- ✔️ [#723]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/723 ), v1.7.2 patch to not automatically download results measure\\r\\n\\r\\n**Total Open Issues: 132** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #561, #571, #612, #615, #633, #649, #658, #659, #668, #671, #679, #680, #687, #704, #708, #709, #711)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184358059","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184358198","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184352572","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184352987","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184355974","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184355990","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184355516","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184355539","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184361890","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Windows.exe"}]},{"name":"v1.7.2","tag_name":"v1.7.2","published_at":"2024-07-18T03:17:59Z","prerelease":false,"body":"## What\'s Changed\\r\\n\\r\\n* v1.7.2 patch to not automatically download results measure by [@macumber](https://github.com/macumber) in [#723](https://github.com/openstudiocoalition/OpenStudioApplication/pull/723)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.7.1...v1.7.2](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.1...v1.7.2)","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180284871","name":"OpenStudioApplication-1.7.2+10eb8f76d6-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180284908","name":"OpenStudioApplication-1.7.2+10eb8f76d6-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180279434","name":"OpenStudioApplication-1.7.2+10eb8f76d6-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180279756","name":"OpenStudioApplication-1.7.2+10eb8f76d6-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180281835","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180281848","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180281265","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180281272","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180286838","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180286844","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Windows.zip"}]},{"name":"v1.7.1","tag_name":"v1.7.1","published_at":"2024-04-14T23:09:01Z","prerelease":false,"body":"## OpenStudio Application Version 1.7.1\\r\\n\\r\\nThe [OpenStudio Coalition](https://openstudiocoalition.org/) is proud to announce the releases of [OpenStudio Application v1.7.1](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.7.1). This is a patch release based on [OpenStudio SDK v3.7.0](https://github.com/NREL/OpenStudio/releases/tag/v3.7.0) which uses [EnergyPlus v23.2.0](https://github.com/NREL/EnergyPlus/releases/tag/v23.2.0).\\r\\n\\r\\n### Overview\\r\\nThe OpenStudio Application 1.7.1 release fixes several important bugs that were present in the 1.7.0 release.\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n### Bug Fixes:\\r\\n\\r\\n- BCL Viewer Human Readable Descriptions by [@jmarrec](https://github.com/jmarrec) in [#672](https://github.com/openstudiocoalition/OpenStudioApplication/pull/697)\\r\\n- Dragging construction set from library is very slow by [@macumber](https://github.com/macumber) in https://github.com/openstudiocoalition/OpenStudioApplication/issues/687\\r\\n- Unable to edit Water Use Equipment Definition by [@macumber](https://github.com/macumber) in [#685](https://github.com/openstudiocoalition/OpenStudioApplication/pull/685)\\r\\n- OpenStudio Application unusable on MacOS14 with M2 by https://github.com/openstudiocoalition/OpenStudioApplication/pull/692\\r\\n- Error when running Create Typical Building from Model Measures by [@jmarrec](https://github.com/jmarrec) and @macumber in [#699](https://github.com/openstudiocoalition/OpenStudioApplication/pull/699)\\r\\n- Local copy of BCL folder gets wiped/overwritten by [@macumber](https://github.com/macumber) in [#700](https://github.com/openstudiocoalition/OpenStudioApplication/pull/700)\\r\\n\\r\\n### Internal/Developer changes:\\r\\n\\r\\n- Mac CI failing on GMP by [@macumber](https://github.com/macumber) in [#690](https://github.com/openstudiocoalition/OpenStudioApplication/pull/690)\\r\\n\\r\\n### Installation Instructions\\r\\n\\r\\nOpenStudio Application v1.7.1 is supported on 64-bit Windows 10 – 11, OS X 11.0 and higher for x86, OS X 12.1 and higher on M1, Ubuntu 20.04, and Ubuntu 22.04. The OpenStudio SketchUp Plug-in v1.7.0 requires SketchUp 2021 or higher. Refer to the [OpenStudio Application Compatibility Matrix](https://github.com/openstudiocoalition/OpenStudioApplication/wiki/OpenStudio-Application-Version-Compatibility-Matrix#openstudio-application-version-compatibility-matrix) and the [OpenStudio SketchUp Plug-in Compatibility Matrix](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/wiki/OpenStudio-SketchUp-Plug-in-Wiki#openstudio-sketchup-plug-in-version-compatibility-matrix) for more information.\\r\\n\\r\\n- Download and run the correct [OpenStudio Application v1.7.1](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.7.1) installer for your platform. Select components for installation. Note that OpenStudio Application is a standalone app and does not require you to install OpenStudio SDK.\\r\\n- (Optional) Download the [OpenStudio SketchUp Plug-in v1.7.0](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/releases/tag/v1.7.0) RBZ package. Launch SketchUp 2021 or higher and install the RBZ package.\\r\\n- New - The new GitHub based Building Component Library (BCL) no longer requires an account to access online building components and measures! \\r\\n- Note that the Mac installers are currently not signed by the OpenStudio Coalition. To run these installers, the user must [ctrl-click the file and select open](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac). Additionally, Mac OS may add a quarantine attribute to the dmg file that prevents it from opening. This attribute can be removed using the command [`xattr -dr com.apple.quarantine`](https://hiringengineersbook.com/post/disable-quarantine/) at the command line.\\r\\n- Note that the current version of SketchUp 2023 (Version 23.1.341) on Mac is currently affected by [OpenStudio SketchUp Plug-in crashes on launch on Mac (x86_64 and ARM) with SketchUp 2023 #133](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/issues/133). For Mac users, it is advised to use SketchUp 2022 with the OpenStudio SketchUp Plug-in until this issue is resolved.\\r\\n- Note that [PAT](https://github.com/NREL/OpenStudio-PAT) and [DView](https://beopt.nrel.gov/downloadDView.) are not included in either the SDK or Application installers. You will need to install PAT separately which is distributed on the [OpenStudio-PAT](https://github.com/NREL/OpenStudio-PAT) GitHub page and DView at the [Dview home page](https://beopt.nrel.gov/downloadDView).\\r\\nInstallation Notes\\r\\n\\r\\nFor help with common installation problems and more detailed instructions please visit, https://openstudiocoalition.org/getting_started/getting_started/.\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-04-14:**\\r\\n\\r\\n**New Issues: 20**\\r\\n\\r\\n**Closed Issues: 14**\\r\\n\\r\\n**Accepted Pull Requests: 12**\\r\\n\\r\\n**Total Open Issues: 141**\\r\\n\\r\\n**Total Open Pull Requests: 3**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 14**\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n\\r\\n**Accepted Pull Requests: 12**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n\\r\\n**Total Open Issues: 141** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #612, #615, #620, #633, #649, #656, #658, #659, #668, #669, #670, #671, #679, #680, #687, #704, #706, #708, #709)\\r\\n\\r\\n**Total Open Pull Requests: 3** (#236, #470, #698)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162081470","name":"OpenStudioApplication-1.7.1+fd8611de00-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162081528","name":"OpenStudioApplication-1.7.1+fd8611de00-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162084545","name":"OpenStudioApplication-1.7.1+fd8611de00-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162084889","name":"OpenStudioApplication-1.7.1+fd8611de00-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162079978","name":"OpenStudioApplication-1.7.1+fd8611de00-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162079992","name":"OpenStudioApplication-1.7.1+fd8611de00-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162079991","name":"OpenStudioApplication-1.7.1+fd8611de00-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162080019","name":"OpenStudioApplication-1.7.1+fd8611de00-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162083747","name":"OpenStudioApplication-1.7.1+fd8611de00-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162083786","name":"OpenStudioApplication-1.7.1+fd8611de00-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Windows.zip"}]},{"name":"v1.7.1-rc1","tag_name":"v1.7.1-rc1","published_at":"2024-03-30T20:24:03Z","prerelease":true,"body":"## What\'s Changed\\r\\n* Add early failure for too old macOS, XCode or target macOS version by [@mduvanel](https://github.com/mduvanel) in [#678](https://github.com/openstudiocoalition/OpenStudioApplication/pull/678)\\r\\n* Fix Mac CI by [@macumber](https://github.com/macumber) in [#690](https://github.com/openstudiocoalition/OpenStudioApplication/pull/690)\\r\\n* Upgrade to Qt 6.6.2 to fix #688 by [@macumber](https://github.com/macumber) in [#692](https://github.com/openstudiocoalition/OpenStudioApplication/pull/692)\\r\\n* Fix inspector in loads tab by [@macumber](https://github.com/macumber) in [#685](https://github.com/openstudiocoalition/OpenStudioApplication/pull/685)\\r\\n* Speed up controllers by [@macumber](https://github.com/macumber) in [#682](https://github.com/openstudiocoalition/OpenStudioApplication/pull/682)\\r\\n* Fix 696 2 by [@jmarrec](https://github.com/jmarrec) in [#702](https://github.com/openstudiocoalition/OpenStudioApplication/pull/702)\\r\\n* Install openstudio to bin directory so it can be found relative to lib by [@macumber](https://github.com/macumber) in [#699](https://github.com/openstudiocoalition/OpenStudioApplication/pull/699)\\r\\n* Update to Qt 6.6.3 by [@macumber](https://github.com/macumber) in [#703](https://github.com/openstudiocoalition/OpenStudioApplication/pull/703)\\r\\n* Correctly remove old measures when downloading new ones by [@macumber](https://github.com/macumber) in [#700](https://github.com/openstudiocoalition/OpenStudioApplication/pull/700)\\r\\n* Fix #672 - Add description, modelerDescription, UID and version UID to bcl results by [@jmarrec](https://github.com/jmarrec) in [#697](https://github.com/openstudiocoalition/OpenStudioApplication/pull/697)\\r\\n* PR to master for 1.7.1-rc1 by [@macumber](https://github.com/macumber) in [#705](https://github.com/openstudiocoalition/OpenStudioApplication/pull/705)\\r\\n\\r\\n## New Contributors\\r\\n* [@mduvanel](https://github.com/mduvanel) made their first contribution in [#678](https://github.com/openstudiocoalition/OpenStudioApplication/pull/678)\\r\\n\\r\\n**Full Changelog**: [v1.7.0...v1.7.1](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.0...v1.7.1)-rc1\\n\\n## Changelog\\n\\n\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-03-30:**\\n\\n**New Issues: 16**\\n\\n**Closed Issues: 13**\\n\\n**Accepted Pull Requests: 11**\\n\\n**Total Open Issues: 138**\\n\\n**Total Open Pull Requests: 3**\\n\\n\\n
\\n\\n Click to see details\\n\\n**Closed Issues: 13**\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\n\\n**Accepted Pull Requests: 11**\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\n\\n**Total Open Issues: 138** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #612, #615, #620, #633, #649, #656, #658, #659, #668, #669, #670, #671, #679, #680, #687, #704)\\n\\n**Total Open Pull Requests: 3** (#236, #470, #698)\\n\\n
\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159459296","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159459308","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159459190","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159459394","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159457229","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159457246","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159457244","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159457251","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159458661","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159458724","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Windows.zip"}]},{"name":"v1.7.0","tag_name":"v1.7.0","published_at":"2024-02-01T05:51:18Z","prerelease":false,"body":"## OpenStudio Application Version 1.7.0\\r\\n\\r\\nThe [OpenStudio Coalition](https://openstudiocoalition.org/) is proud to announce the releases of [OpenStudio Application v1.7.0](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.7.0) and [OpenStudio SketchUp Plug-in v1.7.0](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/releases/tag/v1.7.0). These releases are based on [OpenStudio SDK v3.7.0](https://github.com/NREL/OpenStudio/releases/tag/v3.7.0) which uses [EnergyPlus v23.2.0](https://github.com/NREL/EnergyPlus/releases/tag/v23.2.0).\\r\\n\\r\\n### Overview\\r\\nThe OpenStudio Application 1.7.0 release updates the application to OpenStudio 3.7.0, EnergyPlus 23.2.0. This version of the OpenStudio Application is the first version to allow access to Python Measures now supported by the OpenStudio SDK. This functionality allows users to create and use Python Measures in OpenStudio Workflows. Opening the door to the measure writing world for Python expands the potential for users to automate and augment their workflows. If you make something amazing, please share it at https://bcl.nrel.gov/! \\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n### New Features:\\r\\n\\r\\n- Update to OpenStudio SDK v3.7.0 and EnergyPlus v23.2.0 by [@jmarrec](https://github.com/jmarrec) in [#627](https://github.com/openstudiocoalition/OpenStudioApplication/pull/627)\\r\\n- Updated the Qt dependency from 6.3.0 to 6.6.1 by [@macumber](https://github.com/macumber) in [#650](https://github.com/openstudiocoalition/OpenStudioApplication/pull/650).\\r\\n- A new option to create and run Python measures has been added to the OpenStudio Application by [@jmarrec](https://github.com/jmarrec) in [#651](https://github.com/openstudiocoalition/OpenStudioApplication/pull/651). \\r\\n - An option to re-enable the Classic CLI (which does not support Python Measures) has been added as well.\\r\\n- A search bar has been added to the library tab by [@macumber](https://github.com/macumber) in [#618](https://github.com/openstudiocoalition/OpenStudioApplication/pull/618)\\r\\n- Added geometry diagnostics in the geometry preview: incorrectly oriented surfaces, non convex spaces by [@jmarrec](https://github.com/jmarrec) in [#630](https://github.com/openstudiocoalition/OpenStudioApplication/pull/630)\\r\\n- Allow searching and bulk updating output variables by [@jmarrec](https://github.com/jmarrec) in [#623](https://github.com/openstudiocoalition/OpenStudioApplication/pull/623) and [@macumber](https://github.com/macumber) in [#631](https://github.com/openstudiocoalition/OpenStudioApplication/pull/631)\\r\\n\\r\\n### Bug Fixes:\\r\\n\\r\\n- Fix the crash in schedules view by [@macumber](https://github.com/macumber) in [#614](https://github.com/openstudiocoalition/OpenStudioApplication/pull/614)\\r\\n- Fix [#482](https://github.com/openstudiocoalition/OpenStudioApplication/issues/482) - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter by [@jmarrec](https://github.com/jmarrec) in [#621](https://github.com/openstudiocoalition/OpenStudioApplication/pull/621)\\r\\n- Fix [#560](https://github.com/openstudiocoalition/OpenStudioApplication/issues/560) - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab by [@jmarrec](https://github.com/jmarrec) in [#622](https://github.com/openstudiocoalition/OpenStudioApplication/pull/622)\\r\\n- Fix [#238](https://github.com/openstudiocoalition/OpenStudioApplication/issues/238) - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency by [@jmarrec](https://github.com/jmarrec) in [#623](https://github.com/openstudiocoalition/OpenStudioApplication/pull/623)\\r\\n- Fix [#638](https://github.com/openstudiocoalition/OpenStudioApplication/issues/638) - Make links clickable for measure descriptions by [@jmarrec](https://github.com/jmarrec) in [#639](https://github.com/openstudiocoalition/OpenStudioApplication/pull/639)\\r\\n- Install the OpenStudio Results measure as a backup to the BCL by [@macumber](https://github.com/macumber) in [#642](https://github.com/openstudiocoalition/OpenStudioApplication/pull/642)\\r\\n- Fix bug when cloning a story with windows by [@macumber](https://github.com/macumber) in [#643](https://github.com/openstudiocoalition/OpenStudioApplication/pull/643)\\r\\n- Update mechanical ventilation outdoor air method combo box by [@eringold](https://github.com/eringold) in [#646](https://github.com/openstudiocoalition/OpenStudioApplication/pull/646)\\r\\n- Partially address Mac hang issue [#659](https://github.com/openstudiocoalition/OpenStudioApplication/issues/659) by [@jmarrec](https://github.com/jmarrec) in [#663](https://github.com/openstudiocoalition/OpenStudioApplication/pull/663)\\r\\n\\r\\n### Internal/Developer changes:\\r\\n\\r\\n- Fix MacOS CI by [@macumber](https://github.com/macumber) in [#624](https://github.com/openstudiocoalition/OpenStudioApplication/pull/624)\\r\\n- Geometry Preview refactor - separate into several files, allow running in browser directly by [@jmarrec](https://github.com/jmarrec) in [#628](https://github.com/openstudiocoalition/OpenStudioApplication/pull/628)\\r\\n- Update to OpenStudio SDK 3.7.0-alpha (latest nightly build) by [@jmarrec](https://github.com/jmarrec) in [#627](https://github.com/openstudiocoalition/OpenStudioApplication/pull/627)\\r\\n- Use the GitHub hosted macos-13 runners by [@macumber](https://github.com/macumber) in [#647](https://github.com/openstudiocoalition/OpenStudioApplication/pull/647)\\r\\n- Re-enable tar.gz for MacOS by [@macumber](https://github.com/macumber) in [#654](https://github.com/openstudiocoalition/OpenStudioApplication/pull/654)\\r\\n- Properly find libruby/libpythonengine on macOS by [@jmarrec](https://github.com/jmarrec) in [#664](https://github.com/openstudiocoalition/OpenStudioApplication/pull/664)\\r\\n- Test SDK CLI from installers from another C++ CI run by [@jmarrec](https://github.com/jmarrec) in [#666](https://github.com/openstudiocoalition/OpenStudioApplication/pull/666)\\r\\n- Redo app build caching by [@jmarrec](https://github.com/jmarrec) in [#667](https://github.com/openstudiocoalition/OpenStudioApplication/pull/667)\\r\\n- 1.7.0 rc2 fixes by [@jmarrec](https://github.com/jmarrec) in [#676](https://github.com/openstudiocoalition/OpenStudioApplication/pull/676)\\r\\n\\r\\n### Installation Instructions\\r\\n\\r\\nOpenStudio Application v1.7.0 is supported on 64-bit Windows 10 – 11, OS X 11.0 and higher for x86, OS X 12.1 and higher on M1, Ubuntu 20.04, and Ubuntu 22.04. The OpenStudio SketchUp Plug-in v1.7.0 requires SketchUp 2021 or higher. Refer to the [OpenStudio Application Compatibility Matrix](https://github.com/openstudiocoalition/OpenStudioApplication/wiki/OpenStudio-Application-Version-Compatibility-Matrix#openstudio-application-version-compatibility-matrix) and the [OpenStudio SketchUp Plug-in Compatibility Matrix](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/wiki/OpenStudio-SketchUp-Plug-in-Wiki#openstudio-sketchup-plug-in-version-compatibility-matrix) for more information.\\r\\n\\r\\n- Download and run the correct [OpenStudio Application v1.7.0](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.7.0) installer for your platform. Select components for installation. Note that OpenStudio Application is a standalone app and does not require you to install OpenStudio SDK.\\r\\n- (Optional) Download the [OpenStudio SketchUp Plug-in v1.7.0](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/releases/tag/v1.7.0) RBZ package. Launch SketchUp 2021 or higher and install the RBZ package.\\r\\n- New - The new GitHub based Building Component Library (BCL) no longer requires an account to access online building components and measures! \\r\\n- Note that the Mac installers are currently not signed by the OpenStudio Coalition. To run these installers, the user must [ctrl-click the file and select open](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac). Additionally, Mac OS may add a quarantine attribute to the dmg file that prevents it from opening. This attribute can be removed using the command [`xattr -dr com.apple.quarantine`](https://hiringengineersbook.com/post/disable-quarantine/) at the command line.\\r\\n- Note that the current version of SketchUp 2023 (Version 23.1.341) on Mac is currently affected by [OpenStudio SketchUp Plug-in crashes on launch on Mac (x86_64 and ARM) with SketchUp 2023 #133](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/issues/133). For Mac users, it is advised to use SketchUp 2022 with the OpenStudio SketchUp Plug-in until this issue is resolved.\\r\\n- Note that [PAT](https://github.com/NREL/OpenStudio-PAT) and [DView](https://beopt.nrel.gov/downloadDView.) are not included in either the SDK or Application installers. You will need to install PAT separately which is distributed on the [OpenStudio-PAT](https://github.com/NREL/OpenStudio-PAT) GitHub page and DView at the [Dview home page](https://beopt.nrel.gov/downloadDView).\\r\\nInstallation Notes\\r\\n\\r\\nFor help with common installation problems and more detailed instructions please visit, https://openstudiocoalition.org/getting_started/getting_started/.\\r\\n\\r\\n## Changelog\\r\\n\\r\\nFull Changelog: [v1.6.0...v1.7.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.6.0...v1.7.0)\\r\\n\\r\\n**Date Range: 2023-06-06** (v1.6.0) - **2024-02-01:**\\r\\n\\r\\n**New Issues: 33**\\r\\n\\r\\n**Closed Issues: 31**\\r\\n\\r\\n**Accepted Pull Requests: 34**\\r\\n\\r\\n**Total Open Issues: 135**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 31**\\r\\n- ➕ [#238]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/238 ), Possible option of a search icon in the output variable tab\\r\\n- ➕ [#284]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/284 ), Have a search icon in the right-hand pane.\\r\\n- ✔️ [#314]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/314 ), Inspector dialog allows setting invalid object names\\r\\n- ✔️ [#332]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/332 ), Making a copy of some measures crushes the app\\r\\n- ➕ [#482]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/482 ), Adjust Policy for Swimming Pool to hide Pool Water In/Outlet Nodes (+ icon)\\r\\n- ✔️ [#554]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/554 ), Openstudio application crashes after clicking on thermal zone tab\\r\\n- ✔️ [#560]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/560 ), HVAC tab for VRF does not zoom\\r\\n- ➕ [#562]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/562 ), Search Function Request for User Interface in \\"My Model\\" tab and \\"Library\\" tab especially for HVAC tab\\r\\n- ✔️ [#590]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/590 ), Remove caching of the build dir on GHA\\r\\n- ✔️ [#602]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/602 ), OpenStudioApplication 1.6.0 - Release Checklist #507 \\r\\n- ✔️ [#605]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/605 ), v1.6.0-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#613]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/613 ), Crashes with assigning Summer/Winter Schedule\\r\\n- ✔️ [#616]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/616 ), OSM geometry rendering doesn\'t reflect space origins (but IDF does)\\r\\n- ✔️ [#617]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/617 ), Can\'t find any file in the online BCL \\r\\n- ✔️ [#619]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/619 ), Cannot find open studio results measure (msg when app launches & issue when running a simulation) \\r\\n- ➕ [#625]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/625 ), Refactor HVACSystemsController to hide controls by default and enable them only when needed\\r\\n- ➕ [#626]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/626 ), Redo the layout of the new Output:Variable filter capability\\r\\n- ✔️ [#632]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/632 ), Window and door components are not placing on geometry in floorspace.js\\r\\n- ✔️ [#634]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/634 ), Viewing HVAC Systems Control view resets Controller:MechanicalVentilation System Outdoor Air Method\\r\\n- ➕ [#638]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/638 ), Make links clickable in measure descriptions\\r\\n- ✔️ [#640]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/640 ), Unable to find openstudio measures.\\r\\n- ➕ [#641]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/641 ), Bundle OpenStudio Results Measure with installer\\r\\n- ➕ [#653]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/653 ), v1.7.0-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#655]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/655 ), Unknown CMake command \\"conan_check\\" ?\\r\\n- ✔️ [#657]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/657 ), Can\'t run Python measure on Mac M1\\r\\n- ➕ [#660]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/660 ), Better feedback from measures using new CLI\\r\\n- ✔️ [#661]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/661 ), Crash when using OS:GroundHeatExchanger:HorizontalTrench\\r\\n- ➕ [#665]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/665 ), Add CI test to automatically install OSApp and run example workflow\\r\\n- ✔️ [#673]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/673 ), RPATH broken for OpenStudioApplication 1.7.0-rc2 on Ubuntu\\r\\n- ✔️ [#674]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/674 ), OpenStudioApplication 1.7.0-rc2: cannot load qtwebengine (geometry preview / results tabs)\\r\\n- ✔️ [#675]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/675 ), Chromium debug fails\\r\\n\\r\\n**Accepted Pull Requests: 34**\\r\\n- ✔️ [#611]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/611 ), Merge for 1.6.0 release\\r\\n- ✔️ [#614]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/614 ), Fix the crash in schedules view\\r\\n- ➕ [#618]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/618 ), Add search bar to OSCollapsibleItemList\\r\\n- ➕ [#621]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/621 ), Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter\\r\\n- ➕ [#622]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/622 ), Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab\\r\\n- ➕ [#623]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/623 ), Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency\\r\\n- ✔️ [#624]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/624 ), Fix MacOS CI\\r\\n- ✔️ [#627]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/627 ), Update to OpenStudio SDK 3.7.0-alpha (latest nightly build)\\r\\n- ➕ [#628]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/628 ), Geometry Preview refactor - separate into several files, allow running in browser directly\\r\\n- ➕ [#629]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/629 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\r\\n- ✔️ [#630]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/630 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\r\\n- ✔️ [#631]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/631 ), Update variables layout\\r\\n- ✔️ [#635]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/635 ), Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official\\r\\n- ✔️ [#636]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/636 ), Update to OpenStudio 3.7.0-rc1\\r\\n- ✔️ [#637]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/637 ), Disable TLS_VERIFY for conan cmake for windows CI runner\\r\\n- ➕ [#639]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/639 ), Fix #638 - Make links clickable for measure descriptions\\r\\n- ✔️ [#642]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/642 ), Install the OpenStudio Results measure as a backup to the BCL\\r\\n- ✔️ [#643]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/643 ), Fix bug when cloning a story with windows\\r\\n- ✔️ [#644]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/644 ), Update to OpenStudio v3.7.0\\r\\n- ✔️ [#645]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/645 ), Update the application version\\r\\n- ✔️ [#646]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/646 ), Update mechanical ventilation outdoor air method combo box\\r\\n- ✔️ [#647]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/647 ), Use the GitHub hosted macos-13 runners\\r\\n- ✔️ [#648]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/648 ), Update OSM versions to 3.7.0\\r\\n- ✔️ [#650]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/650 ), Update to Qt 6.6.1\\r\\n- ✔️ [#651]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/651 ), Add support for Python Measures\\r\\n- ✔️ [#652]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/652 ), Merge to master for 1.7.0\\r\\n- ✔️ [#654]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/654 ), Re-enable tar.gz for MacOS\\r\\n- ✔️ [#662]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/662 ), Support new CLI output\\r\\n- ✔️ [#663]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/663 ), Bad workaround for #659\\r\\n- ✔️ [#664]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/664 ), #657 - Properly find libruby/libpythonengine on macOS\\r\\n- ✔️ [#666]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/666 ), Test SDK CLI from installers from another C++ CI run\\r\\n- ✔️ [#667]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/667 ), Redo app build caching\\r\\n- ✔️ [#676]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/676 ), 1.7.0 rc2 fixes\\r\\n- ✔️ [#677]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/677 ), Add help menu item to debug webgl issues\\r\\n\\r\\n**Total Open Issues: 135** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #612, #615, #620, #633, #649, #656, #658, #659, #668, #669, #670, #671, #672)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149102712","name":"OpenStudioApplication-1.7.0+b070178884-macOS10.15-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-macOS10.15-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149102809","name":"OpenStudioApplication-1.7.0+b070178884-macOS10.15-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-macOS10.15-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149104959","name":"OpenStudioApplication-1.7.0+b070178884-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149105258","name":"OpenStudioApplication-1.7.0+b070178884-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149101768","name":"OpenStudioApplication-1.7.0+b070178884-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149101797","name":"OpenStudioApplication-1.7.0+b070178884-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149101896","name":"OpenStudioApplication-1.7.0+b070178884-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149101911","name":"OpenStudioApplication-1.7.0+b070178884-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149110226","name":"OpenStudioApplication-1.7.0+b070178884-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149110247","name":"OpenStudioApplication-1.7.0+b070178884-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Windows.zip"}]},{"name":"v1.7.0-rc2","tag_name":"v1.7.0-rc2","published_at":"2024-01-22T14:13:22Z","prerelease":true,"body":"## What\'s Changed\\r\\n* Fix the crash in schedules view by [@macumber](https://github.com/macumber) in [#614](https://github.com/openstudiocoalition/OpenStudioApplication/pull/614)\\r\\n* Add search bar to OSCollapsibleItemList by [@macumber](https://github.com/macumber) in [#618](https://github.com/openstudiocoalition/OpenStudioApplication/pull/618)\\r\\n* Fix MacOS CI by [@macumber](https://github.com/macumber) in [#624](https://github.com/openstudiocoalition/OpenStudioApplication/pull/624)\\r\\n* Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter by [@jmarrec](https://github.com/jmarrec) in [#621](https://github.com/openstudiocoalition/OpenStudioApplication/pull/621)\\r\\n* Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab by [@jmarrec](https://github.com/jmarrec) in [#622](https://github.com/openstudiocoalition/OpenStudioApplication/pull/622)\\r\\n* Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency by [@jmarrec](https://github.com/jmarrec) in [#623](https://github.com/openstudiocoalition/OpenStudioApplication/pull/623)\\r\\n* Update to OpenStudio SDK 3.7.0-alpha (latest nightly build) by [@jmarrec](https://github.com/jmarrec) in [#627](https://github.com/openstudiocoalition/OpenStudioApplication/pull/627)\\r\\n* Geometry Preview refactor - separate into several files, allow running in browser directly by [@jmarrec](https://github.com/jmarrec) in [#628](https://github.com/openstudiocoalition/OpenStudioApplication/pull/628)\\r\\n* New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces by [@jmarrec](https://github.com/jmarrec) in [#630](https://github.com/openstudiocoalition/OpenStudioApplication/pull/630)\\r\\n* Update variables layout by [@macumber](https://github.com/macumber) in [#631](https://github.com/openstudiocoalition/OpenStudioApplication/pull/631)\\r\\n* Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official by [@jmarrec](https://github.com/jmarrec) in [#635](https://github.com/openstudiocoalition/OpenStudioApplication/pull/635)\\r\\n* Update to OpenStudio 3.7.0-rc1 by [@jmarrec](https://github.com/jmarrec) in [#636](https://github.com/openstudiocoalition/OpenStudioApplication/pull/636)\\r\\n* Disable TLS_VERIFY for conan cmake for windows CI runner by [@jmarrec](https://github.com/jmarrec) in [#637](https://github.com/openstudiocoalition/OpenStudioApplication/pull/637)\\r\\n* Fix #638 - Make links clickable for measure descriptions by [@jmarrec](https://github.com/jmarrec) in [#639](https://github.com/openstudiocoalition/OpenStudioApplication/pull/639)\\r\\n* Update to OpenStudio v3.7.0 by [@macumber](https://github.com/macumber) in [#644](https://github.com/openstudiocoalition/OpenStudioApplication/pull/644)\\r\\n* Install the OpenStudio Results measure as a backup to the BCL by [@macumber](https://github.com/macumber) in [#642](https://github.com/openstudiocoalition/OpenStudioApplication/pull/642)\\r\\n* Update the application version by [@macumber](https://github.com/macumber) in [#645](https://github.com/openstudiocoalition/OpenStudioApplication/pull/645)\\r\\n* Update OSM versions to 3.7.0 by [@macumber](https://github.com/macumber) in [#648](https://github.com/openstudiocoalition/OpenStudioApplication/pull/648)\\r\\n* Fix bug when cloning a story with windows by [@macumber](https://github.com/macumber) in [#643](https://github.com/openstudiocoalition/OpenStudioApplication/pull/643)\\r\\n* Use the GitHub hosted macos-13 runners by [@macumber](https://github.com/macumber) in [#647](https://github.com/openstudiocoalition/OpenStudioApplication/pull/647)\\r\\n* Update to Qt 6.6.1 by [@macumber](https://github.com/macumber) in [#650](https://github.com/openstudiocoalition/OpenStudioApplication/pull/650)\\r\\n* Add support for Python Measures by [@jmarrec](https://github.com/jmarrec) in [#651](https://github.com/openstudiocoalition/OpenStudioApplication/pull/651)\\r\\n* Re-enable tar.gz for MacOS by [@macumber](https://github.com/macumber) in [#654](https://github.com/openstudiocoalition/OpenStudioApplication/pull/654)\\r\\n* Update mechanical ventilation outdoor air method combo box by [@eringold](https://github.com/eringold) in [#646](https://github.com/openstudiocoalition/OpenStudioApplication/pull/646)\\r\\n* Support new CLI output by [@macumber](https://github.com/macumber) in [#662](https://github.com/openstudiocoalition/OpenStudioApplication/pull/662)\\r\\n* Test SDK CLI from installers from another C++ CI run by [@jmarrec](https://github.com/jmarrec) in [#666](https://github.com/openstudiocoalition/OpenStudioApplication/pull/666)\\r\\n* #657 - Properly find libruby/libpythonengine on macOS by [@jmarrec](https://github.com/jmarrec) in [#664](https://github.com/openstudiocoalition/OpenStudioApplication/pull/664)\\r\\n* Redo app build caching by [@jmarrec](https://github.com/jmarrec) in [#667](https://github.com/openstudiocoalition/OpenStudioApplication/pull/667)\\r\\n* Bad workaround for #659 by [@jmarrec](https://github.com/jmarrec) in [#663](https://github.com/openstudiocoalition/OpenStudioApplication/pull/663)\\r\\n* 1.7.0 rc2 fixes by [@jmarrec](https://github.com/jmarrec) in [#676](https://github.com/openstudiocoalition/OpenStudioApplication/pull/676)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.6.0...v1.7.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.6.0...v1.7.0)-rc2\\n\\n## Changelog\\n\\n\\n**Date Range: 2023-06-06** (v1.6.0) - **2024-01-22:**\\n\\n**New Issues: 33**\\n\\n**Closed Issues: 30**\\n\\n**Accepted Pull Requests: 32**\\n\\n**Total Open Issues: 136**\\n\\n**Total Open Pull Requests: 3**\\n\\n\\n
\\n\\n Click to see details\\n\\n**Closed Issues: 30**\\n- ➕ [#238]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/238 ), Possible option of a search icon in the output variable tab\\n- ➕ [#284]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/284 ), Have a search icon in the right-hand pane.\\n- ✔️ [#314]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/314 ), Inspector dialog allows setting invalid object names\\n- ✔️ [#332]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/332 ), Making a copy of some measures crushes the app\\n- ➕ [#482]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/482 ), Adjust Policy for Swimming Pool to hide Pool Water In/Outlet Nodes (+ icon)\\n- ✔️ [#554]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/554 ), Openstudio application crashes after clicking on thermal zone tab\\n- ✔️ [#560]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/560 ), HVAC tab for VRF does not zoom\\n- ➕ [#562]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/562 ), Search Function Request for User Interface in \\"My Model\\" tab and \\"Library\\" tab especially for HVAC tab\\n- ✔️ [#602]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/602 ), OpenStudioApplication 1.6.0 - Release Checklist #507 \\n- ✔️ [#605]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/605 ), v1.6.0-rc1 Testing: Call for help from the community\\n- ✔️ [#613]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/613 ), Crashes with assigning Summer/Winter Schedule\\n- ✔️ [#616]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/616 ), OSM geometry rendering doesn\'t reflect space origins (but IDF does)\\n- ✔️ [#617]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/617 ), Can\'t find any file in the online BCL \\n- ✔️ [#619]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/619 ), Cannot find open studio results measure (msg when app launches & issue when running a simulation) \\n- ➕ [#625]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/625 ), Refactor HVACSystemsController to hide controls by default and enable them only when needed\\n- ➕ [#626]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/626 ), Redo the layout of the new Output:Variable filter capability\\n- ✔️ [#632]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/632 ), Window and door components are not placing on geometry in floorspace.js\\n- ✔️ [#634]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/634 ), Viewing HVAC Systems Control view resets Controller:MechanicalVentilation System Outdoor Air Method\\n- ➕ [#638]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/638 ), Make links clickable in measure descriptions\\n- ✔️ [#640]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/640 ), Unable to find openstudio measures.\\n- ➕ [#641]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/641 ), Bundle OpenStudio Results Measure with installer\\n- ➕ [#653]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/653 ), v1.7.0-rc1 Testing: Call for help from the community\\n- ✔️ [#655]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/655 ), Unknown CMake command \\"conan_check\\" ?\\n- ✔️ [#657]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/657 ), Can\'t run Python measure on Mac M1\\n- ➕ [#660]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/660 ), Better feedback from measures using new CLI\\n- ✔️ [#661]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/661 ), Crash when using OS:GroundHeatExchanger:HorizontalTrench\\n- ➕ [#665]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/665 ), Add CI test to automatically install OSApp and run example workflow\\n- ✔️ [#673]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/673 ), RPATH broken for OpenStudioApplication 1.7.0-rc2 on Ubuntu\\n- ✔️ [#674]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/674 ), OpenStudioApplication 1.7.0-rc2: cannot load qtwebengine (geometry preview / results tabs)\\n- ✔️ [#675]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/675 ), Chromium debug fails\\n\\n**Accepted Pull Requests: 32**\\n- ✔️ [#611]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/611 ), Merge for 1.6.0 release\\n- ✔️ [#614]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/614 ), Fix the crash in schedules view\\n- ➕ [#618]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/618 ), Add search bar to OSCollapsibleItemList\\n- ➕ [#621]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/621 ), Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter\\n- ➕ [#622]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/622 ), Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab\\n- ➕ [#623]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/623 ), Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency\\n- ✔️ [#624]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/624 ), Fix MacOS CI\\n- ✔️ [#627]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/627 ), Update to OpenStudio SDK 3.7.0-alpha (latest nightly build)\\n- ➕ [#628]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/628 ), Geometry Preview refactor - separate into several files, allow running in browser directly\\n- ➕ [#629]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/629 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\n- ✔️ [#630]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/630 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\n- ✔️ [#631]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/631 ), Update variables layout\\n- ✔️ [#635]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/635 ), Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official\\n- ✔️ [#636]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/636 ), Update to OpenStudio 3.7.0-rc1\\n- ✔️ [#637]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/637 ), Disable TLS_VERIFY for conan cmake for windows CI runner\\n- ➕ [#639]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/639 ), Fix #638 - Make links clickable for measure descriptions\\n- ✔️ [#642]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/642 ), Install the OpenStudio Results measure as a backup to the BCL\\n- ✔️ [#643]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/643 ), Fix bug when cloning a story with windows\\n- ✔️ [#644]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/644 ), Update to OpenStudio v3.7.0\\n- ✔️ [#645]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/645 ), Update the application version\\n- ✔️ [#646]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/646 ), Update mechanical ventilation outdoor air method combo box\\n- ✔️ [#647]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/647 ), Use the GitHub hosted macos-13 runners\\n- ✔️ [#648]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/648 ), Update OSM versions to 3.7.0\\n- ✔️ [#650]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/650 ), Update to Qt 6.6.1\\n- ✔️ [#651]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/651 ), Add support for Python Measures\\n- ✔️ [#654]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/654 ), Re-enable tar.gz for MacOS\\n- ✔️ [#662]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/662 ), Support new CLI output\\n- ✔️ [#663]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/663 ), Bad workaround for #659\\n- ✔️ [#664]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/664 ), #657 - Properly find libruby/libpythonengine on macOS\\n- ✔️ [#666]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/666 ), Test SDK CLI from installers from another C++ CI run\\n- ✔️ [#667]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/667 ), Redo app build caching\\n- ✔️ [#676]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/676 ), 1.7.0 rc2 fixes\\n\\n**Total Open Issues: 136** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #590, #612, #615, #620, #633, #649, #656, #658, #659, #668, #669, #670, #671, #672)\\n\\n**Total Open Pull Requests: 3** (#236, #470, #652)\\n\\n
\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147091352","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-macOS10.15-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-macOS10.15-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147091385","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-macOS10.15-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-macOS10.15-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147093513","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147093811","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147086094","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147086131","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147086178","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147086214","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147090181","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147090200","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Windows.zip"}]},{"name":"v1.7.0-rc1","tag_name":"v1.7.0-rc1","published_at":"2023-12-25T04:55:21Z","prerelease":true,"body":"The OpenStudio Coalition is proud to release the first release candidate for OpenStudio Application 1.7.0, which has updates to OpenStudio SDK 3.7.0, EnergyPlus 23.2.0.\\r\\n\\r\\nAs a reminder we have strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education. All this has been funded by founding OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). To continue our efforts and provide additional support and training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## Testing: Call for help from the community\\r\\n\\r\\n**Please take a few minutes of your time to help us test this Release candidate by going to [this issue](https://github.com/openstudiocoalition/OpenStudioApplication/issues/653)**\\r\\n\\r\\n## What\'s Changed\\r\\n\\r\\n* Merge develop to master for 1.5.0 release by [@macumber](https://github.com/macumber) in [#589](https://github.com/openstudiocoalition/OpenStudioApplication/pull/589)\\r\\n* Send tab name instead of tab index and fix CORS issue by [@macumber](https://github.com/macumber) in [#607](https://github.com/openstudiocoalition/OpenStudioApplication/pull/607)\\r\\n* Don\'t crash if LocalBCL is corrupt by [@macumber](https://github.com/macumber) in [#609](https://github.com/openstudiocoalition/OpenStudioApplication/pull/609)\\r\\n* Update to OS 3.6.1 by [@macumber](https://github.com/macumber) in [#610](https://github.com/openstudiocoalition/OpenStudioApplication/pull/610)\\r\\n* Merge for 1.6.0 release by [@macumber](https://github.com/macumber) in [#611](https://github.com/openstudiocoalition/OpenStudioApplication/pull/611)\\r\\n* Fix the crash in schedules view by [@macumber](https://github.com/macumber) in [#614](https://github.com/openstudiocoalition/OpenStudioApplication/pull/614)\\r\\n* Add search bar to OSCollapsibleItemList by [@macumber](https://github.com/macumber) in [#618](https://github.com/openstudiocoalition/OpenStudioApplication/pull/618)\\r\\n* Fix MacOS CI by [@macumber](https://github.com/macumber) in [#624](https://github.com/openstudiocoalition/OpenStudioApplication/pull/624)\\r\\n* Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter by [@jmarrec](https://github.com/jmarrec) in [#621](https://github.com/openstudiocoalition/OpenStudioApplication/pull/621)\\r\\n* Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab by [@jmarrec](https://github.com/jmarrec) in [#622](https://github.com/openstudiocoalition/OpenStudioApplication/pull/622)\\r\\n* Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency by [@jmarrec](https://github.com/jmarrec) in [#623](https://github.com/openstudiocoalition/OpenStudioApplication/pull/623)\\r\\n* Update to OpenStudio SDK 3.7.0-alpha (latest nightly build) by [@jmarrec](https://github.com/jmarrec) in [#627](https://github.com/openstudiocoalition/OpenStudioApplication/pull/627)\\r\\n* Geometry Preview refactor - separate into several files, allow running in browser directly by [@jmarrec](https://github.com/jmarrec) in [#628](https://github.com/openstudiocoalition/OpenStudioApplication/pull/628)\\r\\n* New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces by [@jmarrec](https://github.com/jmarrec) in [#630](https://github.com/openstudiocoalition/OpenStudioApplication/pull/630)\\r\\n* Update variables layout by [@macumber](https://github.com/macumber) in [#631](https://github.com/openstudiocoalition/OpenStudioApplication/pull/631)\\r\\n* Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official by [@jmarrec](https://github.com/jmarrec) in [#635](https://github.com/openstudiocoalition/OpenStudioApplication/pull/635)\\r\\n* Update to OpenStudio 3.7.0-rc1 by [@jmarrec](https://github.com/jmarrec) in [#636](https://github.com/openstudiocoalition/OpenStudioApplication/pull/636)\\r\\n* Disable TLS_VERIFY for conan cmake for windows CI runner by [@jmarrec](https://github.com/jmarrec) in [#637](https://github.com/openstudiocoalition/OpenStudioApplication/pull/637)\\r\\n* Fix #638 - Make links clickable for measure descriptions by [@jmarrec](https://github.com/jmarrec) in [#639](https://github.com/openstudiocoalition/OpenStudioApplication/pull/639)\\r\\n* Update to OpenStudio v3.7.0 by [@macumber](https://github.com/macumber) in [#644](https://github.com/openstudiocoalition/OpenStudioApplication/pull/644)\\r\\n* Install the OpenStudio Results measure as a backup to the BCL by [@macumber](https://github.com/macumber) in [#642](https://github.com/openstudiocoalition/OpenStudioApplication/pull/642)\\r\\n* Update the application version by [@macumber](https://github.com/macumber) in [#645](https://github.com/openstudiocoalition/OpenStudioApplication/pull/645)\\r\\n* Update OSM versions to 3.7.0 by [@macumber](https://github.com/macumber) in [#648](https://github.com/openstudiocoalition/OpenStudioApplication/pull/648)\\r\\n* Fix bug when cloning a story with windows by [@macumber](https://github.com/macumber) in [#643](https://github.com/openstudiocoalition/OpenStudioApplication/pull/643)\\r\\n* Use the GitHub hosted macos-13 runners by [@macumber](https://github.com/macumber) in [#647](https://github.com/openstudiocoalition/OpenStudioApplication/pull/647)\\r\\n* Update to Qt 6.6.1 by [@macumber](https://github.com/macumber) in [#650](https://github.com/openstudiocoalition/OpenStudioApplication/pull/650)\\r\\n* Add support for Python Measures by [@jmarrec](https://github.com/jmarrec) in [#651](https://github.com/openstudiocoalition/OpenStudioApplication/pull/651)\\r\\n\\r\\n**Full Changelog**: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.6.0-rc1...v1.7.0-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2023-06-06** (v1.6.0) - **2023-12-25:**\\r\\n\\r\\n**New Issues: 17**\\r\\n\\r\\n**Closed Issues: 20**\\r\\n\\r\\n**Accepted Pull Requests: 24**\\r\\n\\r\\n**Total Open Issues: 130**\\r\\n\\r\\n**Total Open Pull Requests: 4**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 20**\\r\\n- ➕ [#238]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/238 ), Possible option of a search icon in the output variable tab\\r\\n- ➕ [#284]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/284 ), Have a search icon in the right-hand pane.\\r\\n- ✔️ [#314]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/314 ), Inspector dialog allows setting invalid object names\\r\\n- ✔️ [#332]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/332 ), Making a copy of some measures crushes the app\\r\\n- ➕ [#482]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/482 ), Adjust Policy for Swimming Pool to hide Pool Water In/Outlet Nodes (+ icon)\\r\\n- ✔️ [#554]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/554 ), Openstudio application crashes after clicking on thermal zone tab\\r\\n- ✔️ [#560]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/560 ), HVAC tab for VRF does not zoom\\r\\n- ➕ [#562]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/562 ), Search Function Request for User Interface in \\"My Model\\" tab and \\"Library\\" tab especially for HVAC tab\\r\\n- ✔️ [#602]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/602 ), OpenStudioApplication 1.6.0 - Release Checklist #507 \\r\\n- ✔️ [#605]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/605 ), v1.6.0-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#613]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/613 ), Crashes with assigning Summer/Winter Schedule\\r\\n- ✔️ [#616]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/616 ), OSM geometry rendering doesn\'t reflect space origins (but IDF does)\\r\\n- ✔️ [#617]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/617 ), Can\'t find any file in the online BCL \\r\\n- ✔️ [#619]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/619 ), Cannot find open studio results measure (msg when app launches & issue when running a simulation) \\r\\n- ➕ [#625]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/625 ), Refactor HVACSystemsController to hide controls by default and enable them only when needed\\r\\n- ➕ [#626]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/626 ), Redo the layout of the new Output:Variable filter capability\\r\\n- ✔️ [#632]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/632 ), Window and door components are not placing on geometry in floorspace.js\\r\\n- ➕ [#638]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/638 ), Make links clickable in measure descriptions\\r\\n- ✔️ [#640]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/640 ), Unable to find openstudio measures.\\r\\n- ➕ [#641]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/641 ), Bundle OpenStudio Results Measure with installer\\r\\n\\r\\n**Accepted Pull Requests: 24**\\r\\n- ✔️ [#611]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/611 ), Merge for 1.6.0 release\\r\\n- ✔️ [#614]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/614 ), Fix the crash in schedules view\\r\\n- ➕ [#618]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/618 ), Add search bar to OSCollapsibleItemList\\r\\n- ➕ [#621]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/621 ), Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter\\r\\n- ➕ [#622]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/622 ), Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab\\r\\n- ➕ [#623]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/623 ), Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency\\r\\n- ✔️ [#624]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/624 ), Fix MacOS CI\\r\\n- ✔️ [#627]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/627 ), Update to OpenStudio SDK 3.7.0-alpha (latest nightly build)\\r\\n- ➕ [#628]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/628 ), Geometry Preview refactor - separate into several files, allow running in browser directly\\r\\n- ➕ [#629]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/629 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\r\\n- ✔️ [#630]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/630 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\r\\n- ✔️ [#631]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/631 ), Update variables layout\\r\\n- ✔️ [#635]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/635 ), Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official\\r\\n- ✔️ [#636]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/636 ), Update to OpenStudio 3.7.0-rc1\\r\\n- ✔️ [#637]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/637 ), Disable TLS_VERIFY for conan cmake for windows CI runner\\r\\n- ➕ [#639]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/639 ), Fix #638 - Make links clickable for measure descriptions\\r\\n- ✔️ [#642]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/642 ), Install the OpenStudio Results measure as a backup to the BCL\\r\\n- ✔️ [#643]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/643 ), Fix bug when cloning a story with windows\\r\\n- ✔️ [#644]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/644 ), Update to OpenStudio v3.7.0\\r\\n- ✔️ [#645]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/645 ), Update the application version\\r\\n- ✔️ [#647]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/647 ), Use the GitHub hosted macos-13 runners\\r\\n- ✔️ [#648]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/648 ), Update OSM versions to 3.7.0\\r\\n- ✔️ [#650]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/650 ), Update to Qt 6.6.1\\r\\n- ✔️ [#651]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/651 ), Add support for Python Measures\\r\\n\\r\\n**Total Open Issues: 130** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #590, #612, #615, #620, #633, #634, #649, #653)\\r\\n\\r\\n**Total Open Pull Requests: 4** (#236, #470, #646, #652)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142339951","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-macOS10.15-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-macOS10.15-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142345531","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142345764","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142337815","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142337830","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142337770","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142337776","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142391482","name":"OpenStudioApplication-1.7.0-rc1+fc6dd76158-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2Bfc6dd76158-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142391570","name":"OpenStudioApplication-1.7.0-rc1+fc6dd76158-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2Bfc6dd76158-Windows.zip"}]}]');function O8(e){return(0,rA.ZP)("MuiListItemIcon",e)}(0,rl.Z)("MuiListItemIcon",["root","alignItemsFlexStart"]);let O5=["className"],O9=e=>{let{alignItems:t,classes:n}=e;return(0,rd.Z)({root:["root","flex-start"===t&&"alignItemsFlexStart"]},O8,n)},Te=(0,rh.ZP)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,"flex-start"===n.alignItems&&t.alignItemsFlexStart]}})(({theme:e,ownerState:t})=>(0,n4.Z)({minWidth:56,color:(e.vars||e).palette.action.active,flexShrink:0,display:"inline-flex"},"flex-start"===t.alignItems&&{marginTop:8})),Tt=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListItemIcon"}),{className:r}=n,i=(0,n3.Z)(n,O5),o=e0.useContext(l2),a=(0,n4.Z)({},n,{alignItems:o.alignItems}),s=O9(a);return(0,eJ.jsx)(Te,(0,n4.Z)({className:(0,n6.Z)(s.root,r),ownerState:a,ref:t},i))});function Tn(e){return(0,rA.ZP)("MuiCardHeader",e)}let Tr=(0,rl.Z)("MuiCardHeader",["root","avatar","action","content","title","subheader"]),Ti=["action","avatar","className","component","disableTypography","subheader","subheaderTypographyProps","title","titleTypographyProps"],To=e=>{let{classes:t}=e;return(0,rd.Z)({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},Tn,t)},Ta=(0,rh.ZP)("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(e,t)=>(0,n4.Z)({[`& .${Tr.title}`]:t.title,[`& .${Tr.subheader}`]:t.subheader},t.root)})({display:"flex",alignItems:"center",padding:16}),Ts=(0,rh.ZP)("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(e,t)=>t.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),Tl=(0,rh.ZP)("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(e,t)=>t.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),Tu=(0,rh.ZP)("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(e,t)=>t.content})({flex:"1 1 auto"}),Tc=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiCardHeader"}),{action:r,avatar:i,className:o,component:a="div",disableTypography:s=!1,subheader:l,subheaderTypographyProps:u,title:c,titleTypographyProps:p}=n,d=(0,n3.Z)(n,Ti),h=(0,n4.Z)({},n,{component:a,disableTypography:s}),f=To(h),m=c;null!=m&&m.type!==rz&&!s&&(m=(0,eJ.jsx)(rz,(0,n4.Z)({variant:i?"body2":"h5",className:f.title,component:"span",display:"block"},p,{children:m})));let g=l;return null!=g&&g.type!==rz&&!s&&(g=(0,eJ.jsx)(rz,(0,n4.Z)({variant:i?"body2":"body1",className:f.subheader,color:"text.secondary",component:"span",display:"block"},u,{children:g}))),(0,eJ.jsxs)(Ta,(0,n4.Z)({className:(0,n6.Z)(f.root,o),as:a,ref:t,ownerState:h},d,{children:[i&&(0,eJ.jsx)(Ts,{className:f.avatar,ownerState:h,children:i}),(0,eJ.jsxs)(Tu,{className:f.content,ownerState:h,children:[m,g]}),r&&(0,eJ.jsx)(Tl,{className:f.action,ownerState:h,children:r})]}))});function Tp(e){return(0,rA.ZP)("MuiDivider",e)}(0,rl.Z)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]);let Td=["absolute","children","className","component","flexItem","light","orientation","role","textAlign","variant"],Th=e=>{let{absolute:t,children:n,classes:r,flexItem:i,light:o,orientation:a,textAlign:s,variant:l}=e;return(0,rd.Z)({root:["root",t&&"absolute",l,o&&"light","vertical"===a&&"vertical",i&&"flexItem",n&&"withChildren",n&&"vertical"===a&&"withChildrenVertical","right"===s&&"vertical"!==a&&"textAlignRight","left"===s&&"vertical"!==a&&"textAlignLeft"],wrapper:["wrapper","vertical"===a&&"wrapperVertical"]},Tp,r)},Tf=(0,rh.ZP)("div",{name:"MuiDivider",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],n.light&&t.light,"vertical"===n.orientation&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,n.children&&"vertical"===n.orientation&&t.withChildrenVertical,"right"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignRight,"left"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignLeft]}})(({theme:e,ownerState:t})=>(0,n4.Z)({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(e.vars||e).palette.divider,borderBottomWidth:"thin"},t.absolute&&{position:"absolute",bottom:0,left:0,width:"100%"},t.light&&{borderColor:e.vars?`rgba(${e.vars.palette.dividerChannel} / 0.08)`:(0,rm.alpha)(e.palette.divider,.08)},"inset"===t.variant&&{marginLeft:72},"middle"===t.variant&&"horizontal"===t.orientation&&{marginLeft:e.spacing(2),marginRight:e.spacing(2)},"middle"===t.variant&&"vertical"===t.orientation&&{marginTop:e.spacing(1),marginBottom:e.spacing(1)},"vertical"===t.orientation&&{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"},t.flexItem&&{alignSelf:"stretch",height:"auto"}),({ownerState:e})=>(0,n4.Z)({},e.children&&{display:"flex",whiteSpace:"nowrap",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}),({theme:e,ownerState:t})=>(0,n4.Z)({},t.children&&"vertical"!==t.orientation&&{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:"inherit"}}),({theme:e,ownerState:t})=>(0,n4.Z)({},t.children&&"vertical"===t.orientation&&{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:"inherit"}}),({ownerState:e})=>(0,n4.Z)({},"right"===e.textAlign&&"vertical"!==e.orientation&&{"&::before":{width:"90%"},"&::after":{width:"10%"}},"left"===e.textAlign&&"vertical"!==e.orientation&&{"&::before":{width:"10%"},"&::after":{width:"90%"}})),Tm=(0,rh.ZP)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.wrapper,"vertical"===n.orientation&&t.wrapperVertical]}})(({theme:e,ownerState:t})=>(0,n4.Z)({display:"inline-block",paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`},"vertical"===t.orientation&&{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`})),Tg=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDivider"}),{absolute:r=!1,children:i,className:o,component:a=i?"div":"hr",flexItem:s=!1,light:l=!1,orientation:u="horizontal",role:c="hr"!==a?"separator":void 0,textAlign:p="center",variant:d="fullWidth"}=n,h=(0,n3.Z)(n,Td),f=(0,n4.Z)({},n,{absolute:r,component:a,flexItem:s,light:l,orientation:u,role:c,textAlign:p,variant:d}),m=Th(f);return(0,eJ.jsx)(Tf,(0,n4.Z)({as:a,className:(0,n6.Z)(m.root,o),role:c,ref:t,ownerState:f},h,{children:i?(0,eJ.jsx)(Tm,{className:m.wrapper,ownerState:f,children:i}):null}))});Tg.muiSkipListHighlight=!0;function TA(e){return(0,rA.ZP)("MuiListItem",e)}let Tb=(0,rl.Z)("MuiListItem",["root","container","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","padding","button","secondaryAction","selected"]),Ty=(0,rl.Z)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]);function Tv(e){return(0,rA.ZP)("MuiListItemSecondaryAction",e)}(0,rl.Z)("MuiListItemSecondaryAction",["root","disableGutters"]);let TS=["className"],Tw=e=>{let{disableGutters:t,classes:n}=e;return(0,rd.Z)({root:["root",t&&"disableGutters"]},Tv,n)},TE=(0,rh.ZP)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.disableGutters&&t.disableGutters]}})(({ownerState:e})=>(0,n4.Z)({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"},e.disableGutters&&{right:0})),TO=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListItemSecondaryAction"}),{className:r}=n,i=(0,n3.Z)(n,TS),o=e0.useContext(l2),a=(0,n4.Z)({},n,{disableGutters:o.disableGutters}),s=Tw(a);return(0,eJ.jsx)(TE,(0,n4.Z)({className:(0,n6.Z)(s.root,r),ownerState:a,ref:t},i))});TO.muiName="ListItemSecondaryAction";let TT=["className"],TC=["alignItems","autoFocus","button","children","className","component","components","componentsProps","ContainerComponent","ContainerProps","dense","disabled","disableGutters","disablePadding","divider","focusVisibleClassName","secondaryAction","selected","slotProps","slots"],Tx=e=>{let{alignItems:t,button:n,classes:r,dense:i,disabled:o,disableGutters:a,disablePadding:s,divider:l,hasSecondaryAction:u,selected:c}=e;return(0,rd.Z)({root:["root",i&&"dense",!a&&"gutters",!s&&"padding",l&&"divider",o&&"disabled",n&&"button","flex-start"===t&&"alignItemsFlexStart",u&&"secondaryAction",c&&"selected"],container:["container"]},TA,r)},TI=(0,rh.ZP)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.dense&&t.dense,"flex-start"===n.alignItems&&t.alignItemsFlexStart,n.divider&&t.divider,!n.disableGutters&&t.gutters,!n.disablePadding&&t.padding,n.button&&t.button,n.hasSecondaryAction&&t.secondaryAction]}})(({theme:e,ownerState:t})=>(0,n4.Z)({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left"},!t.disablePadding&&(0,n4.Z)({paddingTop:8,paddingBottom:8},t.dense&&{paddingTop:4,paddingBottom:4},!t.disableGutters&&{paddingLeft:16,paddingRight:16},!!t.secondaryAction&&{paddingRight:48}),!!t.secondaryAction&&{[`& > .${Ty.root}`]:{paddingRight:48}},{[`&.${Tb.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Tb.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${Tb.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${Tb.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}},"flex-start"===t.alignItems&&{alignItems:"flex-start"},t.divider&&{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"},t.button&&{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Tb.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity)}}},t.hasSecondaryAction&&{paddingRight:48})),Tk=(0,rh.ZP)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(e,t)=>t.container})({position:"relative"}),T_=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListItem"}),{alignItems:r="center",autoFocus:i=!1,button:o=!1,children:a,className:s,component:l,components:u={},componentsProps:c={},ContainerComponent:p="li",ContainerProps:{className:d}={},dense:h=!1,disabled:f=!1,disableGutters:m=!1,disablePadding:g=!1,divider:A=!1,focusVisibleClassName:b,secondaryAction:y,selected:v=!1,slotProps:S={},slots:w={}}=n,E=(0,n3.Z)(n.ContainerProps,TT),O=(0,n3.Z)(n,TC),T=e0.useContext(l2),C=e0.useMemo(()=>({dense:h||T.dense||!1,alignItems:r,disableGutters:m}),[r,T.dense,h,m]),x=e0.useRef(null);(0,sH.Z)(()=>{i&&x.current&&x.current.focus()},[i]);let I=e0.Children.toArray(a),k=I.length&&(0,lN.Z)(I[I.length-1],["ListItemSecondaryAction"]),_=(0,n4.Z)({},n,{alignItems:r,autoFocus:i,button:o,dense:C.dense,disabled:f,disableGutters:m,disablePadding:g,divider:A,hasSecondaryAction:k,selected:v}),R=Tx(_),P=(0,rV.Z)(x,t),N=w.root||u.Root||TI,D=S.root||c.root||{},M=(0,n4.Z)({className:(0,n6.Z)(R.root,D.className,s),disabled:f},O),L=l||"li";return(o&&(M.component=l||"div",M.focusVisibleClassName=(0,n6.Z)(Tb.focusVisible,b),L=ip),k)?(L=M.component||l?L:"div","li"===p&&("li"===L?L="div":"li"===M.component&&(M.component="div")),(0,eJ.jsx)(l2.Provider,{value:C,children:(0,eJ.jsxs)(Tk,(0,n4.Z)({as:p,className:(0,n6.Z)(R.container,d),ref:P,ownerState:_},E,{children:[(0,eJ.jsx)(N,(0,n4.Z)({},D,!sI(N)&&{as:L,ownerState:(0,n4.Z)({},_,D.ownerState)},M,{children:I})),I.pop()]}))})):(0,eJ.jsx)(l2.Provider,{value:C,children:(0,eJ.jsxs)(N,(0,n4.Z)({},D,{as:L,ref:P},!sI(N)&&{ownerState:(0,n4.Z)({},_,D.ownerState)},M,{children:[I,y&&(0,eJ.jsx)(TO,{children:y})]}))})});function TR(e){return(0,rA.ZP)("MuiListItemText",e)}let TP=(0,rl.Z)("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),TN=["children","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps"],TD=e=>{let{classes:t,inset:n,primary:r,secondary:i,dense:o}=e;return(0,rd.Z)({root:["root",n&&"inset",o&&"dense",r&&i&&"multiline"],primary:["primary"],secondary:["secondary"]},TR,t)},TM=(0,rh.ZP)("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${TP.primary}`]:t.primary},{[`& .${TP.secondary}`]:t.secondary},t.root,n.inset&&t.inset,n.primary&&n.secondary&&t.multiline,n.dense&&t.dense]}})(({ownerState:e})=>(0,n4.Z)({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4},e.primary&&e.secondary&&{marginTop:6,marginBottom:6},e.inset&&{paddingLeft:56})),TL=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListItemText"}),{children:r,className:i,disableTypography:o=!1,inset:a=!1,primary:s,primaryTypographyProps:l,secondary:u,secondaryTypographyProps:c}=n,p=(0,n3.Z)(n,TN),{dense:d}=e0.useContext(l2),h=null!=s?s:r,f=u,m=(0,n4.Z)({},n,{disableTypography:o,inset:a,primary:!!h,secondary:!!f,dense:d}),g=TD(m);return null!=h&&h.type!==rz&&!o&&(h=(0,eJ.jsx)(rz,(0,n4.Z)({variant:d?"body2":"body1",className:g.primary,component:null!=l&&l.variant?void 0:"span",display:"block"},l,{children:h}))),null!=f&&f.type!==rz&&!o&&(f=(0,eJ.jsx)(rz,(0,n4.Z)({variant:"body2",className:g.secondary,color:"text.secondary",display:"block"},c,{children:f}))),(0,eJ.jsxs)(TM,(0,n4.Z)({className:(0,n6.Z)(g.root,i),ownerState:m,ref:t},p,{children:[h,f]}))});function TB(e){return(0,rA.ZP)("MuiLink",e)}let TF=(0,rl.Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]);var TU=n("54844");let Tj={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},Tz=e=>Tj[e]||e,TH=({theme:e,ownerState:t})=>{let n=Tz(t.color),r=(0,TU.DW)(e,`palette.${n}`,!1)||t.color,i=(0,TU.DW)(e,`palette.${n}Channel`);return"vars"in e&&i?`rgba(${i} / 0.4)`:(0,rm.alpha)(r,.4)},TZ=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],TV=e=>{let{classes:t,component:n,focusVisible:r,underline:i}=e,o={root:["root",`underline${(0,rN.Z)(i)}`,"button"===n&&"button",r&&"focusVisible"]};return(0,rd.Z)(o,TB,t)},TG=(0,rh.ZP)(rz,{name:"MuiLink",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`underline${(0,rN.Z)(n.underline)}`],"button"===n.component&&t.button]}})(({theme:e,ownerState:t})=>(0,n4.Z)({},"none"===t.underline&&{textDecoration:"none"},"hover"===t.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===t.underline&&(0,n4.Z)({textDecoration:"underline"},"inherit"!==t.color&&{textDecorationColor:TH({theme:e,ownerState:t})},{"&:hover":{textDecorationColor:"inherit"}}),"button"===t.component&&{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${TF.focusVisible}`]:{outline:"auto"}})),TW=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiLink"}),{className:r,color:i="primary",component:o="a",onBlur:a,onFocus:s,TypographyClasses:l,underline:u="always",variant:c="inherit",sx:p}=n,d=(0,n3.Z)(n,TZ),{isFocusVisibleRef:h,onBlur:f,onFocus:m,ref:g}=(0,rW.Z)(),[A,b]=e0.useState(!1),y=(0,rV.Z)(t,g),v=(0,n4.Z)({},n,{color:i,component:o,focusVisible:A,underline:u,variant:c}),S=TV(v);return(0,eJ.jsx)(TG,(0,n4.Z)({color:i,className:(0,n6.Z)(S.root,r),classes:l,component:o,onBlur:e=>{f(e),!1===h.current&&b(!1),a&&a(e)},onFocus:e=>{m(e),!0===h.current&&b(!0),s&&s(e)},ref:y,ownerState:v,variant:c,sx:[...Object.keys(Tj).includes(i)?[]:[{color:i}],...Array.isArray(p)?p:[p]]},d))});function TQ(e){return(0,rA.ZP)("MuiCardActions",e)}(0,rl.Z)("MuiCardActions",["root","spacing"]);let Tq=["disableSpacing","className"],TK=e=>{let{classes:t,disableSpacing:n}=e;return(0,rd.Z)({root:["root",!n&&"spacing"]},TQ,t)},TY=(0,rh.ZP)("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})(({ownerState:e})=>(0,n4.Z)({display:"flex",alignItems:"center",padding:8},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),TX=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiCardActions"}),{disableSpacing:r=!1,className:i}=n,o=(0,n3.Z)(n,Tq),a=(0,n4.Z)({},n,{disableSpacing:r}),s=TK(a);return(0,eJ.jsx)(TY,(0,n4.Z)({className:(0,n6.Z)(s.root,i),ownerState:a,ref:t},o))});function TJ(){}function T$(){}function T0(e){let t=[],n=String(e||""),r=n.indexOf(","),i=0,o=!1;for(;!o;){-1===r&&(r=n.length,o=!0);let e=n.slice(i,r).trim();(e||!o)&&t.push(e),i=r+1,r=n.indexOf(",",i)}return t}function T1(e,t){let n=t||{};return(""===e[e.length-1]?[...e,""]:e).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}let T2=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,T4=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,T3={};function T6(e,t){return((t||T3).jsx?T4:T2).test(e)}let T7=/[ \t\n\f\r]/g;function T8(e){return""===e.replace(T7,"")}class T5{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}}function T9(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new T5(n,r,t)}function Ce(e){return e.toLowerCase()}T5.prototype.normal={},T5.prototype.property={},T5.prototype.space=void 0;class Ct{constructor(e,t){this.attribute=t,this.property=e}}Ct.prototype.attribute="",Ct.prototype.booleanish=!1,Ct.prototype.boolean=!1,Ct.prototype.commaOrSpaceSeparated=!1,Ct.prototype.commaSeparated=!1,Ct.prototype.defined=!1,Ct.prototype.mustUseProperty=!1,Ct.prototype.number=!1,Ct.prototype.overloadedBoolean=!1,Ct.prototype.property="",Ct.prototype.spaceSeparated=!1,Ct.prototype.space=void 0;let Cn=0,Cr=Cc(),Ci=Cc(),Co=Cc(),Ca=Cc(),Cs=Cc(),Cl=Cc(),Cu=Cc();function Cc(){return 2**++Cn}let Cp=Object.keys(eY);class Cd extends Ct{constructor(e,t,n,r){let i=-1;if(super(e,t),function(e,t,n){n&&(e[t]=n)}(this,"space",r),"number"==typeof n)for(;++i"role"===t?t:"aria-"+t.slice(4).toLowerCase()});function Cg(e,t){return t in e?e[t]:t}function CA(e,t){return Cg(e,t.toLowerCase())}let Cb=Cf({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Cl,acceptCharset:Cs,accessKey:Cs,action:null,allow:null,allowFullScreen:Cr,allowPaymentRequest:Cr,allowUserMedia:Cr,alpha:Cr,alt:null,as:null,async:Cr,autoCapitalize:null,autoComplete:Cs,autoFocus:Cr,autoPlay:Cr,blocking:Cs,capture:null,charSet:null,checked:Cr,cite:null,className:Cs,closedBy:null,colorSpace:null,cols:Ca,colSpan:Ca,command:null,commandFor:null,content:null,contentEditable:Ci,controls:Cr,controlsList:Cs,coords:Ca|Cl,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Cr,defer:Cr,dir:null,dirName:null,disabled:Cr,download:Co,draggable:Ci,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Cr,formTarget:null,headers:Cs,height:Ca,hidden:Co,high:Ca,href:null,hrefLang:null,htmlFor:Cs,httpEquiv:Cs,id:null,imageSizes:null,imageSrcSet:null,inert:Cr,inputMode:null,integrity:null,is:null,isMap:Cr,itemId:null,itemProp:Cs,itemRef:Cs,itemScope:Cr,itemType:Cs,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Cr,low:Ca,manifest:null,max:null,maxLength:Ca,media:null,method:null,min:null,minLength:Ca,multiple:Cr,muted:Cr,name:null,nonce:null,noModule:Cr,noValidate:Cr,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Cr,optimum:Ca,pattern:null,ping:Cs,placeholder:null,playsInline:Cr,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Cr,referrerPolicy:null,rel:Cs,required:Cr,reversed:Cr,rows:Ca,rowSpan:Ca,sandbox:Cs,scope:null,scoped:Cr,seamless:Cr,selected:Cr,shadowRootClonable:Cr,shadowRootCustomElementRegistry:Cr,shadowRootDelegatesFocus:Cr,shadowRootMode:null,shadowRootSerializable:Cr,shape:null,size:Ca,sizes:null,slot:null,span:Ca,spellCheck:Ci,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Ca,step:null,style:null,tabIndex:Ca,target:null,title:null,translate:null,type:null,typeMustMatch:Cr,useMap:null,value:Ci,width:Ca,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Cs,axis:null,background:null,bgColor:null,border:Ca,borderColor:null,bottomMargin:Ca,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Cr,declare:Cr,event:null,face:null,frame:null,frameBorder:null,hSpace:Ca,leftMargin:Ca,link:null,longDesc:null,lowSrc:null,marginHeight:Ca,marginWidth:Ca,noResize:Cr,noHref:Cr,noShade:Cr,noWrap:Cr,object:null,profile:null,prompt:null,rev:null,rightMargin:Ca,rules:null,scheme:null,scrolling:Ci,standby:null,summary:null,text:null,topMargin:Ca,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Ca,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Cr,disablePictureInPicture:Cr,disableRemotePlayback:Cr,exportParts:Cl,part:Cs,prefix:null,property:null,results:Ca,security:null,unselectable:null},space:"html",transform:CA}),Cy=Cf({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Cu,accentHeight:Ca,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Ca,amplitude:Ca,arabicForm:null,ascent:Ca,attributeName:null,attributeType:null,azimuth:Ca,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Ca,by:null,calcMode:null,capHeight:Ca,className:Cs,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Ca,diffuseConstant:Ca,direction:null,display:null,dur:null,divisor:Ca,dominantBaseline:null,download:Cr,dx:null,dy:null,edgeMode:null,editable:null,elevation:Ca,enableBackground:null,end:null,event:null,exponent:Ca,externalResourcesRequired:null,fill:null,fillOpacity:Ca,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Cl,g2:Cl,glyphName:Cl,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Ca,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Ca,horizOriginX:Ca,horizOriginY:Ca,id:null,ideographic:Ca,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Ca,k:Ca,k1:Ca,k2:Ca,k3:Ca,k4:Ca,kernelMatrix:Cu,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Ca,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Ca,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Ca,overlineThickness:Ca,paintOrder:null,panose1:null,path:null,pathLength:Ca,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Cs,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Ca,pointsAtY:Ca,pointsAtZ:Ca,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Cu,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Cu,rev:Cu,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Cu,requiredFeatures:Cu,requiredFonts:Cu,requiredFormats:Cu,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Ca,specularExponent:Ca,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Ca,strikethroughThickness:Ca,string:null,stroke:null,strokeDashArray:Cu,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Ca,strokeOpacity:Ca,strokeWidth:null,style:null,surfaceScale:Ca,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Cu,tabIndex:Ca,tableValues:null,target:null,targetX:Ca,targetY:Ca,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Cu,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Ca,underlineThickness:Ca,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Ca,values:null,vAlphabetic:Ca,vMathematical:Ca,vectorEffect:null,vHanging:Ca,vIdeographic:Ca,version:null,vertAdvY:Ca,vertOriginX:Ca,vertOriginY:Ca,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Ca,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Cg}),Cv=Cf({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(e,t)=>"xlink:"+t.slice(5).toLowerCase()}),CS=Cf({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:CA}),Cw=Cf({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(e,t)=>"xml:"+t.slice(3).toLowerCase()}),CE=T9([Cm,Cb,Cv,CS,Cw],"html"),CO=T9([Cm,Cy,Cv,CS,Cw],"svg"),CT=/[A-Z]/g,CC=/-[a-z]/g,Cx=/^data[-\w.:]+$/i;function CI(e,t){let n=Ce(t),r=t,i=Ct;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&Cx.test(t)){if("-"===t.charAt(4)){let e=t.slice(5).replace(CC,C_);r="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!CC.test(e)){let n=e.replace(CT,Ck);"-"!==n.charAt(0)&&(n="-"+n),t="data"+n}}i=Cd}return new i(r,t)}function Ck(e){return"-"+e.toLowerCase()}function C_(e){return e.charAt(1).toUpperCase()}let CR={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};function CP(e){let t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function CN(e){return e.join(" ").trim()}var CD=n("41476");let CM=CB("end"),CL=CB("start");function CB(e){return function(t){let n=t&&t.position&&t.position[e]||{};if("number"==typeof n.line&&n.line>0&&"number"==typeof n.column&&n.column>0)return{line:n.line,column:n.column,offset:"number"==typeof n.offset&&n.offset>-1?n.offset:void 0}}}function CF(e){return e&&"object"==typeof e?"position"in e||"type"in e?Cj(e.position):"start"in e||"end"in e?Cj(e):"line"in e||"column"in e?CU(e):"":""}function CU(e){return Cz(e&&e.line)+":"+Cz(e&&e.column)}function Cj(e){return CU(e&&e.start)+"-"+CU(e&&e.end)}function Cz(e){return e&&"number"==typeof e?e:1}class CH extends Error{constructor(e,t,n){super(),"string"==typeof t&&(n=t,t=void 0);let r="",i={},o=!1;if(t&&(i="line"in t&&"column"in t?{place:t}:"start"in t&&"end"in t?{place:t}:"type"in t?{ancestors:[t],place:t.position}:{...t}),"string"==typeof e?r=e:!i.cause&&e&&(o=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&"string"==typeof n){let e=n.indexOf(":");-1===e?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let a=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=r,this.line=a?a.line:void 0,this.name=CF(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&"string"==typeof i.cause.stack?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}CH.prototype.file="",CH.prototype.name="",CH.prototype.reason="",CH.prototype.message="",CH.prototype.stack="",CH.prototype.column=void 0,CH.prototype.line=void 0,CH.prototype.ancestors=void 0,CH.prototype.cause=void 0,CH.prototype.fatal=void 0,CH.prototype.place=void 0,CH.prototype.ruleId=void 0,CH.prototype.source=void 0;let CZ={}.hasOwnProperty,CV=new Map,CG=/[A-Z]/g,CW=new Set(["table","tbody","thead","tfoot","tr"]),CQ=new Set(["td","th"]),Cq="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function CK(e,t,n){return"element"===t.type?function(e,t,n){let r=e.schema,i=r;"svg"===t.tagName.toLowerCase()&&"html"===r.space&&(i=CO,e.schema=i),e.ancestors.push(t);let o=C$(e,t.tagName,!1),a=function(e,t){let n,r;let i={};for(r in t.properties)if("children"!==r&&CZ.call(t.properties,r)){let o=function(e,t,n){let r=CI(e.schema,t);if(!(null==n||"number"==typeof n&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?T1(n):CN(n)),"style"===r.property){let t="object"==typeof n?n:function(e,t){try{return CD(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};let t=new CH("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw t.file=e.filePath||void 0,t.url=Cq+"#cannot-parse-style-attribute",t}}(e,String(n));return"css"===e.stylePropertyNameCase&&(t=function(e){let t;let n={};for(t in e)CZ.call(e,t)&&(n[function(e){let t=e.replace(CG,C1);return"ms-"===t.slice(0,3)&&(t="-"+t),t}(t)]=e[t]);return n}(t)),["style",t]}return["react"===e.elementAttributeNameCase&&r.space?CR[r.property]||r.property:r.attribute,n]}}(e,r,t.properties[r]);if(o){let[r,a]=o;e.tableCellAlignToStyle&&"align"===r&&"string"==typeof a&&CQ.has(t.tagName)?n=a:i[r]=a}}return n&&((i.style||(i.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=n),i}(e,t),s=CJ(e,t);return CW.has(t.tagName)&&(s=s.filter(function(e){var t;return"string"!=typeof e||!("object"==typeof(t=e)?"text"===t.type&&T8(t.value):T8(t))})),CY(e,a,o,t),CX(a,s),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxFlowExpression"===t.type||"mdxTextExpression"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}C0(e,t.position)}(e,t):"mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type?function(e,t,n){let r=e.schema,i=r;"svg"===t.name&&"html"===r.space&&(i=CO,e.schema=i),e.ancestors.push(t);let o=null===t.name?e.Fragment:C$(e,t.name,!0),a=function(e,t){let n={};for(let r of t.attributes)if("mdxJsxExpressionAttribute"===r.type){if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let o=i.properties[0];o.type,Object.assign(n,e.evaluater.evaluateExpression(o.argument))}else C0(e,t.position)}else{let i;let o=r.name;if(r.value&&"object"==typeof r.value){if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,i=e.evaluater.evaluateExpression(t.expression)}else C0(e,t.position)}else i=null===r.value||r.value;n[o]=i}return n}(e,t),s=CJ(e,t);return CY(e,a,o,t),CX(a,s),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxjsEsm"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);C0(e,t.position)}(e,t):"root"===t.type?function(e,t,n){let r={};return CX(r,CJ(e,t)),e.create(t,e.Fragment,r,n)}(e,t,n):"text"===t.type?function(e,t){return t.value}(e,t):void 0}function CY(e,t,n,r){"string"!=typeof n&&n!==e.Fragment&&e.passNode&&(t.node=r)}function CX(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function CJ(e,t){let n=[],r=-1,i=e.passKeys?new Map:CV;for(;++ro?0:o+t:t>o?o:t,n=n>0?n:0,r.length<1e4)(i=Array.from(r)).unshift(t,n),e.splice(...i);else for(n&&e.splice(t,n);a0?(C7(e,e.length,0,t),e):t}class C5{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){this.setCursor(Math.trunc(e));let r=this.right.splice(this.right.length-(t||0),Number.POSITIVE_INFINITY);return n&&C9(this.left,n),r.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),C9(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),C9(this.right,e.reverse())}setCursor(e){if(e!==this.left.length&&(!(e>this.left.length)||0!==this.right.length)&&(!(e<0)||0!==this.left.length)){if(e-1&&e.test(String.fromCharCode(t))}}function xm(e,t,n,r){let i=r?r-1:Number.POSITIVE_INFINITY,o=0;return function(r){return xp(r)?(e.enter(n),function r(a){return xp(a)&&o++r))return;let s=i.events.length,l=s;for(;l--;)if("exit"===i.events[l][0]&&"chunkFlow"===i.events[l][1].type){if(e){n=i.events[l][1].end;break}e=!0}for(g(a),o=s;ot;){let t=o[n];i.containerState=t[1],t[0].exit.call(i,e)}o.length=t}function A(){t.write([null]),n=void 0,t=void 0,i.containerState._closeFlow=void 0}}},xb={tokenize:function(e,t,n){return xm(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}},xy={partial:!0,tokenize:function(e,t,n){return function(t){return xp(t)?xm(e,r,"linePrefix")(t):r(t)};function r(e){return null===e||xu(e)?t(e):n(e)}}},xv={resolve:function(e){return xe(e),e},tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?i(t):xu(t)?e.check(xS,o,i)(t):(e.consume(t),r)}function i(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function o(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}}},xS={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),xm(e,i,"linePrefix")};function i(i){if(null===i||xu(i))return n(i);let o=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}},xw={tokenize:function(e){let t=this,n=e.attempt(xy,function(r){if(null===r){e.consume(r);return}return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n},e.attempt(this.parser.constructs.flowInitial,r,xm(e,e.attempt(this.parser.constructs.flow,r,e.attempt(xv,r)),"linePrefix")));return n;function r(r){if(null===r){e.consume(r);return}return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n}}},xE={resolveAll:xx()},xO=xC("string"),xT=xC("text");function xC(e){return{resolveAll:xx("text"===e?xI:void 0),tokenize:function(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,o,a);return o;function o(e){return l(e)?i(e):a(e)}function a(e){if(null===e){t.consume(e);return}return t.enter("data"),t.consume(e),s}function s(e){return l(e)?(t.exit("data"),i(e)):(t.consume(e),s)}function l(e){if(null===e)return!0;let t=r[e],i=-1;if(t)for(;++i=3&&(null===a||xu(a))?(e.exit("thematicBreak"),t(a)):n(a)}}},x_={continuation:{tokenize:function(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(xy,function(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,xm(e,t,"listItemIndent",r.containerState.size+1)(n)},function(n){return r.containerState.furtherBlankLines||!xp(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,i(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(xP,t,i)(n))});function i(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,xm(e,e.attempt(x_,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)},name:"list",tokenize:function(e,t,n){let r=this,i=r.events[r.events.length-1],o=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,a=0;return function(t){let i=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||t===r.containerState.marker:xa(t)){if(!r.containerState.type&&(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===t||45===t?e.check(xk,n,s)(t):s(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),function t(i){return xa(i)&&++a<10?(e.consume(i),t):(!r.interrupt||a<2)&&(r.containerState.marker?i===r.containerState.marker:41===i||46===i)?(e.exit("listItemValue"),s(i)):n(i)}(t)}return n(t)};function s(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(xy,r.interrupt?n:l,e.attempt(xR,c,u))}function l(e){return r.containerState.initialBlankLine=!0,o++,c(e)}function u(t){return xp(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),c):n(t)}function c(n){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}}},xR={partial:!0,tokenize:function(e,t,n){let r=this;return xm(e,function(e){let i=r.events[r.events.length-1];return!xp(e)&&i&&"listItemPrefixWhitespace"===i[1].type?t(e):n(e)},"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},xP={partial:!0,tokenize:function(e,t,n){let r=this;return xm(e,function(e){let i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)},"listItemIndent",r.containerState.size+1)}},xN={continuation:{tokenize:function(e,t,n){let r=this;return function(t){return xp(t)?xm(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):i(t)};function i(r){return e.attempt(xN,t,n)(r)}}},exit:function(e){e.exit("blockQuote")},name:"blockQuote",tokenize:function(e,t,n){let r=this;return function(t){if(62===t){let n=r.containerState;return!n.open&&(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i}return n(t)};function i(n){return xp(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}}};function xD(e,t,n,r,i,o,a,s,l){let u=l||Number.POSITIVE_INFINITY,c=0;return function(t){return 60===t?(e.enter(r),e.enter(i),e.enter(o),e.consume(t),e.exit(o),p):null===t||32===t||41===t||xo(t)?n(t):(e.enter(r),e.enter(a),e.enter(s),e.enter("chunkString",{contentType:"string"}),f(t))};function p(n){return 62===n?(e.enter(o),e.consume(n),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),d(n))}function d(t){return 62===t?(e.exit("chunkString"),e.exit(s),p(t)):null===t||60===t||xu(t)?n(t):(e.consume(t),92===t?h:d)}function h(t){return 60===t||62===t||92===t?(e.consume(t),d):d(t)}function f(i){return!c&&(null===i||41===i||xc(i))?(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(i)):c999||null===p||91===p||93===p&&!a||94===p&&!l&&"_hiddenFootnoteSupport"in s.parser.constructs?n(p):93===p?(e.exit(o),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):xu(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),c(p))}function c(t){return null===t||91===t||93===t||xu(t)||l++>999?(e.exit("chunkString"),u(t)):(e.consume(t),!a&&(a=!xp(t)),92===t?p:c)}function p(t){return 91===t||92===t||93===t?(e.consume(t),l++,c):c(t)}}function xL(e,t,n,r,i,o){let a;return function(t){return 34===t||39===t||40===t?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),a=40===t?41:t,s):n(t)};function s(n){return n===a?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(o),l(n))}function l(t){return t===a?(e.exit(o),s(a)):null===t?n(t):xu(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),xm(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(t))}function u(t){return t===a||null===t||xu(t)?(e.exit("chunkString"),l(t)):(e.consume(t),92===t?c:u)}function c(t){return t===a||92===t?(e.consume(t),u):u(t)}}function xB(e,t){let n;return function r(i){return xu(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):xp(i)?xm(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}function xF(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}let xU={partial:!0,tokenize:function(e,t,n){return function(t){return xc(t)?xB(e,r)(t):n(t)};function r(t){return xL(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function i(t){return xp(t)?xm(e,o,"whitespace")(t):o(t)}function o(e){return null===e||xu(e)?t(e):n(e)}}},xj={name:"codeIndented",tokenize:function(e,t,n){let r=this;return function(t){return e.enter("codeIndented"),xm(e,i,"linePrefix",5)(t)};function i(e){let t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return null===t?a(t):xu(t)?e.attempt(xz,o,a)(t):(e.enter("codeFlowValue"),function t(n){return null===n||xu(n)?(e.exit("codeFlowValue"),o(n)):(e.consume(n),t)}(t))}function a(n){return e.exit("codeIndented"),t(n)}}},xz={partial:!0,tokenize:function(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):xu(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):xm(e,o,"linePrefix",5)(t)}function o(e){let o=r.events[r.events.length-1];return o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(e):xu(e)?i(e):n(e)}}},xH={name:"setextUnderline",resolveTo:function(e,t){let n,r,i,o=e.length;for(;o--;)if("enter"===e[o][0]){if("content"===e[o][1].type){n=o;break}"paragraph"===e[o][1].type&&(r=o)}else"content"===e[o][1].type&&e.splice(o,1),!i&&"definition"===e[o][1].type&&(i=o);let a={type:"setextHeading",start:{...e[n][1].start},end:{...e[e.length-1][1].end}};return e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",a,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end={...e[i][1].end}):e[n][1]=a,e.push(["exit",a,t]),e},tokenize:function(e,t,n){let r;let i=this;return function(t){let a,s=i.events.length;for(;s--;)if("lineEnding"!==i.events[s][1].type&&"linePrefix"!==i.events[s][1].type&&"content"!==i.events[s][1].type){a="paragraph"===i.events[s][1].type;break}return!i.parser.lazy[i.now().line]&&(i.interrupt||a)?(e.enter("setextHeadingLine"),r=t,function(t){return e.enter("setextHeadingLineSequence"),function t(n){return n===r?(e.consume(n),t):(e.exit("setextHeadingLineSequence"),xp(n)?xm(e,o,"lineSuffix")(n):o(n))}(t)}(t)):n(t)};function o(r){return null===r||xu(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}}},xZ=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],xV=["pre","script","style","textarea"],xG={partial:!0,tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(xy,t,n)}}},xW={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return xu(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):n(t)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},xQ={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return null===t?n(t):(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},xq={concrete:!0,name:"codeFenced",tokenize:function(e,t,n){let r;let i=this,o={partial:!0,tokenize:function(e,t,n){let o=0;return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),a};function a(t){return e.enter("codeFencedFence"),xp(t)?xm(e,l,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):l(t)}function l(t){return t===r?(e.enter("codeFencedFenceSequence"),function t(i){return i===r?(o++,e.consume(i),t):o>=s?(e.exit("codeFencedFenceSequence"),xp(i)?xm(e,u,"whitespace")(i):u(i)):n(i)}(t)):n(t)}function u(r){return null===r||xu(r)?(e.exit("codeFencedFence"),t(r)):n(r)}}},a=0,s=0;return function(t){return function(t){let o=i.events[i.events.length-1];return a=o&&"linePrefix"===o[1].type?o[2].sliceSerialize(o[1],!0).length:0,r=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),function t(i){return i===r?(s++,e.consume(i),t):s<3?n(i):(e.exit("codeFencedFenceSequence"),xp(i)?xm(e,l,"whitespace")(i):l(i))}(t)}(t)};function l(o){return null===o||xu(o)?(e.exit("codeFencedFence"),i.interrupt?t(o):e.check(xQ,c,f)(o)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),function t(i){return null===i||xu(i)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),l(i)):xp(i)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),xm(e,u,"whitespace")(i)):96===i&&i===r?n(i):(e.consume(i),t)}(o))}function u(t){return null===t||xu(t)?l(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),function t(i){return null===i||xu(i)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),l(i)):96===i&&i===r?n(i):(e.consume(i),t)}(t))}function c(t){return e.attempt(o,f,p)(t)}function p(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),d}function d(t){return a>0&&xp(t)?xm(e,h,"linePrefix",a+1)(t):h(t)}function h(t){return null===t||xu(t)?e.check(xQ,c,f)(t):(e.enter("codeFlowValue"),function t(n){return null===n||xu(n)?(e.exit("codeFlowValue"),h(n)):(e.consume(n),t)}(t))}function f(n){return e.exit("codeFenced"),t(n)}}},xK=document.createElement("i");function xY(e){let t="&"+e+";";xK.innerHTML=t;let n=xK.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&n!==t&&n}let xX={name:"characterReference",tokenize:function(e,t,n){let r,i;let o=this,a=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),s};function s(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),r=31,i=xr,u(t))}function l(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,i=xs,u):(e.enter("characterReferenceValue"),r=7,i=xa,u(t))}function u(s){if(59===s&&a){let r=e.exit("characterReferenceValue");return i!==xr||xY(o.sliceSerialize(r))?(e.enter("characterReferenceMarker"),e.consume(s),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(s)}return i(s)&&a++1&&e[c][1].end.offset-e[c][1].start.offset>1?2:1;let p={...e[n][1].end},d={...e[c][1].start};x5(p,-s),x5(d,s),o={type:s>1?"strongSequence":"emphasisSequence",start:p,end:{...e[n][1].end}},a={type:s>1?"strongSequence":"emphasisSequence",start:{...e[c][1].start},end:d},i={type:s>1?"strongText":"emphasisText",start:{...e[n][1].end},end:{...e[c][1].start}},r={type:s>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[n][1].end={...o.start},e[c][1].start={...a.end},l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=C8(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=C8(l,[["enter",r,t],["enter",o,t],["exit",o,t],["enter",i,t]]),l=C8(l,x0(t.parser.constructs.insideSpan.null,e.slice(n+1,c),t)),l=C8(l,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[c][1].end.offset-e[c][1].start.offset?(u=2,l=C8(l,[["enter",e[c][1],t],["exit",e[c][1],t]])):u=0,C7(e,n-1,c-n+3,l),c=n+l.length-u-2;break}}for(c=-1;++co&&"whitespace"===e[i][1].type&&(i-=2),"atxHeadingSequence"===e[i][1].type&&(o===i-1||i-4>o&&"whitespace"===e[i-2][1].type)&&(i-=o+1===i?2:4),i>o&&(n={type:"atxHeadingText",start:e[o][1].start,end:e[i][1].end},r={type:"chunkText",start:e[o][1].start,end:e[i][1].end,contentType:"text"},C7(e,o,i-o+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]])),e},tokenize:function(e,t,n){let r=0;return function(t){return e.enter("atxHeading"),function(t){return e.enter("atxHeadingSequence"),function t(o){return 35===o&&r++<6?(e.consume(o),t):null===o||xc(o)?(e.exit("atxHeadingSequence"),i(o)):n(o)}(t)}(t)};function i(n){return 35===n?(e.enter("atxHeadingSequence"),function t(n){return 35===n?(e.consume(n),t):(e.exit("atxHeadingSequence"),i(n))}(n)):null===n||xu(n)?(e.exit("atxHeading"),t(n)):xp(n)?xm(e,i,"whitespace")(n):(e.enter("atxHeadingText"),function t(n){return null===n||35===n||xc(n)?(e.exit("atxHeadingText"),i(n)):(e.consume(n),t)}(n))}}},42:xk,45:[xH,xk],60:{concrete:!0,name:"htmlFlow",resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););return t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e},tokenize:function(e,t,n){let r,i,o,a,s;let l=this;return function(t){return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),u}(t)};function u(a){return 33===a?(e.consume(a),c):47===a?(e.consume(a),i=!0,h):63===a?(e.consume(a),r=3,l.interrupt?t:P):xn(a)?(e.consume(a),o=String.fromCharCode(a),f):n(a)}function c(i){return 45===i?(e.consume(i),r=2,p):91===i?(e.consume(i),r=5,a=0,d):xn(i)?(e.consume(i),r=4,l.interrupt?t:P):n(i)}function p(r){return 45===r?(e.consume(r),l.interrupt?t:P):n(r)}function d(r){let i="CDATA[";if(r===i.charCodeAt(a++))return(e.consume(r),a===i.length)?l.interrupt?t:O:d;return n(r)}function h(t){return xn(t)?(e.consume(t),o=String.fromCharCode(t),f):n(t)}function f(a){if(null===a||47===a||62===a||xc(a)){let s=47===a,u=o.toLowerCase();if(!s&&!i&&xV.includes(u))return r=1,l.interrupt?t(a):O(a);if(xZ.includes(o.toLowerCase()))return(r=6,s)?(e.consume(a),m):l.interrupt?t(a):O(a);return r=7,l.interrupt&&!l.parser.lazy[l.now().line]?n(a):i?function t(n){return xp(n)?(e.consume(n),t):w(n)}(a):g(a)}return 45===a||xr(a)?(e.consume(a),o+=String.fromCharCode(a),f):n(a)}function m(r){return 62===r?(e.consume(r),l.interrupt?t:O):n(r)}function g(t){return 47===t?(e.consume(t),w):58===t||95===t||xn(t)?(e.consume(t),A):xp(t)?(e.consume(t),g):w(t)}function A(t){return 45===t||46===t||58===t||95===t||xr(t)?(e.consume(t),A):b(t)}function b(t){return 61===t?(e.consume(t),y):xp(t)?(e.consume(t),b):g(t)}function y(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,v):xp(t)?(e.consume(t),y):function t(n){return null===n||34===n||39===n||47===n||60===n||61===n||62===n||96===n||xc(n)?b(n):(e.consume(n),t)}(t)}function v(t){return t===s?(e.consume(t),s=null,S):null===t||xu(t)?n(t):(e.consume(t),v)}function S(e){return 47===e||62===e||xp(e)?g(e):n(e)}function w(t){return 62===t?(e.consume(t),E):n(t)}function E(t){return null===t||xu(t)?O(t):xp(t)?(e.consume(t),E):n(t)}function O(t){return 45===t&&2===r?(e.consume(t),I):60===t&&1===r?(e.consume(t),k):62===t&&4===r?(e.consume(t),N):63===t&&3===r?(e.consume(t),P):93===t&&5===r?(e.consume(t),R):xu(t)&&(6===r||7===r)?(e.exit("htmlFlowData"),e.check(xG,D,T)(t)):null===t||xu(t)?(e.exit("htmlFlowData"),T(t)):(e.consume(t),O)}function T(t){return e.check(xW,C,D)(t)}function C(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),x}function x(t){return null===t||xu(t)?T(t):(e.enter("htmlFlowData"),O(t))}function I(t){return 45===t?(e.consume(t),P):O(t)}function k(t){return 47===t?(e.consume(t),o="",_):O(t)}function _(t){if(62===t){let n=o.toLowerCase();return xV.includes(n)?(e.consume(t),N):O(t)}return xn(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),_):O(t)}function R(t){return 93===t?(e.consume(t),P):O(t)}function P(t){return 62===t?(e.consume(t),N):45===t&&2===r?(e.consume(t),P):O(t)}function N(t){return null===t||xu(t)?(e.exit("htmlFlowData"),D(t)):(e.consume(t),N)}function D(n){return e.exit("htmlFlow"),t(n)}}},61:xH,95:xk,96:xq,126:xq},Ii={38:xX,92:xJ},Io={[-5]:x$,[-4]:x$,[-3]:x$,33:x6,38:xX,42:x8,60:[{name:"autolink",tokenize:function(e,t,n){let r=0;return function(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i};function i(t){return xn(t)?(e.consume(t),o):64===t?n(t):s(t)}function o(t){return 43===t||45===t||46===t||xr(t)?(r=1,function t(n){return 58===n?(e.consume(n),r=0,a):(43===n||45===n||46===n||xr(n))&&r++<32?(e.consume(n),t):(r=0,s(n))}(t)):s(t)}function a(r){return 62===r?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(r),e.exit("autolinkMarker"),e.exit("autolink"),t):null===r||32===r||60===r||xo(r)?n(r):(e.consume(r),a)}function s(t){return 64===t?(e.consume(t),l):xi(t)?(e.consume(t),s):n(t)}function l(e){return xr(e)?u(e):n(e)}function u(i){return 46===i?(e.consume(i),r=0,l):62===i?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(i),e.exit("autolinkMarker"),e.exit("autolink"),t):function t(i){if((45===i||xr(i))&&r++<63){let n=45===i?t:u;return e.consume(i),n}return n(i)}(i)}}},{name:"htmlText",tokenize:function(e,t,n){let r,i,o;let a=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),s};function s(t){return 33===t?(e.consume(t),l):47===t?(e.consume(t),v):63===t?(e.consume(t),b):xn(t)?(e.consume(t),w):n(t)}function l(t){return 45===t?(e.consume(t),u):91===t?(e.consume(t),i=0,h):xn(t)?(e.consume(t),A):n(t)}function u(t){return 45===t?(e.consume(t),d):n(t)}function c(t){return null===t?n(t):45===t?(e.consume(t),p):xu(t)?(o=c,_(t)):(e.consume(t),c)}function p(t){return 45===t?(e.consume(t),d):c(t)}function d(e){return 62===e?k(e):45===e?p(e):c(e)}function h(t){let r="CDATA[";return t===r.charCodeAt(i++)?(e.consume(t),i===r.length?f:h):n(t)}function f(t){return null===t?n(t):93===t?(e.consume(t),m):xu(t)?(o=f,_(t)):(e.consume(t),f)}function m(t){return 93===t?(e.consume(t),g):f(t)}function g(t){return 62===t?k(t):93===t?(e.consume(t),g):f(t)}function A(t){return null===t||62===t?k(t):xu(t)?(o=A,_(t)):(e.consume(t),A)}function b(t){return null===t?n(t):63===t?(e.consume(t),y):xu(t)?(o=b,_(t)):(e.consume(t),b)}function y(e){return 62===e?k(e):b(e)}function v(t){return xn(t)?(e.consume(t),S):n(t)}function S(t){return 45===t||xr(t)?(e.consume(t),S):function t(n){return xu(n)?(o=t,_(n)):xp(n)?(e.consume(n),t):k(n)}(t)}function w(t){return 45===t||xr(t)?(e.consume(t),w):47===t||62===t||xc(t)?E(t):n(t)}function E(t){return 47===t?(e.consume(t),k):58===t||95===t||xn(t)?(e.consume(t),O):xu(t)?(o=E,_(t)):xp(t)?(e.consume(t),E):k(t)}function O(t){return 45===t||46===t||58===t||95===t||xr(t)?(e.consume(t),O):function t(n){return 61===n?(e.consume(n),T):xu(n)?(o=t,_(n)):xp(n)?(e.consume(n),t):E(n)}(t)}function T(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),r=t,C):xu(t)?(o=T,_(t)):xp(t)?(e.consume(t),T):(e.consume(t),x)}function C(t){return t===r?(e.consume(t),r=void 0,I):null===t?n(t):xu(t)?(o=C,_(t)):(e.consume(t),C)}function x(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):47===t||62===t||xc(t)?E(t):(e.consume(t),x)}function I(e){return 47===e||62===e||xc(e)?E(e):n(e)}function k(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}function _(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),R}function R(t){return xp(t)?xm(e,P,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):P(t)}function P(t){return e.enter("htmlTextData"),o(t)}}}],91:x9,92:[{name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.consume(t),r};function r(r){return xu(r)?(e.exit("hardBreakEscape"),t(r)):n(r)}}},xJ],93:x1,95:x8,96:{name:"codeText",previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type},resolve:function(e){let t,n,r=e.length-4,i=3;if(("lineEnding"===e[3][1].type||"space"===e[i][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type)){for(t=i;++t13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(65535&n)==65535||(65535&n)==65534||n>1114111?"�":String.fromCodePoint(n)}let Ip=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Id(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){let e=n.charCodeAt(1),t=120===e||88===e;return Ic(n.slice(t?2:1),t?16:10)}return xY(n)||e}let Ih={}.hasOwnProperty;function If(e){return{line:e.line,column:e.column,offset:e.offset}}function Im(e,t){if(e)throw Error("Cannot close `"+e.type+"` ("+CF({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+CF({start:t.start,end:t.end})+") is open");throw Error("Cannot close document, a token (`"+t.type+"`, "+CF({start:t.start,end:t.end})+") is still open")}function Ig(e){let t=this;t.parser=function(n){var r,i,o;let a,s,l,u;return r=n,i={...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]},"object"==typeof i&&(o=i,i=void 0),(function(e){let t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:r(A),autolinkProtocol:u,autolinkEmail:u,atxHeading:r(f),blockQuote:r(function(){return{type:"blockquote",children:[]}}),characterEscape:u,characterReference:u,codeFenced:r(h),codeFencedFenceInfo:i,codeFencedFenceMeta:i,codeIndented:r(h,i),codeText:r(function(){return{type:"inlineCode",value:""}},i),codeTextData:u,data:u,codeFlowValue:u,definition:r(function(){return{type:"definition",identifier:"",label:null,title:null,url:""}}),definitionDestinationString:i,definitionLabelString:i,definitionTitleString:i,emphasis:r(function(){return{type:"emphasis",children:[]}}),hardBreakEscape:r(m),hardBreakTrailing:r(m),htmlFlow:r(g,i),htmlFlowData:u,htmlText:r(g,i),htmlTextData:u,image:r(function(){return{type:"image",title:null,url:"",alt:null}}),label:i,link:r(A),listItem:r(function(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}),listItemValue:function(e){this.data.expectingFirstListItemValue&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0)},listOrdered:r(b,function(){this.data.expectingFirstListItemValue=!0}),listUnordered:r(b),paragraph:r(function(){return{type:"paragraph",children:[]}}),reference:function(){this.data.referenceType="collapsed"},referenceString:i,resourceDestinationString:i,resourceTitleString:i,setextHeading:r(f),strong:r(function(){return{type:"strong",children:[]}}),thematicBreak:r(function(){return{type:"thematicBreak"}})},exit:{atxHeading:a(),atxHeadingSequence:function(e){let t=this.stack[this.stack.length-1];if(!t.depth){let n=this.sliceSerialize(e).length;t.depth=n}},autolink:a(),autolinkEmail:function(e){c.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)},autolinkProtocol:function(e){c.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)},blockQuote:a(),characterEscapeValue:c,characterReferenceMarkerHexadecimal:d,characterReferenceMarkerNumeric:d,characterReferenceValue:function(e){let t;let n=this.sliceSerialize(e),r=this.data.characterReferenceType;r?(t=Ic(n,"characterReferenceMarkerNumeric"===r?10:16),this.data.characterReferenceType=void 0):t=xY(n);let i=this.stack[this.stack.length-1];i.value+=t},characterReference:function(e){this.stack.pop().position.end=If(e.end)},codeFenced:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}),codeFencedFence:function(){!this.data.flowCodeInside&&(this.buffer(),this.data.flowCodeInside=!0)},codeFencedFenceInfo:function(){let e=this.resume();this.stack[this.stack.length-1].lang=e},codeFencedFenceMeta:function(){let e=this.resume();this.stack[this.stack.length-1].meta=e},codeFlowValue:c,codeIndented:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}),codeText:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),codeTextData:c,data:c,definition:a(),definitionDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},definitionLabelString:function(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=xF(this.sliceSerialize(e)).toLowerCase()},definitionTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},emphasis:a(),hardBreakEscape:a(p),hardBreakTrailing:a(p),htmlFlow:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlFlowData:c,htmlText:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlTextData:c,image:a(function(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}),label:function(){let e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];if(this.data.inReference=!0,"link"===n.type){let t=e.children;n.children=t}else n.alt=t},labelText:function(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=t.replace(Ip,Id),n.identifier=xF(t).toLowerCase()},lineEnding:function(e){let n=this.stack[this.stack.length-1];if(this.data.atHardBreak){n.children[n.children.length-1].position.end=If(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(u.call(this,e),c.call(this,e))},link:a(function(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}),listItem:a(),listOrdered:a(),listUnordered:a(),paragraph:a(),referenceString:function(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=xF(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType="full"},resourceDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){this.data.inReference=void 0},setextHeading:a(function(){this.data.setextHeadingSlurpLineEnding=void 0}),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).codePointAt(0)?1:2},setextHeadingText:function(){this.data.setextHeadingSlurpLineEnding=!0},strong:a(),thematicBreak:a()}};(function e(t,n){let r=-1;for(;++r0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||Im).call(a,void 0,e[0])}for(r.position={start:If(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:If(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},c=-1;++c-1){let e=n[0];"string"==typeof e?n[0]=e.slice(i):n.shift()}a>0&&n.push(e[o].slice(0,a))}return n}(a,e)}function d(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:o}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:o}}function h(e){c=c(e)}function f(e,t){t.restore()}function m(e,t){return function(n,i,o){let a,c,p,h;return Array.isArray(n)?f(n):"tokenize"in n?f([n]):function(e){return function(t){let n=null!==t&&e[t],r=null!==t&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}(n);function f(e){return(a=e,c=0,0===e.length)?o:m(e[c])}function m(e){return function(n){return(h=function(){let e=d(),t=u.previous,n=u.currentConstruct,i=u.events.length,o=Array.from(s);return{from:i,restore:function(){r=e,u.previous=t,u.currentConstruct=n,u.events.length=i,s=o,A()}}}(),p=e,!e.partial&&(u.currentConstruct=e),e.name&&u.parser.constructs.disable.null.includes(e.name))?b(n):e.tokenize.call(t?Object.assign(Object.create(u),t):u,l,g,b)(n)}}function g(t){return e(p,h),i}function b(e){return(h.restore(),++c{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw TypeError("unable to deserialize "+e)}return new IA[e](t)},Iy=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[o,a]=t[i];switch(o){case 0:case -1:return n(a,i);case 1:{let e=n([],i);for(let t of a)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of a)e[r(t)]=r(n);return e}case 3:return n(new Date(a),i);case 4:{let{source:e,flags:t}=a;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of a)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of a)e.add(r(t));return e}case 7:{let{name:e,message:t}=a;return n(Ib(e,t),i)}case 8:return n(BigInt(a),i);case"BigInt":return n(Object(BigInt(a)),i);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{let{buffer:e}=new Uint8Array(a);return n(new DataView(e),a)}}return n(Ib(o,a),i)};return r},Iv=e=>Iy(new Map,e)(0),{toString:IS}={},{keys:Iw}=Object,IE=e=>{let t=typeof e;if("object"!==t||!e)return[0,t];let n=IS.call(e).slice(8,-1);switch(n){case"Array":return[1,""];case"Object":return[2,""];case"Date":return[3,""];case"RegExp":return[4,""];case"Map":return[5,""];case"Set":return[6,""];case"DataView":return[1,n]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},IO=([e,t])=>0===e&&("function"===t||"symbol"===t),IT=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},o=r=>{if(n.has(r))return n.get(r);let[a,s]=IE(r);switch(a){case 0:{let t=r;switch(s){case"bigint":a=8,t=r.toString();break;case"function":case"symbol":if(e)throw TypeError("unable to serialize "+s);t=null;break;case"undefined":return i([-1],r)}return i([a,t],r)}case 1:{if(s){let e=r;return"DataView"===s?e=new Uint8Array(r.buffer):"ArrayBuffer"===s&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([a,e],r);for(let t of r)e.push(o(t));return t}case 2:{if(s)switch(s){case"BigInt":return i([s,r.toString()],r);case"Boolean":case"Number":case"String":return i([s,r.valueOf()],r)}if(t&&"toJSON"in r)return o(r.toJSON());let n=[],l=i([a,n],r);for(let t of Iw(r))(e||!IO(IE(r[t])))&&n.push([o(t),o(r[t])]);return l}case 3:return i([a,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([a,{source:e,flags:t}],r)}case 5:{let t=[],n=i([a,t],r);for(let[n,i]of r)(e||!(IO(IE(n))||IO(IE(i))))&&t.push([o(n),o(i)]);return n}case 6:{let t=[],n=i([a,t],r);for(let n of r)(e||!IO(IE(n)))&&t.push(o(n));return n}}let{message:l}=r;return i([a,{name:s,message:l}],r)};return o},IC=(e,{json:t,lossy:n}={})=>{let r=[];return IT(!(t||n),!!t,new Map,r)(e),r},Ix="function"==typeof structuredClone?(e,t)=>t&&("json"in t||"lossy"in t)?Iv(IC(e,t)):structuredClone(e):(e,t)=>Iv(IC(e,t));function II(e){let t=[],n=-1,r=0,i=0;for(;++n55295&&o<57344){let t=e.charCodeAt(n+1);o<56320&&t>56319&&t<57344?(a=String.fromCharCode(o,t),i=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Ik(e,t){let n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function I_(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}let IR=function(e){if(null==e)return IN;if("function"==typeof e)return IP(e);if("object"==typeof e)return Array.isArray(e)?function(e){let t=[],n=-1;for(;++n":"")+")"})}return c;function c(){let u,c,p,d=IM;if((!t||o(i,s,l[l.length-1]||void 0))&&!1===(d=function(e){return Array.isArray(e)?e:"number"==typeof e?[!0,e]:null==e?IM:[e]}(n(i,l)))[0])return d;if("children"in i&&i.children&&i.children&&"skip"!==d[0])for(c=(r?i.children.length:-1)+a,p=l.concat(i);c>-1&&c1:t}function IU(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;9===t||32===t;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;9===t||32===t;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}let Ij={blockquote:function(e,t){let n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){let n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){let n=t.value?t.value+"\n":"",r={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(r.className=["language-"+i[0]]);let o={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o={type:"element",tagName:"pre",properties:{},children:[o=e.applyData(t,o)]},e.patch(t,o),o},delete:function(e,t){let n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){let n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:function(e,t){let n;let r="string"==typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),o=II(i.toLowerCase()),a=e.footnoteOrder.indexOf(i),s=e.footnoteCounts.get(i);void 0===s?(s=0,e.footnoteOrder.push(i),n=e.footnoteOrder.length):n=a+1,s+=1,e.footnoteCounts.set(i,s);let l={type:"element",tagName:"a",properties:{href:"#"+r+"fn-"+o,id:r+"fnref-"+o+(s>1?"-"+s:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(n)}]};e.patch(t,l);let u={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,u),e.applyData(t,u)},heading:function(e,t){let n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.options.allowDangerousHtml){let n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}},imageReference:function(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return IB(e,t);let i={src:II(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(i.title=r.title);let o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)},image:function(e,t){let n={src:II(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);let r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){let n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);let r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return IB(e,t);let i={href:II(r.url||"")};null!==r.title&&void 0!==r.title&&(i.title=r.title);let o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)},link:function(e,t){let n={href:II(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);let r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){let r=e.all(t),i=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r0&&e.children.unshift({type:"text",value:" "}),e.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let s=-1;for(;++s0){let r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},o=CL(t.children[1]),a=CM(t.children[t.children.length-1]);o&&a&&(r.position={start:o,end:a}),i.push(r)}let o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)},tableCell:function(e,t){let n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){let r=n?n.children:void 0,i=0===(r?r.indexOf(t):1)?"th":"td",o=n&&"table"===n.type?n.align:void 0,a=o?o.length:t.children.length,s=-1,l=[];for(;++s0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(IU(t.slice(i),i>0,!1)),o.join("")}(String(t.value))};return e.patch(t,n),e.applyData(t,n)},thematicBreak:function(e,t){let n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)},toml:Iz,yaml:Iz,definition:Iz,footnoteDefinition:Iz};function Iz(){}let IH={}.hasOwnProperty,IZ={};function IV(e,t){e.position&&(t.position=function(e){let t=CL(e),n=CM(e);if(t&&n)return{start:t,end:n}}(e))}function IG(e,t){let n=t;if(e&&e.data){let t=e.data.hName,r=e.data.hChildren,i=e.data.hProperties;"string"==typeof t&&("element"===n.type?n.tagName=t:n={type:"element",tagName:t,properties:{},children:"children"in n?n.children:[n]}),"element"===n.type&&i&&Object.assign(n.properties,Ix(i)),"children"in n&&n.children&&null!=r&&(n.children=r)}return n}function IW(e,t){let n=t.data||{},r="value"in t&&!(IH.call(n,"hProperties")||IH.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function IQ(e,t){let n=[],r=-1;for(t&&n.push({type:"text",value:"\n"});++r0&&n.push({type:"text",value:"\n"}),n}function Iq(e){let t=0,n=e.charCodeAt(t);for(;9===n||32===n;)t++,n=e.charCodeAt(t);return e.slice(t)}function IK(e,t){let n=function(e,t){let n=t||IZ,r=new Map,i=new Map,o=new Map,a={all:function(e){let t=[];if("children"in e){let n=e.children,r=-1;for(;++r0&&p.push({type:"text",value:" "});let e="string"==typeof n?n:n(l,c);"string"==typeof e&&(e={type:"text",value:e}),p.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+u+(c>1?"-"+c:""),dataFootnoteBackref:"",ariaLabel:"string"==typeof r?r:r(l,c),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}let h=o[o.length-1];if(h&&"element"===h.type&&"p"===h.tagName){let e=h.children[h.children.length-1];e&&"text"===e.type?e.value+=" ":h.children.push({type:"text",value:" "}),h.children.push(...p)}else o.push(...p);let f={type:"element",tagName:"li",properties:{id:t+"fn-"+u},children:e.wrap(o,!0)};e.patch(i,f),s.push(f)}if(0!==s.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...Ix(a),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(s,!0)},{type:"text",value:"\n"}]}}(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:"\n"},i),o}function IY(e,t){return e&&"run"in e?async function(n,r){let i=IK(n,{file:r,...t});await e.run(i,r)}:function(n,r){return IK(n,{file:r,...e||t})}}function IX(e){if(e)throw e}var IJ=n("94470");function I$(e){if("object"!=typeof e||null===e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}let I0={basename:function(e,t){let n;if(void 0!==t&&"string"!=typeof t)throw TypeError('"ext" argument must be a string');I1(e);let r=0,i=-1,o=e.length;if(void 0===t||0===t.length||t.length>e.length){for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else i<0&&(n=!0,i=o+1);return i<0?"":e.slice(r,i)}if(t===e)return"";let a=-1,s=t.length-1;for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else a<0&&(n=!0,a=o+1),s>-1&&(e.codePointAt(o)===t.codePointAt(s--)?s<0&&(i=o):(s=-1,i=a));return r===i?i=a:i<0&&(i=e.length),e.slice(r,i)},dirname:function(e){let t;if(I1(e),0===e.length)return".";let n=-1,r=e.length;for(;--r;)if(47===e.codePointAt(r)){if(t){n=r;break}}else!t&&(t=!0);return n<0?47===e.codePointAt(0)?"/":".":1===n&&47===e.codePointAt(0)?"//":e.slice(0,n)},extname:function(e){let t;I1(e);let n=e.length,r=-1,i=0,o=-1,a=0;for(;n--;){let s=e.codePointAt(n);if(47===s){if(t){i=n+1;break}continue}r<0&&(t=!0,r=n+1),46===s?o<0?o=n:1!==a&&(a=1):o>-1&&(a=-1)}return o<0||r<0||0===a||1===a&&o===r-1&&o===i+1?"":e.slice(o,r)},join:function(...e){let t,n=-1;for(;++n2){if((r=i.lastIndexOf("/"))!==i.length-1){r<0?(i="",o=0):o=(i=i.slice(0,r)).length-1-i.lastIndexOf("/"),a=l,s=0;continue}}else if(i.length>0){i="",o=0,a=l,s=0;continue}}t&&(i=i.length>0?i+"/..":"..",o=2)}else i.length>0?i+="/"+e.slice(a+1,l):i=e.slice(a+1,l),o=l-a-1;a=l,s=0}else 46===n&&s>-1?s++:s=-1}return i}(e,!t);return 0===n.length&&!t&&(n="."),n.length>0&&47===e.codePointAt(e.length-1)&&(n+="/"),t?"/"+n:n}(t)},sep:"/"};function I1(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}let I2={cwd:function(){return"/"}};function I4(e){return!!(null!==e&&"object"==typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}let I3=["history","path","basename","stem","extname","dirname"];class I6{constructor(e){let t,n;t=e?I4(e)?{path:e}:"string"==typeof e||function(e){return!!(e&&"object"==typeof e&&"byteLength"in e&&"byteOffset"in e)}(e)?{value:e}:e:{},this.cwd="cwd"in t?"":I2.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++rt.length;a&&t.push(r);try{o=e.apply(this,t)}catch(e){if(a&&n)throw e;return r(e)}!a&&(o&&o.then&&"function"==typeof o.then?o.then(i,r):o instanceof Error?r(o):i(o))};function r(e,...i){!n&&(n=!0,t(e,...i))}function i(e){r(null,e)}})(s,i)(...a):r(null,...a)})(null,...t)},use:function(n){if("function"!=typeof n)throw TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}};return t}()}copy(){let e=new kt,t=-1;for(;++t0){let[r,...o]=t,a=n[i][1];I$(a)&&I$(r)&&(r=IJ(!0,a,r)),n[i]=[e,r,...o]}}}}let kn=new kt().freeze();function kr(e,t){if("function"!=typeof t)throw TypeError("Cannot `"+e+"` without `parser`")}function ki(e,t){if("function"!=typeof t)throw TypeError("Cannot `"+e+"` without `compiler`")}function ko(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function ka(e){if(!I$(e)||"string"!=typeof e.type)throw TypeError("Expected node, got `"+e+"`")}function ks(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function kl(e){return function(e){return!!(e&&"object"==typeof e&&"message"in e&&"messages"in e)}(e)?e:new I6(e)}let ku=[],kc={allowDangerousHtml:!0},kp=/^(https?|ircs?|mailto|xmpp)$/i,kd=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function kh(e){let t=function(e){let t=e.rehypePlugins||ku,n=e.remarkPlugins||ku,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...kc}:kc;return kn().use(Ig).use(n).use(IY,r).use(t)}(e),n=function(e){let t=e.children||"",n=new I6;return"string"==typeof t&&(n.value=t),n}(e);return function(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,a=t.skipHtml,s=t.unwrapDisallowed,l=t.urlTransform||kf;for(let e of kd)Object.hasOwn(t,e.from)&&(e.from,e.to&&e.to,e.id);return n,t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:"root"===e.type?e.children:[e]}),IL(e,function(e,t,i){if("raw"===e.type&&i&&"number"==typeof t)return a?i.children.splice(t,1):i.children[t]={type:"text",value:e.value},t;if("element"===e.type){let t;for(t in C2)if(Object.hasOwn(C2,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=C2[t];(null===r||r.includes(e.tagName))&&(e.properties[t]=l(String(n||""),t,e))}}if("element"===e.type){let a=n?!n.includes(e.tagName):!!o&&o.includes(e.tagName);if(!a&&r&&"number"==typeof t&&(a=!r(e,t,i)),a&&i&&"number"==typeof t)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}),function(e,t){let n;if(!t||void 0===t.Fragment)throw TypeError("Expected `Fragment` in options");let r=t.filePath||void 0;if(t.development){if("function"!=typeof t.jsxDEV)throw TypeError("Expected `jsxDEV` in options when `development: true`");n=function(e,t){return function(n,r,i,o){let a=Array.isArray(i.children),s=CL(n);return t(r,i,o,a,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}(r,t.jsxDEV)}else{if("function"!=typeof t.jsx)throw TypeError("Expected `jsx` in production options");if("function"!=typeof t.jsxs)throw TypeError("Expected `jsxs` in production options");n=function(e,t,n){return function(e,r,i,o){let a=Array.isArray(i.children)?n:t;return o?a(r,i,o):a(r,i)}}(r,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:n,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:r,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:!1!==t.passKeys,passNode:t.passNode||!1,schema:"svg"===t.space?CO:CE,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==t.tableCellAlignToStyle},o=CK(i,e,void 0);return o&&"string"!=typeof o?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}(e,{Fragment:eJ.Fragment,components:i,ignoreInvalidStyle:!0,jsx:eJ.jsx,jsxs:eJ.jsxs,passKeys:!0,passNode:!0})}(t.runSync(t.parse(n),n),e)}function kf(e){let t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return -1===t||-1!==i&&t>i||-1!==n&&t>n||-1!==r&&t>r||kp.test(e.slice(0,t))?e:""}let km=/[#.]/g;function kg(e,t,n){let r=n?function(e){let t=new Map;for(let n of e)t.set(n.toLowerCase(),n);return t}(n):void 0;return function(n,i,...o){let a;if(null==n){a={type:"root",children:[]};o.unshift(i)}else{let s=(a=function(e,t){let n,r;let i=e||"",o={},a=0;for(;a1?n[e.line-2]:0)+e.column-1;if(r-1&&e<=t.length){let r=0;for(;;){let i=n[r];if(void 0===i){let e=kv(t,n[r-1]);i=-1===e?t.length+1:e+1,n[r]=i}if(i>e)return{line:r+1,column:e-(r>0?n[r-1]:0)+1,offset:e};r++}}}}}(t),i=r.toPoint(0),o=r.toPoint(t.length);n.position={start:i,end:o}}return n}case"#documentType":return kC(e,t,n={type:"doctype"}),n;case"#text":return n={type:"text",value:t.value},kC(e,t,n),n;default:return n=function(e,t){let n=e.schema;e.schema=t.namespaceURI===kS.svg?CO:CE;let r=-1,i={};for(;++r=55296&&e<=57343}function kj(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159}function kz(e){return e>=64976&&e<=65007||kB.has(e)}(I=eN||(eN={})).controlCharacterInInputStream="control-character-in-input-stream",I.noncharacterInInputStream="noncharacter-in-input-stream",I.surrogateInInputStream="surrogate-in-input-stream",I.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",I.endTagWithAttributes="end-tag-with-attributes",I.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",I.unexpectedSolidusInTag="unexpected-solidus-in-tag",I.unexpectedNullCharacter="unexpected-null-character",I.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",I.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",I.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",I.missingEndTagName="missing-end-tag-name",I.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",I.unknownNamedCharacterReference="unknown-named-character-reference",I.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",I.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",I.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",I.eofBeforeTagName="eof-before-tag-name",I.eofInTag="eof-in-tag",I.missingAttributeValue="missing-attribute-value",I.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",I.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",I.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",I.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",I.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",I.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",I.missingDoctypePublicIdentifier="missing-doctype-public-identifier",I.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",I.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",I.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",I.cdataInHtmlContent="cdata-in-html-content",I.incorrectlyOpenedComment="incorrectly-opened-comment",I.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",I.eofInDoctype="eof-in-doctype",I.nestedComment="nested-comment",I.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",I.eofInComment="eof-in-comment",I.incorrectlyClosedComment="incorrectly-closed-comment",I.eofInCdata="eof-in-cdata",I.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",I.nullCharacterReference="null-character-reference",I.surrogateCharacterReference="surrogate-character-reference",I.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",I.controlCharacterReference="control-character-reference",I.noncharacterCharacterReference="noncharacter-character-reference",I.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",I.missingDoctypeName="missing-doctype-name",I.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",I.duplicateAttribute="duplicate-attribute",I.nonConformingDoctype="non-conforming-doctype",I.missingDoctype="missing-doctype",I.misplacedDoctype="misplaced-doctype",I.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",I.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",I.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",I.openElementsLeftAfterEof="open-elements-left-after-eof",I.abandonedHeadElementChild="abandoned-head-element-child",I.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",I.nestedNoscriptInHead="nested-noscript-in-head",I.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text";class kH{constructor(e){this.handler=e,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+Number(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(e,t){let{line:n,col:r,offset:i}=this,o=r+t,a=i+t;return{code:e,startLine:n,endLine:n,startCol:o,endCol:o,startOffset:a,endOffset:a}}_err(e){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(e,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(e){if(this.pos!==this.html.length-1){var t;let n=this.html.charCodeAt(this.pos+1);if((t=n)>=56320&&t<=57343)return this.pos++,this._addGap(),(e-55296)*1024+9216+n}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,eP.EOF;return this._err(eN.surrogateInInputStream),e}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(e,t){this.html.length>0?this.html+=e:this.html=e,this.endOfChunkHit=!1,this.lastChunkWritten=t}insertHtmlAtCurrentPos(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(e,t){if(this.pos+e.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(t)return this.html.startsWith(e,this.pos);for(let t=0;t=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,eP.EOF;let n=this.html.charCodeAt(t);return n===eP.CARRIAGE_RETURN?eP.LINE_FEED:n}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,eP.EOF;let e=this.html.charCodeAt(this.pos);return e===eP.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,eP.LINE_FEED):e===eP.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,kU(e)&&(e=this._processSurrogate(e)),!(null===this.handler.onParseError||e>31&&e<127||e===eP.LINE_FEED||e===eP.CARRIAGE_RETURN||e>159&&e<64976)&&this._checkForProblematicCharacters(e),e)}_checkForProblematicCharacters(e){kj(e)?this._err(eN.controlCharacterInInputStream):kz(e)&&this._err(eN.noncharacterInInputStream)}retreat(e){for(this.pos-=e;this.pos=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null}(k=eD||(eD={}))[k.CHARACTER=0]="CHARACTER",k[k.NULL_CHARACTER=1]="NULL_CHARACTER",k[k.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",k[k.START_TAG=3]="START_TAG",k[k.END_TAG=4]="END_TAG",k[k.COMMENT=5]="COMMENT",k[k.DOCTYPE=6]="DOCTYPE",k[k.EOF=7]="EOF",k[k.HIBERNATION=8]="HIBERNATION";let kV=new Uint16Array('ᵁ<\xd5ıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig耻\xc6䃆P耻&䀦cute耻\xc1䃁reve;䄂Āiyx}rc耻\xc2䃂;䐐r;쀀\ud835\udd04rave耻\xc0䃀pha;䎑acr;䄀d;橓Āgp\x9d\xa1on;䄄f;쀀\ud835\udd38plyFunction;恡ing耻\xc5䃅Ācs\xbe\xc3r;쀀\ud835\udc9cign;扔ilde耻\xc3䃃ml耻\xc4䃄Ѐaceforsu\xe5\xfb\xfeėĜĢħĪĀcr\xea\xf2kslash;或Ŷ\xf6\xf8;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀\ud835\udd05pf;쀀\ud835\udd39eve;䋘c\xf2ēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻\xa9䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻\xc7䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷\xf2ſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀\ud835\udc9epĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀\ud835\udd07Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀\ud835\udd3bƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegra\xecȹoɴ͹\0\0ͻ\xbb͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔e\xe5ˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀\ud835\udc9frok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻\xd0䃐cute耻\xc9䃉ƀaiyӒӗӜron;䄚rc耻\xca䃊;䐭ot;䄖r;쀀\ud835\udd08rave耻\xc8䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀\ud835\udd3csilon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻\xcb䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀\ud835\udd09lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀\ud835\udd3dAll;戀riertrf;愱c\xf2׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀\ud835\udd0a;拙pf;쀀\ud835\udd3eeater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀\ud835\udca2;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅ\xf2کrok;䄦mpńېۘownHum\xf0įqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻\xcd䃍Āiyܓܘrc耻\xce䃎;䐘ot;䄰r;愑rave耻\xcc䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lie\xf3ϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀\ud835\udd40a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻\xcf䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀\ud835\udd0dpf;쀀\ud835\udd41ǣ߇\0ߌr;쀀\ud835\udca5rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀\ud835\udd0epf;쀀\ud835\udd42cr;쀀\ud835\udca6րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ight\xe1Μs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀\ud835\udd0fĀ;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊight\xe1οight\xe1ϊf;쀀\ud835\udd43erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂ\xf2ࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀\ud835\udd10nusPlus;戓pf;쀀\ud835\udd44c\xf2੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘\xeb૙eryThi\xee૙tedĀGL૸ଆreaterGreate\xf2ٳessLes\xf3ੈLine;䀊r;쀀\ud835\udd11ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀\ud835\udca9ilde耻\xd1䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻\xd3䃓Āiy෎ීrc耻\xd4䃔;䐞blac;䅐r;쀀\ud835\udd12rave耻\xd2䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀\ud835\udd46enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀\ud835\udcaaash耻\xd8䃘iŬื฼de耻\xd5䃕es;樷ml耻\xd6䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀\ud835\udd13i;䎦;䎠usMinus;䂱Āipຢອncareplan\xe5ڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀\ud835\udcab;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀\ud835\udd14pf;愚cr;쀀\ud835\udcac؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻\xae䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r\xbbཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀\ud835\udd16ortȀDLRUᄪᄴᄾᅉownArrow\xbbОeftArrow\xbb࢚ightArrow\xbb࿝pArrow;憑gma;䎣allCircle;战pf;쀀\ud835\udd4aɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀\ud835\udcaear;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Th\xe1ྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et\xbbሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻\xde䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀\ud835\udd17Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀\ud835\udd4bipleDot;惛Āctዖዛr;쀀\ud835\udcafrok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻\xda䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻\xdb䃛;䐣blac;䅰r;쀀\ud835\udd18rave耻\xd9䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀\ud835\udd4cЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥own\xe1ϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀\ud835\udcb0ilde;䅨ml耻\xdc䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀\ud835\udd19pf;쀀\ud835\udd4dcr;쀀\ud835\udcb1dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀\ud835\udd1apf;쀀\ud835\udd4ecr;쀀\ud835\udcb2Ȁfiosᓋᓐᓒᓘr;쀀\ud835\udd1b;䎞pf;쀀\ud835\udd4fcr;쀀\ud835\udcb3ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻\xdd䃝Āiyᔉᔍrc;䅶;䐫r;쀀\ud835\udd1cpf;쀀\ud835\udd50cr;쀀\ud835\udcb4ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidt\xe8૙a;䎖r;愨pf;愤cr;쀀\ud835\udcb5௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻\xe1䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻\xe2䃢te肻\xb4̆;䐰lig耻\xe6䃦Ā;r\xb2ᖺ;쀀\ud835\udd1erave耻\xe0䃠ĀepᗊᗖĀfpᗏᗔsym;愵\xe8ᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e\xbbᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢\xbb\xb9arr;捼Āgpᙣᙧon;䄅f;쀀\ud835\udd52΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒ\xf1ᚃing耻\xe5䃥ƀctyᚡᚦᚨr;쀀\ud835\udcb6;䀪mpĀ;e዁ᚯ\xf1ʈilde耻\xe3䃣ml耻\xe4䃤Āciᛂᛈonin\xf4ɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e\xbbᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰s\xe9ᜌno\xf5ēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀\ud835\udd1fg΀costuvwឍឝឳេ៕៛៞ƀaiuបពរ\xf0ݠrc;旯p\xbb፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄e\xe5ᑄ\xe5ᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀\ud835\udd53Ā;tᏋᡣom\xbbᏌtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻\xa6䂦Ȁceioᥑᥖᥚᥠr;쀀\ud835\udcb7mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t\xbb᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁\xeeړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻\xe7䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻\xb8ƭptyv;榲t脀\xa2;eᨭᨮ䂢r\xe4Ʋr;쀀\ud835\udd20ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark\xbbᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟\xbbཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it\xbb᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;q\xc7\xc6ɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁\xeeᅠeĀmx᫱᫶ent\xbb᫩e\xf3ɍǧ᫾\0ᬇĀ;dኻᬂot;橭n\xf4Ɇƀfryᬐᬔᬗ;쀀\ud835\udd54o\xe4ɔ脀\xa9;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀\ud835\udcb8Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒre\xe3᭳u\xe3᭵ee;拎edge;拏en耻\xa4䂤earrowĀlrᯮ᯳eft\xbbᮀight\xbbᮽe\xe4ᯝĀciᰁᰇonin\xf4Ƿnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍r\xf2΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸\xf2ᄳhĀ;vᱚᱛ怐\xbbऊūᱡᱧarow;椏a\xe3̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻\xb0䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀\ud835\udd21arĀlrᲳᲵ\xbbࣜ\xbbသʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀\xf7;o᳧ᳰntimes;拇n\xf8᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀\ud835\udd55ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedg\xe5\xfanƀadhᄮᵝᵧownarrow\xf3ᲃarpoonĀlrᵲᵶef\xf4Ჴigh\xf4ᲶŢᵿᶅkaro\xf7གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀\ud835\udcb9;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃r\xf2Щa\xf2ྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴo\xf4ᲉĀcsḎḔute耻\xe9䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻\xea䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀\ud835\udd22ƀ;rsṐṑṗ檚ave耻\xe8䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et\xbbẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀\ud835\udd56ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on\xbbớ;䏵ȀcsuvỪỳἋἣĀioữḱrc\xbbḮɩỹ\0\0ỻ\xedՈantĀglἂἆtr\xbbṝess\xbbṺƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯o\xf4͒ĀahὉὋ;䎷耻\xf0䃰Āmrὓὗl耻\xeb䃫o;悬ƀcipὡὤὧl;䀡s\xf4ծĀeoὬὴctatio\xeeՙnential\xe5չৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotse\xf1Ṅy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀\ud835\udd23lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀\ud835\udd57ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻\xbd䂽;慓耻\xbc䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻\xbe䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀\ud835\udcbbࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lan\xf4٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀\ud835\udd24Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox\xbbℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀\ud835\udd58Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎pro\xf8₞r;楸qĀlqؿ↖les\xf3₈i\xed٫Āen↣↭rtneqq;쀀≩︀\xc5↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽r\xf2ΠȀilmr⇐⇔⇗⇛rs\xf0ᒄf\xbb․il\xf4کĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it\xbb∊lip;怦con;抹r;쀀\ud835\udd25sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀\ud835\udd59bar;怕ƀclt≯≴≸r;쀀\ud835\udcbdas\xe8⇴rok;䄧Ābp⊂⊇ull;恃hen\xbbᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻\xed䃭ƀ;iyݱ⊰⊵rc耻\xee䃮;䐸Ācx⊼⊿y;䐵cl耻\xa1䂡ĀfrΟ⋉;쀀\ud835\udd26rave耻\xec䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓in\xe5ގar\xf4ܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝do\xf4⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙er\xf3ᕣ\xe3⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀\ud835\udd5aa;䎹uest耻\xbf䂿Āci⎊⎏r;쀀\ud835\udcbenʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻\xef䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀\ud835\udd27ath;䈷pf;쀀\ud835\udd5bǣ⏬\0⏱r;쀀\ud835\udcbfrcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀\ud835\udd28reen;䄸cy;䑅cy;䑜pf;쀀\ud835\udd5ccr;쀀\ud835\udcc0஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼r\xf2৆\xf2Εail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴ra\xeeࡌbda;䎻gƀ;dlࢎⓁⓃ;榑\xe5ࢎ;檅uo耻\xab䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝\xeb≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼\xecࢰ\xe2┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□a\xe9⓶arpoonĀdu▯▴own\xbbњp\xbb०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoon\xf3྘quigarro\xf7⇰hreetimes;拋ƀ;qs▋ও◺lan\xf4বʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋ppro\xf8Ⓠot;拖qĀgq♃♅\xf4উgt\xf2⒌\xf4ছi\xedলƀilr♕࣡♚sht;楼;쀀\ud835\udd29Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖r\xf2◁orne\xf2ᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che\xbb⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox\xbb⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽r\xebࣁgƀlmr⛿✍✔eftĀar০✇ight\xe1৲apsto;柼ight\xe1৽parrowĀlr✥✩ef\xf4⓭ight;憬ƀafl✶✹✽r;榅;쀀\ud835\udd5dus;樭imes;樴š❋❏st;戗\xe1ፎƀ;ef❗❘᠀旊nge\xbb❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇r\xf2ࢨorne\xf2ᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀\ud835\udcc1mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹re\xe5◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀\xc5⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻\xaf䂯Āet⡗⡙;時Ā;e⡞⡟朠se\xbb⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻ow\xeeҌef\xf4ए\xf0Ꮡker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle\xbbᘦr;쀀\ud835\udd2ao;愧ƀcdn⢯⢴⣉ro耻\xb5䂵Ȁ;acdᑤ⢽⣀⣄s\xf4ᚧir;櫰ot肻\xb7Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛\xf2−\xf0ઁĀdp⣩⣮els;抧f;쀀\ud835\udd5eĀct⣸⣽r;쀀\ud835\udcc2pos\xbbᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la\xbb˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉ro\xf8඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻\xa0ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸ui\xf6ୣĀei⩊⩎ar;椨\xed஘istĀ;s஠டr;쀀\ud835\udd2bȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lan\xf4௢i\xed௪Ā;rஶ⪁\xbbஷƀAap⪊⪍⪑r\xf2⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹r\xf2⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro\xf7⫁ightarro\xf7⪐ƀ;qs఻⪺⫪lan\xf4ౕĀ;sౕ⫴\xbbశi\xedౝĀ;rవ⫾iĀ;eచథi\xe4ඐĀpt⬌⬑f;쀀\ud835\udd5f膀\xac;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lle\xec୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳u\xe5ಥĀ;cಘ⭸Ā;eಒ⭽\xf1ಘȀAait⮈⮋⮝⮧r\xf2⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow\xbb⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉u\xe5൅;쀀\ud835\udcc3ortɭ⬅\0\0⯖ar\xe1⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭\xe5೸\xe5ഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗ\xf1സȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇ\xecௗlde耻\xf1䃱\xe7ృiangleĀlrⱒⱜeftĀ;eచⱚ\xf1దightĀ;eೋⱥ\xf1೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻\xf3䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻\xf4䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀\ud835\udd2cͯ⵹\0\0⵼\0ⶂn;䋛ave耻\xf2䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨr\xf2᪀Āir⶝ⶠr;榾oss;榻n\xe5๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀\ud835\udd60ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨r\xf2᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f\xbbⷿ耻\xaa䂪耻\xba䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧\xf2⸁ash耻\xf8䃸l;折iŬⸯ⸴de耻\xf5䃵esĀ;aǛ⸺s;樶ml耻\xf6䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀\xb6;l⹭⹮䂶le\xecЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀\ud835\udd2dƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕ma\xf4੶ne;明ƀ;tv⺿⻀⻈䏀chfork\xbb´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎\xf6⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻\xb1ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀\ud835\udd61nd耻\xa3䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷u\xe5໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾ppro\xf8⽃urlye\xf1໙\xf1໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨i\xedໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺\xf0⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴\xef໻rel;抰Āci⿀⿅r;쀀\ud835\udcc5;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀\ud835\udd2epf;쀀\ud835\udd62rime;恗cr;쀀\ud835\udcc6ƀaeo⿸〉〓tĀei⿾々rnion\xf3ڰnt;樖stĀ;e【】䀿\xf1Ἑ\xf4༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがr\xf2Ⴓ\xf2ϝail;検ar\xf2ᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕i\xe3ᅮmptyv;榳gȀ;del࿑らるろ;榒;榥\xe5࿑uo耻\xbb䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞\xeb≝\xf0✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶al\xf3༞ƀabrョリヮr\xf2៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗\xec࿲\xe2ヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜn\xe5Ⴛar\xf4ྩt;断ƀilrㅩဣㅮsht;楽;쀀\ud835\udd2fĀaoㅷㆆrĀduㅽㅿ\xbbѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭa\xe9トarpoonĀduㆻㆿow\xeeㅾp\xbb႒eftĀah㇊㇐rrow\xf3࿪arpoon\xf3Ցightarrows;應quigarro\xf7ニhreetimes;拌g;䋚ingdotse\xf1ἲƀahm㈍㈐㈓r\xf2࿪a\xf2Ց;怏oustĀ;a㈞㈟掱che\xbb㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾r\xebဃƀafl㉇㉊㉎r;榆;쀀\ud835\udd63us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒ar\xf2㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀\ud835\udcc7Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠re\xe5ㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛qu\xef➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡u\xe5ᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓i\xedሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒\xeb∨Ā;oਸ਼਴t耻\xa7䂧i;䀻war;椩mĀin㍩\xf0nu\xf3\xf1t;朶rĀ;o㍶⁕쀀\ud835\udd30Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜i\xe4ᑤara\xec⹯耻\xad䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲ar\xf2ᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetm\xe9㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀\ud835\udd64aĀdr㑍ЂesĀ;u㑔㑕晠it\xbb㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍\xf1ᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝\xf1ᆮƀ;afᅻ㒦ְrť㒫ֱ\xbbᅼar\xf2ᅈȀcemt㒹㒾㓂㓅r;쀀\ud835\udcc8tm\xee\xf1i\xec㐕ar\xe6ᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psilo\xeeỠh\xe9⺯s\xbb⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦ppro\xf8㋺urlye\xf1ᇾ\xf1ᇳƀaes㖂㖈㌛ppro\xf8㌚q\xf1㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻\xb9䂹耻\xb2䂲耻\xb3䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨\xeb∮Ā;oਫ਩war;椪lig耻\xdf䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄r\xeb๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀\ud835\udd31Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮ppro\xf8዁im\xbbኬs\xf0ኞĀas㚺㚮\xf0዁rn耻\xfe䃾Ǭ̟㛆⋧es膀\xd7;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀\xe1⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀\ud835\udd65rk;櫚\xe1㍢rime;怴ƀaip㜏㜒㝤d\xe5ቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own\xbbᶻeftĀ;e⠀㜾\xf1म;扜ightĀ;e㊪㝋\xf1ၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀\ud835\udcc9;䑆cy;䑛rok;䅧Āio㞋㞎x\xf4᝷headĀlr㞗㞠eftarro\xf7ࡏightarrow\xbbཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶r\xf2ϭar;楣Ācr㟜㟢ute耻\xfa䃺\xf2ᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻\xfb䃻;䑃ƀabh㠃㠆㠋r\xf2Ꭽlac;䅱a\xf2ᏃĀir㠓㠘sht;楾;쀀\ud835\udd32rave耻\xf9䃹š㠧㠱rĀlr㠬㠮\xbbॗ\xbbႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r\xbb㡆op;挏ri;旸Āal㡖㡚cr;䅫肻\xa8͉Āgp㡢㡦on;䅳f;쀀\ud835\udd66̀adhlsuᅋ㡸㡽፲㢑㢠own\xe1ᎳarpoonĀlr㢈㢌ef\xf4㠭igh\xf4㠯iƀ;hl㢙㢚㢜䏅\xbbᏺon\xbb㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r\xbb㢽op;挎ng;䅯ri;旹cr;쀀\ud835\udccaƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨\xbb᠓Āam㣯㣲r\xf2㢨l耻\xfc䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠r\xf2ϷarĀ;v㤦㤧櫨;櫩as\xe8ϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖app\xe1␕othin\xe7ẖƀhir㓫⻈㥙op\xf4⾵Ā;hᎷ㥢\xefㆍĀiu㥩㥭gm\xe1㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟et\xe1㚜iangleĀlr㦪㦯eft\xbbथight\xbbၑy;䐲ash\xbbံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨa\xf2ᑩr;쀀\ud835\udd33tr\xe9㦮suĀbp㧯㧱\xbbജ\xbb൙pf;쀀\ud835\udd67ro\xf0໻tr\xe9㦴Ācu㨆㨋r;쀀\ud835\udccbĀbp㨐㨘nĀEe㦀㨖\xbb㥾nĀEe㦒㨞\xbb㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀\ud835\udd34pf;쀀\ud835\udd68Ā;eᑹ㩦at\xe8ᑹcr;쀀\ud835\udcccૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tr\xe9៑r;쀀\ud835\udd35ĀAa㪔㪗r\xf2σr\xf2৶;䎾ĀAa㪡㪤r\xf2θr\xf2৫a\xf0✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀\ud835\udd69im\xe5ឲĀAa㫇㫊r\xf2ώr\xf2ਁĀcq㫒ីr;쀀\ud835\udccdĀpt៖㫜r\xe9។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻\xfd䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻\xa5䂥r;쀀\ud835\udd36cy;䑗pf;쀀\ud835\udd6acr;쀀\ud835\udcceĀcm㬦㬩y;䑎l耻\xff䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡tr\xe6ᕟa;䎶r;쀀\ud835\udd37cy;䐶grarr;懝pf;쀀\ud835\udd6bcr;쀀\ud835\udccfĀjn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),kG=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);eM=String.fromCodePoint;(_=eL||(eL={}))[_.NUM=35]="NUM",_[_.SEMI=59]="SEMI",_[_.EQUALS=61]="EQUALS",_[_.ZERO=48]="ZERO",_[_.NINE=57]="NINE",_[_.LOWER_A=97]="LOWER_A",_[_.LOWER_F=102]="LOWER_F",_[_.LOWER_X=120]="LOWER_X",_[_.LOWER_Z=122]="LOWER_Z",_[_.UPPER_A=65]="UPPER_A",_[_.UPPER_F=70]="UPPER_F",_[_.UPPER_Z=90]="UPPER_Z";function kW(e){return e>=eL.ZERO&&e<=eL.NINE}(R=eB||(eB={}))[R.VALUE_LENGTH=49152]="VALUE_LENGTH",R[R.BRANCH_LENGTH=16256]="BRANCH_LENGTH",R[R.JUMP_TABLE=127]="JUMP_TABLE";(P=eF||(eF={}))[P.EntityStart=0]="EntityStart",P[P.NumericStart=1]="NumericStart",P[P.NumericDecimal=2]="NumericDecimal",P[P.NumericHex=3]="NumericHex",P[P.NamedEntity=4]="NamedEntity",(N=eU||(eU={}))[N.Legacy=0]="Legacy",N[N.Strict=1]="Strict",N[N.Attribute=2]="Attribute";class kQ{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=eF.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=eU.Strict}startEntity(e){this.decodeMode=e,this.state=eF.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(e,t){switch(this.state){case eF.EntityStart:if(e.charCodeAt(t)===eL.NUM)return this.state=eF.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1);return this.state=eF.NamedEntity,this.stateNamedEntity(e,t);case eF.NumericStart:return this.stateNumericStart(e,t);case eF.NumericDecimal:return this.stateNumericDecimal(e,t);case eF.NumericHex:return this.stateNumericHex(e,t);case eF.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===eL.LOWER_X?(this.state=eF.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=eF.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,n,r){if(t!==n){let i=n-t;this.result=this.result*Math.pow(r,i)+Number.parseInt(e.substr(t,i),r),this.consumed+=i}}stateNumericHex(e,t){let n=t;for(;t=eL.UPPER_A)||!(r<=eL.UPPER_F))&&(!(r>=eL.LOWER_A)||!(r<=eL.LOWER_F)))return this.addToNumericResult(e,n,t,16),this.emitNumericEntity(i,3);t+=1}return this.addToNumericResult(e,n,t,16),-1}stateNumericDecimal(e,t){let n=t;for(;t=55296&&r<=57343||r>1114111?65533:null!==(i=kG.get(r))&&void 0!==i?i:r,this.consumed),this.errors&&(e!==eL.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,r=n[this.treeIndex],i=(r&eB.VALUE_LENGTH)>>14;for(;t>7,o=t&eB.JUMP_TABLE;if(0===i)return 0!==o&&r===o?n:-1;if(o){let t=r-o;return t<0||t>=i?-1:e[n+t]-1}let a=n,s=a+i-1;for(;a<=s;){let t=a+s>>>1,n=e[t];if(nr))return e[t+i];s=t-1}}return -1}(n,r,this.treeIndex+Math.max(1,i),o),this.treeIndex<0)return 0===this.result||this.decodeMode===eU.Attribute&&(0===i||function(e){var t;return e===eL.EQUALS||(t=e)>=eL.UPPER_A&&t<=eL.UPPER_Z||t>=eL.LOWER_A&&t<=eL.LOWER_Z||kW(t)}(o))?0:this.emitNotTerminatedNamedEntity();if(0!=(i=((r=n[this.treeIndex])&eB.VALUE_LENGTH)>>14)){if(o===eL.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==eU.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return -1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,r=(n[t]&eB.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:r}=this;return this.emitCodePoint(1===t?r[e]&~eB.VALUE_LENGTH:r[e+1],n),3===t&&this.emitCodePoint(r[e+2],n),n}end(){var e;switch(this.state){case eF.NamedEntity:return 0!==this.result&&(this.decodeMode!==eU.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case eF.NumericDecimal:return this.emitNumericEntity(0,2);case eF.NumericHex:return this.emitNumericEntity(0,3);case eF.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case eF.EntityStart:return 0}}}(D=ej||(ej={})).HTML="http://www.w3.org/1999/xhtml",D.MATHML="http://www.w3.org/1998/Math/MathML",D.SVG="http://www.w3.org/2000/svg",D.XLINK="http://www.w3.org/1999/xlink",D.XML="http://www.w3.org/XML/1998/namespace",D.XMLNS="http://www.w3.org/2000/xmlns/",(M=ez||(ez={})).TYPE="type",M.ACTION="action",M.ENCODING="encoding",M.PROMPT="prompt",M.NAME="name",M.COLOR="color",M.FACE="face",M.SIZE="size",(L=eH||(eH={})).NO_QUIRKS="no-quirks",L.QUIRKS="quirks",L.LIMITED_QUIRKS="limited-quirks",(B=eZ||(eZ={})).A="a",B.ADDRESS="address",B.ANNOTATION_XML="annotation-xml",B.APPLET="applet",B.AREA="area",B.ARTICLE="article",B.ASIDE="aside",B.B="b",B.BASE="base",B.BASEFONT="basefont",B.BGSOUND="bgsound",B.BIG="big",B.BLOCKQUOTE="blockquote",B.BODY="body",B.BR="br",B.BUTTON="button",B.CAPTION="caption",B.CENTER="center",B.CODE="code",B.COL="col",B.COLGROUP="colgroup",B.DD="dd",B.DESC="desc",B.DETAILS="details",B.DIALOG="dialog",B.DIR="dir",B.DIV="div",B.DL="dl",B.DT="dt",B.EM="em",B.EMBED="embed",B.FIELDSET="fieldset",B.FIGCAPTION="figcaption",B.FIGURE="figure",B.FONT="font",B.FOOTER="footer",B.FOREIGN_OBJECT="foreignObject",B.FORM="form",B.FRAME="frame",B.FRAMESET="frameset",B.H1="h1",B.H2="h2",B.H3="h3",B.H4="h4",B.H5="h5",B.H6="h6",B.HEAD="head",B.HEADER="header",B.HGROUP="hgroup",B.HR="hr",B.HTML="html",B.I="i",B.IMG="img",B.IMAGE="image",B.INPUT="input",B.IFRAME="iframe",B.KEYGEN="keygen",B.LABEL="label",B.LI="li",B.LINK="link",B.LISTING="listing",B.MAIN="main",B.MALIGNMARK="malignmark",B.MARQUEE="marquee",B.MATH="math",B.MENU="menu",B.META="meta",B.MGLYPH="mglyph",B.MI="mi",B.MO="mo",B.MN="mn",B.MS="ms",B.MTEXT="mtext",B.NAV="nav",B.NOBR="nobr",B.NOFRAMES="noframes",B.NOEMBED="noembed",B.NOSCRIPT="noscript",B.OBJECT="object",B.OL="ol",B.OPTGROUP="optgroup",B.OPTION="option",B.P="p",B.PARAM="param",B.PLAINTEXT="plaintext",B.PRE="pre",B.RB="rb",B.RP="rp",B.RT="rt",B.RTC="rtc",B.RUBY="ruby",B.S="s",B.SCRIPT="script",B.SEARCH="search",B.SECTION="section",B.SELECT="select",B.SOURCE="source",B.SMALL="small",B.SPAN="span",B.STRIKE="strike",B.STRONG="strong",B.STYLE="style",B.SUB="sub",B.SUMMARY="summary",B.SUP="sup",B.TABLE="table",B.TBODY="tbody",B.TEMPLATE="template",B.TEXTAREA="textarea",B.TFOOT="tfoot",B.TD="td",B.TH="th",B.THEAD="thead",B.TITLE="title",B.TR="tr",B.TRACK="track",B.TT="tt",B.U="u",B.UL="ul",B.SVG="svg",B.VAR="var",B.WBR="wbr",B.XMP="xmp",(F=eV||(eV={}))[F.UNKNOWN=0]="UNKNOWN",F[F.A=1]="A",F[F.ADDRESS=2]="ADDRESS",F[F.ANNOTATION_XML=3]="ANNOTATION_XML",F[F.APPLET=4]="APPLET",F[F.AREA=5]="AREA",F[F.ARTICLE=6]="ARTICLE",F[F.ASIDE=7]="ASIDE",F[F.B=8]="B",F[F.BASE=9]="BASE",F[F.BASEFONT=10]="BASEFONT",F[F.BGSOUND=11]="BGSOUND",F[F.BIG=12]="BIG",F[F.BLOCKQUOTE=13]="BLOCKQUOTE",F[F.BODY=14]="BODY",F[F.BR=15]="BR",F[F.BUTTON=16]="BUTTON",F[F.CAPTION=17]="CAPTION",F[F.CENTER=18]="CENTER",F[F.CODE=19]="CODE",F[F.COL=20]="COL",F[F.COLGROUP=21]="COLGROUP",F[F.DD=22]="DD",F[F.DESC=23]="DESC",F[F.DETAILS=24]="DETAILS",F[F.DIALOG=25]="DIALOG",F[F.DIR=26]="DIR",F[F.DIV=27]="DIV",F[F.DL=28]="DL",F[F.DT=29]="DT",F[F.EM=30]="EM",F[F.EMBED=31]="EMBED",F[F.FIELDSET=32]="FIELDSET",F[F.FIGCAPTION=33]="FIGCAPTION",F[F.FIGURE=34]="FIGURE",F[F.FONT=35]="FONT",F[F.FOOTER=36]="FOOTER",F[F.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",F[F.FORM=38]="FORM",F[F.FRAME=39]="FRAME",F[F.FRAMESET=40]="FRAMESET",F[F.H1=41]="H1",F[F.H2=42]="H2",F[F.H3=43]="H3",F[F.H4=44]="H4",F[F.H5=45]="H5",F[F.H6=46]="H6",F[F.HEAD=47]="HEAD",F[F.HEADER=48]="HEADER",F[F.HGROUP=49]="HGROUP",F[F.HR=50]="HR",F[F.HTML=51]="HTML",F[F.I=52]="I",F[F.IMG=53]="IMG",F[F.IMAGE=54]="IMAGE",F[F.INPUT=55]="INPUT",F[F.IFRAME=56]="IFRAME",F[F.KEYGEN=57]="KEYGEN",F[F.LABEL=58]="LABEL",F[F.LI=59]="LI",F[F.LINK=60]="LINK",F[F.LISTING=61]="LISTING",F[F.MAIN=62]="MAIN",F[F.MALIGNMARK=63]="MALIGNMARK",F[F.MARQUEE=64]="MARQUEE",F[F.MATH=65]="MATH",F[F.MENU=66]="MENU",F[F.META=67]="META",F[F.MGLYPH=68]="MGLYPH",F[F.MI=69]="MI",F[F.MO=70]="MO",F[F.MN=71]="MN",F[F.MS=72]="MS",F[F.MTEXT=73]="MTEXT",F[F.NAV=74]="NAV",F[F.NOBR=75]="NOBR",F[F.NOFRAMES=76]="NOFRAMES",F[F.NOEMBED=77]="NOEMBED",F[F.NOSCRIPT=78]="NOSCRIPT",F[F.OBJECT=79]="OBJECT",F[F.OL=80]="OL",F[F.OPTGROUP=81]="OPTGROUP",F[F.OPTION=82]="OPTION",F[F.P=83]="P",F[F.PARAM=84]="PARAM",F[F.PLAINTEXT=85]="PLAINTEXT",F[F.PRE=86]="PRE",F[F.RB=87]="RB",F[F.RP=88]="RP",F[F.RT=89]="RT",F[F.RTC=90]="RTC",F[F.RUBY=91]="RUBY",F[F.S=92]="S",F[F.SCRIPT=93]="SCRIPT",F[F.SEARCH=94]="SEARCH",F[F.SECTION=95]="SECTION",F[F.SELECT=96]="SELECT",F[F.SOURCE=97]="SOURCE",F[F.SMALL=98]="SMALL",F[F.SPAN=99]="SPAN",F[F.STRIKE=100]="STRIKE",F[F.STRONG=101]="STRONG",F[F.STYLE=102]="STYLE",F[F.SUB=103]="SUB",F[F.SUMMARY=104]="SUMMARY",F[F.SUP=105]="SUP",F[F.TABLE=106]="TABLE",F[F.TBODY=107]="TBODY",F[F.TEMPLATE=108]="TEMPLATE",F[F.TEXTAREA=109]="TEXTAREA",F[F.TFOOT=110]="TFOOT",F[F.TD=111]="TD",F[F.TH=112]="TH",F[F.THEAD=113]="THEAD",F[F.TITLE=114]="TITLE",F[F.TR=115]="TR",F[F.TRACK=116]="TRACK",F[F.TT=117]="TT",F[F.U=118]="U",F[F.UL=119]="UL",F[F.SVG=120]="SVG",F[F.VAR=121]="VAR",F[F.WBR=122]="WBR",F[F.XMP=123]="XMP";let kq=new Map([[eZ.A,eV.A],[eZ.ADDRESS,eV.ADDRESS],[eZ.ANNOTATION_XML,eV.ANNOTATION_XML],[eZ.APPLET,eV.APPLET],[eZ.AREA,eV.AREA],[eZ.ARTICLE,eV.ARTICLE],[eZ.ASIDE,eV.ASIDE],[eZ.B,eV.B],[eZ.BASE,eV.BASE],[eZ.BASEFONT,eV.BASEFONT],[eZ.BGSOUND,eV.BGSOUND],[eZ.BIG,eV.BIG],[eZ.BLOCKQUOTE,eV.BLOCKQUOTE],[eZ.BODY,eV.BODY],[eZ.BR,eV.BR],[eZ.BUTTON,eV.BUTTON],[eZ.CAPTION,eV.CAPTION],[eZ.CENTER,eV.CENTER],[eZ.CODE,eV.CODE],[eZ.COL,eV.COL],[eZ.COLGROUP,eV.COLGROUP],[eZ.DD,eV.DD],[eZ.DESC,eV.DESC],[eZ.DETAILS,eV.DETAILS],[eZ.DIALOG,eV.DIALOG],[eZ.DIR,eV.DIR],[eZ.DIV,eV.DIV],[eZ.DL,eV.DL],[eZ.DT,eV.DT],[eZ.EM,eV.EM],[eZ.EMBED,eV.EMBED],[eZ.FIELDSET,eV.FIELDSET],[eZ.FIGCAPTION,eV.FIGCAPTION],[eZ.FIGURE,eV.FIGURE],[eZ.FONT,eV.FONT],[eZ.FOOTER,eV.FOOTER],[eZ.FOREIGN_OBJECT,eV.FOREIGN_OBJECT],[eZ.FORM,eV.FORM],[eZ.FRAME,eV.FRAME],[eZ.FRAMESET,eV.FRAMESET],[eZ.H1,eV.H1],[eZ.H2,eV.H2],[eZ.H3,eV.H3],[eZ.H4,eV.H4],[eZ.H5,eV.H5],[eZ.H6,eV.H6],[eZ.HEAD,eV.HEAD],[eZ.HEADER,eV.HEADER],[eZ.HGROUP,eV.HGROUP],[eZ.HR,eV.HR],[eZ.HTML,eV.HTML],[eZ.I,eV.I],[eZ.IMG,eV.IMG],[eZ.IMAGE,eV.IMAGE],[eZ.INPUT,eV.INPUT],[eZ.IFRAME,eV.IFRAME],[eZ.KEYGEN,eV.KEYGEN],[eZ.LABEL,eV.LABEL],[eZ.LI,eV.LI],[eZ.LINK,eV.LINK],[eZ.LISTING,eV.LISTING],[eZ.MAIN,eV.MAIN],[eZ.MALIGNMARK,eV.MALIGNMARK],[eZ.MARQUEE,eV.MARQUEE],[eZ.MATH,eV.MATH],[eZ.MENU,eV.MENU],[eZ.META,eV.META],[eZ.MGLYPH,eV.MGLYPH],[eZ.MI,eV.MI],[eZ.MO,eV.MO],[eZ.MN,eV.MN],[eZ.MS,eV.MS],[eZ.MTEXT,eV.MTEXT],[eZ.NAV,eV.NAV],[eZ.NOBR,eV.NOBR],[eZ.NOFRAMES,eV.NOFRAMES],[eZ.NOEMBED,eV.NOEMBED],[eZ.NOSCRIPT,eV.NOSCRIPT],[eZ.OBJECT,eV.OBJECT],[eZ.OL,eV.OL],[eZ.OPTGROUP,eV.OPTGROUP],[eZ.OPTION,eV.OPTION],[eZ.P,eV.P],[eZ.PARAM,eV.PARAM],[eZ.PLAINTEXT,eV.PLAINTEXT],[eZ.PRE,eV.PRE],[eZ.RB,eV.RB],[eZ.RP,eV.RP],[eZ.RT,eV.RT],[eZ.RTC,eV.RTC],[eZ.RUBY,eV.RUBY],[eZ.S,eV.S],[eZ.SCRIPT,eV.SCRIPT],[eZ.SEARCH,eV.SEARCH],[eZ.SECTION,eV.SECTION],[eZ.SELECT,eV.SELECT],[eZ.SOURCE,eV.SOURCE],[eZ.SMALL,eV.SMALL],[eZ.SPAN,eV.SPAN],[eZ.STRIKE,eV.STRIKE],[eZ.STRONG,eV.STRONG],[eZ.STYLE,eV.STYLE],[eZ.SUB,eV.SUB],[eZ.SUMMARY,eV.SUMMARY],[eZ.SUP,eV.SUP],[eZ.TABLE,eV.TABLE],[eZ.TBODY,eV.TBODY],[eZ.TEMPLATE,eV.TEMPLATE],[eZ.TEXTAREA,eV.TEXTAREA],[eZ.TFOOT,eV.TFOOT],[eZ.TD,eV.TD],[eZ.TH,eV.TH],[eZ.THEAD,eV.THEAD],[eZ.TITLE,eV.TITLE],[eZ.TR,eV.TR],[eZ.TRACK,eV.TRACK],[eZ.TT,eV.TT],[eZ.U,eV.U],[eZ.UL,eV.UL],[eZ.SVG,eV.SVG],[eZ.VAR,eV.VAR],[eZ.WBR,eV.WBR],[eZ.XMP,eV.XMP]]);function kK(e){var t;return null!==(t=kq.get(e))&&void 0!==t?t:eV.UNKNOWN}let kY=eV,kX={[ej.HTML]:new Set([kY.ADDRESS,kY.APPLET,kY.AREA,kY.ARTICLE,kY.ASIDE,kY.BASE,kY.BASEFONT,kY.BGSOUND,kY.BLOCKQUOTE,kY.BODY,kY.BR,kY.BUTTON,kY.CAPTION,kY.CENTER,kY.COL,kY.COLGROUP,kY.DD,kY.DETAILS,kY.DIR,kY.DIV,kY.DL,kY.DT,kY.EMBED,kY.FIELDSET,kY.FIGCAPTION,kY.FIGURE,kY.FOOTER,kY.FORM,kY.FRAME,kY.FRAMESET,kY.H1,kY.H2,kY.H3,kY.H4,kY.H5,kY.H6,kY.HEAD,kY.HEADER,kY.HGROUP,kY.HR,kY.HTML,kY.IFRAME,kY.IMG,kY.INPUT,kY.LI,kY.LINK,kY.LISTING,kY.MAIN,kY.MARQUEE,kY.MENU,kY.META,kY.NAV,kY.NOEMBED,kY.NOFRAMES,kY.NOSCRIPT,kY.OBJECT,kY.OL,kY.P,kY.PARAM,kY.PLAINTEXT,kY.PRE,kY.SCRIPT,kY.SECTION,kY.SELECT,kY.SOURCE,kY.STYLE,kY.SUMMARY,kY.TABLE,kY.TBODY,kY.TD,kY.TEMPLATE,kY.TEXTAREA,kY.TFOOT,kY.TH,kY.THEAD,kY.TITLE,kY.TR,kY.TRACK,kY.UL,kY.WBR,kY.XMP]),[ej.MATHML]:new Set([kY.MI,kY.MO,kY.MN,kY.MS,kY.MTEXT,kY.ANNOTATION_XML]),[ej.SVG]:new Set([kY.TITLE,kY.FOREIGN_OBJECT,kY.DESC]),[ej.XLINK]:new Set,[ej.XML]:new Set,[ej.XMLNS]:new Set},kJ=new Set([kY.H1,kY.H2,kY.H3,kY.H4,kY.H5,kY.H6]);eZ.STYLE,eZ.SCRIPT,eZ.XMP,eZ.IFRAME,eZ.NOEMBED,eZ.NOFRAMES,eZ.PLAINTEXT,(U=eG||(eG={}))[U.DATA=0]="DATA",U[U.RCDATA=1]="RCDATA",U[U.RAWTEXT=2]="RAWTEXT",U[U.SCRIPT_DATA=3]="SCRIPT_DATA",U[U.PLAINTEXT=4]="PLAINTEXT",U[U.TAG_OPEN=5]="TAG_OPEN",U[U.END_TAG_OPEN=6]="END_TAG_OPEN",U[U.TAG_NAME=7]="TAG_NAME",U[U.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",U[U.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",U[U.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",U[U.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",U[U.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",U[U.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",U[U.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",U[U.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",U[U.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",U[U.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",U[U.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",U[U.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",U[U.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",U[U.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",U[U.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",U[U.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",U[U.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",U[U.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",U[U.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",U[U.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",U[U.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",U[U.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",U[U.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",U[U.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",U[U.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",U[U.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",U[U.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",U[U.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",U[U.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",U[U.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",U[U.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",U[U.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",U[U.BOGUS_COMMENT=40]="BOGUS_COMMENT",U[U.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",U[U.COMMENT_START=42]="COMMENT_START",U[U.COMMENT_START_DASH=43]="COMMENT_START_DASH",U[U.COMMENT=44]="COMMENT",U[U.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",U[U.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",U[U.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",U[U.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",U[U.COMMENT_END_DASH=49]="COMMENT_END_DASH",U[U.COMMENT_END=50]="COMMENT_END",U[U.COMMENT_END_BANG=51]="COMMENT_END_BANG",U[U.DOCTYPE=52]="DOCTYPE",U[U.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",U[U.DOCTYPE_NAME=54]="DOCTYPE_NAME",U[U.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",U[U.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",U[U.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",U[U.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",U[U.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",U[U.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",U[U.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",U[U.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",U[U.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",U[U.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",U[U.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",U[U.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",U[U.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",U[U.CDATA_SECTION=68]="CDATA_SECTION",U[U.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",U[U.CDATA_SECTION_END=70]="CDATA_SECTION_END",U[U.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",U[U.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND";let k$={DATA:eG.DATA,RCDATA:eG.RCDATA,RAWTEXT:eG.RAWTEXT,SCRIPT_DATA:eG.SCRIPT_DATA,PLAINTEXT:eG.PLAINTEXT,CDATA_SECTION:eG.CDATA_SECTION};function k0(e){return e>=eP.LATIN_CAPITAL_A&&e<=eP.LATIN_CAPITAL_Z}function k1(e){var t;return(t=e)>=eP.LATIN_SMALL_A&&t<=eP.LATIN_SMALL_Z||k0(e)}function k2(e){var t;return k1(e)||(t=e)>=eP.DIGIT_0&&t<=eP.DIGIT_9}function k4(e){return e+32}function k3(e){return e===eP.SPACE||e===eP.LINE_FEED||e===eP.TABULATION||e===eP.FORM_FEED}function k6(e){return k3(e)||e===eP.SOLIDUS||e===eP.GREATER_THAN_SIGN}class k7{constructor(e,t){this.options=e,this.handler=t,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=eG.DATA,this.returnState=eG.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new kH(t),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new kQ(kV,(e,t)=>{this.preprocessor.pos=this.entityStartPos+t-1,this._flushCodePointConsumedAsCharacterReference(e)},t.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(eN.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:e=>{this._err(eN.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+e)},validateNumericCharacterReference:e=>{let t=function(e){if(e===eP.NULL)return eN.nullCharacterReference;if(e>1114111)return eN.characterReferenceOutsideUnicodeRange;if(kU(e))return eN.surrogateCharacterReference;else if(kz(e))return eN.noncharacterCharacterReference;else if(kj(e)||e===eP.CARRIAGE_RETURN)return eN.controlCharacterReference;return null}(e);t&&this._err(t,1)}}:void 0)}_err(e,t=0){var n,r;null===(r=(n=this.handler).onParseError)||void 0===r||r.call(n,this.preprocessor.getError(e,t))}getCurrentLocation(e){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-e,startOffset:this.preprocessor.offset-e,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;let e=this._consume();!this._ensureHibernation()&&this._callState(e)}this.inLoop=!1}}pause(){this.paused=!0}resume(e){if(!this.paused)throw Error("Parser was already resumed");this.paused=!1,!this.inLoop&&(this._runParsingLoop(),!this.paused&&(null==e||e()))}write(e,t,n){this.active=!0,this.preprocessor.write(e,t),this._runParsingLoop(),!this.paused&&(null==n||n())}insertHtmlAtCurrentPos(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e),this._runParsingLoop()}_ensureHibernation(){return!!this.preprocessor.endOfChunkHit&&(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0)}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(e){this.consumedAfterSnapshot+=e;for(let t=0;t0&&this._err(eN.endTagWithAttributes),e.selfClosing&&this._err(eN.endTagWithTrailingSolidus),this.handler.onEndTag(e)),this.preprocessor.dropParsedChunk()}emitCurrentComment(e){this.prepareToken(e),this.handler.onComment(e),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(e){this.prepareToken(e),this.handler.onDoctype(e),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(e){if(this.currentCharacterToken){switch(e&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=e.startLine,this.currentCharacterToken.location.endCol=e.startCol,this.currentCharacterToken.location.endOffset=e.startOffset),this.currentCharacterToken.type){case eD.CHARACTER:this.handler.onCharacter(this.currentCharacterToken);break;case eD.NULL_CHARACTER:this.handler.onNullCharacter(this.currentCharacterToken);break;case eD.WHITESPACE_CHARACTER:this.handler.onWhitespaceCharacter(this.currentCharacterToken)}this.currentCharacterToken=null}}_emitEOFToken(){let e=this.getCurrentLocation(0);e&&(e.endLine=e.startLine,e.endCol=e.startCol,e.endOffset=e.startOffset),this._emitCurrentCharacterToken(e),this.handler.onEof({type:eD.EOF,location:e}),this.active=!1}_appendCharToCurrentCharacterToken(e,t){if(this.currentCharacterToken){if(this.currentCharacterToken.type===e){this.currentCharacterToken.chars+=t;return}this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk()}this._createCharacterToken(e,t)}_emitCodePoint(e){let t=k3(e)?eD.WHITESPACE_CHARACTER:e===eP.NULL?eD.NULL_CHARACTER:eD.CHARACTER;this._appendCharToCurrentCharacterToken(t,String.fromCodePoint(e))}_emitChars(e){this._appendCharToCurrentCharacterToken(eD.CHARACTER,e)}_startCharacterReference(){this.returnState=this.state,this.state=eG.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?eU.Attribute:eU.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===eG.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===eG.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===eG.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(e){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(e):this._emitCodePoint(e)}_callState(e){switch(this.state){case eG.DATA:this._stateData(e);break;case eG.RCDATA:this._stateRcdata(e);break;case eG.RAWTEXT:this._stateRawtext(e);break;case eG.SCRIPT_DATA:this._stateScriptData(e);break;case eG.PLAINTEXT:this._statePlaintext(e);break;case eG.TAG_OPEN:this._stateTagOpen(e);break;case eG.END_TAG_OPEN:this._stateEndTagOpen(e);break;case eG.TAG_NAME:this._stateTagName(e);break;case eG.RCDATA_LESS_THAN_SIGN:this._stateRcdataLessThanSign(e);break;case eG.RCDATA_END_TAG_OPEN:this._stateRcdataEndTagOpen(e);break;case eG.RCDATA_END_TAG_NAME:this._stateRcdataEndTagName(e);break;case eG.RAWTEXT_LESS_THAN_SIGN:this._stateRawtextLessThanSign(e);break;case eG.RAWTEXT_END_TAG_OPEN:this._stateRawtextEndTagOpen(e);break;case eG.RAWTEXT_END_TAG_NAME:this._stateRawtextEndTagName(e);break;case eG.SCRIPT_DATA_LESS_THAN_SIGN:this._stateScriptDataLessThanSign(e);break;case eG.SCRIPT_DATA_END_TAG_OPEN:this._stateScriptDataEndTagOpen(e);break;case eG.SCRIPT_DATA_END_TAG_NAME:this._stateScriptDataEndTagName(e);break;case eG.SCRIPT_DATA_ESCAPE_START:this._stateScriptDataEscapeStart(e);break;case eG.SCRIPT_DATA_ESCAPE_START_DASH:this._stateScriptDataEscapeStartDash(e);break;case eG.SCRIPT_DATA_ESCAPED:this._stateScriptDataEscaped(e);break;case eG.SCRIPT_DATA_ESCAPED_DASH:this._stateScriptDataEscapedDash(e);break;case eG.SCRIPT_DATA_ESCAPED_DASH_DASH:this._stateScriptDataEscapedDashDash(e);break;case eG.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataEscapedLessThanSign(e);break;case eG.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:this._stateScriptDataEscapedEndTagOpen(e);break;case eG.SCRIPT_DATA_ESCAPED_END_TAG_NAME:this._stateScriptDataEscapedEndTagName(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPE_START:this._stateScriptDataDoubleEscapeStart(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPED:this._stateScriptDataDoubleEscaped(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:this._stateScriptDataDoubleEscapedDash(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:this._stateScriptDataDoubleEscapedDashDash(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataDoubleEscapedLessThanSign(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPE_END:this._stateScriptDataDoubleEscapeEnd(e);break;case eG.BEFORE_ATTRIBUTE_NAME:this._stateBeforeAttributeName(e);break;case eG.ATTRIBUTE_NAME:this._stateAttributeName(e);break;case eG.AFTER_ATTRIBUTE_NAME:this._stateAfterAttributeName(e);break;case eG.BEFORE_ATTRIBUTE_VALUE:this._stateBeforeAttributeValue(e);break;case eG.ATTRIBUTE_VALUE_DOUBLE_QUOTED:this._stateAttributeValueDoubleQuoted(e);break;case eG.ATTRIBUTE_VALUE_SINGLE_QUOTED:this._stateAttributeValueSingleQuoted(e);break;case eG.ATTRIBUTE_VALUE_UNQUOTED:this._stateAttributeValueUnquoted(e);break;case eG.AFTER_ATTRIBUTE_VALUE_QUOTED:this._stateAfterAttributeValueQuoted(e);break;case eG.SELF_CLOSING_START_TAG:this._stateSelfClosingStartTag(e);break;case eG.BOGUS_COMMENT:this._stateBogusComment(e);break;case eG.MARKUP_DECLARATION_OPEN:this._stateMarkupDeclarationOpen(e);break;case eG.COMMENT_START:this._stateCommentStart(e);break;case eG.COMMENT_START_DASH:this._stateCommentStartDash(e);break;case eG.COMMENT:this._stateComment(e);break;case eG.COMMENT_LESS_THAN_SIGN:this._stateCommentLessThanSign(e);break;case eG.COMMENT_LESS_THAN_SIGN_BANG:this._stateCommentLessThanSignBang(e);break;case eG.COMMENT_LESS_THAN_SIGN_BANG_DASH:this._stateCommentLessThanSignBangDash(e);break;case eG.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:this._stateCommentLessThanSignBangDashDash(e);break;case eG.COMMENT_END_DASH:this._stateCommentEndDash(e);break;case eG.COMMENT_END:this._stateCommentEnd(e);break;case eG.COMMENT_END_BANG:this._stateCommentEndBang(e);break;case eG.DOCTYPE:this._stateDoctype(e);break;case eG.BEFORE_DOCTYPE_NAME:this._stateBeforeDoctypeName(e);break;case eG.DOCTYPE_NAME:this._stateDoctypeName(e);break;case eG.AFTER_DOCTYPE_NAME:this._stateAfterDoctypeName(e);break;case eG.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._stateAfterDoctypePublicKeyword(e);break;case eG.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:this._stateBeforeDoctypePublicIdentifier(e);break;case eG.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypePublicIdentifierDoubleQuoted(e);break;case eG.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypePublicIdentifierSingleQuoted(e);break;case eG.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:this._stateAfterDoctypePublicIdentifier(e);break;case eG.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:this._stateBetweenDoctypePublicAndSystemIdentifiers(e);break;case eG.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._stateAfterDoctypeSystemKeyword(e);break;case eG.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:this._stateBeforeDoctypeSystemIdentifier(e);break;case eG.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypeSystemIdentifierDoubleQuoted(e);break;case eG.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypeSystemIdentifierSingleQuoted(e);break;case eG.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:this._stateAfterDoctypeSystemIdentifier(e);break;case eG.BOGUS_DOCTYPE:this._stateBogusDoctype(e);break;case eG.CDATA_SECTION:this._stateCdataSection(e);break;case eG.CDATA_SECTION_BRACKET:this._stateCdataSectionBracket(e);break;case eG.CDATA_SECTION_END:this._stateCdataSectionEnd(e);break;case eG.CHARACTER_REFERENCE:this._stateCharacterReference();break;case eG.AMBIGUOUS_AMPERSAND:this._stateAmbiguousAmpersand(e);break;default:throw Error("Unknown state")}}_stateData(e){switch(e){case eP.LESS_THAN_SIGN:this.state=eG.TAG_OPEN;break;case eP.AMPERSAND:this._startCharacterReference();break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitCodePoint(e);break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateRcdata(e){switch(e){case eP.AMPERSAND:this._startCharacterReference();break;case eP.LESS_THAN_SIGN:this.state=eG.RCDATA_LESS_THAN_SIGN;break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitChars("�");break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateRawtext(e){switch(e){case eP.LESS_THAN_SIGN:this.state=eG.RAWTEXT_LESS_THAN_SIGN;break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitChars("�");break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateScriptData(e){switch(e){case eP.LESS_THAN_SIGN:this.state=eG.SCRIPT_DATA_LESS_THAN_SIGN;break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitChars("�");break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_statePlaintext(e){switch(e){case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitChars("�");break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateTagOpen(e){if(k1(e))this._createStartTagToken(),this.state=eG.TAG_NAME,this._stateTagName(e);else switch(e){case eP.EXCLAMATION_MARK:this.state=eG.MARKUP_DECLARATION_OPEN;break;case eP.SOLIDUS:this.state=eG.END_TAG_OPEN;break;case eP.QUESTION_MARK:this._err(eN.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=eG.BOGUS_COMMENT,this._stateBogusComment(e);break;case eP.EOF:this._err(eN.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break;default:this._err(eN.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=eG.DATA,this._stateData(e)}}_stateEndTagOpen(e){if(k1(e))this._createEndTagToken(),this.state=eG.TAG_NAME,this._stateTagName(e);else switch(e){case eP.GREATER_THAN_SIGN:this._err(eN.missingEndTagName),this.state=eG.DATA;break;case eP.EOF:this._err(eN.eofBeforeTagName),this._emitChars("");break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this.state=eG.SCRIPT_DATA_ESCAPED,this._emitChars("�");break;case eP.EOF:this._err(eN.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=eG.SCRIPT_DATA_ESCAPED,this._emitCodePoint(e)}}_stateScriptDataEscapedLessThanSign(e){e===eP.SOLIDUS?this.state=eG.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:k1(e)?(this._emitChars("<"),this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(e)):(this._emitChars("<"),this.state=eG.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(e))}_stateScriptDataEscapedEndTagOpen(e){k1(e)?(this.state=eG.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(e)):(this._emitChars("");break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars("�");break;case eP.EOF:this._err(eN.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(e)}}_stateScriptDataDoubleEscapedLessThanSign(e){e===eP.SOLIDUS?(this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(e))}_stateScriptDataDoubleEscapeEnd(e){if(this.preprocessor.startsWith(kF.SCRIPT,!1)&&k6(this.preprocessor.peek(kF.SCRIPT.length))){this._emitCodePoint(e);for(let e=0;e0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!0)}replace(e,t){let n=this._indexOf(e);this.items[n]=t,n===this.stackTop&&(this.current=t)}insertAfter(e,t,n){let r=this._indexOf(e)+1;this.items.splice(r,0,t),this.tagIDs.splice(r,0,n),this.stackTop++,r===this.stackTop&&this._updateCurrentElement(),this.current&&void 0!==this.currentTagId&&this.handler.onItemPush(this.current,this.currentTagId,r===this.stackTop)}popUntilTagNamePopped(e){let t=this.stackTop+1;do t=this.tagIDs.lastIndexOf(e,t-1);while(t>0&&this.treeAdapter.getNamespaceURI(this.items[t])!==ej.HTML);this.shortenToLength(Math.max(t,0))}shortenToLength(e){for(;this.stackTop>=e;){let t=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,this.stackTop=0;n--)if(e.has(this.tagIDs[n])&&this.treeAdapter.getNamespaceURI(this.items[n])===t)return n;return -1}clearBackTo(e,t){let n=this._indexOfTagNames(e,t);this.shortenToLength(n+1)}clearBackToTableContext(){this.clearBackTo(_a,ej.HTML)}clearBackToTableBodyContext(){this.clearBackTo(_o,ej.HTML)}clearBackToTableRowContext(){this.clearBackTo(_i,ej.HTML)}remove(e){let t=this._indexOf(e);t>=0&&(t===this.stackTop?this.pop():(this.items.splice(t,1),this.tagIDs.splice(t,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===eV.BODY?this.items[1]:null}contains(e){return this._indexOf(e)>-1}getCommonAncestor(e){let t=this._indexOf(e)-1;return t>=0?this.items[t]:null}isRootHtmlElementCurrent(){return 0===this.stackTop&&this.tagIDs[0]===eV.HTML}hasInDynamicScope(e,t){for(let n=this.stackTop;n>=0;n--){let r=this.tagIDs[n];switch(this.treeAdapter.getNamespaceURI(this.items[n])){case ej.HTML:if(r===e)return!0;if(t.has(r))return!1;break;case ej.SVG:if(_r.has(r))return!1;break;case ej.MATHML:if(_n.has(r))return!1}}return!0}hasInScope(e){return this.hasInDynamicScope(e,k9)}hasInListItemScope(e){return this.hasInDynamicScope(e,_e)}hasInButtonScope(e){return this.hasInDynamicScope(e,_t)}hasNumberedHeaderInScope(){for(let e=this.stackTop;e>=0;e--){let t=this.tagIDs[e];switch(this.treeAdapter.getNamespaceURI(this.items[e])){case ej.HTML:if(kJ.has(t))return!0;if(k9.has(t))return!1;break;case ej.SVG:if(_r.has(t))return!1;break;case ej.MATHML:if(_n.has(t))return!1}}return!0}hasInTableScope(e){for(let t=this.stackTop;t>=0;t--){if(this.treeAdapter.getNamespaceURI(this.items[t])===ej.HTML)switch(this.tagIDs[t]){case e:return!0;case eV.TABLE:case eV.HTML:return!1}}return!0}hasTableBodyContextInTableScope(){for(let e=this.stackTop;e>=0;e--){if(this.treeAdapter.getNamespaceURI(this.items[e])===ej.HTML)switch(this.tagIDs[e]){case eV.TBODY:case eV.THEAD:case eV.TFOOT:return!0;case eV.TABLE:case eV.HTML:return!1}}return!0}hasInSelectScope(e){for(let t=this.stackTop;t>=0;t--){if(this.treeAdapter.getNamespaceURI(this.items[t])===ej.HTML)switch(this.tagIDs[t]){case e:return!0;case eV.OPTION:case eV.OPTGROUP:break;default:return!1}}return!0}generateImpliedEndTags(){for(;void 0!==this.currentTagId&&k8.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;void 0!==this.currentTagId&&k5.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(e){for(;void 0!==this.currentTagId&&this.currentTagId!==e&&k5.has(this.currentTagId);)this.pop()}}(j=eW||(eW={}))[j.Marker=0]="Marker",j[j.Element=1]="Element";let _u={type:eW.Marker};class _c{constructor(e){this.treeAdapter=e,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(e,t){let n=[],r=t.length,i=this.treeAdapter.getTagName(e),o=this.treeAdapter.getNamespaceURI(e);for(let e=0;e[e.name,e.value])),i=0;for(let e=0;er.get(e.name)===e.value)&&(i+=1)>=3&&this.entries.splice(t.idx,1)}}insertMarker(){this.entries.unshift(_u)}pushElement(e,t){this._ensureNoahArkCondition(e),this.entries.unshift({type:eW.Element,element:e,token:t})}insertElementAfterBookmark(e,t){let n=this.entries.indexOf(this.bookmark);this.entries.splice(n,0,{type:eW.Element,element:e,token:t})}removeEntry(e){let t=this.entries.indexOf(e);-1!==t&&this.entries.splice(t,1)}clearToLastMarker(){let e=this.entries.indexOf(_u);-1===e?this.entries.length=0:this.entries.splice(0,e+1)}getElementEntryInScopeWithTagName(e){let t=this.entries.find(t=>t.type===eW.Marker||this.treeAdapter.getTagName(t.element)===e);return t&&t.type===eW.Element?t:null}getElementEntry(e){return this.entries.find(t=>t.type===eW.Element&&t.element===e)}}let _p={createDocument:()=>({nodeName:"#document",mode:eH.NO_QUIRKS,childNodes:[]}),createDocumentFragment:()=>({nodeName:"#document-fragment",childNodes:[]}),createElement:(e,t,n)=>({nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}),createCommentNode:e=>({nodeName:"#comment",data:e,parentNode:null}),createTextNode:e=>({nodeName:"#text",value:e,parentNode:null}),appendChild(e,t){e.childNodes.push(t),t.parentNode=e},insertBefore(e,t,n){let r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e},setTemplateContent(e,t){e.content=t},getTemplateContent:e=>e.content,setDocumentType(e,t,n,r){let i=e.childNodes.find(e=>"#documentType"===e.nodeName);i?(i.name=t,i.publicId=n,i.systemId=r):_p.appendChild(e,{nodeName:"#documentType",name:t,publicId:n,systemId:r,parentNode:null})},setDocumentMode(e,t){e.mode=t},getDocumentMode:e=>e.mode,detachNode(e){if(e.parentNode){let t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},insertText(e,t){if(e.childNodes.length>0){let n=e.childNodes[e.childNodes.length-1];if(_p.isTextNode(n)){n.value+=t;return}}_p.appendChild(e,_p.createTextNode(t))},insertTextBefore(e,t,n){let r=e.childNodes[e.childNodes.indexOf(n)-1];r&&_p.isTextNode(r)?r.value+=t:_p.insertBefore(e,_p.createTextNode(t),n)},adoptAttributes(e,t){let n=new Set(e.attrs.map(e=>e.name));for(let r=0;re.childNodes[0],getChildNodes:e=>e.childNodes,getParentNode:e=>e.parentNode,getAttrList:e=>e.attrs,getTagName:e=>e.tagName,getNamespaceURI:e=>e.namespaceURI,getTextNodeContent:e=>e.value,getCommentNodeContent:e=>e.data,getDocumentTypeNodeName:e=>e.name,getDocumentTypeNodePublicId:e=>e.publicId,getDocumentTypeNodeSystemId:e=>e.systemId,isTextNode:e=>"#text"===e.nodeName,isCommentNode:e=>"#comment"===e.nodeName,isDocumentTypeNode:e=>"#documentType"===e.nodeName,isElementNode:e=>Object.prototype.hasOwnProperty.call(e,"tagName"),setNodeSourceCodeLocation(e,t){e.sourceCodeLocation=t},getNodeSourceCodeLocation:e=>e.sourceCodeLocation,updateNodeSourceCodeLocation(e,t){e.sourceCodeLocation={...e.sourceCodeLocation,...t}}},_d="html",_h=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],_f=[..._h,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],_m=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),_g=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],_A=[..._g,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function _b(e,t){return t.some(t=>e.startsWith(t))}let _y={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},_v=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),_S=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:ej.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:ej.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:ej.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:ej.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:ej.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:ej.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:ej.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:ej.XML}],["xml:space",{prefix:"xml",name:"space",namespace:ej.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:ej.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:ej.XMLNS}]]),_w=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),_E=new Set([eV.B,eV.BIG,eV.BLOCKQUOTE,eV.BODY,eV.BR,eV.CENTER,eV.CODE,eV.DD,eV.DIV,eV.DL,eV.DT,eV.EM,eV.EMBED,eV.H1,eV.H2,eV.H3,eV.H4,eV.H5,eV.H6,eV.HEAD,eV.HR,eV.I,eV.IMG,eV.LI,eV.LISTING,eV.MENU,eV.META,eV.NOBR,eV.OL,eV.P,eV.PRE,eV.RUBY,eV.S,eV.SMALL,eV.SPAN,eV.STRONG,eV.STRIKE,eV.SUB,eV.SUP,eV.TABLE,eV.TT,eV.U,eV.UL,eV.VAR]);function _O(e){for(let t=0;t0&&this._setContextModes(e,t)}onItemPop(e,t){var n,r;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(e,this.currentToken),null===(r=(n=this.treeAdapter).onItemPop)||void 0===r||r.call(n,e,this.openElements.current),t){let e,t;0===this.openElements.stackTop&&this.fragmentContext?(e=this.fragmentContext,t=this.fragmentContextID):{current:e,currentTagId:t}=this.openElements,this._setContextModes(e,t)}}_setContextModes(e,t){let n=e===this.document||e&&this.treeAdapter.getNamespaceURI(e)===ej.HTML;this.currentNotInHTML=!n,this.tokenizer.inForeignNode=!n&&void 0!==e&&void 0!==t&&!this._isIntegrationPoint(t,e)}_switchToTextParsing(e,t){this._insertElement(e,ej.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=eQ.TEXT}switchToPlaintextParsing(){this.insertionMode=eQ.TEXT,this.originalInsertionMode=eQ.IN_BODY,this.tokenizer.state=k$.PLAINTEXT}_getAdjustedCurrentElement(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let e=this.fragmentContext;for(;e;){if(this.treeAdapter.getTagName(e)===eZ.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}}_initTokenizerForFragmentParsing(){if(!!this.fragmentContext&&this.treeAdapter.getNamespaceURI(this.fragmentContext)===ej.HTML)switch(this.fragmentContextID){case eV.TITLE:case eV.TEXTAREA:this.tokenizer.state=k$.RCDATA;break;case eV.STYLE:case eV.XMP:case eV.IFRAME:case eV.NOEMBED:case eV.NOFRAMES:case eV.NOSCRIPT:this.tokenizer.state=k$.RAWTEXT;break;case eV.SCRIPT:this.tokenizer.state=k$.SCRIPT_DATA;break;case eV.PLAINTEXT:this.tokenizer.state=k$.PLAINTEXT}}_setDocumentType(e){let t=e.name||"",n=e.publicId||"",r=e.systemId||"";if(this.treeAdapter.setDocumentType(this.document,t,n,r),e.location){let t=this.treeAdapter.getChildNodes(this.document).find(e=>this.treeAdapter.isDocumentTypeNode(e));t&&this.treeAdapter.setNodeSourceCodeLocation(t,e.location)}}_attachElementToTree(e,t){if(this.options.sourceCodeLocationInfo){let n=t&&{...t,startTag:t};this.treeAdapter.setNodeSourceCodeLocation(e,n)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{let t=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(null!=t?t:this.document,e)}}_appendElement(e,t){let n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n,e.location)}_insertElement(e,t){let n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n,e.location),this.openElements.push(n,e.tagID)}_insertFakeElement(e,t){let n=this.treeAdapter.createElement(e,ej.HTML,[]);this._attachElementToTree(n,null),this.openElements.push(n,t)}_insertTemplate(e){let t=this.treeAdapter.createElement(e.tagName,ej.HTML,e.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,n),this._attachElementToTree(t,e.location),this.openElements.push(t,e.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,null)}_insertFakeRootElement(){let e=this.treeAdapter.createElement(eZ.HTML,ej.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(e,null),this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e,eV.HTML)}_appendCommentNode(e,t){let n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,e.location)}_insertCharacters(e){let t,n;if(this._shouldFosterParentOnInsertion()?({parent:t,beforeElement:n}=this._findFosterParentingLocation(),n?this.treeAdapter.insertTextBefore(t,e.chars,n):this.treeAdapter.insertText(t,e.chars)):(t=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(t,e.chars)),!e.location)return;let r=this.treeAdapter.getChildNodes(t),i=n?r.lastIndexOf(n):r.length,o=r[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(o)){let{endLine:t,endCol:n,endOffset:r}=e.location;this.treeAdapter.updateNodeSourceCodeLocation(o,{endLine:t,endCol:n,endOffset:r})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(o,e.location)}_adoptNodes(e,t){for(let n=this.treeAdapter.getFirstChild(e);n;n=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}_setEndLocation(e,t){if(this.treeAdapter.getNodeSourceCodeLocation(e)&&t.location){let n=t.location,r=this.treeAdapter.getTagName(e),i=t.type===eD.END_TAG&&r===t.tagName?{endTag:{...n},endLine:n.endLine,endCol:n.endCol,endOffset:n.endOffset}:{endLine:n.startLine,endCol:n.startCol,endOffset:n.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(e,i)}}shouldProcessStartTagTokenInForeignContent(e){let t,n;return!!this.currentNotInHTML&&(0===this.openElements.stackTop&&this.fragmentContext?(t=this.fragmentContext,n=this.fragmentContextID):{current:t,currentTagId:n}=this.openElements,(e.tagID!==eV.SVG||this.treeAdapter.getTagName(t)!==eZ.ANNOTATION_XML||this.treeAdapter.getNamespaceURI(t)!==ej.MATHML)&&(this.tokenizer.inForeignNode||(e.tagID===eV.MGLYPH||e.tagID===eV.MALIGNMARK)&&void 0!==n&&!this._isIntegrationPoint(n,t,ej.HTML)))}_processToken(e){switch(e.type){case eD.CHARACTER:this.onCharacter(e);break;case eD.NULL_CHARACTER:this.onNullCharacter(e);break;case eD.COMMENT:this.onComment(e);break;case eD.DOCTYPE:this.onDoctype(e);break;case eD.START_TAG:this._processStartTag(e);break;case eD.END_TAG:this.onEndTag(e);break;case eD.EOF:this.onEof(e);break;case eD.WHITESPACE_CHARACTER:this.onWhitespaceCharacter(e)}}_isIntegrationPoint(e,t,n){var r,i,o,a,s;let l=this.treeAdapter.getNamespaceURI(t),u=this.treeAdapter.getAttrList(t);return r=e,i=l,o=u,(!(a=n)||a===ej.HTML)&&function(e,t,n){if(t===ej.MATHML&&e===eV.ANNOTATION_XML){for(let e=0;ee.type===eW.Marker||this.openElements.contains(e.element)),n=-1===t?e-1:t-1;for(let e=n;e>=0;e--){let t=this.activeFormattingElements.entries[e];this._insertElement(t.token,this.treeAdapter.getNamespaceURI(t.element)),t.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=eQ.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(eV.P),this.openElements.popUntilTagNamePopped(eV.P)}_resetInsertionMode(){for(let e=this.openElements.stackTop;e>=0;e--)switch(0===e&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[e]){case eV.TR:this.insertionMode=eQ.IN_ROW;return;case eV.TBODY:case eV.THEAD:case eV.TFOOT:this.insertionMode=eQ.IN_TABLE_BODY;return;case eV.CAPTION:this.insertionMode=eQ.IN_CAPTION;return;case eV.COLGROUP:this.insertionMode=eQ.IN_COLUMN_GROUP;return;case eV.TABLE:this.insertionMode=eQ.IN_TABLE;return;case eV.BODY:this.insertionMode=eQ.IN_BODY;return;case eV.FRAMESET:this.insertionMode=eQ.IN_FRAMESET;return;case eV.SELECT:this._resetInsertionModeForSelect(e);return;case eV.TEMPLATE:this.insertionMode=this.tmplInsertionModeStack[0];return;case eV.HTML:this.insertionMode=this.headElement?eQ.AFTER_HEAD:eQ.BEFORE_HEAD;return;case eV.TD:case eV.TH:if(e>0){this.insertionMode=eQ.IN_CELL;return}break;case eV.HEAD:if(e>0){this.insertionMode=eQ.IN_HEAD;return}}this.insertionMode=eQ.IN_BODY}_resetInsertionModeForSelect(e){if(e>0)for(let t=e-1;t>0;t--){let e=this.openElements.tagIDs[t];if(e===eV.TEMPLATE)break;if(e===eV.TABLE){this.insertionMode=eQ.IN_SELECT_IN_TABLE;return}}this.insertionMode=eQ.IN_SELECT}_isElementCausesFosterParenting(e){return _I.has(e)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&void 0!==this.openElements.currentTagId&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let e=this.openElements.stackTop;e>=0;e--){let t=this.openElements.items[e];switch(this.openElements.tagIDs[e]){case eV.TEMPLATE:if(this.treeAdapter.getNamespaceURI(t)===ej.HTML)return{parent:this.treeAdapter.getTemplateContent(t),beforeElement:null};break;case eV.TABLE:{let n=this.treeAdapter.getParentNode(t);if(n)return{parent:n,beforeElement:t};return{parent:this.openElements.items[e-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(e){let t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)}_isSpecialElement(e,t){return kX[this.treeAdapter.getNamespaceURI(e)].has(t)}onCharacter(e){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){(function(e,t){e._insertCharacters(t),e.framesetOk=!1})(this,e);return}switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:_M(this,e);break;case eQ.BEFORE_HEAD:_L(this,e);break;case eQ.IN_HEAD:_U(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:_j(this,e);break;case eQ.AFTER_HEAD:_z(this,e);break;case eQ.IN_BODY:case eQ.IN_CAPTION:case eQ.IN_CELL:case eQ.IN_TEMPLATE:_V(this,e);break;case eQ.TEXT:case eQ.IN_SELECT:case eQ.IN_SELECT_IN_TABLE:this._insertCharacters(e);break;case eQ.IN_TABLE:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:_$(this,e);break;case eQ.IN_TABLE_TEXT:_3(this,e);break;case eQ.IN_COLUMN_GROUP:_5(this,e);break;case eQ.AFTER_BODY:Rs(this,e);break;case eQ.AFTER_AFTER_BODY:Rl(this,e)}}onNullCharacter(e){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){(function(e,t){t.chars="�",e._insertCharacters(t)})(this,e);return}switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:_M(this,e);break;case eQ.BEFORE_HEAD:_L(this,e);break;case eQ.IN_HEAD:_U(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:_j(this,e);break;case eQ.AFTER_HEAD:_z(this,e);break;case eQ.TEXT:this._insertCharacters(e);break;case eQ.IN_TABLE:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:_$(this,e);break;case eQ.IN_COLUMN_GROUP:_5(this,e);break;case eQ.AFTER_BODY:Rs(this,e);break;case eQ.AFTER_AFTER_BODY:Rl(this,e)}}onComment(e){if(this.skipNextNewLine=!1,this.currentNotInHTML){_P(this,e);return}switch(this.insertionMode){case eQ.INITIAL:case eQ.BEFORE_HTML:case eQ.BEFORE_HEAD:case eQ.IN_HEAD:case eQ.IN_HEAD_NO_SCRIPT:case eQ.AFTER_HEAD:case eQ.IN_BODY:case eQ.IN_TABLE:case eQ.IN_CAPTION:case eQ.IN_COLUMN_GROUP:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:case eQ.IN_CELL:case eQ.IN_SELECT:case eQ.IN_SELECT_IN_TABLE:case eQ.IN_TEMPLATE:case eQ.IN_FRAMESET:case eQ.AFTER_FRAMESET:_P(this,e);break;case eQ.IN_TABLE_TEXT:_6(this,e);break;case eQ.AFTER_BODY:(function(e,t){e._appendCommentNode(t,e.openElements.items[0])})(this,e);break;case eQ.AFTER_AFTER_BODY:case eQ.AFTER_AFTER_FRAMESET:(function(e,t){e._appendCommentNode(t,e.document)})(this,e)}}onDoctype(e){switch(this.skipNextNewLine=!1,this.insertionMode){case eQ.INITIAL:(function(e,t){var n;e._setDocumentType(t);let r=t.forceQuirks?eH.QUIRKS:function(e){if(e.name!==_d)return eH.QUIRKS;let{systemId:t}=e;if(t&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===t.toLowerCase())return eH.QUIRKS;let{publicId:n}=e;if(null!==n){if(n=n.toLowerCase(),_m.has(n))return eH.QUIRKS;let e=null===t?_f:_h;if(_b(n,e))return eH.QUIRKS;if(_b(n,e=null===t?_g:_A))return eH.LIMITED_QUIRKS}return eH.NO_QUIRKS}(t);if(!((n=t).name===_d&&null===n.publicId&&(null===n.systemId||"about:legacy-compat"===n.systemId)))e._err(t,eN.nonConformingDoctype);e.treeAdapter.setDocumentMode(e.document,r),e.insertionMode=eQ.BEFORE_HTML})(this,e);break;case eQ.BEFORE_HEAD:case eQ.IN_HEAD:case eQ.IN_HEAD_NO_SCRIPT:case eQ.AFTER_HEAD:this._err(e,eN.misplacedDoctype);break;case eQ.IN_TABLE_TEXT:_6(this,e)}}onStartTag(e){this.skipNextNewLine=!1,this.currentToken=e,this._processStartTag(e),e.selfClosing&&!e.ackSelfClosing&&this._err(e,eN.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(e){this.shouldProcessStartTagTokenInForeignContent(e)?function(e,t){if(function(e){let t=e.tagID;return t===eV.FONT&&e.attrs.some(({name:e})=>e===ez.COLOR||e===ez.SIZE||e===ez.FACE)||_E.has(t)}(t))Ru(e),e._startTagOutsideForeignContent(t);else{let n=e._getAdjustedCurrentElement(),r=e.treeAdapter.getNamespaceURI(n);r===ej.MATHML?_O(t):r===ej.SVG&&(!function(e){let t=_w.get(e.tagName);null!=t&&(e.tagName=t,e.tagID=kK(e.tagName))}(t),_T(t)),_C(t),t.selfClosing?e._appendElement(t,r):e._insertElement(t,r),t.ackSelfClosing=!0}}(this,e):this._startTagOutsideForeignContent(e)}_startTagOutsideForeignContent(e){switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:(function(e,t){t.tagID===eV.HTML?(e._insertElement(t,ej.HTML),e.insertionMode=eQ.BEFORE_HEAD):_M(e,t)})(this,e);break;case eQ.BEFORE_HEAD:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.HEAD:e._insertElement(t,ej.HTML),e.headElement=e.openElements.current,e.insertionMode=eQ.IN_HEAD;break;default:_L(e,t)}})(this,e);break;case eQ.IN_HEAD:_B(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.BASEFONT:case eV.BGSOUND:case eV.HEAD:case eV.LINK:case eV.META:case eV.NOFRAMES:case eV.STYLE:_B(e,t);break;case eV.NOSCRIPT:e._err(t,eN.nestedNoscriptInHead);break;default:_j(e,t)}})(this,e);break;case eQ.AFTER_HEAD:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.BODY:e._insertElement(t,ej.HTML),e.framesetOk=!1,e.insertionMode=eQ.IN_BODY;break;case eV.FRAMESET:e._insertElement(t,ej.HTML),e.insertionMode=eQ.IN_FRAMESET;break;case eV.BASE:case eV.BASEFONT:case eV.BGSOUND:case eV.LINK:case eV.META:case eV.NOFRAMES:case eV.SCRIPT:case eV.STYLE:case eV.TEMPLATE:case eV.TITLE:e._err(t,eN.abandonedHeadElementChild),e.openElements.push(e.headElement,eV.HEAD),_B(e,t),e.openElements.remove(e.headElement);break;case eV.HEAD:e._err(t,eN.misplacedStartTagForHeadElement);break;default:_z(e,t)}})(this,e);break;case eQ.IN_BODY:_K(this,e);break;case eQ.IN_TABLE:_0(this,e);break;case eQ.IN_TABLE_TEXT:_6(this,e);break;case eQ.IN_CAPTION:(function(e,t){let n=t.tagID;_7.has(n)?e.openElements.hasInTableScope(eV.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(eV.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=eQ.IN_TABLE,_0(e,t)):_K(e,t)})(this,e);break;case eQ.IN_COLUMN_GROUP:_8(this,e);break;case eQ.IN_TABLE_BODY:_9(this,e);break;case eQ.IN_ROW:Rt(this,e);break;case eQ.IN_CELL:(function(e,t){let n=t.tagID;_7.has(n)?(e.openElements.hasInTableScope(eV.TD)||e.openElements.hasInTableScope(eV.TH))&&(e._closeTableCell(),Rt(e,t)):_K(e,t)})(this,e);break;case eQ.IN_SELECT:Rr(this,e);break;case eQ.IN_SELECT_IN_TABLE:(function(e,t){let n=t.tagID;n===eV.CAPTION||n===eV.TABLE||n===eV.TBODY||n===eV.TFOOT||n===eV.THEAD||n===eV.TR||n===eV.TD||n===eV.TH?(e.openElements.popUntilTagNamePopped(eV.SELECT),e._resetInsertionMode(),e._processStartTag(t)):Rr(e,t)})(this,e);break;case eQ.IN_TEMPLATE:(function(e,t){switch(t.tagID){case eV.BASE:case eV.BASEFONT:case eV.BGSOUND:case eV.LINK:case eV.META:case eV.NOFRAMES:case eV.SCRIPT:case eV.STYLE:case eV.TEMPLATE:case eV.TITLE:_B(e,t);break;case eV.CAPTION:case eV.COLGROUP:case eV.TBODY:case eV.TFOOT:case eV.THEAD:e.tmplInsertionModeStack[0]=eQ.IN_TABLE,e.insertionMode=eQ.IN_TABLE,_0(e,t);break;case eV.COL:e.tmplInsertionModeStack[0]=eQ.IN_COLUMN_GROUP,e.insertionMode=eQ.IN_COLUMN_GROUP,_8(e,t);break;case eV.TR:e.tmplInsertionModeStack[0]=eQ.IN_TABLE_BODY,e.insertionMode=eQ.IN_TABLE_BODY,_9(e,t);break;case eV.TD:case eV.TH:e.tmplInsertionModeStack[0]=eQ.IN_ROW,e.insertionMode=eQ.IN_ROW,Rt(e,t);break;default:e.tmplInsertionModeStack[0]=eQ.IN_BODY,e.insertionMode=eQ.IN_BODY,_K(e,t)}})(this,e);break;case eQ.AFTER_BODY:(function(e,t){t.tagID===eV.HTML?_K(e,t):Rs(e,t)})(this,e);break;case eQ.IN_FRAMESET:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.FRAMESET:e._insertElement(t,ej.HTML);break;case eV.FRAME:e._appendElement(t,ej.HTML),t.ackSelfClosing=!0;break;case eV.NOFRAMES:_B(e,t)}})(this,e);break;case eQ.AFTER_FRAMESET:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.NOFRAMES:_B(e,t)}})(this,e);break;case eQ.AFTER_AFTER_BODY:(function(e,t){t.tagID===eV.HTML?_K(e,t):Rl(e,t)})(this,e);break;case eQ.AFTER_AFTER_FRAMESET:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.NOFRAMES:_B(e,t)}})(this,e)}}onEndTag(e){this.skipNextNewLine=!1,this.currentToken=e,this.currentNotInHTML?function(e,t){if(t.tagID===eV.P||t.tagID===eV.BR){Ru(e),e._endTagOutsideForeignContent(t);return}for(let n=e.openElements.stackTop;n>0;n--){let r=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(r)===ej.HTML){e._endTagOutsideForeignContent(t);break}let i=e.treeAdapter.getTagName(r);if(i.toLowerCase()===t.tagName){t.tagName=i,e.openElements.shortenToLength(n);break}}}(this,e):this._endTagOutsideForeignContent(e)}_endTagOutsideForeignContent(e){switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:(function(e,t){let n=t.tagID;(n===eV.HTML||n===eV.HEAD||n===eV.BODY||n===eV.BR)&&_M(e,t)})(this,e);break;case eQ.BEFORE_HEAD:(function(e,t){let n=t.tagID;n===eV.HEAD||n===eV.BODY||n===eV.HTML||n===eV.BR?_L(e,t):e._err(t,eN.endTagWithoutMatchingOpenElement)})(this,e);break;case eQ.IN_HEAD:(function(e,t){switch(t.tagID){case eV.HEAD:e.openElements.pop(),e.insertionMode=eQ.AFTER_HEAD;break;case eV.BODY:case eV.BR:case eV.HTML:_U(e,t);break;case eV.TEMPLATE:_F(e,t);break;default:e._err(t,eN.endTagWithoutMatchingOpenElement)}})(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:(function(e,t){switch(t.tagID){case eV.NOSCRIPT:e.openElements.pop(),e.insertionMode=eQ.IN_HEAD;break;case eV.BR:_j(e,t);break;default:e._err(t,eN.endTagWithoutMatchingOpenElement)}})(this,e);break;case eQ.AFTER_HEAD:(function(e,t){switch(t.tagID){case eV.BODY:case eV.HTML:case eV.BR:_z(e,t);break;case eV.TEMPLATE:_F(e,t);break;default:e._err(t,eN.endTagWithoutMatchingOpenElement)}})(this,e);break;case eQ.IN_BODY:_X(this,e);break;case eQ.TEXT:(function(e,t){var n;t.tagID===eV.SCRIPT&&(null===(n=e.scriptHandler)||void 0===n||n.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode})(this,e);break;case eQ.IN_TABLE:_1(this,e);break;case eQ.IN_TABLE_TEXT:_6(this,e);break;case eQ.IN_CAPTION:(function(e,t){let n=t.tagID;switch(n){case eV.CAPTION:case eV.TABLE:e.openElements.hasInTableScope(eV.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(eV.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=eQ.IN_TABLE,n===eV.TABLE&&_1(e,t));break;case eV.BODY:case eV.COL:case eV.COLGROUP:case eV.HTML:case eV.TBODY:case eV.TD:case eV.TFOOT:case eV.TH:case eV.THEAD:case eV.TR:break;default:_X(e,t)}})(this,e);break;case eQ.IN_COLUMN_GROUP:(function(e,t){switch(t.tagID){case eV.COLGROUP:e.openElements.currentTagId===eV.COLGROUP&&(e.openElements.pop(),e.insertionMode=eQ.IN_TABLE);break;case eV.TEMPLATE:_F(e,t);break;case eV.COL:break;default:_5(e,t)}})(this,e);break;case eQ.IN_TABLE_BODY:Re(this,e);break;case eQ.IN_ROW:Rn(this,e);break;case eQ.IN_CELL:(function(e,t){let n=t.tagID;switch(n){case eV.TD:case eV.TH:e.openElements.hasInTableScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=eQ.IN_ROW);break;case eV.TABLE:case eV.TBODY:case eV.TFOOT:case eV.THEAD:case eV.TR:e.openElements.hasInTableScope(n)&&(e._closeTableCell(),Rn(e,t));break;case eV.BODY:case eV.CAPTION:case eV.COL:case eV.COLGROUP:case eV.HTML:break;default:_X(e,t)}})(this,e);break;case eQ.IN_SELECT:Ri(this,e);break;case eQ.IN_SELECT_IN_TABLE:(function(e,t){let n=t.tagID;n===eV.CAPTION||n===eV.TABLE||n===eV.TBODY||n===eV.TFOOT||n===eV.THEAD||n===eV.TR||n===eV.TD||n===eV.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(eV.SELECT),e._resetInsertionMode(),e.onEndTag(t)):Ri(e,t)})(this,e);break;case eQ.IN_TEMPLATE:(function(e,t){t.tagID===eV.TEMPLATE&&_F(e,t)})(this,e);break;case eQ.AFTER_BODY:Ra(this,e);break;case eQ.IN_FRAMESET:(function(e,t){t.tagID===eV.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==eV.FRAMESET&&(e.insertionMode=eQ.AFTER_FRAMESET))})(this,e);break;case eQ.AFTER_FRAMESET:(function(e,t){t.tagID===eV.HTML&&(e.insertionMode=eQ.AFTER_AFTER_FRAMESET)})(this,e);break;case eQ.AFTER_AFTER_BODY:Rl(this,e)}}onEof(e){switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:_M(this,e);break;case eQ.BEFORE_HEAD:_L(this,e);break;case eQ.IN_HEAD:_U(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:_j(this,e);break;case eQ.AFTER_HEAD:_z(this,e);break;case eQ.IN_BODY:case eQ.IN_TABLE:case eQ.IN_CAPTION:case eQ.IN_COLUMN_GROUP:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:case eQ.IN_CELL:case eQ.IN_SELECT:case eQ.IN_SELECT_IN_TABLE:_J(this,e);break;case eQ.TEXT:(function(e,t){e._err(t,eN.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t)})(this,e);break;case eQ.IN_TABLE_TEXT:_6(this,e);break;case eQ.IN_TEMPLATE:Ro(this,e);break;case eQ.AFTER_BODY:case eQ.IN_FRAMESET:case eQ.AFTER_FRAMESET:case eQ.AFTER_AFTER_BODY:case eQ.AFTER_AFTER_FRAMESET:_N(this,e)}}onWhitespaceCharacter(e){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,e.chars.charCodeAt(0)===eP.LINE_FEED)){if(1===e.chars.length)return;e.chars=e.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(e);return}switch(this.insertionMode){case eQ.IN_HEAD:case eQ.IN_HEAD_NO_SCRIPT:case eQ.AFTER_HEAD:case eQ.TEXT:case eQ.IN_COLUMN_GROUP:case eQ.IN_SELECT:case eQ.IN_SELECT_IN_TABLE:case eQ.IN_FRAMESET:case eQ.AFTER_FRAMESET:this._insertCharacters(e);break;case eQ.IN_BODY:case eQ.IN_CAPTION:case eQ.IN_CELL:case eQ.IN_TEMPLATE:case eQ.AFTER_BODY:case eQ.AFTER_AFTER_BODY:case eQ.AFTER_AFTER_FRAMESET:_Z(this,e);break;case eQ.IN_TABLE:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:_$(this,e);break;case eQ.IN_TABLE_TEXT:_4(this,e)}}}function _R(e,t){for(let n=0;n<8;n++){let n=function(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?!e.openElements.hasInScope(t.tagID)&&(n=null):(e.activeFormattingElements.removeEntry(n),n=null):_Y(e,t),n}(e,t);if(!n)break;let r=function(e,t){let n=null,r=e.openElements.stackTop;for(;r>=0;r--){let i=e.openElements.items[r];if(i===t.element)break;e._isSpecialElement(i,e.openElements.tagIDs[r])&&(n=i)}return!n&&(e.openElements.shortenToLength(Math.max(r,0)),e.activeFormattingElements.removeEntry(t)),n}(e,n);if(!r)break;e.activeFormattingElements.bookmark=n;let i=function(e,t,n){let r=t,i=e.openElements.getCommonAncestor(t);for(let o=0,a=i;a!==n;o++,a=i){i=e.openElements.getCommonAncestor(a);let n=e.activeFormattingElements.getElementEntry(a),s=n&&o>=3;!n||s?(s&&e.activeFormattingElements.removeEntry(n),e.openElements.remove(a)):(a=function(e,t){let n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}(e,n),r===t&&(e.activeFormattingElements.bookmark=n),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(a,r),r=a)}return r}(e,r,n.element),o=e.openElements.getCommonAncestor(n.element);e.treeAdapter.detachNode(i),o&&!function(e,t,n){let r=kK(e.treeAdapter.getTagName(t));if(e._isElementCausesFosterParenting(r))e._fosterParentElement(n);else{let i=e.treeAdapter.getNamespaceURI(t);r===eV.TEMPLATE&&i===ej.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}(e,o,i),!function(e,t,n){let r=e.treeAdapter.getNamespaceURI(n.element),{token:i}=n,o=e.treeAdapter.createElement(i.tagName,r,i.attrs);e._adoptNodes(t,o),e.treeAdapter.appendChild(t,o),e.activeFormattingElements.insertElementAfterBookmark(o,i),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,o,i.tagID)}(e,r,n)}}function _P(e,t){e._appendCommentNode(t,e.openElements.currentTmplContentOrNode)}function _N(e,t){if(e.stopped=!0,t.location){let n=e.fragmentContext?0:2;for(let r=e.openElements.stackTop;r>=n;r--)e._setEndLocation(e.openElements.items[r],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){let n=e.openElements.items[0],r=e.treeAdapter.getNodeSourceCodeLocation(n);if(r&&!r.endTag&&(e._setEndLocation(n,t),e.openElements.stackTop>=1)){let n=e.openElements.items[1],r=e.treeAdapter.getNodeSourceCodeLocation(n);r&&!r.endTag&&e._setEndLocation(n,t)}}}}function _D(e,t){e._err(t,eN.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,eH.QUIRKS),e.insertionMode=eQ.BEFORE_HTML,e._processToken(t)}function _M(e,t){e._insertFakeRootElement(),e.insertionMode=eQ.BEFORE_HEAD,e._processToken(t)}function _L(e,t){e._insertFakeElement(eZ.HEAD,eV.HEAD),e.headElement=e.openElements.current,e.insertionMode=eQ.IN_HEAD,e._processToken(t)}function _B(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.BASE:case eV.BASEFONT:case eV.BGSOUND:case eV.LINK:case eV.META:e._appendElement(t,ej.HTML),t.ackSelfClosing=!0;break;case eV.TITLE:e._switchToTextParsing(t,k$.RCDATA);break;case eV.NOSCRIPT:e.options.scriptingEnabled?e._switchToTextParsing(t,k$.RAWTEXT):(e._insertElement(t,ej.HTML),e.insertionMode=eQ.IN_HEAD_NO_SCRIPT);break;case eV.NOFRAMES:case eV.STYLE:e._switchToTextParsing(t,k$.RAWTEXT);break;case eV.SCRIPT:e._switchToTextParsing(t,k$.SCRIPT_DATA);break;case eV.TEMPLATE:e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=eQ.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(eQ.IN_TEMPLATE);break;case eV.HEAD:e._err(t,eN.misplacedStartTagForHeadElement);break;default:_U(e,t)}}function _F(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==eV.TEMPLATE&&e._err(t,eN.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(eV.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,eN.endTagWithoutMatchingOpenElement)}function _U(e,t){e.openElements.pop(),e.insertionMode=eQ.AFTER_HEAD,e._processToken(t)}function _j(e,t){let n=t.type===eD.EOF?eN.openElementsLeftAfterEof:eN.disallowedContentInNoscriptInHead;e._err(t,n),e.openElements.pop(),e.insertionMode=eQ.IN_HEAD,e._processToken(t)}function _z(e,t){e._insertFakeElement(eZ.BODY,eV.BODY),e.insertionMode=eQ.IN_BODY,_H(e,t)}function _H(e,t){switch(t.type){case eD.CHARACTER:_V(e,t);break;case eD.WHITESPACE_CHARACTER:_Z(e,t);break;case eD.COMMENT:_P(e,t);break;case eD.START_TAG:_K(e,t);break;case eD.END_TAG:_X(e,t);break;case eD.EOF:_J(e,t)}}function _Z(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function _V(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function _G(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,ej.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function _W(e){let t=kZ(e,ez.TYPE);return null!=t&&"hidden"===t.toLowerCase()}function _Q(e,t){e._switchToTextParsing(t,k$.RAWTEXT)}function _q(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ej.HTML)}function _K(e,t){var n,r,i,o,a,s,l,u,c,p,d,h,f,m,g,A,b,y,v,S,w,E,O,T,C,x,I,k,_,R,P,N,D,M,L,B,F,U,j,z,H,Z,V,G,W,Q;switch(t.tagID){case eV.I:case eV.S:case eV.B:case eV.U:case eV.EM:case eV.TT:case eV.BIG:case eV.CODE:case eV.FONT:case eV.SMALL:case eV.STRIKE:case eV.STRONG:;n=e,r=t,n._reconstructActiveFormattingElements(),n._insertElement(r,ej.HTML),n.activeFormattingElements.pushElement(n.openElements.current,r);break;case eV.A:!function(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(eZ.A);n&&(_R(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,ej.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t);break;case eV.H1:case eV.H2:case eV.H3:case eV.H4:case eV.H5:case eV.H6:;i=e,o=t,i.openElements.hasInButtonScope(eV.P)&&i._closePElement(),void 0!==i.openElements.currentTagId&&kJ.has(i.openElements.currentTagId)&&i.openElements.pop(),i._insertElement(o,ej.HTML);break;case eV.P:case eV.DL:case eV.OL:case eV.UL:case eV.DIV:case eV.DIR:case eV.NAV:case eV.MAIN:case eV.MENU:case eV.ASIDE:case eV.CENTER:case eV.FIGURE:case eV.FOOTER:case eV.HEADER:case eV.HGROUP:case eV.DIALOG:case eV.DETAILS:case eV.ADDRESS:case eV.ARTICLE:case eV.SEARCH:case eV.SECTION:case eV.SUMMARY:case eV.FIELDSET:case eV.BLOCKQUOTE:case eV.FIGCAPTION:;a=e,s=t,a.openElements.hasInButtonScope(eV.P)&&a._closePElement(),a._insertElement(s,ej.HTML);break;case eV.LI:case eV.DD:case eV.DT:!function(e,t){e.framesetOk=!1;let n=t.tagID;for(let t=e.openElements.stackTop;t>=0;t--){let r=e.openElements.tagIDs[t];if(n===eV.LI&&r===eV.LI||(n===eV.DD||n===eV.DT)&&(r===eV.DD||r===eV.DT)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilTagNamePopped(r);break}if(r!==eV.ADDRESS&&r!==eV.DIV&&r!==eV.P&&e._isSpecialElement(e.openElements.items[t],r))break}e.openElements.hasInButtonScope(eV.P)&&e._closePElement(),e._insertElement(t,ej.HTML)}(e,t);break;case eV.BR:case eV.IMG:case eV.WBR:case eV.AREA:case eV.EMBED:case eV.KEYGEN:_G(e,t);break;case eV.HR:;l=e,u=t,l.openElements.hasInButtonScope(eV.P)&&l._closePElement(),l._appendElement(u,ej.HTML),l.framesetOk=!1,u.ackSelfClosing=!0;break;case eV.RB:case eV.RTC:;c=e,p=t,c.openElements.hasInScope(eV.RUBY)&&c.openElements.generateImpliedEndTags(),c._insertElement(p,ej.HTML);break;case eV.RT:case eV.RP:;d=e,h=t,d.openElements.hasInScope(eV.RUBY)&&d.openElements.generateImpliedEndTagsWithExclusion(eV.RTC),d._insertElement(h,ej.HTML);break;case eV.PRE:case eV.LISTING:;f=e,m=t,f.openElements.hasInButtonScope(eV.P)&&f._closePElement(),f._insertElement(m,ej.HTML),f.skipNextNewLine=!0,f.framesetOk=!1;break;case eV.XMP:;g=e,A=t,g.openElements.hasInButtonScope(eV.P)&&g._closePElement(),g._reconstructActiveFormattingElements(),g.framesetOk=!1,g._switchToTextParsing(A,k$.RAWTEXT);break;case eV.SVG:;b=e,y=t,b._reconstructActiveFormattingElements(),_T(y),_C(y),y.selfClosing?b._appendElement(y,ej.SVG):b._insertElement(y,ej.SVG),y.ackSelfClosing=!0;break;case eV.HTML:;v=e,S=t,0===v.openElements.tmplCount&&v.treeAdapter.adoptAttributes(v.openElements.items[0],S.attrs);break;case eV.BASE:case eV.LINK:case eV.META:case eV.STYLE:case eV.TITLE:case eV.SCRIPT:case eV.BGSOUND:case eV.BASEFONT:case eV.TEMPLATE:_B(e,t);break;case eV.BODY:!function(e,t){let n=e.openElements.tryPeekProperlyNestedBodyElement();n&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}(e,t);break;case eV.FORM:!function(e,t){let n=e.openElements.tmplCount>0;(!e.formElement||n)&&(e.openElements.hasInButtonScope(eV.P)&&e._closePElement(),e._insertElement(t,ej.HTML),!n&&(e.formElement=e.openElements.current))}(e,t);break;case eV.NOBR:;w=e,E=t,w._reconstructActiveFormattingElements(),w.openElements.hasInScope(eV.NOBR)&&(_R(w,E),w._reconstructActiveFormattingElements()),w._insertElement(E,ej.HTML),w.activeFormattingElements.pushElement(w.openElements.current,E);break;case eV.MATH:;O=e,T=t,O._reconstructActiveFormattingElements(),_O(T),_C(T),T.selfClosing?O._appendElement(T,ej.MATHML):O._insertElement(T,ej.MATHML),T.ackSelfClosing=!0;break;case eV.TABLE:;C=e,x=t,C.treeAdapter.getDocumentMode(C.document)!==eH.QUIRKS&&C.openElements.hasInButtonScope(eV.P)&&C._closePElement(),C._insertElement(x,ej.HTML),C.framesetOk=!1,C.insertionMode=eQ.IN_TABLE;break;case eV.INPUT:;I=e,k=t,I._reconstructActiveFormattingElements(),I._appendElement(k,ej.HTML),_W(k)||(I.framesetOk=!1),k.ackSelfClosing=!0;break;case eV.PARAM:case eV.TRACK:case eV.SOURCE:;_=e,R=t,_._appendElement(R,ej.HTML),R.ackSelfClosing=!0;break;case eV.IMAGE:;P=e,(N=t).tagName=eZ.IMG,N.tagID=eV.IMG,_G(P,N);break;case eV.BUTTON:;D=e,M=t,D.openElements.hasInScope(eV.BUTTON)&&(D.openElements.generateImpliedEndTags(),D.openElements.popUntilTagNamePopped(eV.BUTTON)),D._reconstructActiveFormattingElements(),D._insertElement(M,ej.HTML),D.framesetOk=!1;break;case eV.APPLET:case eV.OBJECT:case eV.MARQUEE:;L=e,B=t,L._reconstructActiveFormattingElements(),L._insertElement(B,ej.HTML),L.activeFormattingElements.insertMarker(),L.framesetOk=!1;break;case eV.IFRAME:;F=e,U=t,F.framesetOk=!1,F._switchToTextParsing(U,k$.RAWTEXT);break;case eV.SELECT:;j=e,z=t,j._reconstructActiveFormattingElements(),j._insertElement(z,ej.HTML),j.framesetOk=!1,j.insertionMode=j.insertionMode===eQ.IN_TABLE||j.insertionMode===eQ.IN_CAPTION||j.insertionMode===eQ.IN_TABLE_BODY||j.insertionMode===eQ.IN_ROW||j.insertionMode===eQ.IN_CELL?eQ.IN_SELECT_IN_TABLE:eQ.IN_SELECT;break;case eV.OPTION:case eV.OPTGROUP:;H=e,Z=t,H.openElements.currentTagId===eV.OPTION&&H.openElements.pop(),H._reconstructActiveFormattingElements(),H._insertElement(Z,ej.HTML);break;case eV.NOEMBED:case eV.NOFRAMES:_Q(e,t);break;case eV.FRAMESET:!function(e,t){let n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,ej.HTML),e.insertionMode=eQ.IN_FRAMESET)}(e,t);break;case eV.TEXTAREA:;V=e,G=t,V._insertElement(G,ej.HTML),V.skipNextNewLine=!0,V.tokenizer.state=k$.RCDATA,V.originalInsertionMode=V.insertionMode,V.framesetOk=!1,V.insertionMode=eQ.TEXT;break;case eV.NOSCRIPT:e.options.scriptingEnabled?_Q(e,t):_q(e,t);break;case eV.PLAINTEXT:;W=e,Q=t,W.openElements.hasInButtonScope(eV.P)&&W._closePElement(),W._insertElement(Q,ej.HTML),W.tokenizer.state=k$.PLAINTEXT;break;case eV.COL:case eV.TH:case eV.TD:case eV.TR:case eV.HEAD:case eV.FRAME:case eV.TBODY:case eV.TFOOT:case eV.THEAD:case eV.CAPTION:case eV.COLGROUP:break;default:_q(e,t)}}function _Y(e,t){let n=t.tagName,r=t.tagID;for(let t=e.openElements.stackTop;t>0;t--){let i=e.openElements.items[t],o=e.openElements.tagIDs[t];if(r===o&&(r!==eV.UNKNOWN||e.treeAdapter.getTagName(i)===n)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.stackTop>=t&&e.openElements.shortenToLength(t);break}if(e._isSpecialElement(i,o))break}}function _X(e,t){var n,r,i,o,a,s;switch(t.tagID){case eV.A:case eV.B:case eV.I:case eV.S:case eV.U:case eV.EM:case eV.TT:case eV.BIG:case eV.CODE:case eV.FONT:case eV.NOBR:case eV.SMALL:case eV.STRIKE:case eV.STRONG:_R(e,t);break;case eV.P:;(n=e).openElements.hasInButtonScope(eV.P)||n._insertFakeElement(eZ.P,eV.P),n._closePElement();break;case eV.DL:case eV.UL:case eV.OL:case eV.DIR:case eV.DIV:case eV.NAV:case eV.PRE:case eV.MAIN:case eV.MENU:case eV.ASIDE:case eV.BUTTON:case eV.CENTER:case eV.FIGURE:case eV.FOOTER:case eV.HEADER:case eV.HGROUP:case eV.DIALOG:case eV.ADDRESS:case eV.ARTICLE:case eV.DETAILS:case eV.SEARCH:case eV.SECTION:case eV.SUMMARY:case eV.LISTING:case eV.FIELDSET:case eV.BLOCKQUOTE:case eV.FIGCAPTION:!function(e,t){let n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}(e,t);break;case eV.LI:;(r=e).openElements.hasInListItemScope(eV.LI)&&(r.openElements.generateImpliedEndTagsWithExclusion(eV.LI),r.openElements.popUntilTagNamePopped(eV.LI));break;case eV.DD:case eV.DT:!function(e,t){let n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}(e,t);break;case eV.H1:case eV.H2:case eV.H3:case eV.H4:case eV.H5:case eV.H6:;(i=e).openElements.hasNumberedHeaderInScope()&&(i.openElements.generateImpliedEndTags(),i.openElements.popUntilNumberedHeaderPopped());break;case eV.BR:;(o=e)._reconstructActiveFormattingElements(),o._insertFakeElement(eZ.BR,eV.BR),o.openElements.pop(),o.framesetOk=!1;break;case eV.BODY:!function(e,t){if(e.openElements.hasInScope(eV.BODY)&&(e.insertionMode=eQ.AFTER_BODY,e.options.sourceCodeLocationInfo)){let n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e._setEndLocation(n,t)}}(e,t);break;case eV.HTML:;a=e,s=t,a.openElements.hasInScope(eV.BODY)&&(a.insertionMode=eQ.AFTER_BODY,Ra(a,s));break;case eV.FORM:!function(e){let t=e.openElements.tmplCount>0,{formElement:n}=e;!t&&(e.formElement=null),(n||t)&&e.openElements.hasInScope(eV.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(eV.FORM):n&&e.openElements.remove(n))}(e);break;case eV.APPLET:case eV.OBJECT:case eV.MARQUEE:!function(e,t){let n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}(e,t);break;case eV.TEMPLATE:_F(e,t);break;default:_Y(e,t)}}function _J(e,t){e.tmplInsertionModeStack.length>0?Ro(e,t):_N(e,t)}function _$(e,t){if(void 0!==e.openElements.currentTagId&&_I.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=eQ.IN_TABLE_TEXT,t.type){case eD.CHARACTER:_3(e,t);break;case eD.WHITESPACE_CHARACTER:_4(e,t)}else _2(e,t)}function _0(e,t){var n,r,i,o,a,s,l,u,c,p,d,h,f,m,g,A;switch(t.tagID){case eV.TD:case eV.TH:case eV.TR:;n=e,r=t,n.openElements.clearBackToTableContext(),n._insertFakeElement(eZ.TBODY,eV.TBODY),n.insertionMode=eQ.IN_TABLE_BODY,_9(n,r);break;case eV.STYLE:case eV.SCRIPT:case eV.TEMPLATE:_B(e,t);break;case eV.COL:;i=e,o=t,i.openElements.clearBackToTableContext(),i._insertFakeElement(eZ.COLGROUP,eV.COLGROUP),i.insertionMode=eQ.IN_COLUMN_GROUP,_8(i,o);break;case eV.FORM:;a=e,s=t,a.formElement||0!==a.openElements.tmplCount||(a._insertElement(s,ej.HTML),a.formElement=a.openElements.current,a.openElements.pop());break;case eV.TABLE:;l=e,u=t,l.openElements.hasInTableScope(eV.TABLE)&&(l.openElements.popUntilTagNamePopped(eV.TABLE),l._resetInsertionMode(),l._processStartTag(u));break;case eV.TBODY:case eV.TFOOT:case eV.THEAD:;c=e,p=t,c.openElements.clearBackToTableContext(),c._insertElement(p,ej.HTML),c.insertionMode=eQ.IN_TABLE_BODY;break;case eV.INPUT:;d=e,_W(h=t)?d._appendElement(h,ej.HTML):_2(d,h),h.ackSelfClosing=!0;break;case eV.CAPTION:;f=e,m=t,f.openElements.clearBackToTableContext(),f.activeFormattingElements.insertMarker(),f._insertElement(m,ej.HTML),f.insertionMode=eQ.IN_CAPTION;break;case eV.COLGROUP:;g=e,A=t,g.openElements.clearBackToTableContext(),g._insertElement(A,ej.HTML),g.insertionMode=eQ.IN_COLUMN_GROUP;break;default:_2(e,t)}}function _1(e,t){switch(t.tagID){case eV.TABLE:e.openElements.hasInTableScope(eV.TABLE)&&(e.openElements.popUntilTagNamePopped(eV.TABLE),e._resetInsertionMode());break;case eV.TEMPLATE:_F(e,t);break;case eV.BODY:case eV.CAPTION:case eV.COL:case eV.COLGROUP:case eV.HTML:case eV.TBODY:case eV.TD:case eV.TFOOT:case eV.TH:case eV.THEAD:case eV.TR:break;default:_2(e,t)}}function _2(e,t){let n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,_H(e,t),e.fosterParentingEnabled=n}function _4(e,t){e.pendingCharacterTokens.push(t)}function _3(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function _6(e,t){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n0&&e.openElements.currentTagId===eV.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===eV.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===eV.OPTGROUP&&e.openElements.pop();break;case eV.OPTION:e.openElements.currentTagId===eV.OPTION&&e.openElements.pop();break;case eV.SELECT:e.openElements.hasInSelectScope(eV.SELECT)&&(e.openElements.popUntilTagNamePopped(eV.SELECT),e._resetInsertionMode());break;case eV.TEMPLATE:_F(e,t)}}function Ro(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(eV.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):_N(e,t)}function Ra(e,t){var n;if(t.tagID===eV.HTML){if(!e.fragmentContext&&(e.insertionMode=eQ.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===eV.HTML){e._setEndLocation(e.openElements.items[0],t);let r=e.openElements.items[1];r&&!(null===(n=e.treeAdapter.getNodeSourceCodeLocation(r))||void 0===n?void 0:n.endTag)&&e._setEndLocation(r,t)}}else Rs(e,t)}function Rs(e,t){e.insertionMode=eQ.IN_BODY,_H(e,t)}function Rl(e,t){e.insertionMode=eQ.IN_BODY,_H(e,t)}function Ru(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==ej.HTML&&void 0!==e.openElements.currentTagId&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}null==String.prototype.codePointAt||((e,t)=>e.codePointAt(t));eZ.AREA,eZ.BASE,eZ.BASEFONT,eZ.BGSOUND,eZ.BR,eZ.COL,eZ.EMBED,eZ.FRAME,eZ.HR,eZ.IMG,eZ.INPUT,eZ.KEYGEN,eZ.LINK,eZ.META,eZ.PARAM,eZ.SOURCE,eZ.TRACK,eZ.WBR;let Rc=/<(\/?)(iframe|noembed|noframes|plaintext|script|style|textarea|title|xmp)(?=[\t\n\f\r />])/gi,Rp=new Set(["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"]),Rd={sourceCodeLocationInfo:!0,scriptingEnabled:!1};function Rh(e,t){let n=function(e){let t="root"===e.type?e.children[0]:e;return!!(t&&("doctype"===t.type||"element"===t.type&&"html"===t.tagName.toLowerCase()))}(e),r=k_("type",{handlers:{root:Rm,element:Rg,text:RA,comment:Ry,doctype:Rb,raw:Rv},unknown:RS}),i={parser:n?new __(Rd):__.getFragmentParser(void 0,Rd),handle(e){r(e,i)},stitches:!1,options:t||{}};r(e,i),Rw(i,CL());let o=function(e,t){let n=t||{};return kO({file:n.file||void 0,location:!1,schema:"svg"===n.space?CO:CE,verbose:n.verbose||!1},e)}(n?i.parser.document:i.parser.getFragment(),{file:i.options.file});return(i.stitches&&IL(o,"comment",function(e,t,n){if(e.value.stitch&&n&&void 0!==t)return n.children[t]=e.value.stitch,t}),"root"===o.type&&1===o.children.length&&o.children[0].type===e.type)?o.children[0]:o}function Rf(e,t){let n=-1;if(e)for(;++n4&&(t.parser.tokenizer.state=0);let n={type:eD.CHARACTER,chars:e.value,location:RO(e)};Rw(t,CL(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function Rb(e,t){let n={type:eD.DOCTYPE,name:"html",forceQuirks:!1,publicId:"",systemId:"",location:RO(e)};Rw(t,CL(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function Ry(e,t){let n=e.value,r={type:eD.COMMENT,data:n,location:RO(e)};Rw(t,CL(e)),t.parser.currentToken=r,t.parser._processToken(t.parser.currentToken)}function Rv(e,t){if(t.parser.tokenizer.preprocessor.html="",t.parser.tokenizer.preprocessor.pos=-1,t.parser.tokenizer.preprocessor.lastGapPos=-2,t.parser.tokenizer.preprocessor.gapStack=[],t.parser.tokenizer.preprocessor.skipNextNewLine=!1,t.parser.tokenizer.preprocessor.lastChunkWritten=!1,t.parser.tokenizer.preprocessor.endOfChunkHit=!1,t.parser.tokenizer.preprocessor.isEol=!1,RE(t,CL(e)),t.parser.tokenizer.write(t.options.tagfilter?e.value.replace(Rc,"<$1$2"):e.value,!1),t.parser.tokenizer._runParsingLoop(),72===t.parser.tokenizer.state||78===t.parser.tokenizer.state){t.parser.tokenizer.preprocessor.lastChunkWritten=!0;let e=t.parser.tokenizer._consume();t.parser.tokenizer._callState(e)}}function RS(e,t){if(t.options.passThrough&&t.options.passThrough.includes(e.type))!function(e,t){t.stitches=!0;let n=function(e){return"children"in e?Ix({...e,children:[]}):Ix(e)}(e);if("children"in e&&"children"in n){let r=Rh({type:"root",children:e.children},t.options);n.children=r.children}Ry({type:"comment",value:{stitch:n}},t)}(e,t);else{let t="";throw Rp.has(e.type)&&(t=". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax"),Error("Cannot compile `"+e.type+"` node"+t)}}function Rw(e,t){RE(e,t);let n=e.parser.tokenizer.currentCharacterToken;n&&n.location&&(n.location.endLine=e.parser.tokenizer.preprocessor.line,n.location.endCol=e.parser.tokenizer.preprocessor.col+1,n.location.endOffset=e.parser.tokenizer.preprocessor.offset+1,e.parser.currentToken=n,e.parser._processToken(e.parser.currentToken)),e.parser.tokenizer.paused=!1,e.parser.tokenizer.inLoop=!1,e.parser.tokenizer.active=!1,e.parser.tokenizer.returnState=k$.DATA,e.parser.tokenizer.charRefCode=-1,e.parser.tokenizer.consumedAfterSnapshot=-1,e.parser.tokenizer.currentLocation=null,e.parser.tokenizer.currentCharacterToken=null,e.parser.tokenizer.currentToken=null,e.parser.tokenizer.currentAttr={name:"",value:""}}function RE(e,t){if(t&&void 0!==t.offset){let n={startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:-1,endCol:-1,endOffset:-1};e.parser.tokenizer.preprocessor.lineStartPos=-t.column+1,e.parser.tokenizer.preprocessor.droppedBufferSize=t.offset,e.parser.tokenizer.preprocessor.line=t.line,e.parser.tokenizer.currentLocation=n}}function RO(e){let t=CL(e)||{line:void 0,column:void 0,offset:void 0},n=CM(e)||{line:void 0,column:void 0,offset:void 0};return{startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:n.line,endCol:n.column,endOffset:n.offset}}function RT(e){return function(t,n){return Rh(t,{...e,file:n})}}var RC={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Rx=e0.createContext&&e0.createContext(RC),RI=["attr","size","title"];function Rk(){return(Rk=Object.assign?Object.assign.bind():function(e){for(var t=1;te0.createElement(RN,Rk({attr:RR({},e.attr)},t),function e(t){return t&&t.map((t,n)=>e0.createElement(t.tag,RR({key:n},t.attr),e(t.child)))}(e.child))}function RN(e){var t=t=>{var n,{attr:r,size:i,title:o}=e,a=function(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;rt(e)):t(RC)}function RD(e){return RP({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"},child:[]}]})(e)}function RM(e){return RP({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z"},child:[]}]})(e)}function RL(e){return RP({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24"},child:[]}]})(e)}function RB(e){return RP({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"},child:[]}]})(e)}function RF(e){return RP({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"},child:[]}]})(e)}function RU(e){return(0,rA.ZP)("MuiIconButton",e)}let Rj=(0,rl.Z)("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),Rz=["edge","children","className","color","disabled","disableFocusRipple","size"],RH=e=>{let{classes:t,disabled:n,color:r,edge:i,size:o}=e,a={root:["root",n&&"disabled","default"!==r&&`color${(0,rN.Z)(r)}`,i&&`edge${(0,rN.Z)(i)}`,`size${(0,rN.Z)(o)}`]};return(0,rd.Z)(a,RU,t)},RZ=(0,rh.ZP)(ip,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,"default"!==n.color&&t[`color${(0,rN.Z)(n.color)}`],n.edge&&t[`edge${(0,rN.Z)(n.edge)}`],t[`size${(0,rN.Z)(n.size)}`]]}})(({theme:e,ownerState:t})=>(0,n4.Z)({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest})},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,rm.alpha)(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"start"===t.edge&&{marginLeft:"small"===t.size?-3:-12},"end"===t.edge&&{marginRight:"small"===t.size?-3:-12}),({theme:e,ownerState:t})=>{var n;let r=null==(n=(e.vars||e).palette)?void 0:n[t.color];return(0,n4.Z)({},"inherit"===t.color&&{color:"inherit"},"inherit"!==t.color&&"default"!==t.color&&(0,n4.Z)({color:null==r?void 0:r.main},!t.disableRipple&&{"&:hover":(0,n4.Z)({},r&&{backgroundColor:e.vars?`rgba(${r.mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,rm.alpha)(r.main,e.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),"small"===t.size&&{padding:5,fontSize:e.typography.pxToRem(18)},"large"===t.size&&{padding:12,fontSize:e.typography.pxToRem(28)},{[`&.${Rj.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled}})}),RV=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiIconButton"}),{edge:r=!1,children:i,className:o,color:a="default",disabled:s=!1,disableFocusRipple:l=!1,size:u="medium"}=n,c=(0,n3.Z)(n,Rz),p=(0,n4.Z)({},n,{edge:r,color:a,disabled:s,disableFocusRipple:l,size:u}),d=RH(p);return(0,eJ.jsx)(RZ,(0,n4.Z)({className:(0,n6.Z)(d.root,o),centerRipple:!0,focusRipple:!l,disabled:s,ref:t},c,{ownerState:p,children:i}))});var RG=n("23508");function RW(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0)&&(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}}return i}(e,["expand"]);return(0,eJ.jsx)(RV,function(e){for(var t=1;t{let i=e.bucket,o=e.fullPath,s=wr("/b/"+a(i)+"/o/"+a(o),n,r);return s+wi({alt:"media",token:t})})[0]}(n,t,r.host,r._protocol)}),a);return s.errorHandler=wg(t),s}(e.storage,e._location,wd());return e.storage.makeRequestWithTokens(t,wy).then(e=>{if(null===e)throw new S4(ew.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}(p=dS(p=i))];case 3:return a=l.sent(),(s=document.createElement("a")).href=a,s.download=n.name,document.body.appendChild(s),s.click(),document.body.removeChild(s),[3,5];case 4:return console.error("Error downloading file:",l.sent()),[3,5];case 5:return[2]}})}),function(e,n,r){return t.apply(this,arguments)});if(i.prerelease&&!a)return null;var l=(n=(0,e0.useState)(0==o),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(n,2)||function(e,t){if(e){if("string"==typeof e)return RW(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return RW(e,t)}}(n,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=l[0],c=l[1],p="https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/".concat(i.tag_name);return i.name,(0,eJ.jsxs)(rx,{children:[(0,eJ.jsx)(Tc,{title:i.name,titleTypographyProps:{color:i.prerelease?"orange":"green",variant:"h3"},subheader:"Published ".concat(new Date(i.published_at).toISOString().split("T")[0]),action:(0,eJ.jsx)(RJ,{expand:u,onClick:function(){c(!u)},"aria-expanded":u,"aria-label":"show more",children:(0,eJ.jsx)(RG.default,{})})}),u&&(0,eJ.jsxs)(rP,{children:[(0,eJ.jsx)(kh,{rehypePlugins:[RT],children:i.body}),(0,eJ.jsx)(Tg,{}),(0,eJ.jsx)(rz,{variant:"h4",gutterBottom:!0,children:"Assets:"}),(0,eJ.jsx)(l8,{children:i.assets.map(function(e){var t;return(0,eJ.jsxs)(T_,{children:["mac"==(t=RY(e.name))?(0,eJ.jsx)(Tt,{children:(0,eJ.jsx)(RF,{color:"black",size:"1.2em"})}):"windows"==t?(0,eJ.jsx)(Tt,{children:(0,eJ.jsx)(RD,{color:"#08a1f7",size:"1.2em"})}):"linux"==t?(0,eJ.jsx)(Tt,{children:(0,eJ.jsx)(RM,{color:"#E95420",size:"1.2em"})}):"almalinux"==t?(0,eJ.jsx)(Tt,{children:(0,eJ.jsx)(RL,{color:"#EE0000",size:"1.2em"})}):void 0,(0,eJ.jsx)(TL,{children:(0,eJ.jsx)(TW,{href:"#",target:"_blank",rel:"noopener",onClick:function(t){return s(t,i,e)},children:e.name})})]},e.name)})})]}),(0,eJ.jsx)(TX,{disableSpacing:!0,children:(0,eJ.jsx)(RV,{component:TW,href:p,target:"_blank",rel:"noopener",title:"View on Github",children:(0,eJ.jsx)(RB,{})})})]})};let R0=["ownerState"],R1=["variants"],R2=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function R4(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}function R3(e,t){return t&&e&&"object"==typeof e&&e.styles&&!e.styles.startsWith("@layer")&&(e.styles=`@layer ${t}{${String(e.styles)}}`),e}let R6=(0,n9.Z)(),R7=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function R8({defaultTheme:e,theme:t,themeId:n}){return 0===Object.keys(t).length?e:t[n]||t}function R5(e,t,n){let{ownerState:r}=t,i=(0,n3.Z)(t,R0),o="function"==typeof e?e((0,n4.Z)({ownerState:r},i)):e;if(Array.isArray(o))return o.flatMap(e=>R5(e,(0,n4.Z)({ownerState:r},i),n));if(o&&"object"==typeof o&&Array.isArray(o.variants)){let{variants:e=[]}=o,t=(0,n3.Z)(o,R1);return e.forEach(e=>{let o=!0;if("function"==typeof e.props?o=e.props((0,n4.Z)({ownerState:r},i,r)):Object.keys(e.props).forEach(t=>{(null==r?void 0:r[t])!==e.props[t]&&i[t]!==e.props[t]&&(o=!1)}),o){!Array.isArray(t)&&(t=[t]);let o="function"==typeof e.style?e.style((0,n4.Z)({ownerState:r},i,r)):e.style;t.push(n?R3((0,n7.internal_serializeStyles)(o),n):o)}}),t}return n?R3((0,n7.internal_serializeStyles)(o),n):o}let R9=function(e={}){let{themeId:t,defaultTheme:n=R6,rootShouldForwardProp:r=R4,slotShouldForwardProp:i=R4}=e,o=e=>(0,n8.Z)((0,n4.Z)({},e,{theme:R8((0,n4.Z)({},e,{defaultTheme:n,themeId:t}))}));return o.__mui_systemSx=!0,(e,a={})=>{var s,l;let u;(0,n7.internal_processStyles)(e,e=>e.filter(e=>!(null!=e&&e.__mui_systemSx)));let{name:c,slot:p,skipVariantsResolver:d,skipSx:h,overridesResolver:f=(s=R7(p))?(e,t)=>t[s]:null}=a,m=(0,n3.Z)(a,R2),g=c&&c.startsWith("Mui")||p?"components":"custom",A=void 0!==d?d:p&&"Root"!==p&&"root"!==p||!1,b=h||!1,y=R4;if("Root"===p||"root"===p)y=r;else if(p)y=i;else{;if("string"==typeof(l=e)&&l.charCodeAt(0)>96)y=void 0}let v=(0,n7.default)(e,(0,n4.Z)({shouldForwardProp:y,label:u},m)),S=e=>"function"==typeof e&&e.__emotion_real!==e||(0,sC.P)(e)?r=>{let i=R8({theme:r.theme,defaultTheme:n,themeId:t});return R5(e,(0,n4.Z)({},r,{theme:i}),i.modularCssLayers?g:void 0)}:e,w=(r,...i)=>{let a=S(r),s=i?i.map(S):[];c&&f&&s.push(e=>{let r=R8((0,n4.Z)({},e,{defaultTheme:n,themeId:t}));if(!r.components||!r.components[c]||!r.components[c].styleOverrides)return null;let i=r.components[c].styleOverrides,o={};return Object.entries(i).forEach(([t,n])=>{o[t]=R5(n,(0,n4.Z)({},e,{theme:r}),r.modularCssLayers?"theme":void 0)}),f(e,o)}),c&&!A&&s.push(e=>{var r;let i=R8((0,n4.Z)({},e,{defaultTheme:n,themeId:t}));return R5({variants:null==i||null==(r=i.components)||null==(r=r[c])?void 0:r.variants},(0,n4.Z)({},e,{theme:i}),i.modularCssLayers?"theme":void 0)}),!b&&s.push(o);let l=s.length-i.length;if(Array.isArray(r)&&l>0){let e=Array(l).fill("");(a=[...r,...e]).raw=[...r.raw,...e]}let u=v(a,...s);return e.muiName&&(u.muiName=e.muiName),u};return v.withConfig&&(w.withConfig=v.withConfig),w}}();function Pe({props:e,name:t,defaultTheme:n,themeId:r}){let i=rr(n);return r&&(i=i[r]||i),function(e){let{theme:t,name:n,props:r}=e;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?(0,rH.Z)(t.components[n].defaultProps,r):r}({theme:i,name:t,props:e})}var Pt=n("95408"),Pn=n("57042");let Pr=["component","direction","spacing","divider","children","className","useFlexGap"],Pi=(0,n9.Z)(),Po=R9("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root});function Pa(e){return Pe({props:e,name:"MuiStack",defaultTheme:Pi})}let Ps=e=>({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[e],Pl=({ownerState:e,theme:t})=>{let n=(0,n4.Z)({display:"flex",flexDirection:"column"},(0,Pt.k9)({theme:t},(0,Pt.P$)({values:e.direction,breakpoints:t.breakpoints.values}),e=>({flexDirection:e})));if(e.spacing){let r=(0,Pn.hB)(t),i=Object.keys(t.breakpoints.values).reduce((t,n)=>(("object"==typeof e.spacing&&null!=e.spacing[n]||"object"==typeof e.direction&&null!=e.direction[n])&&(t[n]=!0),t),{}),o=(0,Pt.P$)({values:e.direction,base:i}),a=(0,Pt.P$)({values:e.spacing,base:i});"object"==typeof o&&Object.keys(o).forEach((e,t,n)=>{if(!o[e]){let r=t>0?o[n[t-1]]:"column";o[e]=r}});n=(0,sC.Z)(n,(0,Pt.k9)({theme:t},a,(t,n)=>e.useFlexGap?{gap:(0,Pn.NA)(r,t)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${Ps(n?o[n]:e.direction)}`]:(0,Pn.NA)(r,t)}}))}return n=(0,Pt.dt)(t.breakpoints,n)},Pu=function(e={}){let{createStyledComponent:t=Po,useThemeProps:n=Pa,componentName:r="MuiStack"}=e,i=()=>(0,rd.Z)({root:["root"]},e=>(0,rA.ZP)(r,e),{}),o=t(Pl);return e0.forwardRef(function(e,t){let r=n(e),a=(0,n5.Z)(r),{component:s="div",direction:l="column",spacing:u=0,divider:c,children:p,className:d,useFlexGap:h=!1}=a,f=(0,n3.Z)(a,Pr),m=i();return(0,eJ.jsx)(o,(0,n4.Z)({as:s,ownerState:{direction:l,spacing:u,useFlexGap:h},ref:t,className:(0,n6.Z)(m.root,d)},f,{children:c?function(e,t){let n=e0.Children.toArray(e).filter(Boolean);return n.reduce((e,r,i)=>(e.push(r),it.root}),useThemeProps:e=>(0,rf.i)({props:e,name:"MuiStack"})});function Pc(e){return(0,rA.ZP)("MuiFormControlLabel",e)}let Pp=(0,rl.Z)("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),Pd=["checked","className","componentsProps","control","disabled","disableTypography","inputRef","label","labelPlacement","name","onChange","required","slotProps","value"],Ph=e=>{let{classes:t,disabled:n,labelPlacement:r,error:i,required:o}=e,a={root:["root",n&&"disabled",`labelPlacement${(0,rN.Z)(r)}`,i&&"error",o&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",i&&"error"]};return(0,rd.Z)(a,Pc,t)},Pf=(0,rh.ZP)("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${Pp.label}`]:t.label},t.root,t[`labelPlacement${(0,rN.Z)(n.labelPlacement)}`]]}})(({theme:e,ownerState:t})=>(0,n4.Z)({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${Pp.disabled}`]:{cursor:"default"}},"start"===t.labelPlacement&&{flexDirection:"row-reverse",marginLeft:16,marginRight:-11},"top"===t.labelPlacement&&{flexDirection:"column-reverse",marginLeft:16},"bottom"===t.labelPlacement&&{flexDirection:"column",marginLeft:16},{[`& .${Pp.label}`]:{[`&.${Pp.disabled}`]:{color:(e.vars||e).palette.text.disabled}}})),Pm=(0,rh.ZP)("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})(({theme:e})=>({[`&.${Pp.error}`]:{color:(e.vars||e).palette.error.main}})),Pg=e0.forwardRef(function(e,t){var n,r;let i=(0,rf.i)({props:e,name:"MuiFormControlLabel"}),{className:o,componentsProps:a={},control:s,disabled:l,disableTypography:u,label:c,labelPlacement:p="end",required:d,slotProps:h={}}=i,f=(0,n3.Z)(i,Pd),m=sz(),g=null!=(n=null!=l?l:s.props.disabled)?n:null==m?void 0:m.disabled,A=null!=d?d:s.props.required,b={disabled:g,required:A};["checked","name","onChange","value","inputRef"].forEach(e=>{void 0===s.props[e]&&void 0!==i[e]&&(b[e]=i[e])});let y=sU({props:i,muiFormControl:m,states:["error"]}),v=(0,n4.Z)({},i,{disabled:g,labelPlacement:p,required:A,error:y.error}),S=Ph(v),w=null!=(r=h.typography)?r:a.typography,E=c;return null!=E&&E.type!==rz&&!u&&(E=(0,eJ.jsx)(rz,(0,n4.Z)({component:"span"},w,{className:(0,n6.Z)(S.label,null==w?void 0:w.className),children:E}))),(0,eJ.jsxs)(Pf,(0,n4.Z)({className:(0,n6.Z)(S.root,o),ownerState:v,ref:t},f,{children:[e0.cloneElement(s,b),A?(0,eJ.jsxs)(Pu,{display:"block",children:[E,(0,eJ.jsxs)(Pm,{ownerState:v,"aria-hidden":!0,className:S.asterisk,children:[" ","*"]})]}):E]}))});function PA(e){return(0,rA.ZP)("PrivateSwitchBase",e)}(0,rl.Z)("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);let Pb=["autoFocus","checked","checkedIcon","className","defaultChecked","disabled","disableFocusRipple","edge","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"],Py=e=>{let{classes:t,checked:n,disabled:r,edge:i}=e,o={root:["root",n&&"checked",r&&"disabled",i&&`edge${(0,rN.Z)(i)}`],input:["input"]};return(0,rd.Z)(o,PA,t)},Pv=(0,rh.ZP)(ip,{name:"MuiSwitchBase"})(({ownerState:e})=>(0,n4.Z)({padding:9,borderRadius:"50%"},"start"===e.edge&&{marginLeft:"small"===e.size?-3:-12},"end"===e.edge&&{marginRight:"small"===e.size?-3:-12})),PS=(0,rh.ZP)("input",{name:"MuiSwitchBase",shouldForwardProp:rZ.Z})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),Pw=e0.forwardRef(function(e,t){let{autoFocus:n,checked:r,checkedIcon:i,className:o,defaultChecked:a,disabled:s,disableFocusRipple:l=!1,edge:u=!1,icon:c,id:p,inputProps:d,inputRef:h,name:f,onBlur:m,onChange:g,onFocus:A,readOnly:b,required:y=!1,tabIndex:v,type:S,value:w}=e,E=(0,n3.Z)(e,Pb),[O,T]=(0,cb.Z)({controlled:r,default:!!a,name:"SwitchBase",state:"checked"}),C=sz(),x=s;C&&void 0===x&&(x=C.disabled);let I="checkbox"===S||"radio"===S,k=(0,n4.Z)({},e,{checked:O,disabled:x,disableFocusRipple:l,edge:u}),_=Py(k);return(0,eJ.jsxs)(Pv,(0,n4.Z)({component:"span",className:(0,n6.Z)(_.root,o),centerRipple:!0,focusRipple:!l,disabled:x,tabIndex:null,role:void 0,onFocus:e=>{A&&A(e),C&&C.onFocus&&C.onFocus(e)},onBlur:e=>{m&&m(e),C&&C.onBlur&&C.onBlur(e)},ownerState:k,ref:t},E,{children:[(0,eJ.jsx)(PS,(0,n4.Z)({autoFocus:n,checked:r,defaultChecked:a,className:_.input,disabled:x,id:I?p:void 0,name:f,onChange:e=>{if(e.nativeEvent.defaultPrevented)return;let t=e.target.checked;T(t),g&&g(e,t)},readOnly:b,ref:h,required:y,ownerState:k,tabIndex:v,type:S},"checkbox"===S&&void 0===w?{}:{value:w},d)),O?i:c]}))}),PE=(0,cI.Z)((0,eJ.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),PO=(0,cI.Z)((0,eJ.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),PT=(0,cI.Z)((0,eJ.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function PC(e){return(0,rA.ZP)("MuiCheckbox",e)}let Px=(0,rl.Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),PI=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size","className"],Pk=e=>{let{classes:t,indeterminate:n,color:r,size:i}=e,o={root:["root",n&&"indeterminate",`color${(0,rN.Z)(r)}`,`size${(0,rN.Z)(i)}`]},a=(0,rd.Z)(o,PC,t);return(0,n4.Z)({},t,a)},P_=(0,rh.ZP)(Pw,{shouldForwardProp:e=>(0,rZ.Z)(e)||"classes"===e,name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${(0,rN.Z)(n.size)}`],"default"!==n.color&&t[`color${(0,rN.Z)(n.color)}`]]}})(({theme:e,ownerState:t})=>(0,n4.Z)({color:(e.vars||e).palette.text.secondary},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${"default"===t.color?e.vars.palette.action.activeChannel:e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,rm.alpha)("default"===t.color?e.palette.action.active:e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==t.color&&{[`&.${Px.checked}, &.${Px.indeterminate}`]:{color:(e.vars||e).palette[t.color].main},[`&.${Px.disabled}`]:{color:(e.vars||e).palette.action.disabled}})),PR=(0,eJ.jsx)(PO,{}),PP=(0,eJ.jsx)(PE,{}),PN=(0,eJ.jsx)(PT,{}),PD=e0.forwardRef(function(e,t){var n,r;let i=(0,rf.i)({props:e,name:"MuiCheckbox"}),{checkedIcon:o=PR,color:a="primary",icon:s=PP,indeterminate:l=!1,indeterminateIcon:u=PN,inputProps:c,size:p="medium",className:d}=i,h=(0,n3.Z)(i,PI),f=l?u:s,m=l?u:o,g=(0,n4.Z)({},i,{color:a,indeterminate:l,size:p}),A=Pk(g);return(0,eJ.jsx)(P_,(0,n4.Z)({type:"checkbox",inputProps:(0,n4.Z)({"data-indeterminate":l},c),icon:e0.cloneElement(f,{fontSize:null!=(n=f.props.fontSize)?n:p}),checkedIcon:e0.cloneElement(m,{fontSize:null!=(r=m.props.fontSize)?r:p}),ownerState:g,ref:t,className:(0,n6.Z)(A.root,d)},h,{classes:A}))});var PM=n("14142");let PL=["className","component","disableGutters","fixed","maxWidth","classes"],PB=(0,n9.Z)(),PF=R9("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${(0,PM.Z)(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),PU=e=>Pe({props:e,name:"MuiContainer",defaultTheme:PB}),Pj=(e,t)=>{let{classes:n,fixed:r,disableGutters:i,maxWidth:o}=e,a={root:["root",o&&`maxWidth${(0,PM.Z)(String(o))}`,r&&"fixed",i&&"disableGutters"]};return(0,rd.Z)(a,e=>(0,rA.ZP)(t,e),n)},Pz=function(e={}){let{createStyledComponent:t=PF,useThemeProps:n=PU,componentName:r="MuiContainer"}=e,i=t(({theme:e,ownerState:t})=>(0,n4.Z)({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}),({theme:e,ownerState:t})=>t.fixed&&Object.keys(e.breakpoints.values).reduce((t,n)=>{let r=e.breakpoints.values[n];return 0!==r&&(t[e.breakpoints.up(n)]={maxWidth:`${r}${e.breakpoints.unit}`}),t},{}),({theme:e,ownerState:t})=>(0,n4.Z)({},"xs"===t.maxWidth&&{[e.breakpoints.up("xs")]:{maxWidth:Math.max(e.breakpoints.values.xs,444)}},t.maxWidth&&"xs"!==t.maxWidth&&{[e.breakpoints.up(t.maxWidth)]:{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`}}));return e0.forwardRef(function(e,t){let o=n(e),{className:a,component:s="div",disableGutters:l=!1,fixed:u=!1,maxWidth:c="lg"}=o,p=(0,n3.Z)(o,PL),d=(0,n4.Z)({},o,{component:s,disableGutters:l,fixed:u,maxWidth:c}),h=Pj(d,r);return(0,eJ.jsx)(i,(0,n4.Z)({as:s,ownerState:d,className:(0,n6.Z)(h.root,a),ref:t},p))})}({createStyledComponent:(0,rh.ZP)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${(0,rN.Z)(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>(0,rf.i)({props:e,name:"MuiContainer"})});function PH(e){return(0,rA.ZP)("MuiAppBar",e)}(0,rl.Z)("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]);let PZ=["className","color","enableColorOnDark","position"],PV=e=>{let{color:t,position:n,classes:r}=e,i={root:["root",`color${(0,rN.Z)(t)}`,`position${(0,rN.Z)(n)}`]};return(0,rd.Z)(i,PH,r)},PG=(e,t)=>e?`${null==e?void 0:e.replace(")","")}, ${t})`:t,PW=(0,rh.ZP)(rw,{name:"MuiAppBar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`position${(0,rN.Z)(n.position)}`],t[`color${(0,rN.Z)(n.color)}`]]}})(({theme:e,ownerState:t})=>{let n="light"===e.palette.mode?e.palette.grey[100]:e.palette.grey[900];return(0,n4.Z)({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0},"fixed"===t.position&&{position:"fixed",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}},"absolute"===t.position&&{position:"absolute",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0},"sticky"===t.position&&{position:"sticky",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0},"static"===t.position&&{position:"static"},"relative"===t.position&&{position:"relative"},!e.vars&&(0,n4.Z)({},"default"===t.color&&{backgroundColor:n,color:e.palette.getContrastText(n)},t.color&&"default"!==t.color&&"inherit"!==t.color&&"transparent"!==t.color&&{backgroundColor:e.palette[t.color].main,color:e.palette[t.color].contrastText},"inherit"===t.color&&{color:"inherit"},"dark"===e.palette.mode&&!t.enableColorOnDark&&{backgroundColor:null,color:null},"transparent"===t.color&&(0,n4.Z)({backgroundColor:"transparent",color:"inherit"},"dark"===e.palette.mode&&{backgroundImage:"none"})),e.vars&&(0,n4.Z)({},"default"===t.color&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette.AppBar.defaultBg:PG(e.vars.palette.AppBar.darkBg,e.vars.palette.AppBar.defaultBg),"--AppBar-color":t.enableColorOnDark?e.vars.palette.text.primary:PG(e.vars.palette.AppBar.darkColor,e.vars.palette.text.primary)},t.color&&!t.color.match(/^(default|inherit|transparent)$/)&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette[t.color].main:PG(e.vars.palette.AppBar.darkBg,e.vars.palette[t.color].main),"--AppBar-color":t.enableColorOnDark?e.vars.palette[t.color].contrastText:PG(e.vars.palette.AppBar.darkColor,e.vars.palette[t.color].contrastText)},!["inherit","transparent"].includes(t.color)&&{backgroundColor:"var(--AppBar-background)"},{color:"inherit"===t.color?"inherit":"var(--AppBar-color)"},"transparent"===t.color&&{backgroundImage:"none",backgroundColor:"transparent",color:"inherit"}))}),PQ=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiAppBar"}),{className:r,color:i="primary",enableColorOnDark:o=!1,position:a="fixed"}=n,s=(0,n3.Z)(n,PZ),l=(0,n4.Z)({},n,{color:i,position:a,enableColorOnDark:o}),u=PV(l);return(0,eJ.jsx)(PW,(0,n4.Z)({square:!0,component:"header",ownerState:l,elevation:4,className:(0,n6.Z)(u.root,r,"fixed"===a&&"mui-fixed"),ref:t},s))});function Pq(e){return(0,rA.ZP)("MuiToolbar",e)}(0,rl.Z)("MuiToolbar",["root","gutters","regular","dense"]);let PK=["className","component","disableGutters","variant"],PY=e=>{let{classes:t,disableGutters:n,variant:r}=e;return(0,rd.Z)({root:["root",!n&&"gutters",r]},Pq,t)},PX=(0,rh.ZP)("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(({theme:e,ownerState:t})=>(0,n4.Z)({position:"relative",display:"flex",alignItems:"center"},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}},"dense"===t.variant&&{minHeight:48}),({theme:e,ownerState:t})=>"regular"===t.variant&&e.mixins.toolbar),PJ=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiToolbar"}),{className:r,component:i="div",disableGutters:o=!1,variant:a="regular"}=n,s=(0,n3.Z)(n,PK),l=(0,n4.Z)({},n,{component:i,disableGutters:o,variant:a}),u=PY(l);return(0,eJ.jsx)(PX,(0,n4.Z)({as:i,className:(0,n6.Z)(u.root,r),ref:t,ownerState:l},s))});function P$(e,t,n,r,i,o,a){try{var s=e[o](a),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,i)}var P0=function(){var e,t,n=nS();var r=(t=(e=function(){return function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n{let t=e0.useRef({});return e0.useEffect(()=>{t.current=e}),t.current};function P6(e){return void 0!==e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function P7(e,t){for(let n=0;n{let u=a?s.trim():s;n&&(u=u.toLowerCase()),t&&(u=P6(u));let c=u?e.filter(e=>{let r=(o||l)(e);return n&&(r=r.toLowerCase()),t&&(r=P6(r)),"start"===i?0===r.indexOf(u):r.indexOf(u)>-1}):e;return"number"==typeof r?c.slice(0,r):c}}(),P5=e=>{var t;return null!==e.current&&(null==(t=e.current.parentElement)?void 0:t.contains(document.activeElement))},P9=[],Ne=function(e){let{unstable_isActiveElementInListbox:t=P5,unstable_classNamePrefix:n="Mui",autoComplete:r=!1,autoHighlight:i=!1,autoSelect:o=!1,blurOnSelect:a=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:l=!1,componentName:u="useAutocomplete",defaultValue:c=e.multiple?P9:null,disableClearable:p=!1,disableCloseOnSelect:d=!1,disabled:h,disabledItemsFocusable:f=!1,disableListWrap:m=!1,filterOptions:g=P8,filterSelectedOptions:A=!1,freeSolo:b=!1,getOptionDisabled:y,getOptionKey:v,getOptionLabel:S=e=>{var t;return null!=(t=e.label)?t:e},groupBy:w,handleHomeEndKeys:E=!e.freeSolo,id:O,includeInputInList:T=!1,inputValue:C,isOptionEqualToValue:x=(e,t)=>e===t,multiple:I=!1,onChange:k,onClose:_,onHighlightChange:R,onInputChange:P,onOpen:N,open:D,openOnFocus:M=!1,options:L,readOnly:B=!1,selectOnFocus:F=!e.freeSolo,value:U}=e,j=(0,sT.Z)(O),z=S;z=e=>{let t=S(e);return"string"!=typeof t?String(t):t};let H=e0.useRef(!1),Z=e0.useRef(!0),V=e0.useRef(null),G=e0.useRef(null),[W,Q]=e0.useState(null),[q,K]=e0.useState(-1),Y=i?0:-1,X=e0.useRef(Y),[J,$]=(0,P4.Z)({controlled:U,default:c,name:u}),[ee,et]=(0,P4.Z)({controlled:C,default:"",name:u,state:"inputValue"}),[en,er]=e0.useState(!1),ei=e0.useCallback((e,t)=>{let n;if(!(I?J.length!(A&&(I?J:[J]).some(t=>null!==t&&x(e,t)))&&!0),{inputValue:eu&&es?"":ee,getOptionLabel:z}):[],ed=P3({filteredOptions:ep,value:J,inputValue:ee});e0.useEffect(()=>{let e=J!==ed.value;if((!en||!!e)&&(!b||!!e))ei(null,J)},[J,ei,en,ed.value,b]);let eh=eo&&ep.length>0&&!B,ef=(0,sR.Z)(e=>{-1===e?V.current.focus():W.querySelector(`[data-tag-index="${e}"]`).focus()});e0.useEffect(()=>{I&&q>J.length-1&&(K(-1),ef(-1))},[J,I,q,ef]);let em=(0,sR.Z)(({event:e,index:t,reason:r="auto"})=>{if(X.current=t,-1===t?V.current.removeAttribute("aria-activedescendant"):V.current.setAttribute("aria-activedescendant",`${j}-option-${t}`),R&&R(e,-1===t?null:ep[t],r),!G.current)return;let i=G.current.querySelector(`[role="option"].${n}-focused`);i&&(i.classList.remove(`${n}-focused`),i.classList.remove(`${n}-focusVisible`));let o=G.current;if("listbox"!==G.current.getAttribute("role")&&(o=G.current.parentElement.querySelector('[role="listbox"]')),!o)return;if(-1===t){o.scrollTop=0;return}let a=G.current.querySelector(`[data-option-index="${t}"]`);if(!!a){if(a.classList.add(`${n}-focused`),"keyboard"===r&&a.classList.add(`${n}-focusVisible`),o.scrollHeight>o.clientHeight&&"mouse"!==r&&"touch"!==r){let e=o.clientHeight+o.scrollTop,t=a.offsetTop+a.offsetHeight;t>e?o.scrollTop=t-o.clientHeight:a.offsetTop-a.offsetHeight*(w?1.3:0){if(!ec)return;let o=function(e,t){if(!G.current||e<0||e>=ep.length)return -1;let n=e;for(;;){let r=G.current.querySelector(`[data-option-index="${n}"]`),i=!f&&(!r||r.disabled||"true"===r.getAttribute("aria-disabled"));if(r&&r.hasAttribute("tabindex")&&!i)return n;if((n="next"===t?(n+1)%ep.length:(n-1+ep.length)%ep.length)===e)return -1}}((()=>{let e=ep.length-1;if("reset"===t)return Y;if("start"===t)return 0;if("end"===t)return e;let n=X.current+t;if(n<0)return -1===n&&T?-1:m&&-1!==X.current||Math.abs(t)>1?0:e;if(n>e)return n===e+1&&T?-1:m||Math.abs(t)>1?e:0;return n})(),n);if(em({index:o,reason:i,event:e}),r&&"reset"!==t){if(-1===o)V.current.value=ee;else{let e=z(ep[o]);V.current.value=e,0===e.toLowerCase().indexOf(ee.toLowerCase())&&ee.length>0&&V.current.setSelectionRange(ee.length,e.length)}}}),eA=()=>{if(-1!==X.current&&ed.filteredOptions&&ed.filteredOptions.length!==ep.length&&ed.inputValue===ee&&(I?J.length===ed.value.length&&ed.value.every((e,t)=>z(J[t])===z(e)):((e,t)=>{let n=e?z(e):"";return n===(t?z(t):"")})(ed.value,J))){let e=ed.filteredOptions[X.current];if(e)return P7(ep,t=>z(t)===z(e))}return -1},eb=e0.useCallback(()=>{if(!ec)return;let e=eA();if(-1!==e){X.current=e;return}let t=I?J[0]:J;if(0===ep.length||null==t){eg({diff:"reset"});return}if(!!G.current){if(null!=t){let e=ep[X.current];if(I&&e&&-1!==P7(J,t=>x(e,t)))return;let n=P7(ep,e=>x(e,t));-1===n?eg({diff:"reset"}):em({index:n});return}if(X.current>=ep.length-1){em({index:ep.length-1});return}em({index:X.current})}},[ep.length,!I&&J,A,eg,em,ec,ee,I]),ey=(0,sR.Z)(e=>{if((0,ux.Z)(G,e),!!e)eb()});e0.useEffect(()=>{eb()},[eb]);let ev=e=>{if(!eo)ea(!0),el(!0),N&&N(e)},eS=(e,t)=>{if(!!eo)ea(!1),_&&_(e,t)},ew=(e,t,n,r)=>{if(I){if(J.length===t.length&&J.every((e,n)=>e===t[n]))return}else if(J===t)return;k&&k(e,t,n,r),$(t)},eE=e0.useRef(!1),eO=(e,t,n="selectOption",r="options")=>{let i=n,o=t;if(I){o=Array.isArray(J)?J.slice():[];let e=P7(o,e=>x(t,e));-1===e?o.push(t):"freeSolo"!==r&&(o.splice(e,1),i="removeOption")}ei(e,o),ew(e,o,i,{option:t}),!d&&(!e||!e.ctrlKey&&!e.metaKey)&&eS(e,i),(!0===a||"touch"===a&&eE.current||"mouse"===a&&!eE.current)&&V.current.blur()},eT=(e,t)=>{if(!I)return;""===ee&&eS(e,"toggleInput");let n=q;-1===q?""===ee&&"previous"===t&&(n=J.length-1):((n+="next"===t?1:-1)<0&&(n=0),n===J.length&&(n=-1)),K(n=function(e,t){if(-1===e)return -1;let n=e;for(;;){if("next"===t&&n===J.length||"previous"===t&&-1===n)return -1;let e=W.querySelector(`[data-tag-index="${n}"]`);if(e&&e.hasAttribute("tabindex")&&!e.disabled&&"true"!==e.getAttribute("aria-disabled"))return n;n+="next"===t?1:-1}}(n,t)),ef(n)},eC=e=>{H.current=!0,et(""),P&&P(e,"","clear"),ew(e,I?[]:null,"clear")},ex=e=>t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented){if(-1!==q&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(K(-1),ef(-1)),229!==t.which)switch(t.key){case"Home":ec&&E&&(t.preventDefault(),eg({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":ec&&E&&(t.preventDefault(),eg({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),eg({diff:-5,direction:"previous",reason:"keyboard",event:t}),ev(t);break;case"PageDown":t.preventDefault(),eg({diff:5,direction:"next",reason:"keyboard",event:t}),ev(t);break;case"ArrowDown":t.preventDefault(),eg({diff:1,direction:"next",reason:"keyboard",event:t}),ev(t);break;case"ArrowUp":t.preventDefault(),eg({diff:-1,direction:"previous",reason:"keyboard",event:t}),ev(t);break;case"ArrowLeft":eT(t,"previous");break;case"ArrowRight":eT(t,"next");break;case"Enter":if(-1!==X.current&&ec){let e=ep[X.current],n=!!y&&y(e);if(t.preventDefault(),n)return;eO(t,e,"selectOption"),r&&V.current.setSelectionRange(V.current.value.length,V.current.value.length)}else b&&""!==ee&&!1===eu&&(I&&t.preventDefault(),eO(t,ee,"createOption","freeSolo"));break;case"Escape":ec?(t.preventDefault(),t.stopPropagation(),eS(t,"escape")):l&&(""!==ee||I&&J.length>0)&&(t.preventDefault(),t.stopPropagation(),eC(t));break;case"Backspace":if(I&&!B&&""===ee&&J.length>0){let e=-1===q?J.length-1:q,n=J.slice();n.splice(e,1),ew(t,n,"removeOption",{option:J[e]})}break;case"Delete":if(I&&!B&&""===ee&&J.length>0&&-1!==q){let e=J.slice();e.splice(q,1),ew(t,e,"removeOption",{option:J[q]})}}}},eI=e=>{er(!0),M&&!H.current&&ev(e)},ek=e=>{if(t(G)){V.current.focus();return}er(!1),Z.current=!0,H.current=!1,o&&-1!==X.current&&ec?eO(e,ep[X.current],"blur"):o&&b&&""!==ee?eO(e,ee,"blur","freeSolo"):s&&ei(e,J),eS(e,"blur")},e_=e=>{let t=e.target.value;ee!==t&&(et(t),el(!1),P&&P(e,t,"input")),""===t?!p&&!I&&ew(e,null,"clear"):ev(e)},eR=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));X.current!==t&&em({event:e,index:t,reason:"mouse"})},eP=e=>{em({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),eE.current=!0},eN=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));eO(e,ep[t],"selectOption"),eE.current=!1},eD=e=>t=>{let n=J.slice();n.splice(e,1),ew(t,n,"removeOption",{option:J[e]})},eM=e=>{eo?eS(e,"toggleInput"):ev(e)},eL=e=>{if(!!e.currentTarget.contains(e.target))e.target.getAttribute("id")!==j&&e.preventDefault()},eB=e=>{if(!!e.currentTarget.contains(e.target))V.current.focus(),F&&Z.current&&V.current.selectionEnd-V.current.selectionStart==0&&V.current.select(),Z.current=!1},eF=e=>{!h&&(""===ee||!eo)&&eM(e)},eU=b&&ee.length>0;eU=eU||(I?J.length>0:null!==J);let ej=ep;return w&&(ej=ep.reduce((e,t,n)=>{let r=w(t);return e.length>0&&e[e.length-1].group===r?e[e.length-1].options.push(t):e.push({key:n,index:n,group:r,options:[t]}),e},[])),h&&en&&ek(),{getRootProps:(e={})=>(0,n4.Z)({"aria-owns":eh?`${j}-listbox`:null},e,{onKeyDown:ex(e),onMouseDown:eL,onClick:eB}),getInputLabelProps:()=>({id:`${j}-label`,htmlFor:j}),getInputProps:()=>({id:j,value:ee,onBlur:ek,onFocus:eI,onChange:e_,onMouseDown:eF,"aria-activedescendant":ec?"":null,"aria-autocomplete":r?"both":"list","aria-controls":eh?`${j}-listbox`:void 0,"aria-expanded":eh,autoComplete:"off",ref:V,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:h}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:eC}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:eM}),getTagProps:({index:e})=>(0,n4.Z)({key:e,"data-tag-index":e,tabIndex:-1},!B&&{onDelete:eD(e)}),getListboxProps:()=>({role:"listbox",id:`${j}-listbox`,"aria-labelledby":`${j}-label`,ref:ey,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:({index:e,option:t})=>{var n;let r=(I?J:[J]).some(e=>null!=e&&x(t,e)),i=!!y&&y(t);return{key:null!=(n=null==v?void 0:v(t))?n:z(t),tabIndex:-1,role:"option",id:`${j}-option-${e}`,onMouseMove:eR,onClick:eN,onTouchStart:eP,"data-option-index":e,"aria-disabled":i,"aria-selected":r}},id:j,inputValue:ee,value:J,dirty:eU,expanded:ec&&W,popupOpen:ec,focused:en||-1!==q,anchorEl:W,setAnchorEl:Q,focusedTag:q,groupedOptions:ej}};var Nt=n("91070");function Nn(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Nr(e){var t=Nn(e).Element;return e instanceof t||e instanceof Element}function Ni(e){var t=Nn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function No(e){if("undefined"==typeof ShadowRoot)return!1;var t=Nn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var Na=Math.max,Ns=Math.min,Nl=Math.round;function Nu(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Nc(){return!/^((?!chrome|android).)*safari/i.test(Nu())}function Np(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&Ni(e)&&(i=e.offsetWidth>0&&Nl(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Nl(r.height)/e.offsetHeight||1);var a=(Nr(e)?Nn(e):window).visualViewport,s=!Nc()&&n,l=(r.left+(s&&a?a.offsetLeft:0))/i,u=(r.top+(s&&a?a.offsetTop:0))/o,c=r.width/i,p=r.height/o;return{width:c,height:p,top:u,right:l+c,bottom:u+p,left:l,x:l,y:u}}function Nd(e){var t=Nn(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Nh(e){return e?(e.nodeName||"").toLowerCase():null}function Nf(e){return((Nr(e)?e.ownerDocument:e.document)||window.document).documentElement}function Nm(e){return Np(Nf(e)).left+Nd(e).scrollLeft}function Ng(e){return Nn(e).getComputedStyle(e)}function NA(e){var t=Ng(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Nb(e){var t=Np(e),n=e.offsetWidth,r=e.offsetHeight;return 1>=Math.abs(t.width-n)&&(n=t.width),1>=Math.abs(t.height-r)&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Ny(e){return"html"===Nh(e)?e:e.assignedSlot||e.parentNode||(No(e)?e.host:null)||Nf(e)}function Nv(e,t){void 0===t&&(t=[]);var n,r=function e(t){return["html","body","#document"].indexOf(Nh(t))>=0?t.ownerDocument.body:Ni(t)&&NA(t)?t:e(Ny(t))}(e),i=r===(null==(n=e.ownerDocument)?void 0:n.body),o=Nn(r),a=i?[o].concat(o.visualViewport||[],NA(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(Nv(Ny(a)))}function NS(e){return Ni(e)&&"fixed"!==Ng(e).position?e.offsetParent:null}function Nw(e){for(var t=Nn(e),n=NS(e);n&&["table","td","th"].indexOf(Nh(n))>=0&&"static"===Ng(n).position;)n=NS(n);return n&&("html"===Nh(n)||"body"===Nh(n)&&"static"===Ng(n).position)?t:n||function(e){var t=/firefox/i.test(Nu());if(/Trident/i.test(Nu())&&Ni(e)&&"fixed"===Ng(e).position)return null;var n=Ny(e);for(No(n)&&(n=n.host);Ni(n)&&0>["html","body"].indexOf(Nh(n));){var r=Ng(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}var NE="bottom",NO="right",NT="left",NC="auto",Nx=["top",NE,NO,NT],NI="start",Nk="viewport",N_="popper",NR=Nx.reduce(function(e,t){return e.concat([t+"-"+NI,t+"-end"])},[]),NP=[].concat(Nx,[NC]).reduce(function(e,t){return e.concat([t,t+"-"+NI,t+"-end"])},[]),NN=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"],ND={placement:"bottom",modifiers:[],strategy:"absolute"};function NM(){for(var e=arguments.length,t=Array(e),n=0;n=0?"x":"y"}function Nj(e){var t,n=e.reference,r=e.element,i=e.placement,o=i?NB(i):null,a=i?NF(i):null,s=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(o){case"top":t={x:s,y:n.y-r.height};break;case NE:t={x:s,y:n.y+n.height};break;case NO:t={x:n.x+n.width,y:l};break;case NT:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var u=o?NU(o):null;if(null!=u){var c="y"===u?"height":"width";switch(a){case NI:t[u]=t[u]-(n[c]/2-r[c]/2);break;case"end":t[u]=t[u]+(n[c]/2-r[c]/2)}}return t}var Nz={top:"auto",right:"auto",bottom:"auto",left:"auto"};function NH(e){var t,n,r,i,o,a,s,l=e.popper,u=e.popperRect,c=e.placement,p=e.variation,d=e.offsets,h=e.position,f=e.gpuAcceleration,m=e.adaptive,g=e.roundOffsets,A=e.isFixed,b=d.x,y=void 0===b?0:b,v=d.y,S=void 0===v?0:v,w="function"==typeof g?g({x:y,y:S}):{x:y,y:S};y=w.x,S=w.y;var E=d.hasOwnProperty("x"),O=d.hasOwnProperty("y"),T=NT,C="top",x=window;if(m){var I=Nw(l),k="clientHeight",_="clientWidth";I===Nn(l)&&"static"!==Ng(I=Nf(l)).position&&"absolute"===h&&(k="scrollHeight",_="scrollWidth");("top"===c||(c===NT||c===NO)&&"end"===p)&&(C=NE,S-=(A&&I===x&&x.visualViewport?x.visualViewport.height:I[k])-u.height,S*=f?1:-1),(c===NT||("top"===c||c===NE)&&"end"===p)&&(T=NO,y-=(A&&I===x&&x.visualViewport?x.visualViewport.width:I[_])-u.width,y*=f?1:-1)}var R=Object.assign({position:h},m&&Nz);var P=!0===g?(t={x:y,y:S},n=Nn(l),r=t.x,i=t.y,{x:Nl(r*(o=n.devicePixelRatio||1))/o||0,y:Nl(i*o)/o||0}):{x:y,y:S};return(y=P.x,S=P.y,f)?Object.assign({},R,((s={})[C]=O?"0":"",s[T]=E?"0":"",s.transform=1>=(x.devicePixelRatio||1)?"translate("+y+"px, "+S+"px)":"translate3d("+y+"px, "+S+"px, 0)",s)):Object.assign({},R,((a={})[C]=O?S+"px":"",a[T]=E?y+"px":"",a.transform="",a))}var NZ={left:"right",right:"left",bottom:"top",top:"bottom"};function NV(e){return e.replace(/left|right|bottom|top/g,function(e){return NZ[e]})}var NG={start:"end",end:"start"};function NW(e){return e.replace(/start|end/g,function(e){return NG[e]})}function NQ(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&No(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Nq(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function NK(e,t,n){var r,i,o,a,s,l,u,c,p,d,h;return t===Nk?Nq(function(e,t){var n=Nn(e),r=Nf(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;var u=Nc();(u||!u&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s+Nm(e),y:l}}(e,n)):Nr(t)?((i=Np(r=t,!1,"fixed"===n)).top=i.top+r.clientTop,i.left=i.left+r.clientLeft,i.bottom=i.top+r.clientHeight,i.right=i.left+r.clientWidth,i.width=r.clientWidth,i.height=r.clientHeight,i.x=i.left,i.y=i.top,i):Nq((o=Nf(e),s=Nf(o),l=Nd(o),u=null==(a=o.ownerDocument)?void 0:a.body,c=Na(s.scrollWidth,s.clientWidth,u?u.scrollWidth:0,u?u.clientWidth:0),p=Na(s.scrollHeight,s.clientHeight,u?u.scrollHeight:0,u?u.clientHeight:0),d=-l.scrollLeft+Nm(o),h=-l.scrollTop,"rtl"===Ng(u||s).direction&&(d+=Na(s.clientWidth,u?u.clientWidth:0)-c),{width:c,height:p,x:d,y:h}))}function NY(){return{top:0,right:0,bottom:0,left:0}}function NX(e){return Object.assign({},NY(),e)}function NJ(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}function N$(e,t){void 0===t&&(t={});var n,r,i,o,a,s,l,u,c,p,d=t,h=d.placement,f=void 0===h?e.placement:h,m=d.strategy,g=void 0===m?e.strategy:m,A=d.boundary,b=d.rootBoundary,y=d.elementContext,v=void 0===y?N_:y,S=d.altBoundary,w=d.padding,E=void 0===w?0:w,O=NX("number"!=typeof E?E:NJ(E,Nx)),T=e.rects.popper,C=e.elements[void 0!==S&&S?v===N_?"reference":N_:v];var x=(n=Nr(C)?C:C.contextElement||Nf(e.elements.popper),r=void 0===A?"clippingParents":A,i=void 0===b?Nk:b,o=g,c=(u=[].concat("clippingParents"===r?(s=Nv(Ny(a=n)),Nr(l=["absolute","fixed"].indexOf(Ng(a).position)>=0&&Ni(a)?Nw(a):a)?s.filter(function(e){return Nr(e)&&NQ(e,l)&&"body"!==Nh(e)}):[]):[].concat(r),[i]))[0],(p=u.reduce(function(e,t){var r=NK(n,t,o);return e.top=Na(r.top,e.top),e.right=Ns(r.right,e.right),e.bottom=Ns(r.bottom,e.bottom),e.left=Na(r.left,e.left),e},NK(n,c,o))).width=p.right-p.left,p.height=p.bottom-p.top,p.x=p.left,p.y=p.top,p),I=Np(e.elements.reference),k=Nj({reference:I,element:T,strategy:"absolute",placement:f}),_=Nq(Object.assign({},T,k)),R=v===N_?_:I,P={top:x.top-R.top+O.top,bottom:R.bottom-x.bottom+O.bottom,left:x.left-R.left+O.left,right:R.right-x.right+O.right},N=e.modifiersData.offset;if(v===N_&&N){var D=N[f];Object.keys(P).forEach(function(e){var t=[NO,NE].indexOf(e)>=0?1:-1,n=["top",NE].indexOf(e)>=0?"y":"x";P[e]+=D[n]*t})}return P}function N0(e,t,n){return Na(e,Ns(t,n))}function N1(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function N2(e){return["top",NO,NE,NT].some(function(t){return e[t]>=0})}var N4=(Z={defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=void 0===i||i,a=r.resize,s=void 0===a||a,l=Nn(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(e){e.addEventListener("scroll",n.update,NL)}),s&&l.addEventListener("resize",n.update,NL),function(){o&&u.forEach(function(e){e.removeEventListener("scroll",n.update,NL)}),s&&l.removeEventListener("resize",n.update,NL)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=Nj({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=n.adaptive,o=n.roundOffsets,a=void 0===o||o,s={placement:NB(t.placement),variation:NF(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:void 0===r||r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,NH(Object.assign({},s,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:void 0===i||i,roundOffsets:a})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,NH(Object.assign({},s,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];if(!!Ni(i)&&!!Nh(i))Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});if(!!Ni(r)&&!!Nh(r))Object.assign(r.style,o),Object.keys(i).forEach(function(e){r.removeAttribute(e)})})}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=void 0===i?[0,0]:i,a=NP.reduce(function(e,n){var r,i,a,s,l,u,c,p;return e[n]=(r=n,i=t.rects,a=o,l=[NT,"top"].indexOf(s=NB(r))>=0?-1:1,c=(u="function"==typeof a?a(Object.assign({},i,{placement:r})):a)[0],p=u[1],c=c||0,p=(p||0)*l,[NT,NO].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}),e},{}),s=a[t.placement],l=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=void 0===i||i,a=n.altAxis,s=void 0===a||a,l=n.fallbackPlacements,u=n.padding,c=n.boundary,p=n.rootBoundary,d=n.altBoundary,h=n.flipVariations,f=void 0===h||h,m=n.allowedAutoPlacements,g=t.options.placement,A=NB(g)===g,b=l||(A||!f?[NV(g)]:function(e){if(NB(e)===NC)return[];var t=NV(e);return[NW(e),t,NW(t)]}(g)),y=[g].concat(b).reduce(function(e,n){var r,i,o,a,s,l,d,h,g,A,b,y,v,S;return e.concat(NB(n)===NC?(r=t,i={placement:n,boundary:c,rootBoundary:p,padding:u,flipVariations:f,allowedAutoPlacements:m},a=(o=i).placement,s=o.boundary,l=o.rootBoundary,d=o.padding,h=o.flipVariations,A=void 0===(g=o.allowedAutoPlacements)?NP:g,0===(v=(y=(b=NF(a))?h?NR:NR.filter(function(e){return NF(e)===b}):Nx).filter(function(e){return A.indexOf(e)>=0})).length&&(v=y),Object.keys(S=v.reduce(function(e,t){return e[t]=N$(r,{placement:t,boundary:s,rootBoundary:l,padding:d})[NB(t)],e},{})).sort(function(e,t){return S[e]-S[t]})):n)},[]),v=t.rects.reference,S=t.rects.popper,w=new Map,E=!0,O=y[0],T=0;T=0,_=k?"width":"height",R=N$(t,{placement:C,boundary:c,rootBoundary:p,altBoundary:d,padding:u}),P=k?I?NO:NT:I?NE:"top";v[_]>S[_]&&(P=NV(P));var N=NV(P),D=[];if(o&&D.push(R[x]<=0),s&&D.push(R[P]<=0,R[N]<=0),D.every(function(e){return e})){O=C,E=!1;break}w.set(C,D)}if(E){for(var M=f?3:1,L=function(e){var t=y.find(function(t){var n=w.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return O=t,"break"},B=M;B>0&&"break"!==L(B);B--);}t.placement!==O&&(t.modifiersData[r]._skip=!0,t.placement=O,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=n.altAxis,a=n.boundary,s=n.rootBoundary,l=n.altBoundary,u=n.padding,c=n.tether,p=void 0===c||c,d=n.tetherOffset,h=void 0===d?0:d,f=N$(t,{boundary:a,rootBoundary:s,padding:u,altBoundary:l}),m=NB(t.placement),g=NF(t.placement),A=!g,b=NU(m),y="x"===b?"y":"x",v=t.modifiersData.popperOffsets,S=t.rects.reference,w=t.rects.popper,E="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,O="number"==typeof E?{mainAxis:E,altAxis:E}:Object.assign({mainAxis:0,altAxis:0},E),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,C={x:0,y:0};if(!!v){if(void 0===i||i){var x,I="y"===b?"top":NT,k="y"===b?NE:NO,_="y"===b?"height":"width",R=v[b],P=R+f[I],N=R-f[k],D=p?-w[_]/2:0,M=g===NI?S[_]:w[_],L=g===NI?-w[_]:-S[_],B=t.elements.arrow,F=p&&B?Nb(B):{width:0,height:0},U=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:NY(),j=U[I],z=U[k],H=N0(0,S[_],F[_]),Z=A?S[_]/2-D-H-j-O.mainAxis:M-H-j-O.mainAxis,V=A?-S[_]/2+D+H+z+O.mainAxis:L+H+z+O.mainAxis,G=t.elements.arrow&&Nw(t.elements.arrow),W=G?"y"===b?G.clientTop||0:G.clientLeft||0:0,Q=null!=(x=null==T?void 0:T[b])?x:0,q=N0(p?Ns(P,R+Z-Q-W):P,R,p?Na(N,R+V-Q):N);v[b]=q,C[b]=q-R}if(void 0!==o&&o){var K,Y,X,J="x"===b?"top":NT,$="x"===b?NE:NO,ee=v[y],et="y"===y?"height":"width",en=ee+f[J],er=ee-f[$],ei=-1!==["top",NT].indexOf(m),eo=null!=(X=null==T?void 0:T[y])?X:0,ea=ei?en:ee-S[et]-w[et]-eo+O.altAxis,es=ei?ee+S[et]+w[et]-eo-O.altAxis:er;var el=p&&ei?(Y=N0(ea,ee,K=es))>K?K:Y:N0(p?ea:en,ee,p?es:er);v[y]=el,C[y]=el-ee}t.modifiersData[r]=C}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n,r,i=e.state,o=e.name,a=e.options,s=i.elements.arrow,l=i.modifiersData.popperOffsets,u=NB(i.placement),c=NU(u),p=[NT,NO].indexOf(u)>=0?"height":"width";if(!!s&&!!l){var d=(t=a.padding,n=i,NX("number"!=typeof(t="function"==typeof t?t(Object.assign({},n.rects,{placement:n.placement})):t)?t:NJ(t,Nx))),h=Nb(s),f="y"===c?"top":NT,m="y"===c?NE:NO,g=i.rects.reference[p]+i.rects.reference[c]-l[c]-i.rects.popper[p],A=l[c]-i.rects.reference[c],b=Nw(s),y=b?"y"===c?b.clientHeight||0:b.clientWidth||0:0,v=d[f],S=y-h[p]-d[m],w=y/2-h[p]/2+(g/2-A/2),E=N0(v,w,S);i.modifiersData[o]=((r={})[c]=E,r.centerOffset=E-w,r)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;if(null!=r&&("string"!=typeof r||!!(r=t.elements.popper.querySelector(r)))&&!!NQ(t.elements.popper,r))t.elements.arrow=r},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=N$(t,{elementContext:"reference"}),s=N$(t,{altBoundary:!0}),l=N1(a,r),u=N1(s,i,o),c=N2(l),p=N2(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":p})}}]},W=void 0===(G=(V=Z).defaultModifiers)?[]:G,q=void 0===(Q=V.defaultOptions)?ND:Q,function(e,t,n){void 0===n&&(n=q);var r,i,o={placement:"bottom",orderedModifiers:[],options:Object.assign({},ND,q),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},a=[],s=!1;var l={state:o,setOptions:function(n){var r,i,s,c,p,d,h="function"==typeof n?n(o.options):n;u(),o.options=Object.assign({},q,o.options,h),o.scrollParents={reference:Nr(e)?Nv(e):e.contextElement?Nv(e.contextElement):[],popper:Nv(t)};var f=(d=(i=Object.keys(r=[].concat(W,o.options.modifiers).reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{})).map(function(e){return r[e]}),s=new Map,c=new Set,p=[],i.forEach(function(e){s.set(e.name,e)}),i.forEach(function(e){!c.has(e.name)&&!function e(t){c.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach(function(t){if(!c.has(t)){var n=s.get(t);n&&e(n)}}),p.push(t)}(e)}),p),NN.reduce(function(e,t){return e.concat(d.filter(function(e){return e.phase===t}))},[]));return o.orderedModifiers=f.filter(function(e){return e.enabled}),function(){o.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=e.effect;if("function"==typeof r){var i=r({state:o,name:t,instance:l,options:void 0===n?{}:n});a.push(i||function(){})}})}(),l.update()},forceUpdate:function(){if(s)return;var e,t,n,r,i,a,u,c,p,d,h,f,m,g=o.elements,A=g.reference,b=g.popper;if(!!NM(A,b)){o.rects={reference:(e=A,t=Nw(b),n="fixed"===o.options.strategy,r=Ni(t),p=Ni(t)&&(u=Nl((a=(i=t).getBoundingClientRect()).width)/i.offsetWidth||1,c=Nl(a.height)/i.offsetHeight||1,1!==u||1!==c),d=Nf(t),h=Np(e,p,n),f={scrollLeft:0,scrollTop:0},m={x:0,y:0},(r||!r&&!n)&&(("body"!==Nh(t)||NA(d))&&(f=function(e){var t;if(e===Nn(e)||!Ni(e))return Nd(e);return{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}}(t)),Ni(t)?(m=Np(t,!0),m.x+=t.clientLeft,m.y+=t.clientTop):d&&(m.x=Nm(d))),{x:h.left+f.scrollLeft-m.x,y:h.top+f.scrollTop-m.y,width:h.width,height:h.height}),popper:Nb(b)},o.reset=!1,o.placement=o.options.placement,o.orderedModifiers.forEach(function(e){return o.modifiersData[e.name]=Object.assign({},e.data)});for(var y=0;y{let{classes:t}=e;return(0,rd.Z)({root:["root"]},N3,t)},N9={},De=e0.forwardRef(function(e,t){var n;let{anchorEl:r,children:i,direction:o,disablePortal:a,modifiers:s,open:l,placement:u,popperOptions:c,popperRef:p,slotProps:d={},slots:h={},TransitionProps:f}=e,m=(0,n3.Z)(e,N6),g=e0.useRef(null),A=(0,sk.Z)(g,t),b=e0.useRef(null),y=(0,sk.Z)(b,p),v=e0.useRef(y);(0,sP.Z)(()=>{v.current=y},[y]),e0.useImperativeHandle(p,()=>b.current,[]);let S=function(e,t){if("ltr"===t)return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(u,o),[w,E]=e0.useState(S),[O,T]=e0.useState(N8(r));e0.useEffect(()=>{b.current&&b.current.forceUpdate()}),e0.useEffect(()=>{r&&T(N8(r))},[r]),(0,sP.Z)(()=>{if(!O||!l)return;let e=e=>{E(e.placement)},t=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:t})=>{e(t)}}];null!=s&&(t=t.concat(s)),c&&null!=c.modifiers&&(t=t.concat(c.modifiers));let n=N4(O,g.current,(0,n4.Z)({placement:S},c,{modifiers:t}));return v.current(n),()=>{n.destroy(),v.current(null)}},[O,a,s,l,c,S]);let C={placement:w};null!==f&&(C.TransitionProps=f);let x=N5(e),I=null!=(n=h.root)?n:"div",k=l1({elementType:I,externalSlotProps:d.root,externalForwardedProps:m,additionalProps:{role:"tooltip",ref:A},ownerState:e,className:x.root});return(0,eJ.jsx)(I,(0,n4.Z)({},k,{children:"function"==typeof i?i(C):i}))}),Dt=e0.forwardRef(function(e,t){let n;let{anchorEl:r,children:i,container:o,direction:a="ltr",disablePortal:s=!1,keepMounted:l=!1,modifiers:u,open:c,placement:p="bottom",popperOptions:d=N9,popperRef:h,style:f,transition:m=!1,slotProps:g={},slots:A={}}=e,b=(0,n3.Z)(e,N7),[y,v]=e0.useState(!0);if(!l&&!c&&(!m||y))return null;if(o)n=o;else if(r){let e=N8(r);n=e&&void 0!==e.nodeType?(0,uE.Z)(e).body:(0,uE.Z)(null).body}let S=!c&&l&&(!m||y)?"none":void 0,w=m?{in:c,onEnter:()=>{v(!1)},onExited:()=>{v(!0)}}:void 0;return(0,eJ.jsx)(uI,{disablePortal:s,container:n,children:(0,eJ.jsx)(De,(0,n4.Z)({anchorEl:r,direction:a,disablePortal:s,modifiers:u,ref:t,open:m?!y:c,placement:p,popperOptions:d,popperRef:h,slotProps:g,slots:A},b,{style:(0,n4.Z)({position:"fixed",top:0,left:0,display:S},f),TransitionProps:w,children:i}))})}),Dn=["anchorEl","component","components","componentsProps","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","transition","slots","slotProps"],Dr=(0,rh.ZP)(Dt,{name:"MuiPopper",slot:"Root",overridesResolver:(e,t)=>t.root})({}),Di=e0.forwardRef(function(e,t){var n;let r=(0,Nt.default)(),i=(0,rf.i)({props:e,name:"MuiPopper"}),{anchorEl:o,component:a,components:s,componentsProps:l,container:u,disablePortal:c,keepMounted:p,modifiers:d,open:h,placement:f,popperOptions:m,popperRef:g,transition:A,slots:b,slotProps:y}=i,v=(0,n3.Z)(i,Dn),S=null!=(n=null==b?void 0:b.root)?n:null==s?void 0:s.Root,w=(0,n4.Z)({anchorEl:o,container:u,disablePortal:c,keepMounted:p,modifiers:d,open:h,placement:f,popperOptions:m,popperRef:g,transition:A},v);return(0,eJ.jsx)(Dr,(0,n4.Z)({as:a,direction:null==r?void 0:r.direction,slots:{root:S},slotProps:null!=y?y:l},w,{ref:t}))});function Do(e){return(0,rA.ZP)("MuiListSubheader",e)}(0,rl.Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);let Da=["className","color","component","disableGutters","disableSticky","inset"],Ds=e=>{let{classes:t,color:n,disableGutters:r,inset:i,disableSticky:o}=e,a={root:["root","default"!==n&&`color${(0,rN.Z)(n)}`,!r&&"gutters",i&&"inset",!o&&"sticky"]};return(0,rd.Z)(a,Do,t)},Dl=(0,rh.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,"default"!==n.color&&t[`color${(0,rN.Z)(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})(({theme:e,ownerState:t})=>(0,n4.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},"primary"===t.color&&{color:(e.vars||e).palette.primary.main},"inherit"===t.color&&{color:"inherit"},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.inset&&{paddingLeft:72},!t.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper})),Du=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListSubheader"}),{className:r,color:i="default",component:o="li",disableGutters:a=!1,disableSticky:s=!1,inset:l=!1}=n,u=(0,n3.Z)(n,Da),c=(0,n4.Z)({},n,{color:i,component:o,disableGutters:a,disableSticky:s,inset:l}),p=Ds(c);return(0,eJ.jsx)(Dl,(0,n4.Z)({as:o,className:(0,n6.Z)(p.root,r),ref:t,ownerState:c},u))});Du.muiSkipListHighlight=!0;let Dc=(0,cI.Z)((0,eJ.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Dp(e){return(0,rA.ZP)("MuiChip",e)}let Dd=(0,rl.Z)("MuiChip",["root","sizeSmall","sizeMedium","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),Dh=["avatar","className","clickable","color","component","deleteIcon","disabled","icon","label","onClick","onDelete","onKeyDown","onKeyUp","size","variant","tabIndex","skipFocusWhenDisabled"],Df=e=>{let{classes:t,disabled:n,size:r,color:i,iconColor:o,onDelete:a,clickable:s,variant:l}=e,u={root:["root",l,n&&"disabled",`size${(0,rN.Z)(r)}`,`color${(0,rN.Z)(i)}`,s&&"clickable",s&&`clickableColor${(0,rN.Z)(i)}`,a&&"deletable",a&&`deletableColor${(0,rN.Z)(i)}`,`${l}${(0,rN.Z)(i)}`],label:["label",`label${(0,rN.Z)(r)}`],avatar:["avatar",`avatar${(0,rN.Z)(r)}`,`avatarColor${(0,rN.Z)(i)}`],icon:["icon",`icon${(0,rN.Z)(r)}`,`iconColor${(0,rN.Z)(o)}`],deleteIcon:["deleteIcon",`deleteIcon${(0,rN.Z)(r)}`,`deleteIconColor${(0,rN.Z)(i)}`,`deleteIcon${(0,rN.Z)(l)}Color${(0,rN.Z)(i)}`]};return(0,rd.Z)(u,Dp,t)},Dm=(0,rh.ZP)("div",{name:"MuiChip",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e,{color:r,iconColor:i,clickable:o,onDelete:a,size:s,variant:l}=n;return[{[`& .${Dd.avatar}`]:t.avatar},{[`& .${Dd.avatar}`]:t[`avatar${(0,rN.Z)(s)}`]},{[`& .${Dd.avatar}`]:t[`avatarColor${(0,rN.Z)(r)}`]},{[`& .${Dd.icon}`]:t.icon},{[`& .${Dd.icon}`]:t[`icon${(0,rN.Z)(s)}`]},{[`& .${Dd.icon}`]:t[`iconColor${(0,rN.Z)(i)}`]},{[`& .${Dd.deleteIcon}`]:t.deleteIcon},{[`& .${Dd.deleteIcon}`]:t[`deleteIcon${(0,rN.Z)(s)}`]},{[`& .${Dd.deleteIcon}`]:t[`deleteIconColor${(0,rN.Z)(r)}`]},{[`& .${Dd.deleteIcon}`]:t[`deleteIcon${(0,rN.Z)(l)}Color${(0,rN.Z)(r)}`]},t.root,t[`size${(0,rN.Z)(s)}`],t[`color${(0,rN.Z)(r)}`],o&&t.clickable,o&&"default"!==r&&t[`clickableColor${(0,rN.Z)(r)})`],a&&t.deletable,a&&"default"!==r&&t[`deletableColor${(0,rN.Z)(r)}`],t[l],t[`${l}${(0,rN.Z)(r)}`]]}})(({theme:e,ownerState:t})=>{let n="light"===e.palette.mode?e.palette.grey[700]:e.palette.grey[300];return(0,n4.Z)({maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:16,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Dd.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Dd.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:n,fontSize:e.typography.pxToRem(12)},[`& .${Dd.avatarColorPrimary}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark},[`& .${Dd.avatarColorSecondary}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark},[`& .${Dd.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${Dd.icon}`]:(0,n4.Z)({marginLeft:5,marginRight:-6},"small"===t.size&&{fontSize:18,marginLeft:4,marginRight:-4},t.iconColor===t.color&&(0,n4.Z)({color:e.vars?e.vars.palette.Chip.defaultIconColor:n},"default"!==t.color&&{color:"inherit"})),[`& .${Dd.deleteIcon}`]:(0,n4.Z)({WebkitTapHighlightColor:"transparent",color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.26)`:(0,rm.alpha)(e.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.4)`:(0,rm.alpha)(e.palette.text.primary,.4)}},"small"===t.size&&{fontSize:16,marginRight:4,marginLeft:-4},"default"!==t.color&&{color:e.vars?`rgba(${e.vars.palette[t.color].contrastTextChannel} / 0.7)`:(0,rm.alpha)(e.palette[t.color].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[t.color].contrastText}})},"small"===t.size&&{height:24},"default"!==t.color&&{backgroundColor:(e.vars||e).palette[t.color].main,color:(e.vars||e).palette[t.color].contrastText},t.onDelete&&{[`&.${Dd.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,rm.alpha)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},t.onDelete&&"default"!==t.color&&{[`&.${Dd.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t.color].dark}})},({theme:e,ownerState:t})=>(0,n4.Z)({},t.clickable&&{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,rm.alpha)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)},[`&.${Dd.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,rm.alpha)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},"&:active":{boxShadow:(e.vars||e).shadows[1]}},t.clickable&&"default"!==t.color&&{[`&:hover, &.${Dd.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t.color].dark}}),({theme:e,ownerState:t})=>(0,n4.Z)({},"outlined"===t.variant&&{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${"light"===e.palette.mode?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${Dd.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Dd.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${Dd.avatar}`]:{marginLeft:4},[`& .${Dd.avatarSmall}`]:{marginLeft:2},[`& .${Dd.icon}`]:{marginLeft:4},[`& .${Dd.iconSmall}`]:{marginLeft:2},[`& .${Dd.deleteIcon}`]:{marginRight:5},[`& .${Dd.deleteIconSmall}`]:{marginRight:3}},"outlined"===t.variant&&"default"!==t.color&&{color:(e.vars||e).palette[t.color].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / 0.7)`:(0,rm.alpha)(e.palette[t.color].main,.7)}`,[`&.${Dd.clickable}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,rm.alpha)(e.palette[t.color].main,e.palette.action.hoverOpacity)},[`&.${Dd.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.focusOpacity})`:(0,rm.alpha)(e.palette[t.color].main,e.palette.action.focusOpacity)},[`& .${Dd.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / 0.7)`:(0,rm.alpha)(e.palette[t.color].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[t.color].main}}})),Dg=(0,rh.ZP)("span",{name:"MuiChip",slot:"Label",overridesResolver:(e,t)=>{let{ownerState:n}=e,{size:r}=n;return[t.label,t[`label${(0,rN.Z)(r)}`]]}})(({ownerState:e})=>(0,n4.Z)({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap"},"outlined"===e.variant&&{paddingLeft:11,paddingRight:11},"small"===e.size&&{paddingLeft:8,paddingRight:8},"small"===e.size&&"outlined"===e.variant&&{paddingLeft:7,paddingRight:7}));function DA(e){return"Backspace"===e.key||"Delete"===e.key}let Db=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiChip"}),{avatar:r,className:i,clickable:o,color:a="default",component:s,deleteIcon:l,disabled:u=!1,icon:c,label:p,onClick:d,onDelete:h,onKeyDown:f,onKeyUp:m,size:g="medium",variant:A="filled",tabIndex:b,skipFocusWhenDisabled:y=!1}=n,v=(0,n3.Z)(n,Dh),S=e0.useRef(null),w=(0,rV.Z)(S,t),E=e=>{e.stopPropagation(),h&&h(e)},O=!1!==o&&!!d||o,T=O||h?ip:s||"div",C=(0,n4.Z)({},n,{component:T,disabled:u,size:g,color:a,iconColor:e0.isValidElement(c)&&c.props.color||a,onDelete:!!h,clickable:O,variant:A}),x=Df(C),I=T===ip?(0,n4.Z)({component:s||"div",focusVisibleClassName:x.focusVisible},h&&{disableRipple:!0}):{},k=null;h&&(k=l&&e0.isValidElement(l)?e0.cloneElement(l,{className:(0,n6.Z)(l.props.className,x.deleteIcon),onClick:E}):(0,eJ.jsx)(Dc,{className:(0,n6.Z)(x.deleteIcon),onClick:E}));let _=null;r&&e0.isValidElement(r)&&(_=e0.cloneElement(r,{className:(0,n6.Z)(x.avatar,r.props.className)}));let R=null;return c&&e0.isValidElement(c)&&(R=e0.cloneElement(c,{className:(0,n6.Z)(x.icon,c.props.className)})),(0,eJ.jsxs)(Dm,(0,n4.Z)({as:T,className:(0,n6.Z)(x.root,i),disabled:!!O&&!!u||void 0,onClick:d,onKeyDown:e=>{e.currentTarget===e.target&&DA(e)&&e.preventDefault(),f&&f(e)},onKeyUp:e=>{e.currentTarget===e.target&&(h&&DA(e)?h(e):"Escape"===e.key&&S.current&&S.current.blur()),m&&m(e)},ref:w,tabIndex:y&&u?-1:b,ownerState:C},I,v,{children:[_||R,(0,eJ.jsx)(Dg,{className:(0,n6.Z)(x.label),ownerState:C,children:p}),k]}))}),Dy=(0,cI.Z)((0,eJ.jsx)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");function Dv(e){return(0,rA.ZP)("MuiAutocomplete",e)}let DS=(0,rl.Z)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]),Dw=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionKey","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","slotProps","value"],DE=["ref"],DO=["key"],DT=["key"],DC=e=>{let{classes:t,disablePortal:n,expanded:r,focused:i,fullWidth:o,hasClearIcon:a,hasPopupIcon:s,inputFocused:l,popupOpen:u,size:c}=e,p={root:["root",r&&"expanded",i&&"focused",o&&"fullWidth",a&&"hasClearIcon",s&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${(0,rN.Z)(c)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",u&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,rd.Z)(p,Dv,t)},Dx=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e,{fullWidth:r,hasClearIcon:i,hasPopupIcon:o,inputFocused:a,size:s}=n;return[{[`& .${DS.tag}`]:t.tag},{[`& .${DS.tag}`]:t[`tagSize${(0,rN.Z)(s)}`]},{[`& .${DS.inputRoot}`]:t.inputRoot},{[`& .${DS.input}`]:t.input},{[`& .${DS.input}`]:a&&t.inputFocused},t.root,r&&t.fullWidth,o&&t.hasPopupIcon,i&&t.hasClearIcon]}})({[`&.${DS.focused} .${DS.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${DS.clearIndicator}`]:{visibility:"visible"}},[`& .${DS.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${DS.inputRoot}`]:{[`.${DS.hasPopupIcon}&, .${DS.hasClearIcon}&`]:{paddingRight:30},[`.${DS.hasPopupIcon}.${DS.hasClearIcon}&`]:{paddingRight:56},[`& .${DS.input}`]:{width:0,minWidth:30}},[`& .${s8.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${s8.root}.${sX.sizeSmall}`]:{[`& .${s8.input}`]:{padding:"2px 4px 3px 0"}},[`& .${lf.root}`]:{padding:9,[`.${DS.hasPopupIcon}&, .${DS.hasClearIcon}&`]:{paddingRight:39},[`.${DS.hasPopupIcon}.${DS.hasClearIcon}&`]:{paddingRight:65},[`& .${DS.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${DS.endAdornment}`]:{right:9}},[`& .${lf.root}.${sX.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${DS.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${li.root}`]:{paddingTop:19,paddingLeft:8,[`.${DS.hasPopupIcon}&, .${DS.hasClearIcon}&`]:{paddingRight:39},[`.${DS.hasPopupIcon}.${DS.hasClearIcon}&`]:{paddingRight:65},[`& .${li.input}`]:{padding:"7px 4px"},[`& .${DS.endAdornment}`]:{right:9}},[`& .${li.root}.${sX.sizeSmall}`]:{paddingBottom:1,[`& .${li.input}`]:{padding:"2.5px 4px"}},[`& .${sX.hiddenLabel}`]:{paddingTop:8},[`& .${li.root}.${sX.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${DS.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${li.root}.${sX.hiddenLabel}.${sX.sizeSmall}`]:{[`& .${DS.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${DS.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${DS.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${DS.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${DS.inputRoot}`]:{flexWrap:"wrap"}}}]}),DI=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),Dk=(0,rh.ZP)(RV,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),D_=(0,rh.ZP)(RV,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>(0,n4.Z)({},t.popupIndicator,e.popupOpen&&t.popupIndicatorOpen)})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),DR=(0,rh.ZP)(Di,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${DS.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]})),DP=(0,rh.ZP)(rw,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})(({theme:e})=>(0,n4.Z)({},e.typography.body1,{overflow:"auto"})),DN=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),DD=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),DM=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${DS.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${DS.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${DS.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${DS.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${DS.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}})),DL=(0,rh.ZP)(Du,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8})),DB=(0,rh.ZP)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${DS.option}`]:{paddingLeft:24}}),DF=e0.forwardRef(function(e,t){var n,r,i,o;let a;let s=(0,rf.i)({props:e,name:"MuiAutocomplete"}),{autoComplete:l=!1,autoHighlight:u=!1,autoSelect:c=!1,blurOnSelect:p=!1,ChipProps:d,className:h,clearIcon:f=eq||(eq=(0,eJ.jsx)(Dy,{fontSize:"small"})),clearOnBlur:m=!s.freeSolo,clearOnEscape:g=!1,clearText:A="Clear",closeText:b="Close",componentsProps:y={},defaultValue:v=s.multiple?[]:null,disableClearable:S=!1,disableCloseOnSelect:w=!1,disabled:E=!1,disabledItemsFocusable:O=!1,disableListWrap:T=!1,disablePortal:C=!1,filterSelectedOptions:x=!1,forcePopupIcon:I="auto",freeSolo:k=!1,fullWidth:_=!1,getLimitTagsText:R=e=>`+${e}`,getOptionLabel:P,groupBy:N,handleHomeEndKeys:D=!s.freeSolo,includeInputInList:M=!1,limitTags:L=-1,ListboxComponent:B="ul",ListboxProps:F,loading:U=!1,loadingText:j="Loading…",multiple:z=!1,noOptionsText:H="No options",openOnFocus:Z=!1,openText:V="Open",PaperComponent:G=rw,PopperComponent:W=Di,popupIcon:Q=eK||(eK=(0,eJ.jsx)(ck,{})),readOnly:q=!1,renderGroup:K,renderInput:Y,renderOption:X,renderTags:J,selectOnFocus:$=!s.freeSolo,size:ee="medium",slotProps:et={}}=s,en=(0,n3.Z)(s,Dw),{getRootProps:er,getInputProps:ei,getInputLabelProps:eo,getPopupIndicatorProps:ea,getClearProps:es,getTagProps:el,getListboxProps:eu,getOptionProps:ec,value:ep,dirty:ed,expanded:eh,id:ef,popupOpen:em,focused:eg,focusedTag:eA,anchorEl:eb,setAnchorEl:ey,inputValue:ev,groupedOptions:eS}=Ne((0,n4.Z)({},s,{componentName:"Autocomplete"})),ew=!S&&!E&&ed&&!q,eE=(!k||!0===I)&&!1!==I,{onMouseDown:eO}=ei(),{ref:eT}=null!=F?F:{},eC=eu(),{ref:ex}=eC,eI=(0,n3.Z)(eC,DE),ek=(0,rV.Z)(ex,eT),e_=P||(e=>{var t;return null!=(t=e.label)?t:e}),eR=(0,n4.Z)({},s,{disablePortal:C,expanded:eh,focused:eg,fullWidth:_,getOptionLabel:e_,hasClearIcon:ew,hasPopupIcon:eE,inputFocused:-1===eA,popupOpen:em,size:ee}),eP=DC(eR);if(z&&ep.length>0){let e=e=>(0,n4.Z)({className:eP.tag,disabled:E},el(e));a=J?J(ep,e,eR):ep.map((t,n)=>{let r=e({index:n}),{key:i}=r,o=(0,n3.Z)(r,DO);return(0,eJ.jsx)(Db,(0,n4.Z)({label:e_(t),size:ee},o,d),i)})}if(L>-1&&Array.isArray(a)){let e=a.length-L;!eg&&e>0&&(a=a.splice(0,L)).push((0,eJ.jsx)("span",{className:eP.tag,children:R(e)},a.length))}let eN=K||(e=>(0,eJ.jsxs)("li",{children:[(0,eJ.jsx)(DL,{className:eP.groupLabel,ownerState:eR,component:"div",children:e.group}),(0,eJ.jsx)(DB,{className:eP.groupUl,ownerState:eR,children:e.children})]},e.key)),eD=X||((e,t)=>{let{key:n}=e,r=(0,n3.Z)(e,DT);return(0,eJ.jsx)("li",(0,n4.Z)({},r,{children:e_(t)}),n)}),eM=(e,t)=>{let n=ec({option:e,index:t});return eD((0,n4.Z)({},n,{className:eP.option}),e,{selected:n["aria-selected"],index:t,inputValue:ev},eR)},eL=null!=(n=et.clearIndicator)?n:y.clearIndicator,eB=null!=(r=et.paper)?r:y.paper,eF=null!=(i=et.popper)?i:y.popper,eU=null!=(o=et.popupIndicator)?o:y.popupIndicator;return(0,eJ.jsxs)(e0.Fragment,{children:[(0,eJ.jsx)(Dx,(0,n4.Z)({ref:t,className:(0,n6.Z)(eP.root,h),ownerState:eR},er(en),{children:Y({id:ef,disabled:E,fullWidth:!0,size:"small"===ee?"small":void 0,InputLabelProps:eo(),InputProps:(0,n4.Z)({ref:ey,className:eP.inputRoot,startAdornment:a,onClick:e=>{e.target===e.currentTarget&&eO(e)}},(ew||eE)&&{endAdornment:(0,eJ.jsxs)(DI,{className:eP.endAdornment,ownerState:eR,children:[ew?(0,eJ.jsx)(Dk,(0,n4.Z)({},es(),{"aria-label":A,title:A,ownerState:eR},eL,{className:(0,n6.Z)(eP.clearIndicator,null==eL?void 0:eL.className),children:f})):null,eE?(0,eJ.jsx)(D_,(0,n4.Z)({},ea(),{disabled:E,"aria-label":em?b:V,title:em?b:V,ownerState:eR},eU,{className:(0,n6.Z)(eP.popupIndicator,null==eU?void 0:eU.className),children:Q})):null]})}),inputProps:(0,n4.Z)({className:eP.input,disabled:E,readOnly:q},ei())})})),eb?(0,eJ.jsx)(DR,(0,n4.Z)({as:W,disablePortal:C,style:{width:eb?eb.clientWidth:null},ownerState:eR,role:"presentation",anchorEl:eb,open:em},eF,{className:(0,n6.Z)(eP.popper,null==eF?void 0:eF.className),children:(0,eJ.jsxs)(DP,(0,n4.Z)({ownerState:eR,as:G},eB,{className:(0,n6.Z)(eP.paper,null==eB?void 0:eB.className),children:[U&&0===eS.length?(0,eJ.jsx)(DN,{className:eP.loading,ownerState:eR,children:j}):null,0!==eS.length||k||U?null:(0,eJ.jsx)(DD,{className:eP.noOptions,ownerState:eR,role:"presentation",onMouseDown:e=>{e.preventDefault()},children:H}),eS.length>0?(0,eJ.jsx)(DM,(0,n4.Z)({as:B,className:eP.listbox,ownerState:eR},eI,F,{ref:ek,children:eS.map((e,t)=>N?eN({key:e.key,group:e.group,children:e.options.map((t,n)=>eM(t,e.index+n))}):eM(e,t))})):null]}))})):null]})});function DU(e){for(var t=1;t=0)&&(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}}return i}(e,["key"]);return(0,eJ.jsxs)(rp,Dj(DU({component:"li",sx:{"& > img":{mr:2,flexShrink:0}}},r),{children:[(0,eJ.jsx)("img",{loading:"lazy",width:"20",srcSet:"https://flagcdn.com/w40/".concat(t.code.toLowerCase(),".png 2x"),src:"https://flagcdn.com/w20/".concat(t.code.toLowerCase(),".png"),alt:""}),t.label," (",t.code,") +",t.phone]}),n)},renderInput:function(e){return(0,eJ.jsx)(cZ,Dj(DU({},e),{label:r,inputProps:Dj(DU({},e.inputProps),{autoComplete:"off"}),error:i,helperText:o}))}})},DH=function(e){var t;return null!==(t=DZ.find(function(t){return t.label==e}))&&void 0!==t?t:{code:"",label:"",phone:""}},DZ=[{code:"AD",label:"Andorra",phone:"376"},{code:"AE",label:"United Arab Emirates",phone:"971"},{code:"AF",label:"Afghanistan",phone:"93"},{code:"AG",label:"Antigua and Barbuda",phone:"1-268"},{code:"AI",label:"Anguilla",phone:"1-264"},{code:"AL",label:"Albania",phone:"355"},{code:"AM",label:"Armenia",phone:"374"},{code:"AO",label:"Angola",phone:"244"},{code:"AQ",label:"Antarctica",phone:"672"},{code:"AR",label:"Argentina",phone:"54"},{code:"AS",label:"American Samoa",phone:"1-684"},{code:"AT",label:"Austria",phone:"43"},{code:"AU",label:"Australia",phone:"61",suggested:!0},{code:"AW",label:"Aruba",phone:"297"},{code:"AX",label:"Alland Islands",phone:"358"},{code:"AZ",label:"Azerbaijan",phone:"994"},{code:"BA",label:"Bosnia and Herzegovina",phone:"387"},{code:"BB",label:"Barbados",phone:"1-246"},{code:"BD",label:"Bangladesh",phone:"880"},{code:"BE",label:"Belgium",phone:"32"},{code:"BF",label:"Burkina Faso",phone:"226"},{code:"BG",label:"Bulgaria",phone:"359"},{code:"BH",label:"Bahrain",phone:"973"},{code:"BI",label:"Burundi",phone:"257"},{code:"BJ",label:"Benin",phone:"229"},{code:"BL",label:"Saint Barthelemy",phone:"590"},{code:"BM",label:"Bermuda",phone:"1-441"},{code:"BN",label:"Brunei Darussalam",phone:"673"},{code:"BO",label:"Bolivia",phone:"591"},{code:"BR",label:"Brazil",phone:"55"},{code:"BS",label:"Bahamas",phone:"1-242"},{code:"BT",label:"Bhutan",phone:"975"},{code:"BV",label:"Bouvet Island",phone:"47"},{code:"BW",label:"Botswana",phone:"267"},{code:"BY",label:"Belarus",phone:"375"},{code:"BZ",label:"Belize",phone:"501"},{code:"CA",label:"Canada",phone:"1",suggested:!0},{code:"CC",label:"Cocos (Keeling) Islands",phone:"61"},{code:"CD",label:"Congo, Democratic Republic of the",phone:"243"},{code:"CF",label:"Central African Republic",phone:"236"},{code:"CG",label:"Congo, Republic of the",phone:"242"},{code:"CH",label:"Switzerland",phone:"41"},{code:"CI",label:"Cote d'Ivoire",phone:"225"},{code:"CK",label:"Cook Islands",phone:"682"},{code:"CL",label:"Chile",phone:"56"},{code:"CM",label:"Cameroon",phone:"237"},{code:"CN",label:"China",phone:"86"},{code:"CO",label:"Colombia",phone:"57"},{code:"CR",label:"Costa Rica",phone:"506"},{code:"CU",label:"Cuba",phone:"53"},{code:"CV",label:"Cape Verde",phone:"238"},{code:"CW",label:"Curacao",phone:"599"},{code:"CX",label:"Christmas Island",phone:"61"},{code:"CY",label:"Cyprus",phone:"357"},{code:"CZ",label:"Czech Republic",phone:"420"},{code:"DE",label:"Germany",phone:"49",suggested:!0},{code:"DJ",label:"Djibouti",phone:"253"},{code:"DK",label:"Denmark",phone:"45"},{code:"DM",label:"Dominica",phone:"1-767"},{code:"DO",label:"Dominican Republic",phone:"1-809"},{code:"DZ",label:"Algeria",phone:"213"},{code:"EC",label:"Ecuador",phone:"593"},{code:"EE",label:"Estonia",phone:"372"},{code:"EG",label:"Egypt",phone:"20"},{code:"EH",label:"Western Sahara",phone:"212"},{code:"ER",label:"Eritrea",phone:"291"},{code:"ES",label:"Spain",phone:"34"},{code:"ET",label:"Ethiopia",phone:"251"},{code:"FI",label:"Finland",phone:"358"},{code:"FJ",label:"Fiji",phone:"679"},{code:"FK",label:"Falkland Islands (Malvinas)",phone:"500"},{code:"FM",label:"Micronesia, Federated States of",phone:"691"},{code:"FO",label:"Faroe Islands",phone:"298"},{code:"FR",label:"France",phone:"33",suggested:!0},{code:"GA",label:"Gabon",phone:"241"},{code:"GB",label:"United Kingdom",phone:"44"},{code:"GD",label:"Grenada",phone:"1-473"},{code:"GE",label:"Georgia",phone:"995"},{code:"GF",label:"French Guiana",phone:"594"},{code:"GG",label:"Guernsey",phone:"44"},{code:"GH",label:"Ghana",phone:"233"},{code:"GI",label:"Gibraltar",phone:"350"},{code:"GL",label:"Greenland",phone:"299"},{code:"GM",label:"Gambia",phone:"220"},{code:"GN",label:"Guinea",phone:"224"},{code:"GP",label:"Guadeloupe",phone:"590"},{code:"GQ",label:"Equatorial Guinea",phone:"240"},{code:"GR",label:"Greece",phone:"30"},{code:"GS",label:"South Georgia and the South Sandwich Islands",phone:"500"},{code:"GT",label:"Guatemala",phone:"502"},{code:"GU",label:"Guam",phone:"1-671"},{code:"GW",label:"Guinea-Bissau",phone:"245"},{code:"GY",label:"Guyana",phone:"592"},{code:"HK",label:"Hong Kong",phone:"852"},{code:"HM",label:"Heard Island and McDonald Islands",phone:"672"},{code:"HN",label:"Honduras",phone:"504"},{code:"HR",label:"Croatia",phone:"385"},{code:"HT",label:"Haiti",phone:"509"},{code:"HU",label:"Hungary",phone:"36"},{code:"ID",label:"Indonesia",phone:"62"},{code:"IE",label:"Ireland",phone:"353"},{code:"IL",label:"Israel",phone:"972"},{code:"IM",label:"Isle of Man",phone:"44"},{code:"IN",label:"India",phone:"91"},{code:"IO",label:"British Indian Ocean Territory",phone:"246"},{code:"IQ",label:"Iraq",phone:"964"},{code:"IR",label:"Iran, Islamic Republic of",phone:"98"},{code:"IS",label:"Iceland",phone:"354"},{code:"IT",label:"Italy",phone:"39"},{code:"JE",label:"Jersey",phone:"44"},{code:"JM",label:"Jamaica",phone:"1-876"},{code:"JO",label:"Jordan",phone:"962"},{code:"JP",label:"Japan",phone:"81",suggested:!0},{code:"KE",label:"Kenya",phone:"254"},{code:"KG",label:"Kyrgyzstan",phone:"996"},{code:"KH",label:"Cambodia",phone:"855"},{code:"KI",label:"Kiribati",phone:"686"},{code:"KM",label:"Comoros",phone:"269"},{code:"KN",label:"Saint Kitts and Nevis",phone:"1-869"},{code:"KP",label:"Korea, Democratic People's Republic of",phone:"850"},{code:"KR",label:"Korea, Republic of",phone:"82"},{code:"KW",label:"Kuwait",phone:"965"},{code:"KY",label:"Cayman Islands",phone:"1-345"},{code:"KZ",label:"Kazakhstan",phone:"7"},{code:"LA",label:"Lao People's Democratic Republic",phone:"856"},{code:"LB",label:"Lebanon",phone:"961"},{code:"LC",label:"Saint Lucia",phone:"1-758"},{code:"LI",label:"Liechtenstein",phone:"423"},{code:"LK",label:"Sri Lanka",phone:"94"},{code:"LR",label:"Liberia",phone:"231"},{code:"LS",label:"Lesotho",phone:"266"},{code:"LT",label:"Lithuania",phone:"370"},{code:"LU",label:"Luxembourg",phone:"352"},{code:"LV",label:"Latvia",phone:"371"},{code:"LY",label:"Libya",phone:"218"},{code:"MA",label:"Morocco",phone:"212"},{code:"MC",label:"Monaco",phone:"377"},{code:"MD",label:"Moldova, Republic of",phone:"373"},{code:"ME",label:"Montenegro",phone:"382"},{code:"MF",label:"Saint Martin (French part)",phone:"590"},{code:"MG",label:"Madagascar",phone:"261"},{code:"MH",label:"Marshall Islands",phone:"692"},{code:"MK",label:"Macedonia, the Former Yugoslav Republic of",phone:"389"},{code:"ML",label:"Mali",phone:"223"},{code:"MM",label:"Myanmar",phone:"95"},{code:"MN",label:"Mongolia",phone:"976"},{code:"MO",label:"Macao",phone:"853"},{code:"MP",label:"Northern Mariana Islands",phone:"1-670"},{code:"MQ",label:"Martinique",phone:"596"},{code:"MR",label:"Mauritania",phone:"222"},{code:"MS",label:"Montserrat",phone:"1-664"},{code:"MT",label:"Malta",phone:"356"},{code:"MU",label:"Mauritius",phone:"230"},{code:"MV",label:"Maldives",phone:"960"},{code:"MW",label:"Malawi",phone:"265"},{code:"MX",label:"Mexico",phone:"52"},{code:"MY",label:"Malaysia",phone:"60"},{code:"MZ",label:"Mozambique",phone:"258"},{code:"NA",label:"Namibia",phone:"264"},{code:"NC",label:"New Caledonia",phone:"687"},{code:"NE",label:"Niger",phone:"227"},{code:"NF",label:"Norfolk Island",phone:"672"},{code:"NG",label:"Nigeria",phone:"234"},{code:"NI",label:"Nicaragua",phone:"505"},{code:"NL",label:"Netherlands",phone:"31"},{code:"NO",label:"Norway",phone:"47"},{code:"NP",label:"Nepal",phone:"977"},{code:"NR",label:"Nauru",phone:"674"},{code:"NU",label:"Niue",phone:"683"},{code:"NZ",label:"New Zealand",phone:"64"},{code:"OM",label:"Oman",phone:"968"},{code:"PA",label:"Panama",phone:"507"},{code:"PE",label:"Peru",phone:"51"},{code:"PF",label:"French Polynesia",phone:"689"},{code:"PG",label:"Papua New Guinea",phone:"675"},{code:"PH",label:"Philippines",phone:"63"},{code:"PK",label:"Pakistan",phone:"92"},{code:"PL",label:"Poland",phone:"48"},{code:"PM",label:"Saint Pierre and Miquelon",phone:"508"},{code:"PN",label:"Pitcairn",phone:"870"},{code:"PR",label:"Puerto Rico",phone:"1"},{code:"PS",label:"Palestine, State of",phone:"970"},{code:"PT",label:"Portugal",phone:"351"},{code:"PW",label:"Palau",phone:"680"},{code:"PY",label:"Paraguay",phone:"595"},{code:"QA",label:"Qatar",phone:"974"},{code:"RE",label:"Reunion",phone:"262"},{code:"RO",label:"Romania",phone:"40"},{code:"RS",label:"Serbia",phone:"381"},{code:"RU",label:"Russian Federation",phone:"7"},{code:"RW",label:"Rwanda",phone:"250"},{code:"SA",label:"Saudi Arabia",phone:"966"},{code:"SB",label:"Solomon Islands",phone:"677"},{code:"SC",label:"Seychelles",phone:"248"},{code:"SD",label:"Sudan",phone:"249"},{code:"SE",label:"Sweden",phone:"46"},{code:"SG",label:"Singapore",phone:"65"},{code:"SH",label:"Saint Helena",phone:"290"},{code:"SI",label:"Slovenia",phone:"386"},{code:"SJ",label:"Svalbard and Jan Mayen",phone:"47"},{code:"SK",label:"Slovakia",phone:"421"},{code:"SL",label:"Sierra Leone",phone:"232"},{code:"SM",label:"San Marino",phone:"378"},{code:"SN",label:"Senegal",phone:"221"},{code:"SO",label:"Somalia",phone:"252"},{code:"SR",label:"Suriname",phone:"597"},{code:"SS",label:"South Sudan",phone:"211"},{code:"ST",label:"Sao Tome and Principe",phone:"239"},{code:"SV",label:"El Salvador",phone:"503"},{code:"SX",label:"Sint Maarten (Dutch part)",phone:"1-721"},{code:"SY",label:"Syrian Arab Republic",phone:"963"},{code:"SZ",label:"Swaziland",phone:"268"},{code:"TC",label:"Turks and Caicos Islands",phone:"1-649"},{code:"TD",label:"Chad",phone:"235"},{code:"TF",label:"French Southern Territories",phone:"262"},{code:"TG",label:"Togo",phone:"228"},{code:"TH",label:"Thailand",phone:"66"},{code:"TJ",label:"Tajikistan",phone:"992"},{code:"TK",label:"Tokelau",phone:"690"},{code:"TL",label:"Timor-Leste",phone:"670"},{code:"TM",label:"Turkmenistan",phone:"993"},{code:"TN",label:"Tunisia",phone:"216"},{code:"TO",label:"Tonga",phone:"676"},{code:"TR",label:"Turkey",phone:"90"},{code:"TT",label:"Trinidad and Tobago",phone:"1-868"},{code:"TV",label:"Tuvalu",phone:"688"},{code:"TW",label:"Taiwan",phone:"886"},{code:"TZ",label:"United Republic of Tanzania",phone:"255"},{code:"UA",label:"Ukraine",phone:"380"},{code:"UG",label:"Uganda",phone:"256"},{code:"US",label:"United States",phone:"1",suggested:!0},{code:"UY",label:"Uruguay",phone:"598"},{code:"UZ",label:"Uzbekistan",phone:"998"},{code:"VA",label:"Holy See (Vatican City State)",phone:"379"},{code:"VC",label:"Saint Vincent and the Grenadines",phone:"1-784"},{code:"VE",label:"Venezuela",phone:"58"},{code:"VG",label:"British Virgin Islands",phone:"1-284"},{code:"VI",label:"US Virgin Islands",phone:"1-340"},{code:"VN",label:"Vietnam",phone:"84"},{code:"VU",label:"Vanuatu",phone:"678"},{code:"WF",label:"Wallis and Futuna",phone:"681"},{code:"WS",label:"Samoa",phone:"685"},{code:"XK",label:"Kosovo",phone:"383"},{code:"YE",label:"Yemen",phone:"967"},{code:"YT",label:"Mayotte",phone:"262"},{code:"ZA",label:"South Africa",phone:"27"},{code:"ZM",label:"Zambia",phone:"260"},{code:"ZW",label:"Zimbabwe",phone:"263"}];function DV(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}}return i}(e,["label"]);var s=(t=sb(a),n=3,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(t,3)||function(e,t){if(e){if("string"==typeof e)return DV(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return DV(e,t)}}(t,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=s[0],u=s[1],c=s[2],p=u.error&&u.touched?u.error:"";return(0,eJ.jsx)(Dz,(r=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}}return i}(e,["label"]);var s=(t=sb(a),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(t,2)||function(e,t){if(e){if("string"==typeof e)return DW(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return DW(e,t)}}(t,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=s[0],u=s[1];return u.error&&u.touched&&u.error,(0,eJ.jsx)(Pg,{control:(0,eJ.jsx)(PD,(r=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]t.backdrop})({zIndex:-1}),D5=e=>{let{classes:t,scroll:n,maxWidth:r,fullWidth:i,fullScreen:o}=e,a={root:["root"],container:["container",`scroll${(0,rN.Z)(n)}`],paper:["paper",`paperScroll${(0,rN.Z)(n)}`,`paperWidth${(0,rN.Z)(String(r))}`,i&&"paperFullWidth",o&&"paperFullScreen"]};return(0,rd.Z)(a,D4,t)},D9=(0,rh.ZP)(uK,{name:"MuiDialog",slot:"Root",overridesResolver:(e,t)=>t.root})({"@media print":{position:"absolute !important"}}),Me=(0,rh.ZP)("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.container,t[`scroll${(0,rN.Z)(n.scroll)}`]]}})(({ownerState:e})=>(0,n4.Z)({height:"100%","@media print":{height:"auto"},outline:0},"paper"===e.scroll&&{display:"flex",justifyContent:"center",alignItems:"center"},"body"===e.scroll&&{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}})),Mt=(0,rh.ZP)(rw,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.paper,t[`scrollPaper${(0,rN.Z)(n.scroll)}`],t[`paperWidth${(0,rN.Z)(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(({theme:e,ownerState:t})=>(0,n4.Z)({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},"paper"===t.scroll&&{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},"body"===t.scroll&&{display:"inline-block",verticalAlign:"middle",textAlign:"left"},!t.maxWidth&&{maxWidth:"calc(100% - 64px)"},"xs"===t.maxWidth&&{maxWidth:"px"===e.breakpoints.unit?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${D3.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}},t.maxWidth&&"xs"!==t.maxWidth&&{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`,[`&.${D3.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[t.maxWidth]+64)]:{maxWidth:"calc(100% - 64px)"}}},t.fullWidth&&{width:"calc(100% - 64px)"},t.fullScreen&&{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${D3.paperScrollBody}`]:{margin:0,maxWidth:"100%"}})),Mn=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialog"}),r=um(),i={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{"aria-describedby":o,"aria-labelledby":a,BackdropComponent:s,BackdropProps:l,children:u,className:c,disableEscapeKeyDown:p=!1,fullScreen:d=!1,fullWidth:h=!1,maxWidth:f="sm",onBackdropClick:m,onClick:g,onClose:A,open:b,PaperComponent:y=rw,PaperProps:v={},scroll:S="paper",TransitionComponent:w=uR,transitionDuration:E=i,TransitionProps:O}=n,T=(0,n3.Z)(n,D7),C=(0,n4.Z)({},n,{disableEscapeKeyDown:p,fullScreen:d,fullWidth:h,maxWidth:f,scroll:S}),x=D5(C),I=e0.useRef(),k=(0,sT.Z)(a),_=e0.useMemo(()=>({titleId:k}),[k]);return(0,eJ.jsx)(D9,(0,n4.Z)({className:(0,n6.Z)(x.root,c),closeAfterTransition:!0,components:{Backdrop:D8},componentsProps:{backdrop:(0,n4.Z)({transitionDuration:E,as:s},l)},disableEscapeKeyDown:p,onClose:A,open:b,ref:t,onClick:e=>{if(g&&g(e),!!I.current)I.current=null,m&&m(e),A&&A(e,"backdropClick")},ownerState:C},T,{children:(0,eJ.jsx)(w,(0,n4.Z)({appear:!0,in:b,timeout:E,role:"presentation"},O,{children:(0,eJ.jsx)(Me,{className:(0,n6.Z)(x.container),onMouseDown:e=>{I.current=e.target===e.currentTarget},ownerState:C,children:(0,eJ.jsx)(Mt,(0,n4.Z)({as:y,elevation:24,role:"dialog","aria-describedby":o,"aria-labelledby":k},v,{className:(0,n6.Z)(x.paper,v.className),ownerState:C,children:(0,eJ.jsx)(D6.Provider,{value:_,children:u})}))})}))}))});function Mr(e){return(0,rA.ZP)("MuiDialogTitle",e)}let Mi=(0,rl.Z)("MuiDialogTitle",["root"]),Mo=["className","id"],Ma=e=>{let{classes:t}=e;return(0,rd.Z)({root:["root"]},Mr,t)},Ms=(0,rh.ZP)(rz,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:"16px 24px",flex:"0 0 auto"}),Ml=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialogTitle"}),{className:r,id:i}=n,o=(0,n3.Z)(n,Mo),a=Ma(n),{titleId:s=i}=e0.useContext(D6);return(0,eJ.jsx)(Ms,(0,n4.Z)({component:"h2",className:(0,n6.Z)(a.root,r),ownerState:n,ref:t,variant:"h6",id:null!=i?i:s},o))});function Mu(e){return(0,rA.ZP)("MuiDialogContent",e)}(0,rl.Z)("MuiDialogContent",["root","dividers"]);let Mc=["className","dividers"],Mp=e=>{let{classes:t,dividers:n}=e;return(0,rd.Z)({root:["root",n&&"dividers"]},Mu,t)},Md=(0,rh.ZP)("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(({theme:e,ownerState:t})=>(0,n4.Z)({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px"},t.dividers?{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}:{[`.${Mi.root} + &`]:{paddingTop:0}})),Mh=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialogContent"}),{className:r,dividers:i=!1}=n,o=(0,n3.Z)(n,Mc),a=(0,n4.Z)({},n,{dividers:i}),s=Mp(a);return(0,eJ.jsx)(Md,(0,n4.Z)({className:(0,n6.Z)(s.root,r),ownerState:a,ref:t},o))});function Mf(e){return(0,rA.ZP)("MuiDialogContentText",e)}(0,rl.Z)("MuiDialogContentText",["root"]);let Mm=["children","className"],Mg=e=>{let{classes:t}=e,n=(0,rd.Z)({root:["root"]},Mf,t);return(0,n4.Z)({},t,n)},MA=(0,rh.ZP)(rz,{shouldForwardProp:e=>(0,rZ.Z)(e)||"classes"===e,name:"MuiDialogContentText",slot:"Root",overridesResolver:(e,t)=>t.root})({}),Mb=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialogContentText"}),{className:r}=n,i=(0,n3.Z)(n,Mm),o=Mg(i);return(0,eJ.jsx)(MA,(0,n4.Z)({component:"p",variant:"body1",color:"text.secondary",ref:t,ownerState:i,className:(0,n6.Z)(o.root,r)},n,{classes:o}))});function My(e){return(0,rA.ZP)("MuiDialogActions",e)}(0,rl.Z)("MuiDialogActions",["root","spacing"]);let Mv=["className","disableSpacing"],MS=e=>{let{classes:t,disableSpacing:n}=e;return(0,rd.Z)({root:["root",!n&&"spacing"]},My,t)},Mw=(0,rh.ZP)("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})(({ownerState:e})=>(0,n4.Z)({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),ME=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialogActions"}),{className:r,disableSpacing:i=!1}=n,o=(0,n3.Z)(n,Mv),a=(0,n4.Z)({},n,{disableSpacing:i}),s=MS(a);return(0,eJ.jsx)(Mw,(0,n4.Z)({className:(0,n6.Z)(s.root,r),ownerState:a,ref:t},o))});function MO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1](function(e,t,n,r,i){let o=new Sn({next:s=>{o.Za(),t.enqueueAndForget(()=>vR(e,a));let l=s.docs.has(n);!l&&s.fromCache?i.reject(new gE(gw.UNAVAILABLE,"Failed to get document because the client is offline.")):l&&s.fromCache&&r&&"server"===r.source?i.reject(new gE(gw.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):i.resolve(s)},error:e=>i.reject(e)}),a=new vM(new AK(n.path),o,{includeMetadataChanges:!0,_a:!0});return v_(e,a)})(await Sl(e),e.asyncQueue,t,n,r)),r.promise})(Sw(t),e._key).then(n=>(function(e,t,n){let r=n.docs.get(t._key),i=new SJ(e);return new SY(e,i,t._key,r,new SK(n.hasPendingWrites,n.fromCache),t.converter)})(t,e,n))})(Sy(ED,"users",e)).then(function(e){return e.exists()?function(e){for(var t=1;tu(JSON.parse(c),{replace:n,state:r,relative:i}),[u,c,i,n,r]),null},{to:M_})},{path:"".concat(M_,"/login"),element:(0,eJ.jsx)(function(){OJ();var e,t,n,r=nS();var i=(e=(0,e0.useState)(),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(e,2)||function(e,t){if(e){if("string"==typeof e)return O1(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O1(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=i[0],a=i[1];(0,e0.useEffect)(function(){var e=mt(EN,function(e){e&&r("".concat(M_,"/releases"))});return function(){return e()}},[]),O4(function(){var e;return O3(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,mR(EN,EB)];case 1:return O$(t.sent().user.uid),r("".concat(M_,"/releases")),[3,3];case 2:if(console.log(e=t.sent()),"auth/account-exists-with-different-credential"===e.code)return a(fQ.credentialFromError(e)),e_("You already login using email and password, login with email and password to link github login"),r("".concat(M_,"/login")),[2];return e_("Error registering user"),[3,3];case 3:return[2]}})});var s=(n=O4(function(e){var t;return O3(this,function(n){switch(n.label){case 0:var i,a,s;return n.trys.push([0,4,,5]),[4,(i=EN,a=e.email,s=e.password,d3(i.app)?Promise.reject(hy(i)):f3(dS(i),fH.credential(a,s)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&f7(i),e}))];case 1:if(O$((t=n.sent()).user.uid),!o)return[3,3];return[4,f6(t.user,o)];case 2:n.sent(),n.label=3;case 3:return r("".concat(M_,"/releases")),[3,5];case 4:return console.log(n.sent()),e_("Invalid email or password"),[3,5];case 5:return[2]}})}),function(e){return n.apply(this,arguments)}),l=sf({initialValues:{email:"",password:""},validationSchema:pG().shape({email:p_().required(),password:p_().required()}),validateOnMount:!0,onSubmit:s}),u=l.handleSubmit;return(0,eJ.jsx)(sn,{value:l,children:(0,eJ.jsx)(rp,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"100vh"},children:(0,eJ.jsx)(rx,{sx:{minWidth:275,maxWidth:400,padding:2},children:(0,eJ.jsxs)(rP,{children:[(0,eJ.jsx)(rz,{variant:"h5",component:"div",gutterBottom:!0,children:"Login"}),(0,eJ.jsx)(cG,{name:"email",label:"Email",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"password",label:"Password",variant:"outlined",type:"password",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(iE,{variant:"contained",color:"primary",sx:{marginTop:2,display:"block",width:"100%"},onClick:u,children:"Sign In"}),(0,eJ.jsxs)(rz,{variant:"body2",align:"center",sx:{marginTop:2},children:["Forget your password?"," ",(0,eJ.jsx)(n$,{to:"".concat(M_,"/reset-password"),children:"Reset Password"})]}),(0,eJ.jsxs)(rz,{variant:"body2",align:"center",sx:{marginTop:2},children:["Don't have an account?"," ",(0,eJ.jsx)(n$,{to:"".concat(M_,"/register"),children:"Register"})]})]})})})})},{})},{path:"".concat(M_,"/register"),element:(0,eJ.jsx)(function(){OJ();var e,t,n=nS(),r=D$((0,e0.useState)(),2),i=(r[0],r[1]),o=D$((0,e0.useState)(),2),a=(o[0],o[1]),s=D$((0,e0.useState)(null),2),l=s[0],u=s[1];var c=(e=DJ(function(e){var t,r,i,o,a,s,l,u,c,p,d,h;return D0(this,function(f){switch(f.label){case 0:return f.trys.push([0,4,,5]),t=e.firstName,r=e.lastName,i=e.country,o=e.company,a=e.occupation,s=e.email,l=e.password,u=e.signMailingList,c=e.joinBetaTester,[4,f5(EN,s,l)];case 1:return O$((p=f.sent()).user.uid),[4,me(d=p.user,{displayName:"".concat(t," ").concat(r)})];case 2:return f.sent(),[4,S$(Sy(ED,"users",d.uid),{firstName:t,lastName:r,email:s,company:o,country:i,occupation:a,signMailingList:u,joinBetaTester:c})];case 3:return f.sent(),e_("User sucessfully created",{variant:"success"}),n("".concat(M_,"/releases")),[3,5];case 4:var m,g;if(m=h=f.sent(),null!=(g=dc)&&"undefined"!=typeof Symbol&&g[Symbol.hasInstance]?!!g[Symbol.hasInstance](m):m instanceof g)console.log("".concat(h.name,": ").concat(h.message)),"auth/email-already-in-use"===h.code?DK("Email is already in use!"):DK("Error registering user: ".concat(h.name,": ").concat(h.message));else console.log(h),DK("Error registering user: ".concat(h));return[3,5];case 5:return[2]}})}),function(t){return e.apply(this,arguments)});var p=sf({initialValues:P2,validationSchema:pG().shape({email:p_().required(),password:p_().required(),passwordConfirmation:p_().oneOf([new pl("password",void 0),null],"Passwords must match"),firstName:p_().required(),lastName:p_().required(),country:p_().required(),company:p_(),occupation:p_(),signMailingList:py(),joinBetaTester:py()}),validateOnMount:!0,onSubmit:c}),d=p.handleSubmit;return p.setFieldValue,DJ(function(){var e,t,r,o,s,l,u;return D0(this,function(c){switch(c.label){case 0:return c.trys.push([0,3,,4]),[4,mR(EN,EB)];case 1:return e=c.sent(),t=fQ.credentialFromResult(e),a(e.user),i(t),o=(r=e.user.displayName.split(" "))[0]||"",s=r.slice(1).join(" ")||"",l=e.user.email||"",[4,S$(Sy(ED,"users",e.user.uid),{firstName:o,lastName:s,email:l})];case 2:return c.sent(),n("".concat(M_,"/releases")),[3,4];case 3:if(console.log(u=c.sent()),"auth/account-exists-with-different-credential"===u.code)return i(fQ.credentialFromError(u)),e_("You already login using email and password, login with email and password to link github login"),n("".concat(M_,"/login")),[2];return e_("Error registering user"),[3,4];case 4:return[2]}})}),(0,eJ.jsx)(sn,{value:p,children:(0,eJ.jsx)(rp,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"100vh"},children:(0,eJ.jsx)(rx,{sx:{minWidth:275,maxWidth:400,padding:2},children:(0,eJ.jsxs)(rP,{children:[(0,eJ.jsx)(rz,{variant:"h5",component:"div",gutterBottom:!0,children:"Register"}),(0,eJ.jsx)(cG,{name:"firstName",label:"First Name",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"lastName",label:"Last Name",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(DG,{name:"country",label:"Country",variant:"outlined",fullWidth:!0,margin:"normal",initCountryLabelState:l,setInitCountryLabelState:u}),(0,eJ.jsx)(cG,{name:"occupation",label:"Occupation",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"company",label:"Company",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"email",label:"Email",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"password",label:"Password",variant:"outlined",type:"password",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"passwordConfirmation",label:"Confirm Password",variant:"outlined",type:"password",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(DQ,{name:"signMailingList",label:"Sign up for the OSC Mailing list",margin:"normal"}),(0,eJ.jsx)(DQ,{name:"joinBetaTester",label:"Accept to be contacted for beta testing Release Candidates and New Features",margin:"normal"}),(0,eJ.jsx)(iE,{variant:"contained",color:"primary",sx:{marginTop:2,display:"block",width:"100%"},onClick:d,children:"Register"}),(0,eJ.jsxs)(rz,{variant:"body2",align:"center",sx:{marginTop:2},children:["Have an account? ",(0,eJ.jsx)(n$,{to:"".concat(M_,"/login"),children:"Login"})]})]})})})})},{})},{path:"".concat(M_,"/reset-password"),element:(0,eJ.jsx)(function(){OJ();var e,t,n=nS();(0,e0.useEffect)(function(){var e=mt(EN,function(e){e&&n("".concat(M_,"/releases"))});return function(){return e()}},[]);var r=(t=(e=function(e){var t,n;return function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;--e)if(!SV(u,s[e])){let t=s[e],n=l[e];n=dS(n);let r=a.Nu(t);if(n instanceof SM)u.push(t);else{let e=SL(n,r);null!=e&&(u.push(t),c.set(t,e))}}return new S_(c,new g6(u),a.fieldTransforms)}(o,"updateDoc",e._key,t,void 0,r):function(e,t,n,r){let i=e.Qu(1,t,n);SU("Data must be an object, but it was:",i,r);let o=[],a=AO.empty();return gJ(r,(e,r)=>{let s=SH(t,e,n);r=dS(r);let l=i.Nu(s);if(r instanceof SM)o.push(s);else{let e=SL(r,l);null!=e&&(o.push(s),a.set(s,e))}}),new S_(a,new g6(o),i.fieldTransforms)}(o,"updateDoc",e._key,t)).toMutation(e._key,bw.exists(!0))])}(Sy(ED,"users",r.uid),{firstName:t,lastName:n,email:s,company:o,country:i,occupation:a,signMailingList:l,joinBetaTester:u})];case 2:return p.sent(),e_("User Profile Updated",{variant:"success"}),[3,4];case 3:return console.log(c=p.sent()),DK("Error Updating user profile: ".concat(c)),[3,4];case 4:return[2]}})}),function(t){return e.apply(this,arguments)}),d=Mx((0,e0.useState)(!1),2),h=d[0],f=d[1],m=function(){f(!1)};var g=(t=MC(function(){var e;return MI(this,function(t){switch(t.label){case 0:var i;if(e=!1,null!=r.metadata.lastSignInTime&&Date.now()-Date.parse(r.metadata.lastSignInTime)<=12e4&&(e=!0),!e)return DK("Cannot delete user profile because last sign in is too old. Sign out and in again please"),[2];return[4,S0(Sh((i=Sy(ED,"users",r.uid)).firestore,SS),[new bN(i._key,bw.none())])];case 1:return t.sent(),e_("User Information Deleted",{variant:"success"}),r.delete().then(function(){e_("User Deleted",{variant:"success"}),n(M_)}).catch(function(e){DK("Error Deleting user profile: ".concat(e))}),[2]}})}),function(){return t.apply(this,arguments)}),A=sf({initialValues:o,validationSchema:pG().shape({firstName:p_().required(),lastName:p_().required(),country:p_().required(),company:p_(),occupation:p_(),signMailingList:py(),joinBetaTester:py()}),validateOnMount:!0,onSubmit:p,enableReinitialize:!0}),b=A.handleSubmit;return A.setFieldValue,(0,eJ.jsxs)(eJ.Fragment,{children:[(0,eJ.jsx)(P0,{}),(0,eJ.jsx)(sn,{value:A,children:(0,eJ.jsx)(rp,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"100vh"},children:(0,eJ.jsx)(rx,{sx:{minWidth:275,maxWidth:400,padding:2},children:(0,eJ.jsxs)(rP,{children:[(0,eJ.jsx)(rz,{variant:"h5",component:"div",gutterBottom:!0,children:"Profile Information"}),(0,eJ.jsx)(cG,{name:"firstName",label:"First Name",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"lastName",label:"Last Name",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(DG,{name:"country",label:"Country",variant:"outlined",fullWidth:!0,margin:"normal",initCountryLabelState:l,setInitCountryLabelState:u}),(0,eJ.jsx)(cG,{name:"occupation",label:"Occupation",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"company",label:"Company",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"email",disabled:!0,label:"Email",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(DQ,{name:"signMailingList",label:"Sign up for the OSC Mailing list",margin:"normal"}),(0,eJ.jsx)(DQ,{name:"joinBetaTester",label:"Accept to be contacted for beta testing Release Candidates and New Features",margin:"normal"}),(0,eJ.jsx)(iE,{variant:"contained",color:"primary",sx:{marginTop:2,display:"block",width:"100%"},onClick:b,children:"Update Profile"}),(0,eJ.jsx)(iE,{variant:"contained",color:"error",sx:{marginTop:2,display:"block",width:"100%"},onClick:function(){f(!0)},children:"Delete My Account"}),(0,eJ.jsxs)(Mn,{open:h,onClose:m,"aria-labelledby":"delete-account-dialog-title","aria-describedby":"delete-account-dialog-description",children:[(0,eJ.jsx)(Ml,{id:"delete-account-dialog-title",children:"Delete your account?"}),(0,eJ.jsx)(Mh,{children:(0,eJ.jsx)(Mb,{id:"delete-account-dialog-description",children:"This is a destructive action, your account will not be recoverable."})}),(0,eJ.jsxs)(ME,{children:[(0,eJ.jsx)(iE,{onClick:m,autoFocus:!0,children:"Abort"}),(0,eJ.jsx)(iE,{onClick:g,color:"error",children:"Delete"})]})]})]})})})})]})},{})},{path:"".concat(M_),element:(0,eJ.jsx)(function(){OJ();var e,t,n=(e=(0,e0.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(e,2)||function(e,t){if(e){if("string"==typeof e)return O6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O6(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=n[0],i=n[1],o=nS();return((0,e0.useEffect)(function(){var e=mt(EN,function(e){e?(i(e),o("".concat(M_,"/releases"))):(i(null),o("".concat(M_,"/login")))});return function(){return e()}},[]),r)?(0,eJ.jsx)(eJ.Fragment,{children:(0,eJ.jsx)(nP,{})}):null},{}),children:[{path:"".concat(M_,"/releases"),element:(0,eJ.jsx)(function(){var e,t,n=(e=(0,e0.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(e,2)||function(e,t){if(e){if("string"==typeof e)return P1(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P1(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=n[0],i=n[1];return(0,eJ.jsxs)(eJ.Fragment,{children:[(0,eJ.jsx)(P0,{}),(0,eJ.jsx)(Pg,{label:"Display Pre-releases",control:(0,eJ.jsx)(PD,{checked:r,onChange:function(){i(!r)},inputProps:{"aria-label":"controlled"}})}),(0,eJ.jsx)(rp,{sx:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",minHeight:"100vh",p:5},children:(0,eJ.jsx)(Pz,{maxWidth:"md",children:(0,eJ.jsx)(Pu,{spacing:2,children:O7.map(function(e,t){return(0,eJ.jsx)(R$,{release:e,index:t,displayPreReleases:r},e.name)})})})})]})},{})}]}],(function(e){let t,n,r,i,o,a;let s=e.window?e.window:"undefined"!=typeof window?window:void 0,l=void 0!==s&&void 0!==s.document&&void 0!==s.document.createElement,u=!l;if(e7(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)t=e.mapRouteProperties;else if(e.detectErrorBoundary){let n=e.detectErrorBoundary;t=e=>({hasErrorBoundary:n(e)})}else t=tN;let c={},p=tr(e.routes,t,void 0,c),d=e.basename||"/",h=e.dataStrategy||tV,f=e.patchRoutesOnNavigation,m=e3({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),g=null,A=new Set,b=null,y=null,v=null,S=null!=e.hydrationData,w=ti(p,e.history.location,d),E=!1,O=null;if(null==w&&!f){let t=t4(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=t2(p);w=n,O={[r.id]:t}}if(w&&!e.hydrationData&&eS(w,p,e.history.location.pathname).active&&(w=null),w){if(w.some(e=>e.route.lazy))r=!1;else if(w.some(e=>e.route.loader)){if(m.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null;if(n){let e=w.findIndex(e=>void 0!==n[e.route.id]);r=w.slice(0,e+1).every(e=>!tU(e.route,t,n))}else r=w.every(e=>!tU(e.route,t,n))}else r=null!=e.hydrationData}else r=!0}else if(r=!1,w=[],m.v7_partialHydration){let t=eS(null,p,e.history.location.pathname);t.active&&t.matches&&(E=!0,w=t.matches)}let T={historyAction:e.history.action,location:e.history.location,matches:w,initialized:r,navigation:tk,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||O,fetchers:new Map,blockers:new Map},C=$.Pop,x=!1,I=!1,k=new Map,_=null,R=!1,P=!1,N=[],D=new Set,M=new Map,L=0,B=-1,F=new Map,U=new Set,j=new Map,z=new Map,H=new Set,Z=new Map,V=new Map;function G(e,t){void 0===t&&(t={}),T=e3({},T,e);let n=[],r=[];m.v7_fetcherPersist&&T.fetchers.forEach((e,t)=>{"idle"===e.state&&(H.has(t)?r.push(t):n.push(t))}),H.forEach(e=>{!T.fetchers.has(e)&&!M.has(e)&&r.push(e)}),[...A].forEach(e=>e(T,{deletedFetchers:r,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),m.v7_fetcherPersist?(n.forEach(e=>T.fetchers.delete(e)),r.forEach(e=>eu(e))):r.forEach(e=>H.delete(e))}function W(t,r,i){var o,a;let s,l;let{flushSync:u}=void 0===i?{}:i,c=null!=T.actionData&&null!=T.navigation.formMethod&&nt(T.navigation.formMethod)&&"loading"===T.navigation.state&&(null==(o=t.state)?void 0:o._isRedirect)!==!0;s=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:c?T.actionData:null;let d=r.loaderData?t$(T.loaderData,r.loaderData,r.matches||[],r.errors):T.loaderData,h=T.blockers;h.size>0&&(h=new Map(h)).forEach((e,t)=>h.set(t,tR));let f=!0===x||null!=T.navigation.formMethod&&nt(T.navigation.formMethod)&&(null==(a=t.state)?void 0:a._isRedirect)!==!0;if(n&&(p=n,n=void 0),R||C===$.Pop||(C===$.Push?e.history.push(t,t.state):C===$.Replace&&e.history.replace(t,t.state)),C===$.Pop){let e=k.get(T.location.pathname);e&&e.has(t.pathname)?l={currentLocation:T.location,nextLocation:t}:k.has(t.pathname)&&(l={currentLocation:t,nextLocation:T.location})}else if(I){let e=k.get(T.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),k.set(T.location.pathname,e)),l={currentLocation:T.location,nextLocation:t}}G(e3({},r,{actionData:s,loaderData:d,historyAction:C,location:t,initialized:!0,navigation:tk,revalidation:"idle",restoreScrollPosition:ev(t,r.matches||T.matches),preventScrollReset:f,blockers:h}),{viewTransitionOpts:l,flushSync:!0===u}),C=$.Pop,x=!1,I=!1,R=!1,P=!1,N=[]}async function Q(t,n){if("number"==typeof t){e.history.go(t);return}let r=tM(T.location,T.matches,d,m.v7_prependBasename,t,m.v7_relativeSplatPath,null==n?void 0:n.fromRouteId,null==n?void 0:n.relative),{path:i,submission:o,error:a}=tL(m.v7_normalizeFormMethod,!1,r,n),s=T.location,l=e9(T.location,i,n&&n.state);l=e3({},l,e.history.encodeLocation(l));let u=n&&null!=n.replace?n.replace:void 0,c=$.Push;!0===u?c=$.Replace:!1===u||null!=o&&nt(o.formMethod)&&o.formAction===T.location.pathname+T.location.search&&(c=$.Replace);let p=n&&"preventScrollReset"in n?!0===n.preventScrollReset:void 0,h=!0===(n&&n.flushSync),f=eg({currentLocation:s,nextLocation:l,historyAction:c});if(f){em(f,{state:"blocked",location:l,proceed(){em(f,{state:"proceeding",proceed:void 0,reset:void 0,location:l}),Q(t,n)},reset(){let e=new Map(T.blockers);e.set(f,tR),G({blockers:e})}});return}return await q(c,l,{submission:o,pendingError:a,preventScrollReset:p,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:h})}async function q(t,r,i){let a;o&&o.abort(),o=null,C=t,R=!0===(i&&i.startUninterruptedRevalidation),function(e,t){b&&v&&(b[ey(e,t)]=v())}(T.location,T.matches),x=!0===(i&&i.preventScrollReset),I=!0===(i&&i.enableViewTransition);let s=n||p,l=i&&i.overrideNavigation,u=null!=i&&i.initialHydration&&T.matches&&T.matches.length>0&&!E?T.matches:ti(s,r,d),c=!0===(i&&i.flushSync);if(u&&T.initialized&&!P&&function(e,t){if(e.pathname!==t.pathname||e.search!==t.search)return!1;if(""===e.hash)return""!==t.hash;if(e.hash===t.hash)return!0;if(""!==t.hash)return!0;return!1}(T.location,r)&&!(i&&i.submission&&nt(i.submission.formMethod))){W(r,{matches:u},{flushSync:c});return}let h=eS(u,s,r.pathname);if(h.active&&h.matches&&(u=h.matches),!u){let{error:e,notFoundMatches:t,route:n}=eA(r.pathname);W(r,{matches:t,loaderData:{},errors:{[n.id]:e}},{flushSync:c});return}o=new AbortController;let f=tK(e.history,r,o.signal,i&&i.submission);if(i&&i.pendingError)a=[t1(u).route.id,{type:ee.error,error:i.pendingError}];else if(i&&i.submission&&nt(i.submission.formMethod)){let t=await K(f,r,i.submission,u,h.active,{replace:i.replace,flushSync:c});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,n]=t.pendingActionResult;if(t8(n)&&tE(n.error)&&404===n.error.status){o=null,W(r,{matches:t.matches,loaderData:{},errors:{[e]:n.error}});return}}u=t.matches||u,a=t.pendingActionResult,l=nl(r,i.submission),c=!1,h.active=!1,f=tK(e.history,f.url,f.signal)}let{shortCircuited:m,matches:g,loaderData:A,errors:y}=await Y(f,r,u,h.active,l,i&&i.submission,i&&i.fetcherSubmission,i&&i.replace,i&&!0===i.initialHydration,c,a);if(!m)o=null,W(r,e3({matches:g||u},t0(a),{loaderData:A,errors:y}))}async function K(t,n,r,i,o,a){let s;if(void 0===a&&(a={}),eo(),G({navigation:function(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}(n,r)},{flushSync:!0===a.flushSync}),o){let e=await ew(i,n.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=t1(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:ee.error,error:e.error}]}}else if(e.matches)i=e.matches;else{let{notFoundMatches:e,error:t,route:r}=eA(n.pathname);return{matches:e,pendingActionResult:[r.id,{type:ee.error,error:t}]}}}let l=na(i,n);if(l.route.action||l.route.lazy){if(s=(await er("action",T,t,[l],i,null))[l.route.id],t.signal.aborted)return{shortCircuited:!0}}else s={type:ee.error,error:t4(405,{method:t.method,pathname:n.pathname,routeId:l.route.id})};if(t5(s)){let n;return n=a&&null!=a.replace?a.replace:tq(s.response.headers.get("Location"),new URL(t.url),d,e.history)===T.location.pathname+T.location.search,await en(t,s,!0,{submission:r,replace:n}),{shortCircuited:!0}}if(t7(s))throw t4(400,{type:"defer-action"});if(t8(s)){let e=t1(i,l.route.id);return!0!==(a&&a.replace)&&(C=$.Push),{matches:i,pendingActionResult:[e.route.id,s]}}return{matches:i,pendingActionResult:[l.route.id,s]}}async function Y(t,r,i,a,s,l,u,c,h,f,g){let A=s||nl(r,l),b=l||u||ns(A),y=!R&&(!m.v7_partialHydration||!h);if(a){if(y){let e=X(g);G(e3({navigation:A},void 0!==e?{actionData:e}:{}),{flushSync:f})}let e=await ew(i,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=t1(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}else if(e.matches)i=e.matches;else{let{error:e,notFoundMatches:t,route:n}=eA(r.pathname);return{matches:t,loaderData:{},errors:{[n.id]:e}}}}let v=n||p,[S,w]=tF(e.history,T,i,b,r,m.v7_partialHydration&&!0===h,m.v7_skipActionErrorRevalidation,P,N,D,H,j,U,v,d,g);if(eb(e=>!(i&&i.some(t=>t.route.id===e))||S&&S.some(t=>t.route.id===e)),B=++L,0===S.length&&0===w.length){let e=ed();return W(r,e3({matches:i,loaderData:{},errors:g&&t8(g[1])?{[g[0]]:g[1].error}:null},t0(g),e?{fetchers:new Map(T.fetchers)}:{}),{flushSync:f}),{shortCircuited:!0}}if(y){let e={};if(!a){e.navigation=A;let t=X(g);void 0!==t&&(e.actionData=t)}w.length>0&&(e.fetchers=function(e){return e.forEach(e=>{let t=T.fetchers.get(e.key),n=nu(void 0,t?t.data:void 0);T.fetchers.set(e.key,n)}),new Map(T.fetchers)}(w)),G(e,{flushSync:f})}w.forEach(e=>{ec(e.key),e.controller&&M.set(e.key,e.controller)});let E=()=>w.forEach(e=>ec(e.key));o&&o.signal.addEventListener("abort",E);let{loaderResults:O,fetcherResults:C}=await ei(T,i,S,w,t);if(t.signal.aborted)return{shortCircuited:!0};o&&o.signal.removeEventListener("abort",E),w.forEach(e=>M.delete(e.key));let x=t3(O);if(x)return await en(t,x.result,!0,{replace:c}),{shortCircuited:!0};if(x=t3(C))return U.add(x.key),await en(t,x.result,!0,{replace:c}),{shortCircuited:!0};let{loaderData:I,errors:k}=tJ(T,i,O,g,w,C,Z);Z.forEach((e,t)=>{e.subscribe(n=>{(n||e.done)&&Z.delete(t)})}),m.v7_partialHydration&&h&&T.errors&&(k=e3({},T.errors,k));let _=ed(),F=eh(B),z=_||F||w.length>0;return e3({matches:i,loaderData:I,errors:k},z?{fetchers:new Map(T.fetchers)}:{})}function X(e){if(e&&!t8(e[1]))return{[e[0]]:e[1].data};if(T.actionData)return 0===Object.keys(T.actionData).length?null:T.actionData}async function J(t,r,i,a,s,l,u,c,h){function f(e){if(!e.route.action&&!e.route.lazy){let e=t4(405,{method:h.formMethod,pathname:i,routeId:r});return es(t,r,e,{flushSync:u}),!0}return!1}if(eo(),j.delete(t),!l&&f(a))return;let g=T.fetchers.get(t);ea(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(h,g),{flushSync:u});let A=new AbortController,b=tK(e.history,i,A.signal,h);if(l){let e=await ew(s,new URL(b.url).pathname,b.signal,t);if("aborted"===e.type)return;if("error"===e.type){es(t,r,e.error,{flushSync:u});return}else if(e.matches){if(f(a=na(s=e.matches,i)))return}else{es(t,r,t4(404,{pathname:i}),{flushSync:u});return}}M.set(t,A);let y=L,v=(await er("action",T,b,[a],s,t))[a.route.id];if(b.signal.aborted){M.get(t)===A&&M.delete(t);return}if(m.v7_fetcherPersist&&H.has(t)){if(t5(v)||t8(v)){ea(t,nc(void 0));return}}else{if(t5(v)){if(M.delete(t),!(B>y))return U.add(t),ea(t,nu(h)),en(b,v,!1,{fetcherSubmission:h,preventScrollReset:c});ea(t,nc(void 0));return}if(t8(v)){es(t,r,v.error);return}}if(t7(v))throw t4(400,{type:"defer-action"});let S=T.navigation.location||T.location,w=tK(e.history,S,A.signal),E=n||p,O="idle"!==T.navigation.state?ti(E,T.navigation.location,d):T.matches;e7(O,"Didn't find any matches after fetcher action");let x=++L;F.set(t,x);let I=nu(h,v.data);T.fetchers.set(t,I);let[k,_]=tF(e.history,T,O,h,S,!1,m.v7_skipActionErrorRevalidation,P,N,D,H,j,U,E,d,[a.route.id,v]);_.filter(e=>e.key!==t).forEach(e=>{let t=e.key,n=T.fetchers.get(t),r=nu(void 0,n?n.data:void 0);T.fetchers.set(t,r),ec(t),e.controller&&M.set(t,e.controller)}),G({fetchers:new Map(T.fetchers)});let R=()=>_.forEach(e=>ec(e.key));A.signal.addEventListener("abort",R);let{loaderResults:z,fetcherResults:V}=await ei(T,O,k,_,w);if(A.signal.aborted)return;A.signal.removeEventListener("abort",R),F.delete(t),M.delete(t),_.forEach(e=>M.delete(e.key));let Q=t3(z);if(Q)return en(w,Q.result,!1,{preventScrollReset:c});if(Q=t3(V))return U.add(Q.key),en(w,Q.result,!1,{preventScrollReset:c});let{loaderData:q,errors:K}=tJ(T,O,z,void 0,_,V,Z);if(T.fetchers.has(t)){let e=nc(v.data);T.fetchers.set(t,e)}eh(x),"loading"===T.navigation.state&&x>B?(e7(C,"Expected pending action"),o&&o.abort(),W(T.navigation.location,{matches:O,loaderData:q,errors:K,fetchers:new Map(T.fetchers)})):(G({errors:K,loaderData:t$(T.loaderData,q,O,K),fetchers:new Map(T.fetchers)}),P=!1)}async function et(t,n,r,i,o,a,s,l,u){let c=T.fetchers.get(t);ea(t,nu(u,c?c.data:void 0),{flushSync:s});let p=new AbortController,d=tK(e.history,r,p.signal);if(a){let e=await ew(o,new URL(d.url).pathname,d.signal,t);if("aborted"===e.type)return;if("error"===e.type){es(t,n,e.error,{flushSync:s});return}else if(e.matches)i=na(o=e.matches,r);else{es(t,n,t4(404,{pathname:r}),{flushSync:s});return}}M.set(t,p);let h=L,f=(await er("loader",T,d,[i],o,t))[i.route.id];if(t7(f)&&(f=await ni(f,d.signal,!0)||f),M.get(t)===p&&M.delete(t),!d.signal.aborted){if(H.has(t)){ea(t,nc(void 0));return}if(t5(f)){if(B>h){ea(t,nc(void 0));return}U.add(t),await en(d,f,!1,{preventScrollReset:l});return}if(t8(f)){es(t,n,f.error);return}e7(!t7(f),"Unhandled fetcher deferred data"),ea(t,nc(f.data))}}async function en(t,n,r,i){let{submission:a,fetcherSubmission:u,preventScrollReset:c,replace:p}=void 0===i?{}:i;n.response.headers.has("X-Remix-Revalidate")&&(P=!0);let h=n.response.headers.get("Location");e7(h,"Expected a Location header on the redirect Response"),h=tq(h,new URL(t.url),d,e.history);let f=e9(T.location,h,{_isRedirect:!0});if(l){let t=!1;if(n.response.headers.has("X-Remix-Reload-Document"))t=!0;else if(tP.test(h)){let n=e.history.createURL(h);t=n.origin!==s.location.origin||null==tu(n.pathname,d)}if(t){p?s.location.replace(h):s.location.assign(h);return}}o=null;let m=!0===p||n.response.headers.has("X-Remix-Replace")?$.Replace:$.Push,{formMethod:g,formAction:A,formEncType:b}=T.navigation;!a&&!u&&g&&A&&b&&(a=ns(T.navigation));let y=a||u;if(tI.has(n.response.status)&&y&&nt(y.formMethod))await q(m,f,{submission:e3({},y,{formAction:h}),preventScrollReset:c||x,enableViewTransition:r?I:void 0});else{let e=nl(f,a);await q(m,f,{overrideNavigation:e,fetcherSubmission:u,preventScrollReset:c||x,enableViewTransition:r?I:void 0})}}async function er(e,n,r,i,o,a){let s;let l={};try{s=await tG(h,e,n,r,i,o,a,c,t)}catch(e){return i.forEach(t=>{l[t.route.id]={type:ee.error,error:e}}),l}for(let[e,t]of Object.entries(s))if(function(e){return ne(e.result)&&tx.has(e.result.status)}(t)){let n=t.result;l[e]={type:ee.redirect,response:function(e,t,n,r,i,o){let a=e.headers.get("Location");if(e7(a,"Redirects returned/thrown from loaders/actions must have a Location header"),!tP.test(a)){let s=r.slice(0,r.findIndex(e=>e.route.id===n)+1);a=tM(new URL(t.url),s,i,!0,a,o),e.headers.set("Location",a)}return e}(n,r,e,o,d,m.v7_relativeSplatPath)}}else l[e]=await tQ(t);return l}async function ei(t,n,r,i,o){let a=t.matches,s=er("loader",t,o,r,n,null),l=Promise.all(i.map(async n=>{if(!n.matches||!n.match||!n.controller)return Promise.resolve({[n.key]:{type:ee.error,error:t4(404,{pathname:n.path})}});{let r=(await er("loader",t,tK(e.history,n.path,n.controller.signal),[n.match],n.matches,n.key))[n.match.route.id];return{[n.key]:r}}})),u=await s,c=(await l).reduce((e,t)=>Object.assign(e,t),{});return await Promise.all([nn(n,u,o.signal,a,t.loaderData),nr(n,c,i)]),{loaderResults:u,fetcherResults:c}}function eo(){P=!0,N.push(...eb()),j.forEach((e,t)=>{M.has(t)&&D.add(t),ec(t)})}function ea(e,t,n){void 0===n&&(n={}),T.fetchers.set(e,t),G({fetchers:new Map(T.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function es(e,t,n,r){void 0===r&&(r={});let i=t1(T.matches,t);eu(e),G({errors:{[i.route.id]:n},fetchers:new Map(T.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function el(e){return z.set(e,(z.get(e)||0)+1),H.has(e)&&H.delete(e),T.fetchers.get(e)||t_}function eu(e){let t=T.fetchers.get(e);M.has(e)&&!(t&&"loading"===t.state&&F.has(e))&&ec(e),j.delete(e),F.delete(e),U.delete(e),m.v7_fetcherPersist&&H.delete(e),D.delete(e),T.fetchers.delete(e)}function ec(e){let t=M.get(e);t&&(t.abort(),M.delete(e))}function ep(e){for(let t of e){let e=nc(el(t).data);T.fetchers.set(t,e)}}function ed(){let e=[],t=!1;for(let n of U){let r=T.fetchers.get(n);e7(r,"Expected fetcher: "+n),"loading"===r.state&&(U.delete(n),e.push(n),t=!0)}return ep(e),t}function eh(e){let t=[];for(let[n,r]of F)if(r0}function ef(e){T.blockers.delete(e),V.delete(e)}function em(e,t){let n=T.blockers.get(e)||tR;e7("unblocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"proceeding"===t.state||"blocked"===n.state&&"unblocked"===t.state||"proceeding"===n.state&&"unblocked"===t.state,"Invalid blocker state transition: "+n.state+" -> "+t.state);let r=new Map(T.blockers);r.set(e,t),G({blockers:r})}function eg(e){let{currentLocation:t,nextLocation:n,historyAction:r}=e;if(0===V.size)return;V.size>1&&e8(!1,"A router only supports one blocker at a time");let i=Array.from(V.entries()),[o,a]=i[i.length-1],s=T.blockers.get(o);if(!s||"proceeding"!==s.state){if(a({currentLocation:t,nextLocation:n,historyAction:r}))return o}}function eA(e){let t=t4(404,{pathname:e}),{matches:r,route:i}=t2(n||p);return eb(),{notFoundMatches:r,route:i,error:t}}function eb(e){let t=[];return Z.forEach((n,r)=>{(!e||e(r))&&(n.cancel(),t.push(r),Z.delete(r))}),t}function ey(e,t){return y&&y(e,t.map(e=>(function(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],handle:n.handle}})(e,T.loaderData)))||e.key}function ev(e,t){if(b){let n=b[ey(e,t)];if("number"==typeof n)return n}return null}function eS(e,t,n){if(f){if(!e)return{active:!0,matches:to(t,n,d,!0)||[]};if(Object.keys(e[0].params).length>0)return{active:!0,matches:to(t,n,d,!0)}}return{active:!1,matches:null}}async function ew(e,r,i,o){if(!f)return{type:"success",matches:e};let a=e;for(;;){let e=null==n,s=n||p,l=c;try{await f({signal:i,path:r,matches:a,fetcherKey:o,patch:(e,n)=>{!i.aborted&&tH(e,n,s,l,t)}})}catch(e){return{type:"error",error:e,partialMatches:a}}finally{e&&!i.aborted&&(p=[...p])}if(i.aborted)return{type:"aborted"};let u=ti(s,r,d);if(u)return{type:"success",matches:u};let h=to(s,r,d,!0);if(!h||a.length===h.length&&a.every((e,t)=>e.route.id===h[t].route.id))return{type:"success",matches:null};a=h}}return i={get basename(){return d},get future(){return m},get state(){return T},get routes(){return p},get window(){return s},initialize:function(){if(g=e.history.listen(t=>{let{action:n,location:r,delta:i}=t;if(a){a(),a=void 0;return}e8(0===V.size||null!=i,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let o=eg({currentLocation:T.location,nextLocation:r,historyAction:n});if(o&&null!=i){let t=new Promise(e=>{a=e});e.history.go(-1*i),em(o,{state:"blocked",location:r,proceed(){em(o,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),t.then(()=>e.history.go(i))},reset(){let e=new Map(T.blockers);e.set(o,tR),G({blockers:e})}});return}return q(n,r)}),l){(function(e,t){try{let n=e.sessionStorage.getItem(tD);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch(e){}})(s,k);let e=()=>(function(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(tD,JSON.stringify(n))}catch(e){e8(!1,"Failed to save applied view transitions in sessionStorage ("+e+").")}}})(s,k);s.addEventListener("pagehide",e),_=()=>s.removeEventListener("pagehide",e)}return!T.initialized&&q($.Pop,T.location,{initialHydration:!0}),i},subscribe:function(e){return A.add(e),()=>A.delete(e)},enableScrollRestoration:function(e,t,n){if(b=e,v=t,y=n||null,!S&&T.navigation===tk){S=!0;let e=ev(T.location,T.matches);null!=e&&G({restoreScrollPosition:e})}return()=>{b=null,v=null,y=null}},navigate:Q,fetch:function(e,t,r,i){if(u)throw Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");ec(e);let o=!0===(i&&i.flushSync),a=n||p,s=tM(T.location,T.matches,d,m.v7_prependBasename,r,m.v7_relativeSplatPath,t,null==i?void 0:i.relative),l=ti(a,s,d),c=eS(l,a,s);if(c.active&&c.matches&&(l=c.matches),!l){es(e,t,t4(404,{pathname:s}),{flushSync:o});return}let{path:h,submission:f,error:g}=tL(m.v7_normalizeFormMethod,!0,s,i);if(g){es(e,t,g,{flushSync:o});return}let A=na(l,h),b=!0===(i&&i.preventScrollReset);if(f&&nt(f.formMethod)){J(e,t,h,A,l,c.active,o,b,f);return}j.set(e,{routeId:t,path:h}),et(e,t,h,A,l,c.active,o,b,f)},revalidate:function(){if(eo(),G({revalidation:"loading"}),"submitting"!==T.navigation.state){if("idle"===T.navigation.state){q(T.historyAction,T.location,{startUninterruptedRevalidation:!0});return}q(C||T.historyAction,T.navigation.location,{overrideNavigation:T.navigation,enableViewTransition:!0===I})}},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:el,deleteFetcher:function(e){let t=(z.get(e)||0)-1;t<=0?(z.delete(e),H.add(e),!m.v7_fetcherPersist&&eu(e)):z.set(e,t),G({fetchers:new Map(T.fetchers)})},dispose:function(){g&&g(),_&&_(),A.clear(),o&&o.abort(),T.fetchers.forEach((e,t)=>eu(t)),T.blockers.forEach((e,t)=>ef(t))},getBlocker:function(e,t){let n=T.blockers.get(e)||tR;return V.get(e)!==t&&V.set(e,t),n},deleteBlocker:ef,patchRoutes:function(e,r){let i=null==n;tH(e,r,n||p,c,t),i&&(p=[...p],G({}))},_internalFetchControllers:M,_internalActiveDeferreds:Z,_internalSetRoutes:function(e){n=tr(e,t,void 0,c={})}}})({basename:void 0,future:nL({},null==X?void 0:X.future,{v7_prependBasename:!0}),history:(J={window:null==X?void 0:X.window},function(e,t,n,r){void 0===r&&(r={});let{window:i=document.defaultView,v5Compat:o=!1}=r,a=i.history,s=$.Pop,l=null,u=c();function c(){return(a.state||{idx:null}).idx}function p(){s=$.Pop;let e=c(),t=null==e?null:e-u;u=e,l&&l({action:s,location:h.location,delta:t})}null==u&&(u=0,a.replaceState(e3({},a.state,{idx:u}),""));function d(e){let t="null"!==i.location.origin?i.location.origin:i.location.href,n="string"==typeof e?e:te(e);return e7(t,"No window.location.(origin|href) available to create URL for href: "+(n=n.replace(/ $/,"%20"))),new URL(n,t)}let h={get action(){return s},get location(){return e(i,a)},listen(e){if(l)throw Error("A history only accepts one active listener");return i.addEventListener(e6,p),l=e,()=>{i.removeEventListener(e6,p),l=null}},createHref:e=>t(i,e),createURL:d,encodeLocation(e){let t=d(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s=$.Push;let r=e9(h.location,e,t);n&&n(r,e);let p=e5(r,u=c()+1),d=h.createHref(r);try{a.pushState(p,"",d)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;i.location.assign(d)}o&&l&&l({action:s,location:h.location,delta:1})},replace:function(e,t){s=$.Replace;let r=e9(h.location,e,t);n&&n(r,e);let i=e5(r,u=c()),p=h.createHref(r);a.replaceState(i,"",p),o&&l&&l({action:s,location:h.location,delta:0})},go:e=>a.go(e)};return h}(function(e,t){let{pathname:n="/",search:r="",hash:i=""}=tt(e.location.hash.substr(1));return!n.startsWith("/")&&!n.startsWith(".")&&(n="/"+n),e9("",{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let n=e.document.querySelector("base"),r="";if(n&&n.getAttribute("href")){let t=e.location.href,n=t.indexOf("#");r=-1===n?t:t.slice(0,n)}return r+"#"+("string"==typeof t?t:te(t))},function(e,t){e8("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")},J)),hydrationData:(null==X?void 0:X.hydrationData)||function(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=nL({},t,{errors:function(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)n[e]=new tw(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let i=new t(r.message);i.stack="",n[e]=i}catch(e){}}if(null==n[e]){let t=Error(r.message);t.stack="",n[e]=t}}else n[e]=r;return n}(t.errors)})),t}(),routes:Y,mapRouteProperties:nM,dataStrategy:null==X?void 0:X.dataStrategy,patchRoutesOnNavigation:null==X?void 0:X.patchRoutesOnNavigation,window:null==X?void 0:X.window}).initialize());let MP=(e,t)=>(0,n4.Z)({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},t&&!e.vars&&{colorScheme:e.palette.mode}),MN=e=>(0,n4.Z)({color:(e.vars||e).palette.text.primary},e.typography.body1,{backgroundColor:(e.vars||e).palette.background.default,"@media print":{backgroundColor:(e.vars||e).palette.common.white}}),MD=(e,t=!1)=>{var n;let r={};t&&e.colorSchemes&&Object.entries(e.colorSchemes).forEach(([t,n])=>{var i;r[e.getColorSchemeSelector(t).replace(/\s*&/,"")]={colorScheme:null==(i=n.palette)?void 0:i.mode}});let i=(0,n4.Z)({html:MP(e,t),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:e.typography.fontWeightBold},body:(0,n4.Z)({margin:0},MN(e),{"&::backdrop":{backgroundColor:(e.vars||e).palette.background.default}})},r),o=null==(n=e.components)||null==(n=n.MuiCssBaseline)?void 0:n.styleOverrides;return o&&(i=[i,o]),i},MM=function(e){let{children:t,enableColorScheme:n=!1}=(0,rf.i)({props:e,name:"MuiCssBaseline"});return(0,eJ.jsxs)(e0.Fragment,{children:[(0,eJ.jsx)(sQ,{styles:e=>MD(e,n)}),t]})},ML=e0.createContext(null);function MB(){let e=e0.useContext(ML);return e}let MF="function"==typeof Symbol&&Symbol.for?Symbol.for("mui.nested"):"__THEME_NESTED__",MU=function(e){let{children:t,theme:n}=e,r=MB(),i=e0.useMemo(()=>{let e=null===r?n:function(e,t){if("function"==typeof t){let n=t(e);return n}return(0,n4.Z)({},e,t)}(r,n);return null!=e&&(e[MF]=null!==r),e},[n,r]);return(0,eJ.jsx)(ML.Provider,{value:i,children:t})};var Mj=n("32842");let Mz={};function MH(e,t,n,r=!1){return e0.useMemo(()=>{let i=e&&t[e]||t;if("function"==typeof n){let o=n(i),a=e?(0,n4.Z)({},t,{[e]:o}):o;return r?()=>a:a}return e?(0,n4.Z)({},t,{[e]:n}):(0,n4.Z)({},t,n)},[e,t,n,r])}let MZ=function(e){let{children:t,theme:n,themeId:r}=e,i=rt(Mz),o=MB()||Mz,a=MH(r,i,n),s=MH(r,o,n,!0),l="rtl"===a.direction,u=function(e){let t=rt(),n=(0,sT.Z)()||"",{modularCssLayers:r}=e,i="mui.global, mui.components, mui.theme, mui.custom, mui.sx";return(i=r&&null===t?"string"==typeof r?r.replace(/mui(?!\.)/g,i):`@layer ${i};`:"",(0,sP.Z)(()=>{var e,t;let r=document.querySelector("head");if(!r)return;let o=r.firstChild;if(i){if(o&&null!=(e=o.hasAttribute)&&e.call(o,"data-mui-layer-order")&&o.getAttribute("data-mui-layer-order")===n)return;let t=document.createElement("style");t.setAttribute("data-mui-layer-order",n),t.textContent=i,r.prepend(t)}else null==(t=r.querySelector(`style[data-mui-layer-order="${n}"]`))||t.remove()},[i,n]),i)?(0,eJ.jsx)(sG,{styles:i}):null}(a);return(0,eJ.jsx)(MU,{theme:s,children:(0,eJ.jsx)(re.T.Provider,{value:a,children:(0,eJ.jsx)(lY,{value:l,children:(0,eJ.jsxs)(Mj.Z,{value:null==a?void 0:a.components,children:[u,t]})})})})},MV=["theme"];function MG(e){let{theme:t}=e,n=(0,n3.Z)(e,MV),r=t[rs.Z],i=r||t;return"function"!=typeof t&&(r&&!r.vars?i=(0,n4.Z)({},r,{vars:null}):t&&!t.vars&&(i=(0,n4.Z)({},t,{vars:null}))),(0,eJ.jsx)(MZ,(0,n4.Z)({},n,{themeId:r?rs.Z:void 0,theme:i}))}var MW=(0,ra.Z)(),MQ={GA_ID:void 0};MQ.GA_ID&&OY.default.initialize(MQ.GA_ID);var Mq=document.getElementById("root"),MK=(0,e$.createRoot)(Mq);MK&&MK.render((0,eJ.jsx)(function(e){var t=e.children;return(0,eJ.jsxs)(MG,{theme:MW,children:[(0,eJ.jsx)(MM,{}),(0,eJ.jsx)(OK,{children:t})]})},{children:(0,eJ.jsx)(function(){return(0,eJ.jsx)(eJ.Fragment,{children:(0,eJ.jsx)(nK,{router:MR})})},{})}))},95297:function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t=o&&(!n||g))r=b(e,0,o);else{var A=n&&!g&&v?{maxByteLength:f(o,v(e))}:void 0;r=new d(o,A);for(var E=new h(e),O=new h(r),T=m(o,i),C=0;C>8&255]},q=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},K=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Y=function(e){return V(m(e),23,4)},X=function(e){return V(e,52,8)},J=function(e,t,n){u(e[k],t,{configurable:!0,get:function(){return n(this)[t]}})},$=function(e,t,n,r){var i=P(e),o=f(n);if(o+t>i.byteLength)throw new z(_);var a=i.bytes,s=o+i.byteOffset,l=v(a,s,s+t);return r?l:Z(l)},ee=function(e,t,n,r,i,o){var a=P(e),s=f(n),l=r(+i),u=!!o;if(s+t>a.byteLength)throw new z(_);for(var c=a.bytes,p=s+a.byteOffset,d=0;d>24)},setUint8:function(e,t){er(this,e,t<<24>>24)}},{unsafe:!0})}else L=(M=function(e){d(this,L);var t=f(e);N(this,{type:x,bytes:H(j(t),0),byteLength:t}),!o&&(this.byteLength=t,this.detached=!1)})[k],F=(B=function(e,t,n){d(this,F),d(e,L);var r=R(e),i=r.byteLength,a=h(t);if(a<0||a>i)throw new z("Wrong offset");if(n=void 0===n?i-a:f(n),a+n>i)throw new z("Wrong length");N(this,{type:I,buffer:e,byteLength:n,byteOffset:a,bytes:r.bytes}),!o&&(this.buffer=e,this.byteLength=n,this.byteOffset=a)})[k],o&&(J(M,"byteLength",R),J(B,"buffer",P),J(B,"byteLength",P),J(B,"byteOffset",P)),c(F,{getInt8:function(e){return $(this,1,e)[0]<<24>>24},getUint8:function(e){return $(this,1,e)[0]},getInt16:function(e){var t=$(this,2,e,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=$(this,2,e,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return K($(this,4,e,arguments.length>1&&arguments[1]))},getUint32:function(e){return K($(this,4,e,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(e){return G($(this,4,e,arguments.length>1&&arguments[1]),23)},getFloat64:function(e){return G($(this,8,e,arguments.length>1&&arguments[1]),52)},setInt8:function(e,t){ee(this,1,e,W,t)},setUint8:function(e,t){ee(this,1,e,W,t)},setInt16:function(e,t){ee(this,2,e,Q,t,arguments.length>2&&arguments[2])},setUint16:function(e,t){ee(this,2,e,Q,t,arguments.length>2&&arguments[2])},setInt32:function(e,t){ee(this,4,e,q,t,arguments.length>2&&arguments[2])},setUint32:function(e,t){ee(this,4,e,q,t,arguments.length>2&&arguments[2])},setFloat32:function(e,t){ee(this,4,e,Y,t,arguments.length>2&&arguments[2])},setFloat64:function(e,t){ee(this,8,e,X,t,arguments.length>2&&arguments[2])}});E(M,x),E(B,I),e.exports={ArrayBuffer:M,DataView:B}},16220:function(e,t,n){"use strict";var r=n(87670),i=n(77732),o=n(80555),a=n(90533),s=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),l=o(n),u=i(e,l),c=i(t,l),p=arguments.length>2?arguments[2]:void 0,d=s((void 0===p?l:i(p,l))-c,l-u),h=1;for(c0;)c in n?n[u]=n[c]:a(n,u),u+=h,c+=h;return n}},12298:function(e,t,n){"use strict";var r=n(87670),i=n(77732),o=n(80555);e.exports=function(e){for(var t=r(this),n=o(t),a=arguments.length,s=i(a>1?arguments[1]:void 0,n),l=a>2?arguments[2]:void 0,u=void 0===l?n:i(l,n);u>s;)t[s++]=e;return t}},36751:function(e,t,n){"use strict";var r=n(15368).forEach,i=n(88486)("forEach");e.exports=i?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},76093:function(e,t,n){"use strict";var r=n(37722),i=n(12814),o=n(62219),a=n(60328),s=n(70269),l=n(24894),u=n(4311),c=n(36780),p=n(76451),d=n(19813),h=n(78583),f=n(23203),m=n(54662).toArray,g=h("asyncIterator"),A=i(d("Array","values")),b=i(A([]).next),y=function(){return new v(this)},v=function(e){this.iterator=A(e)};v.prototype.next=function(){return b(this.iterator)},e.exports=function(e){var t=this,n=arguments.length,i=n>1?arguments[1]:void 0,d=n>2?arguments[2]:void 0;return new(p("Promise"))(function(n){void 0!==i&&(i=r(i,d));var p=c(e,g),h=p?void 0:u(e)||y,A=o(t)?new t:[];n(m(p?a(e,p):new f(l(s(e,h))),i,A))})}},6270:function(e,t,n){"use strict";var r=n(80555);e.exports=function(e,t,n){for(var i=0,o=arguments.length>2?n:r(t),a=new e(o);o>i;)a[i]=t[i++];return a}},55782:function(e,t,n){"use strict";var r=n(37722),i=n(87494),o=n(87670),a=n(20892),s=n(23497),l=n(62219),u=n(80555),c=n(82250),p=n(82919),d=n(70269),h=n(4311),f=n(64043),m=Array;e.exports=function(e){var t,n,g,A,b,y,v=l(this),S=arguments.length,w=S>1?arguments[1]:void 0,E=void 0!==w;E&&(w=r(w,S>2?arguments[2]:void 0));var O=o(e),T=h(O),C=0;if(T&&!(this===m&&s(T)))for(n=v?new this:[],b=(A=d(O,T)).next;!(g=i(b,A)).done;C++){y=E?a(A,w,[g.value,C],!0):g.value;try{c(n,C,y)}catch(e){f(A,"throw",e)}}else for(t=u(O),n=v?new this(t):m(t);t>C;C++)y=E?w(O[C],C):O[C],c(n,C,y);return p(n,C),n}},83355:function(e,t,n){"use strict";var r=n(60621),i=n(77732),o=n(80555),a=function(e){return function(t,n,a){var s,l=r(t),u=o(l);if(0===u)return!e&&-1;var c=i(a,u);if(e&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},70225:function(e,t,n){"use strict";var r=n(37722),i=n(34677),o=n(87670),a=n(80555),s=function(e){var t=1===e;return function(n,s,l){for(var u,c=o(n),p=i(c),d=a(p),h=r(s,l);d-- >0;)if(h(u=p[d],d,c))switch(e){case 0:return u;case 1:return d}return t?-1:void 0}};e.exports={findLast:s(0),findLastIndex:s(1)}},15368:function(e,t,n){"use strict";var r=n(37722),i=n(34677),o=n(87670),a=n(80555),s=n(85016),l=n(82250),u=function(e){var t=1===e,n=2===e,u=3===e,c=4===e,p=6===e,d=7===e,h=5===e||p;return function(f,m,g){for(var A,b,y=o(f),v=i(y),S=a(v),w=r(m,g),E=0,O=0,T=t?s(f,S):n||d?s(f,0):void 0;S>E;E++)if((h||E in v)&&(b=w(A=v[E],E,y),e)){if(t)l(T,E,b);else if(b)switch(e){case 3:return!0;case 5:return A;case 6:return E;case 2:l(T,O++,A)}else switch(e){case 4:return!1;case 7:l(T,O++,A)}}return p?-1:u||c?c:T}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},58014:function(e,t,n){"use strict";var r=n(37626),i=n(60621),o=n(11573),a=n(80555),s=n(88486),l=Math.min,u=[].lastIndexOf,c=!!u&&1/[1].lastIndexOf(1,-0)<0,p=s("lastIndexOf");e.exports=c||!p?function(e){if(c)return r(u,this,arguments)||0;var t=i(this),n=a(t);if(0===n)return -1;var s=n-1;for(arguments.length>1&&(s=l(s,o(arguments[1]))),s<0&&(s=n+s);s>=0;s--)if(s in t&&t[s]===e)return s||0;return -1}:u},18471:function(e,t,n){"use strict";var r=n(81455),i=n(78583),o=n(21033),a=i("species");e.exports=function(e){return o>=51||!r(function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo})}},88486:function(e,t,n){"use strict";var r=n(81455);e.exports=function(e,t){var n=[][e];return!!n&&r(function(){n.call(null,t||function(){return 1},1)})}},39845:function(e,t,n){"use strict";var r=n(65085),i=n(87670),o=n(34677),a=n(80555),s=TypeError,l="Reduce of empty array with no initial value",u=function(e){return function(t,n,u,c){var p=i(t),d=o(p),h=a(p);if(r(n),0===h&&u<2)throw new s(l);var f=e?h-1:0,m=e?-1:1;if(u<2)for(;;){if(f in d){c=d[f],f+=m;break}if(f+=m,e?f<0:h<=f)throw new s(l)}for(;e?f>=0:h>f;f+=m)f in d&&(c=n(c,d[f],f,p));return c}};e.exports={left:u(!1),right:u(!0)}},82919:function(e,t,n){"use strict";var r=n(61360),i=n(61748),o=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=s?function(e,t){if(i(e)&&!a(e,"length").writable)throw new o("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},47441:function(e,t,n){"use strict";var r=n(12814);e.exports=r([].slice)},17322:function(e,t,n){"use strict";var r=n(47441),i=Math.floor,o=function(e,t){var n=e.length;if(n<8){for(var a,s,l=1;l0;)e[s]=e[--s];s!==l++&&(e[s]=a)}}else{for(var u=i(n/2),c=o(r(e,0,u),t),p=o(r(e,u),t),d=c.length,h=p.length,f=0,m=0;f=t(c[f],p[m])?c[f++]:p[m++]:f0,n=t?arguments[0]:void 0;return new h(function(o,a){A(i(t?r(e.next,e.iterator,n):r(e.next,e.iterator)),o,a,e.iterator,!0)})},return:function(){var e=g(this).iterator,t=arguments.length>0,n=t?arguments[0]:void 0;return new h(function(o,s){var l=a(e,"return");if(void 0===l)return o(d(n,!0));A(i(t?r(l,e,n):r(l,e)),o,s,e)})},throw:function(){var e=g(this).iterator,t=arguments.length>0,n=t?arguments[0]:void 0;return new h(function(o,s){var l=a(e,"throw");if(void 0===l){try{u(e,"normal")}catch(e){return s(e)}return s(TypeError("The iterator does not provide a throw method"))}A(i(t?r(l,e,n):r(l,e)),o,s,e,!0)})}}),e.exports=b},21564:function(e,t,n){"use strict";var r=n(87494),i=n(36539),o=n(76451),a=n(36780);e.exports=function(e,t,n,s){try{var l=a(e,"return");if(l)return o("Promise").resolve(r(l,e)).then(function(e){try{t!==s&&i(e)}catch(e){s(e);return}t(n)},function(e){t===s?t(n):s(e)})}catch(e){return t===s?s(n):s(e)}t(n)}},54662:function(e,t,n){"use strict";var r=n(87494),i=n(65085),o=n(36539),a=n(86840),s=n(56182),l=n(76451),u=n(82250),c=n(82919),p=n(24894),d=n(21564),h=function(e){var t=0===e,n=1===e,h=2===e,f=3===e;return function(e,m,g){o(e);var A=void 0!==m;(A||!t)&&i(m);var b=p(e),y=l("Promise"),v=b.iterator,S=b.next,w=0;return new y(function(e,i){var l=function(e){d(v,i,e,i)},p=function(){try{try{s(w)}catch(e){return l(e)}y.resolve(o(r(S,v))).then(function(r){try{if(o(r).done)t?(c(g,w),e(g)):e(!f&&(h||void 0));else{var s=r.value;try{if(A){var b=w++,S=m(s,b),E=function(r){if(n)p();else if(h)r?p():d(v,e,!1,i);else if(t)try{u(g,b,r),p()}catch(e){l(e)}else r?d(v,e,f||s,i):p()};a(S)?y.resolve(S).then(E,l):E(S)}else u(g,w++,s),p()}catch(e){l(e)}}}catch(e){i(e)}},i)}catch(e){i(e)}};p()})}};e.exports={toArray:h(0),forEach:h(1),every:h(2),some:h(3),find:h(4)}},50972:function(e,t,n){"use strict";var r,i,o=n(30456),a=n(72223),s=n(99821),l=n(31153),u=n(43424),c=n(40453),p=n(78583),d=n(83294),h="USE_FUNCTION_CONSTRUCTOR",f=p("asyncIterator"),m=o.AsyncIterator,g=a.AsyncIteratorPrototype;if(g)r=g;else if(s(m))r=m.prototype;else if(a[h]||o[h])try{i=u(u(u(Function("return async function*(){}()")()))),u(i)===Object.prototype&&(r=i)}catch(e){}r?d&&(r=l(r)):r={},!s(r[f])&&c(r,f,function(){return this}),e.exports=r},50135:function(e){"use strict";var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=t+"+/",r=t+"-_",i=function(e){for(var t={},n=0;n<64;n++)t[e.charAt(n)]=n;return t};e.exports={i2c:n,c2i:i(n),i2cUrl:r,c2iUrl:i(r)}},20892:function(e,t,n){"use strict";var r=n(36539),i=n(64043);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){i(e,"throw",t)}}},23277:function(e,t,n){"use strict";var r=n(78583)("iterator"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[r]=function(){return this},Array.from(a,function(){throw 2})}catch(e){}e.exports=function(e,t){try{if(!t&&!i)return!1}catch(e){return!1}var n=!1;try{var o={};o[r]=function(){return{next:function(){return{done:n=!0}}}},e(o)}catch(e){}return n}},32185:function(e,t,n){"use strict";var r=n(12814),i=r({}.toString),o=r("".slice);e.exports=function(e){return o(i(e),8,-1)}},34074:function(e,t,n){"use strict";var r=n(28149),i=n(99821),o=n(32185),a=n(78583)("toStringTag"),s=Object,l="Arguments"===o(function(){return arguments}()),u=function(e,t){try{return e[t]}catch(e){}};e.exports=r?o:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=u(t=s(e),a))?n:l?o(t):"Object"===(r=o(t))&&i(t.callee)?"Arguments":r}},13962:function(e,t,n){"use strict";var r=n(31153),i=n(42749),o=n(26252),a=n(37722),s=n(70591),l=n(59700),u=n(45249),c=n(55852),p=n(37056),d=n(29483),h=n(61360),f=n(6586).fastKey,m=n(89904),g=m.set,A=m.getterFor;e.exports={getConstructor:function(e,t,n,c){var p=e(function(e,i){s(e,d),g(e,{type:t,index:r(null),first:null,last:null,size:0}),!h&&(e.size=0),!l(i)&&u(i,e[c],{that:e,AS_ENTRIES:n})}),d=p.prototype,m=A(t),b=function(e,t,n){var r,i,o=m(e),a=y(e,t);return a?a.value=n:(o.last=a={index:i=f(t,!0),key:t,value:n,previous:r=o.last,next:null,removed:!1},!o.first&&(o.first=a),r&&(r.next=a),h?o.size++:e.size++,"F"!==i&&(o.index[i]=a)),e},y=function(e,t){var n,r=m(e),i=f(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key===t)return n};return o(d,{clear:function(){for(var e=m(this),t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=null),t=t.next;e.first=e.last=null,e.index=r(null),h?e.size=0:this.size=0},delete:function(e){var t=m(this),n=y(this,e);if(n){var r=n.next,i=n.previous;delete t.index[n.index],n.removed=!0,i&&(i.next=r),r&&(r.previous=i),t.first===n&&(t.first=r),t.last===n&&(t.last=i),h?t.size--:this.size--}return!!n},forEach:function(e){for(var t,n=m(this),r=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!y(this,e)}}),o(d,n?{get:function(e){var t=y(this,e);return t&&t.value},set:function(e,t){return b(this,0===e?0:e,t)}}:{add:function(e){return b(this,e=0===e?0:e,e)}}),h&&i(d,"size",{configurable:!0,get:function(){return m(this).size}}),p},setStrong:function(e,t,n){var r=t+" Iterator",i=A(t),o=A(r);c(e,t,function(e,t){g(this,{type:r,target:e,state:i(e),kind:t,last:null})},function(){for(var e=o(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"===t?p(n.key,!1):"values"===t?p(n.value,!1):p([n.key,n.value],!1):(e.target=null,p(void 0,!0))},n?"entries":"values",!n,!0),d(t)}}},34412:function(e,t,n){"use strict";var r=n(12814),i=n(26252),o=n(6586).getWeakData,a=n(70591),s=n(36539),l=n(59700),u=n(86840),c=n(45249),p=n(15368),d=n(85848),h=n(89904),f=h.set,m=h.getterFor,g=p.find,A=p.findIndex,b=r([].splice),y=0,v=function(e){return e.frozen||(e.frozen=new S)},S=function(){this.entries=[]},w=function(e,t){return g(e.entries,function(e){return e[0]===t})};S.prototype={get:function(e){var t=w(this,e);if(t)return t[1]},has:function(e){return!!w(this,e)},set:function(e,t){var n=w(this,e);n?n[1]=t:this.entries.push([e,t])},delete:function(e){var t=A(this.entries,function(t){return t[0]===e});return~t&&b(this.entries,t,1),!!~t}},e.exports={getConstructor:function(e,t,n,r){var p=e(function(e,i){a(e,h),f(e,{type:t,id:y++,frozen:null}),!l(i)&&c(i,e[r],{that:e,AS_ENTRIES:n})}),h=p.prototype,g=m(t),A=function(e,t,n){var r=g(e),i=o(s(t),!0);return!0===i?v(r).set(t,n):i[r.id]=n,e};return i(h,{delete:function(e){var t=g(this);if(!u(e))return!1;var n=o(e);return!0===n?v(t).delete(e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=g(this);if(!u(e))return!1;var n=o(e);return!0===n?v(t).has(e):n&&d(n,t.id)}}),i(h,n?{get:function(e){var t=g(this);if(u(e)){var n=o(e);if(!0===n)return v(t).get(e);if(n)return n[t.id]}},set:function(e,t){return A(this,e,t)}}:{add:function(e){return A(this,e,!0)}}),p}}},54096:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(12814),a=n(37653),s=n(40453),l=n(6586),u=n(45249),c=n(70591),p=n(99821),d=n(59700),h=n(86840),f=n(81455),m=n(23277),g=n(78711),A=n(35724);e.exports=function(e,t,n){var b=-1!==e.indexOf("Map"),y=-1!==e.indexOf("Weak"),v=b?"set":"add",S=i[e],w=S&&S.prototype,E=S,O={},T=function(e){var t=o(w[e]);s(w,e,"add"===e?function(e){return t(this,0===e?0:e),this}:"delete"===e?function(e){return(!y||!!h(e))&&t(this,0===e?0:e)}:"get"===e?function(e){return y&&!h(e)?void 0:t(this,0===e?0:e)}:"has"===e?function(e){return(!y||!!h(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(a(e,!p(S)||!(y||w.forEach&&!f(function(){new S().entries().next()}))))E=n.getConstructor(t,e,b,v),l.enable();else if(a(e,!0)){var C=new E,x=C[v](y?{}:-0,1)!==C,I=f(function(){C.has(1)}),k=m(function(e){new S(e)}),_=!y&&f(function(){for(var e=new S,t=5;t--;)e[v](t,t);return!e.has(-0)});!k&&((E=t(function(e,t){c(e,w);var n=A(new S,e,E);return!d(t)&&u(t,n[v],{that:n,AS_ENTRIES:b}),n})).prototype=w,w.constructor=E),(I||_)&&(T("delete"),T("has"),b&&T("get")),(_||x)&&T(v),y&&w.clear&&delete w.clear}return O[e]=E,r({global:!0,constructor:!0,forced:E!==S},O),g(E,e),!y&&n.setStrong(E,e,b),E}},27130:function(e,t,n){"use strict";var r=n(85848),i=n(27040),o=n(13895),a=n(68235);e.exports=function(e,t,n){for(var s=i(t),l=a.f,u=o.f,c=0;c"+l+""}},37056:function(e){"use strict";e.exports=function(e,t){return{value:e,done:t}}},92444:function(e,t,n){"use strict";var r=n(61360),i=n(68235),o=n(98590);e.exports=r?function(e,t,n){return i.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},98590:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},82250:function(e,t,n){"use strict";var r=n(61360),i=n(68235),o=n(98590);e.exports=function(e,t,n){r?i.f(e,t,o(0,n)):e[t]=n}},61305:function(e,t,n){"use strict";var r=n(12814),i=n(81455),o=n(82498).start,a=RangeError,s=isFinite,l=Math.abs,u=Date.prototype,c=u.toISOString,p=r(u.getTime),d=r(u.getUTCDate),h=r(u.getUTCFullYear),f=r(u.getUTCHours),m=r(u.getUTCMilliseconds),g=r(u.getUTCMinutes),A=r(u.getUTCMonth),b=r(u.getUTCSeconds);e.exports=i(function(){return"0385-07-25T07:06:39.999Z"!==c.call(new Date(-5e13-1))})||!i(function(){c.call(new Date(NaN))})?function(){if(!s(p(this)))throw new a("Invalid time value");var e=h(this),t=m(this),n=e<0?"-":e>9999?"+":"";return n+o(l(e),n?6:4,0)+"-"+o(A(this)+1,2,0)+"-"+o(d(this),2,0)+"T"+o(f(this),2,0)+":"+o(g(this),2,0)+":"+o(b(this),2,0)+"."+o(t,3,0)+"Z"}:c},87789:function(e,t,n){"use strict";var r=n(36539),i=n(626),o=TypeError;e.exports=function(e){if(r(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw new o("Incorrect hint");return i(this,e)}},42749:function(e,t,n){"use strict";var r=n(75470),i=n(68235);e.exports=function(e,t,n){return n.get&&r(n.get,t,{getter:!0}),n.set&&r(n.set,t,{setter:!0}),i.f(e,t,n)}},40453:function(e,t,n){"use strict";var r=n(99821),i=n(68235),o=n(75470),a=n(38711);e.exports=function(e,t,n,s){!s&&(s={});var l=s.enumerable,u=void 0!==s.name?s.name:t;if(r(n)&&o(n,u,s),s.global)l?e[t]=n:a(t,n);else{try{s.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}l?e[t]=n:i.f(e,t,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}},26252:function(e,t,n){"use strict";var r=n(40453);e.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n);return e}},38711:function(e,t,n){"use strict";var r=n(30456),i=Object.defineProperty;e.exports=function(e,t){try{i(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},90533:function(e,t,n){"use strict";var r=n(74263),i=TypeError;e.exports=function(e,t){if(!delete e[t])throw new i("Cannot delete property "+r(t)+" of "+r(e))}},61360:function(e,t,n){"use strict";var r=n(81455);e.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},61589:function(e,t,n){"use strict";var r,i,o,a,s=n(30456),l=n(95766),u=n(47113),c=s.structuredClone,p=s.ArrayBuffer,d=s.MessageChannel,h=!1;if(u)h=function(e){c(e,{transfer:[e]})};else if(p)try{!d&&(r=l("worker_threads"))&&(d=r.MessageChannel),d&&(i=new d,o=new p(2),a=function(e){i.port1.postMessage(null,[e])},2===o.byteLength&&(a(o),0===o.byteLength&&(h=a)))}catch(e){}e.exports=h},93837:function(e,t,n){"use strict";var r=n(30456),i=n(86840),o=r.document,a=i(o)&&i(o.createElement);e.exports=function(e){return a?o.createElement(e):{}}},56182:function(e){"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw new t("Maximum allowed index exceeded");return e}},82415:function(e){"use strict";e.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},22685:function(e){"use strict";e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},27703:function(e,t,n){"use strict";var r=n(93837)("span").classList,i=r&&r.constructor&&r.constructor.prototype;e.exports=i===Object.prototype?void 0:i},86064:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},61392:function(e,t,n){"use strict";var r=n(37579).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},71949:function(e,t,n){"use strict";var r=n(37579);e.exports=/MSIE|Trident/.test(r)},11266:function(e,t,n){"use strict";var r=n(37579);e.exports=/ipad|iphone|ipod/i.test(r)&&"undefined"!=typeof Pebble},92350:function(e,t,n){"use strict";var r=n(37579);e.exports=/ipad|iphone|ipod/i.test(r)&&/applewebkit/i.test(r)},18050:function(e,t,n){"use strict";var r=n(38433);e.exports="NODE"===r},47553:function(e,t,n){"use strict";var r=n(37579);e.exports=/web0s(?!.*chrome)/i.test(r)},37579:function(e,t,n){"use strict";var r=n(30456).navigator,i=r&&r.userAgent;e.exports=i?String(i):""},21033:function(e,t,n){"use strict";var r,i,o=n(30456),a=n(37579),s=o.process,l=o.Deno,u=s&&s.versions||l&&l.version,c=u&&u.v8;c&&(i=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(i=+r[1]),e.exports=i},53047:function(e,t,n){"use strict";var r=n(37579).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},38433:function(e,t,n){"use strict";var r=n(30456),i=n(37579),o=n(32185),a=function(e){return i.slice(0,e.length)===e};e.exports=a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":r.Bun&&"string"==typeof Bun.version?"BUN":r.Deno&&"object"==typeof Deno.version?"DENO":"process"===o(r.process)?"NODE":r.window&&r.document?"BROWSER":"REST"},3101:function(e,t,n){"use strict";var r=n(12814),i=Error,o=r("".replace),a=String(new i("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,l=s.test(a);e.exports=function(e,t){if(l&&"string"==typeof e&&!i.prepareStackTrace)for(;t--;)e=o(e,s,"");return e}},50807:function(e,t,n){"use strict";var r=n(92444),i=n(3101),o=n(24859),a=Error.captureStackTrace;e.exports=function(e,t,n,s){o&&(a?a(e,t):r(e,"stack",i(n,s)))}},24859:function(e,t,n){"use strict";var r=n(81455),i=n(98590);e.exports=!r(function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",i(1,7)),7!==e.stack)})},60708:function(e,t,n){"use strict";var r=n(61360),i=n(81455),o=n(36539),a=n(74735),s=Error.prototype.toString,l=i(function(){if(r){var e=Object.create(Object.defineProperty({},"name",{get:function(){return this===e}}));if("true"!==s.call(e))return!0}return"2: 1"!==s.call({message:1,name:2})||"Error"!==s.call({})});e.exports=l?function(){var e=o(this),t=a(e.name,"Error"),n=a(e.message);return t?n?t+": "+n:t:n}:s},77341:function(e,t,n){"use strict";var r=n(30456),i=n(13895).f,o=n(92444),a=n(40453),s=n(38711),l=n(27130),u=n(37653);e.exports=function(e,t){var n,c,p,d,h,f=e.target,m=e.global,g=e.stat;if(n=m?r:g?r[f]||s(f,{}):r[f]&&r[f].prototype)for(c in t){if(d=t[c],p=e.dontCallGetSet?(h=i(n,c))&&h.value:n[c],!u(m?c:f+(g?".":"#")+c,e.forced)&&void 0!==p){if(typeof d==typeof p)continue;l(d,p)}(e.sham||p&&p.sham)&&o(d,"sham",!0),a(n,c,d,e)}}},81455:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},87432:function(e,t,n){"use strict";n(64455);var r=n(87494),i=n(40453),o=n(20625),a=n(81455),s=n(78583),l=n(92444),u=s("species"),c=RegExp.prototype;e.exports=function(e,t,n,p){var d=s(e),h=!a(function(){var t={};return t[d]=function(){return 7},7!==""[e](t)}),f=h&&!a(function(){var t=!1,n=/a/;if("split"===e){var r={};r[u]=function(){return n},(n={constructor:r,flags:""})[d]=/./[d]}return n.exec=function(){return t=!0,null},n[d](""),!t});if(!h||!f||n){var m=/./[d],g=t(d,""[e],function(e,t,n,i,a){var s=t.exec;if(s===o||s===c.exec)return h&&!a?{done:!0,value:r(m,t,n,i)}:{done:!0,value:r(e,n,t,i)};return{done:!1}});i(String.prototype,e,g[0]),i(c,d,g[1])}p&&l(c[d],"sham",!0)}},46381:function(e,t,n){"use strict";var r=n(61748),i=n(80555),o=n(56182),a=n(37722),s=n(82250),l=function(e,t,n,u,c,p,d,h){for(var f,m,g=c,A=0,b=!!d&&a(d,h);A0&&r(f)?(m=i(f),g=l(e,t,f,m,g,p-1)-1):(o(g+1),s(e,g,f)),g++),A++;return g};e.exports=l},63058:function(e,t,n){"use strict";var r=n(81455);e.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},37626:function(e,t,n){"use strict";var r=n(85707),i=Function.prototype,o=i.apply,a=i.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(o):function(){return a.apply(o,arguments)})},37722:function(e,t,n){"use strict";var r=n(91609),i=n(65085),o=n(85707),a=r(r.bind);e.exports=function(e,t){return i(e),void 0===t?e:o?a(e,t):function(){return e.apply(t,arguments)}}},85707:function(e,t,n){"use strict";var r=n(81455);e.exports=!r(function(){var e=(function(){}).bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})},67697:function(e,t,n){"use strict";var r=n(12814),i=n(65085),o=n(86840),a=n(85848),s=n(47441),l=n(85707),u=Function,c=r([].concat),p=r([].join),d={},h=function(e,t,n){if(!a(d,t)){for(var r=[],i=0;i]*>)/g,c=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,p,d){var h=n+e.length,f=r.length,m=c;return void 0!==p&&(p=i(p),m=u),s(d,m,function(i,s){var u;switch(a(s,0)){case"$":return"$";case"&":return e;case"`":return l(t,0,n);case"'":return l(t,h);case"<":u=p[l(s,1,-1)];break;default:var c=+s;if(0===c)return i;if(c>f){var d=o(c/10);if(0===d)return i;if(d<=f)return void 0===r[d-1]?a(s,1):r[d-1]+a(s,1);return i}u=r[c-1]}return void 0===u?"":u})}},30456:function(e,t,n){"use strict";var r=function(e){return e&&e.Math===Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()},85848:function(e,t,n){"use strict";var r=n(12814),i=n(87670),o=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return o(i(e),t)}},82793:function(e){"use strict";e.exports={}},87861:function(e){"use strict";e.exports=function(e,t){try{1==arguments.length?console.error(e):console.error(e,t)}catch(e){}}},13322:function(e,t,n){"use strict";var r=n(76451);e.exports=r("document","documentElement")},48980:function(e,t,n){"use strict";var r=n(61360),i=n(81455),o=n(93837);e.exports=!r&&!i(function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a})},86033:function(e){"use strict";var t=Array,n=Math.abs,r=Math.pow,i=Math.floor,o=Math.log,a=Math.LN2;e.exports={pack:function(e,s,l){var u,c,p,d=t(l),h=8*l-s-1,f=(1<>1,g=23===s?r(2,-24)-r(2,-77):0,A=e<0||0===e&&1/e<0?1:0,b=0;for((e=n(e))!=e||e===1/0?(c=e!=e?1:0,u=f):(p=r(2,-(u=i(o(e)/a))),e*p<1&&(u--,p*=2),u+m>=1?e+=g/p:e+=g*r(2,1-m),e*p>=2&&(u++,p/=2),u+m>=f?(c=0,u=f):u+m>=1?(c=(e*p-1)*r(2,s),u+=m):(c=e*r(2,m-1)*r(2,s),u=0));s>=8;)d[b++]=255&c,c/=256,s-=8;for(u=u<0;)d[b++]=255&u,u/=256,h-=8;return d[b-1]|=128*A,d},unpack:function(e,t){var n,i=e.length,o=8*i-t-1,a=(1<>1,l=o-7,u=i-1,c=e[u--],p=127&c;for(c>>=7;l>0;)p=256*p+e[u--],l-=8;for(n=p&(1<<-l)-1,p>>=-l,l+=t;l>0;)n=256*n+e[u--],l-=8;if(0===p)p=1-s;else{if(p===a)return n?NaN:c?-1/0:1/0;n+=r(2,t),p-=s}return(c?-1:1)*n*r(2,p-t)}}},34677:function(e,t,n){"use strict";var r=n(12814),i=n(81455),o=n(32185),a=Object,s=r("".split);e.exports=i(function(){return!a("z").propertyIsEnumerable(0)})?function(e){return"String"===o(e)?s(e,""):a(e)}:a},35724:function(e,t,n){"use strict";var r=n(99821),i=n(86840),o=n(46682);e.exports=function(e,t,n){var a,s;return o&&r(a=t.constructor)&&a!==n&&i(s=a.prototype)&&s!==n.prototype&&o(e,s),e}},85566:function(e,t,n){"use strict";var r=n(12814),i=n(99821),o=n(72223),a=r(Function.toString);!i(o.inspectSource)&&(o.inspectSource=function(e){return a(e)}),e.exports=o.inspectSource},64504:function(e,t,n){"use strict";var r=n(86840),i=n(92444);e.exports=function(e,t){r(t)&&"cause"in t&&i(e,"cause",t.cause)}},6586:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(82793),a=n(86840),s=n(85848),l=n(68235).f,u=n(25487),c=n(73361),p=n(25549),d=n(18508),h=n(63058),f=!1,m=d("meta"),g=0,A=function(e){l(e,m,{value:{objectID:"O"+g++,weakData:{}}})},b=e.exports={enable:function(){b.enable=function(){},f=!0;var e=u.f,t=i([].splice),n={};n[m]=1,e(n).length&&(u.f=function(n){for(var r=e(n),i=0,o=r.length;ib;b++)if((v=_(e[b]))&&u(m,v))return v;return new f(!1)}g=c(e,A)}for(S=T?e.next:g.next;!(w=i(S,g)).done;){var R=w.value;try{v=_(R)}catch(e){if(g)d(g,"throw",e);else throw e}if("object"==typeof v&&v&&u(m,v))return v}return new f(!1)}},81401:function(e,t,n){"use strict";var r=n(64043);e.exports=function(e,t,n){for(var i=e.length-1;i>=0;i--)if(void 0!==e[i])try{n=r(e[i].iterator,t,n)}catch(e){t="throw",n=e}if("throw"===t)throw n;return n}},64043:function(e,t,n){"use strict";var r=n(87494),i=n(36539),o=n(36780);e.exports=function(e,t,n){var a,s;i(e);try{if(!(a=o(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(e){s=!0,a=e}if("throw"===t)throw n;if(s)throw a;return i(a),n}},40052:function(e,t,n){"use strict";var r=n(23865).IteratorPrototype,i=n(31153),o=n(98590),a=n(78711),s=n(90649),l=function(){return this};e.exports=function(e,t,n,u){var c=t+" Iterator";return e.prototype=i(r,{next:o(+!u,n)}),a(e,c,!1,!0),s[c]=l,e}},41878:function(e,t,n){"use strict";var r=n(87494),i=n(31153),o=n(92444),a=n(26252),s=n(78583),l=n(89904),u=n(36780),c=n(23865).IteratorPrototype,p=n(37056),d=n(64043),h=n(81401),f=s("toStringTag"),m="IteratorHelper",g="WrapForValidIterator",A="normal",b="throw",y=l.set,v=function(e){var t=l.getterFor(e?g:m);return a(i(c),{next:function(){var n=t(this);if(e)return n.nextHandler();if(n.done)return p(void 0,!0);try{var r=n.nextHandler();return n.returnHandlerResult?r:p(r,n.done)}catch(e){throw n.done=!0,e}},return:function(){var n=t(this),i=n.iterator,o=n.done;if(n.done=!0,e){var a=u(i,"return");return a?r(a,i):p(void 0,!0)}if(o)return p(void 0,!0);if(n.inner)try{d(n.inner.iterator,A)}catch(e){return d(i,b,e)}if(n.openIters)try{h(n.openIters,A)}catch(e){if(i)return d(i,b,e);throw e}return i&&d(i,A),p(void 0,!0)}})},S=v(!0),w=v(!1);o(w,f,"Iterator Helper"),e.exports=function(e,t,n){var r=function(r,i){i?(i.iterator=r.iterator,i.next=r.next):i=r,i.type=t?g:m,i.returnHandlerResult=!!n,i.nextHandler=e,i.counter=0,i.done=!1,y(this,i)};return r.prototype=t?S:w,r}},55852:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(83294),a=n(50360),s=n(99821),l=n(40052),u=n(43424),c=n(46682),p=n(78711),d=n(92444),h=n(40453),f=n(78583),m=n(90649),g=n(23865),A=a.PROPER,b=a.CONFIGURABLE,y=g.IteratorPrototype,v=g.BUGGY_SAFARI_ITERATORS,S=f("iterator"),w="keys",E="values",O="entries",T=function(){return this};e.exports=function(e,t,n,a,f,g,C){l(n,t,a);var x,I,k,_=function(e){if(e===f&&M)return M;if(!v&&e&&e in N)return N[e];switch(e){case w:return function(){return new n(this,e)};case E:case O:return function(){return new n(this,e)}}return function(){return new n(this)}},R=t+" Iterator",P=!1,N=e.prototype,D=N[S]||N["@@iterator"]||f&&N[f],M=!v&&D||_(f),L="Array"===t&&N.entries||D;if(L&&(x=u(L.call(new e)))!==Object.prototype&&x.next&&(!o&&u(x)!==y&&(c?c(x,y):!s(x[S])&&h(x,S,T)),p(x,R,!0,!0),o&&(m[R]=T)),A&&f===E&&D&&D.name!==E&&(!o&&b?d(N,"name",E):(P=!0,M=function(){return i(D,this)})),f){if(I={values:_(E),keys:g?M:_(w),entries:_(O)},C)for(k in I)(v||P||!(k in N))&&h(N,k,I[k]);else r({target:t,proto:!0,forced:v||P},I)}return(!o||C)&&N[S]!==M&&h(N,S,M,{name:f}),m[t]=M,I}},36582:function(e){"use strict";e.exports=function(e,t){var n="function"==typeof Iterator&&Iterator.prototype[e];if(n)try{n.call({next:null},t).next()}catch(e){return!0}}},41402:function(e,t,n){"use strict";var r=n(30456);e.exports=function(e,t){var n=r.Iterator,i=n&&n.prototype,o=i&&i[e],a=!1;if(o)try{o.call({next:function(){return{done:!0}},return:function(){a=!0}},-1)}catch(e){!(e instanceof t)&&(a=!1)}if(!a)return o}},23865:function(e,t,n){"use strict";var r,i,o,a=n(81455),s=n(99821),l=n(86840),u=n(31153),c=n(43424),p=n(40453),d=n(78583),h=n(83294),f=d("iterator"),m=!1;[].keys&&("next"in(o=[].keys())?(i=c(c(o)))!==Object.prototype&&(r=i):m=!0),!l(r)||a(function(){var e={};return r[f].call(e)!==e})?r={}:h&&(r=u(r)),!s(r[f])&&p(r,f,function(){return this}),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:m}},90649:function(e){"use strict";e.exports={}},80555:function(e,t,n){"use strict";var r=n(63663);e.exports=function(e){return r(e.length)}},75470:function(e,t,n){"use strict";var r=n(12814),i=n(81455),o=n(99821),a=n(85848),s=n(61360),l=n(50360).CONFIGURABLE,u=n(85566),c=n(89904),p=c.enforce,d=c.get,h=String,f=Object.defineProperty,m=r("".slice),g=r("".replace),A=r([].join),b=s&&!i(function(){return 8!==f(function(){},"length",{value:8}).length}),y=String(String).split("String"),v=e.exports=function(e,t,n){"Symbol("===m(h(t),0,7)&&(t="["+g(h(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!a(e,"name")||l&&e.name!==t)&&(s?f(e,"name",{value:t,configurable:!0}):e.name=t),b&&n&&a(n,"arity")&&e.length!==n.arity&&f(e,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&f(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=p(e);return!a(r,"source")&&(r.source=A(y,"string"==typeof t?t:"")),e};Function.prototype.toString=v(function(){return o(this)&&d(this).source||u(this)},"toString")},74692:function(e,t,n){"use strict";var r=n(12814),i=Map.prototype;e.exports={Map:Map,set:r(i.set),get:r(i.get),has:r(i.has),remove:r(i.delete),proto:i}},1523:function(e){"use strict";var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||22025.465794806718>t(10)||-.00000000000000002!==t(-.00000000000000002)?function(e){var t=+e;return 0===t?t:t>-.000001&&t<1e-6?t+t*t/2:n(t)-1}:t},20338:function(e,t,n){"use strict";var r=n(86503),i=n(46808),o=Math.abs;e.exports=function(e,t,n,a){var s=+e,l=o(s),u=r(s);if(ln||p!=p?1/0*u:u*p}},10382:function(e,t,n){"use strict";var r=n(20338);e.exports=Math.fround||function(e){return r(e,11920928955078125e-23,34028234663852886e22,11754943508222875e-54)}},4957:function(e){"use strict";var t=Math.log,n=Math.LOG10E;e.exports=Math.log10||function(e){return t(e)*n}},21638:function(e){"use strict";var t=Math.log;e.exports=Math.log1p||function(e){var n=+e;return n>-.00000001&&n<1e-8?n-n*n/2:t(1+n)}},1289:function(e){"use strict";var t=Math.log,n=Math.LN2;e.exports=Math.log2||function(e){return t(e)/n}},46808:function(e){"use strict";var t=4503599627370496;e.exports=function(e){return e+t-t}},86503:function(e){"use strict";e.exports=Math.sign||function(e){var t=+e;return 0===t||t!=t?t:t<0?-1:1}},6083:function(e){"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},88018:function(e,t,n){"use strict";var r,i,o,a,s,l=n(30456),u=n(38666),c=n(37722),p=n(16414).set,d=n(17714),h=n(92350),f=n(11266),m=n(47553),g=n(18050),A=l.MutationObserver||l.WebKitMutationObserver,b=l.document,y=l.process,v=l.Promise,S=u("queueMicrotask");if(!S){var w=new d,E=function(){var e,t;for(g&&(e=y.domain)&&e.exit();t=w.get();)try{t()}catch(e){throw w.head&&r(),e}e&&e.enter()};h||g||m||!A||!b?!f&&v&&v.resolve?((a=v.resolve(void 0)).constructor=v,s=c(a.then,a),r=function(){s(E)}):g?r=function(){y.nextTick(E)}:(p=c(p,l),r=function(){p(E)}):(i=!0,o=b.createTextNode(""),new A(E).observe(o,{characterData:!0}),r=function(){o.data=i=!i}),S=function(e){!w.head&&r(),w.add(e)}}e.exports=S},88097:function(e,t,n){"use strict";var r=n(81455);e.exports=!r(function(){var e="9007199254740993",t=JSON.rawJSON(e);return!JSON.isRawJSON(t)||JSON.stringify(t)!==e})},33803:function(e,t,n){"use strict";var r=n(65085),i=TypeError,o=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw new i("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},74735:function(e,t,n){"use strict";var r=n(43576);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},51395:function(e){"use strict";var t=RangeError;e.exports=function(e){if(e==e)return e;throw new t("NaN is not allowed")}},279:function(e,t,n){"use strict";var r=n(85013),i=TypeError;e.exports=function(e){if(r(e))throw new i("The method doesn't accept regular expressions");return e}},8942:function(e,t,n){"use strict";var r=n(30456).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},85133:function(e,t,n){"use strict";var r=n(30456),i=n(81455),o=n(12814),a=n(43576),s=n(27169).trim,l=n(76959),u=o("".charAt),c=r.parseFloat,p=r.Symbol,d=p&&p.iterator,h=1/c(l+"-0")!=-1/0||d&&!i(function(){c(Object(d))});e.exports=h?function(e){var t=s(a(e)),n=c(t);return 0===n&&"-"===u(t,0)?-0:n}:c},92781:function(e,t,n){"use strict";var r=n(30456),i=n(81455),o=n(12814),a=n(43576),s=n(27169).trim,l=n(76959),u=r.parseInt,c=r.Symbol,p=c&&c.iterator,d=/^[+-]?0x/i,h=o(d.exec),f=8!==u(l+"08")||22!==u(l+"0x16")||p&&!i(function(){u(Object(p))});e.exports=f?function(e,t){var n=s(a(e));return u(n,t>>>0||(h(d,n)?16:10))}:u},60372:function(e,t,n){"use strict";var r=n(61360),i=n(12814),o=n(87494),a=n(81455),s=n(35387),l=n(74713),u=n(322),c=n(87670),p=n(34677),d=Object.assign,h=Object.defineProperty,f=i([].concat);e.exports=!d||a(function(){if(r&&1!==d({b:1},d(h({},"a",{enumerable:!0,get:function(){h(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol("assign detection"),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach(function(e){t[e]=e}),7!==d({},e)[n]||s(d({},t)).join("")!==i})?function(e,t){for(var n=c(e),i=arguments.length,a=1,d=l.f,h=u.f;i>a;){for(var m,g=p(arguments[a++]),A=d?f(s(g),d(g)):s(g),b=A.length,y=0;b>y;)m=A[y++],(!r||o(h,g,m))&&(n[m]=g[m])}return n}:d},31153:function(e,t,n){"use strict";var r,i=n(36539),o=n(15242),a=n(86064),s=n(82793),l=n(13322),u=n(93837),c=n(72566),p="prototype",d="script",h=c("IE_PROTO"),f=function(){},m=function(e){return"<"+d+">"+e+""},g=function(e){e.write(m("")),e.close();var t=e.parentWindow.Object;return e=null,t},A=function(){var e,t=u("iframe");return t.style.display="none",l.appendChild(t),t.src=String("java"+d+":"),(e=t.contentWindow.document).open(),e.write(m("document.F=Object")),e.close(),e.F},b=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}b="undefined"!=typeof document?document.domain&&r?g(r):A():g(r);for(var e=a.length;e--;)delete b[p][a[e]];return b()};s[h]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(f[p]=i(e),n=new f,f[p]=null,n[h]=e):n=b(),void 0===t?n:o.f(n,t)}},15242:function(e,t,n){"use strict";var r=n(61360),i=n(77174),o=n(68235),a=n(36539),s=n(60621),l=n(35387);t.f=r&&!i?Object.defineProperties:function(e,t){a(e);for(var n,r=s(t),i=l(t),u=i.length,c=0;u>c;)o.f(e,n=i[c++],r[n]);return e}},68235:function(e,t,n){"use strict";var r=n(61360),i=n(48980),o=n(77174),a=n(36539),s=n(91051),l=TypeError,u=Object.defineProperty,c=Object.getOwnPropertyDescriptor,p="enumerable",d="configurable",h="writable";t.f=r?o?function(e,t,n){if(a(e),t=s(t),a(n),"function"==typeof e&&"prototype"===t&&"value"in n&&h in n&&!n[h]){var r=c(e,t);r&&r[h]&&(e[t]=n.value,n={configurable:d in n?n[d]:r[d],enumerable:p in n?n[p]:r[p],writable:!1})}return u(e,t,n)}:u:function(e,t,n){if(a(e),t=s(t),a(n),i)try{return u(e,t,n)}catch(e){}if("get"in n||"set"in n)throw new l("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},13895:function(e,t,n){"use strict";var r=n(61360),i=n(87494),o=n(322),a=n(98590),s=n(60621),l=n(91051),u=n(85848),c=n(48980),p=Object.getOwnPropertyDescriptor;t.f=r?p:function(e,t){if(e=s(e),t=l(t),c)try{return p(e,t)}catch(e){}if(u(e,t))return a(!i(o.f,e,t),e[t])}},73361:function(e,t,n){"use strict";var r=n(32185),i=n(60621),o=n(25487).f,a=n(47441),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(e){try{return o(e)}catch(e){return a(s)}};e.exports.f=function(e){return s&&"Window"===r(e)?l(e):o(i(e))}},25487:function(e,t,n){"use strict";var r=n(34372),i=n(86064).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},74713:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},43424:function(e,t,n){"use strict";var r=n(85848),i=n(99821),o=n(87670),a=n(72566),s=n(64276),l=a("IE_PROTO"),u=Object,c=u.prototype;e.exports=s?u.getPrototypeOf:function(e){var t=o(e);if(r(t,l))return t[l];var n=t.constructor;return i(n)&&t instanceof n?n.prototype:t instanceof u?c:null}},25549:function(e,t,n){"use strict";var r=n(81455),i=n(86840),o=n(32185),a=n(30426),s=Object.isExtensible,l=r(function(){s(1)});e.exports=l||a?function(e){return!!i(e)&&(!a||"ArrayBuffer"!==o(e))&&(!s||s(e))}:s},86711:function(e,t,n){"use strict";var r=n(12814);e.exports=r({}.isPrototypeOf)},34372:function(e,t,n){"use strict";var r=n(12814),i=n(85848),o=n(60621),a=n(83355).indexOf,s=n(82793),l=r([].push);e.exports=function(e,t){var n,r=o(e),u=0,c=[];for(n in r)!i(s,n)&&i(r,n)&&l(c,n);for(;t.length>u;)i(r,n=t[u++])&&(~a(c,n)||l(c,n));return c}},35387:function(e,t,n){"use strict";var r=n(34372),i=n(86064);e.exports=Object.keys||function(e){return r(e,i)}},322:function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},28920:function(e,t,n){"use strict";var r=n(83294),i=n(30456),o=n(81455),a=n(53047);e.exports=r||!o(function(){if(!a||!(a<535)){var e=Math.random();__defineSetter__.call(null,e,function(){}),delete i[e]}})},46682:function(e,t,n){"use strict";var r=n(2756),i=n(86840),o=n(80456),a=n(91526);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=r(Object.prototype,"__proto__","set"))(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return(o(n),a(r),i(n))?(t?e(n,r):n.__proto__=r,n):n}}():void 0)},99717:function(e,t,n){"use strict";var r=n(61360),i=n(81455),o=n(12814),a=n(43424),s=n(35387),l=n(60621),u=o(n(322).f),c=o([].push),p=r&&i(function(){var e=Object.create(null);return e[2]=2,!u(e,2)}),d=function(e){return function(t){for(var n,i=l(t),o=s(i),d=p&&null===a(i),h=o.length,f=0,m=[];h>f;)n=o[f++],(!r||(d?n in i:u(i,n)))&&c(m,e?[n,i[n]]:i[n]);return m}};e.exports={entries:d(!0),values:d(!1)}},9483:function(e,t,n){"use strict";var r=n(28149),i=n(34074);e.exports=r?({}).toString:function(){return"[object "+i(this)+"]"}},626:function(e,t,n){"use strict";var r=n(87494),i=n(99821),o=n(86840),a=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&i(n=e.toString)&&!o(s=r(n,e))||i(n=e.valueOf)&&!o(s=r(n,e))||"string"!==t&&i(n=e.toString)&&!o(s=r(n,e)))return s;throw new a("Can't convert object to primitive value")}},27040:function(e,t,n){"use strict";var r=n(76451),i=n(12814),o=n(25487),a=n(74713),s=n(36539),l=i([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=o.f(s(e)),n=a.f;return n?l(t,n(e)):t}},62346:function(e,t,n){"use strict";var r=n(12814),i=n(85848),o=SyntaxError,a=parseInt,s=String.fromCharCode,l=r("".charAt),u=r("".slice),c=r(/./.exec),p={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":"\n","\\r":"\r","\\t":" "},d=/^[\da-f]{4}$/i,h=/^[\u0000-\u001F]$/;e.exports=function(e,t){for(var n=!0,r="";t0&&b(a,this.lastIndex-1);this.lastIndex>0&&(!this.multiline||this.multiline&&"\n"!==I&&"\r"!==I&&"\u2028"!==I&&"\u2029"!==I)&&(f="(?: (?:"+f+"))",x=" "+x,C++),n=RegExp("^(?:"+f+")",h)}O&&(n=RegExp("^"+f+"$(?!\\s)",h)),w&&(r=this.lastIndex);var k=o(g,p?n:this,x);return p?k?(k.input=a,k[0]=S(k[0],C),k.index=this.lastIndex,this.lastIndex+=k[0].length):this.lastIndex=0:w&&k&&(this.lastIndex=this.global?k.index+k[0].length:r),O&&k&&k.length>1&&o(m,k[0],n,function(){for(var e=1;eb)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")})},80456:function(e,t,n){"use strict";var r=n(59700),i=TypeError;e.exports=function(e){if(r(e))throw new i("Can't call method on "+e);return e}},38666:function(e,t,n){"use strict";var r=n(30456),i=n(61360),o=Object.getOwnPropertyDescriptor;e.exports=function(e){if(!i)return r[e];var t=o(r,e);return t&&t.value}},46149:function(e){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},41696:function(e,t,n){"use strict";var r,i=n(30456),o=n(37626),a=n(99821),s=n(38433),l=n(37579),u=n(47441),c=n(60968),p=i.Function;var d=/MSIE .\./.test(l)||"BUN"===s&&((r=i.Bun.version.split(".")).length<3||"0"===r[0]&&(r[1]<3||"3"===r[1]&&"0"===r[2]));e.exports=function(e,t){var n=t?2:1;return d?function(r,i){var s=c(arguments.length,1)>n,l=a(r)?r:p(r),d=s?u(arguments,n):[],h=s?function(){o(l,this,d)}:l;return t?e(h,i):e(h)}:e}},98507:function(e,t,n){"use strict";var r=n(51718),i=n(16137),o=r.Set,a=r.add;e.exports=function(e){var t=new o;return i(e,function(e){a(t,e)}),t}},90794:function(e,t,n){"use strict";var r=n(27791),i=n(51718),o=n(98507),a=n(89698),s=n(87786),l=n(16137),u=n(4180),c=i.has,p=i.remove;e.exports=function(e){var t=r(this),n=s(e),i=o(t);return a(i)<=n.size?l(i,function(e){n.includes(e)&&p(i,e)}):u(n.getIterator(),function(e){c(i,e)&&p(i,e)}),i}},51718:function(e,t,n){"use strict";var r=n(12814),i=Set.prototype;e.exports={Set:Set,add:r(i.add),has:r(i.has),remove:r(i.delete),proto:i}},88583:function(e,t,n){"use strict";var r=n(27791),i=n(51718),o=n(89698),a=n(87786),s=n(16137),l=n(4180),u=i.Set,c=i.add,p=i.has;e.exports=function(e){var t=r(this),n=a(e),i=new u;return o(t)>n.size?l(n.getIterator(),function(e){p(t,e)&&c(i,e)}):s(t,function(e){n.includes(e)&&c(i,e)}),i}},2932:function(e,t,n){"use strict";var r=n(27791),i=n(51718).has,o=n(89698),a=n(87786),s=n(16137),l=n(4180),u=n(64043);e.exports=function(e){var t=r(this),n=a(e);if(o(t)<=n.size)return!1!==s(t,function(e){if(n.includes(e))return!1},!0);var c=n.getIterator();return!1!==l(c,function(e){if(i(t,e))return u(c.iterator,"normal",!1)})}},5970:function(e,t,n){"use strict";var r=n(27791),i=n(89698),o=n(16137),a=n(87786);e.exports=function(e){var t=r(this),n=a(e);return!(i(t)>n.size)&&!1!==o(t,function(e){if(!n.includes(e))return!1},!0)}},25267:function(e,t,n){"use strict";var r=n(27791),i=n(51718).has,o=n(89698),a=n(87786),s=n(4180),l=n(64043);e.exports=function(e){var t=r(this),n=a(e);if(o(t)3})}},68047:function(e,t,n){"use strict";var r=n(12814),i=n(11573),o=n(43576),a=n(80456),s=r("".charAt),l=r("".charCodeAt),u=r("".slice),c=function(e){return function(t,n){var r,c,p=o(a(t)),d=i(n),h=p.length;return d<0||d>=h?e?"":void 0:(r=l(p,d))<55296||r>56319||d+1===h||(c=l(p,d+1))<56320||c>57343?e?s(p,d):r:e?u(p,d,d+2):(r-55296<<10)+(c-56320)+65536}};e.exports={codeAt:c(!1),charAt:c(!0)}},35726:function(e,t,n){"use strict";var r=n(37579);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},82498:function(e,t,n){"use strict";var r=n(12814),i=n(63663),o=n(43576),a=n(84838),s=n(80456),l=r(a),u=r("".slice),c=Math.ceil,p=function(e){return function(t,n,r){var a,p,d=o(s(t)),h=i(n),f=d.length;if(h<=f)return d;var m=void 0===r?" ":o(r);return""===m?d:((p=l(m,c((a=h-f)/m.length))).length>a&&(p=u(p,0,a)),e?d+p:p+d)}};e.exports={start:p(!1),end:p(!0)}},87733:function(e,t,n){"use strict";var r=n(12814),i=/[^\0-\u007E]/,o=/[.\u3002\uFF0E\uFF61]/g,a="Overflow: input needs wider integers to process",s=35,l=RangeError,u=r(o.exec),c=Math.floor,p=String.fromCharCode,d=r("".charCodeAt),h=r([].join),f=r([].push),m=r("".replace),g=r("".split),A=r("".toLowerCase),b=function(e){for(var t=[],n=0,r=e.length;n=55296&&i<=56319&&n>1,e+=c(e/t);e>26*s>>1;)e=c(e/s),r+=36;return c(r+(s+1)*e/(e+38))},S=function(e){var t,n,r=[],i=(e=b(e)).length,o=128,s=0,u=72;for(t=0;t=o&&nc((2147483647-s)/A))throw new l(a);for(s+=(g-o)*A,o=g,t=0;t2147483647)throw new l(a);if(n===o){for(var S=s,w=36;;){var E=w<=u?1:w>=u+26?26:w-u;if(S0;(l=s(l/2))&&(t+=t))l%2&&(n+=t);return n}},35398:function(e,t,n){"use strict";var r=n(27169).end,i=n(39353);e.exports=i("trimEnd")?function(){return r(this)}:"".trimEnd},39353:function(e,t,n){"use strict";var r=n(50360).PROPER,i=n(81455),o=n(76959),a="​\x85᠎";e.exports=function(e){return i(function(){return!!o[e]()||a[e]()!==a||r&&o[e].name!==e})}},4915:function(e,t,n){"use strict";var r=n(27169).start,i=n(39353);e.exports=i("trimStart")?function(){return r(this)}:"".trimStart},27169:function(e,t,n){"use strict";var r=n(12814),i=n(80456),o=n(43576),a=n(76959),s=r("".replace),l=RegExp("^["+a+"]+"),u=RegExp("(^|[^"+a+"])["+a+"]+$"),c=function(e){return function(t){var n=o(i(t));return 1&e&&(n=s(n,l,"")),2&e&&(n=s(n,u,"$1")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},47113:function(e,t,n){"use strict";var r=n(30456),i=n(81455),o=n(21033),a=n(38433),s=r.structuredClone;e.exports=!!s&&!i(function(){if("DENO"===a&&o>92||"NODE"===a&&o>94||"BROWSER"===a&&o>97)return!1;var e=new ArrayBuffer(8),t=s(e,{transfer:[e]});return 0!==e.byteLength||8!==t.byteLength})},45946:function(e,t,n){"use strict";var r=n(21033),i=n(81455),o=n(30456).String;e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e) instanceof Symbol)||!Symbol.sham&&r&&r<41})},63920:function(e,t,n){"use strict";var r=n(87494),i=n(76451),o=n(78583),a=n(40453);e.exports=function(){var e=i("Symbol"),t=e&&e.prototype,n=t&&t.valueOf,s=o("toPrimitive");t&&!t[s]&&a(t,s,function(e){return r(n,this)},{arity:1})}},81982:function(e,t,n){"use strict";var r=n(45946);e.exports=r&&!!Symbol.for&&!!Symbol.keyFor},16414:function(e,t,n){"use strict";var r,i,o,a,s=n(30456),l=n(37626),u=n(37722),c=n(99821),p=n(85848),d=n(81455),h=n(13322),f=n(47441),m=n(93837),g=n(60968),A=n(92350),b=n(18050),y=s.setImmediate,v=s.clearImmediate,S=s.process,w=s.Dispatch,E=s.Function,O=s.MessageChannel,T=s.String,C=0,x={},I="onreadystatechange";d(function(){r=s.location});var k=function(e){if(p(x,e)){var t=x[e];delete x[e],t()}},_=function(e){return function(){k(e)}},R=function(e){k(e.data)},P=function(e){s.postMessage(T(e),r.protocol+"//"+r.host)};(!y||!v)&&(y=function(e){g(arguments.length,1);var t=c(e)?e:E(e),n=f(arguments,1);return x[++C]=function(){l(t,void 0,n)},i(C),C},v=function(e){delete x[e]},b?i=function(e){S.nextTick(_(e))}:w&&w.now?i=function(e){w.now(_(e))}:O&&!A?(a=(o=new O).port2,o.port1.onmessage=R,i=u(a.postMessage,a)):s.addEventListener&&c(s.postMessage)&&!s.importScripts&&r&&"file:"!==r.protocol&&!d(P)?(i=P,s.addEventListener("message",R,!1)):i=I in m("script")?function(e){h.appendChild(m("script"))[I]=function(){h.removeChild(this),k(e)}}:function(e){setTimeout(_(e),0)}),e.exports={set:y,clear:v}},74121:function(e,t,n){"use strict";var r=n(12814);e.exports=r(1.1.valueOf)},77732:function(e,t,n){"use strict";var r=n(11573),i=Math.max,o=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):o(n,t)}},29499:function(e,t,n){"use strict";var r=n(67967),i=TypeError;e.exports=function(e){var t=r(e,"number");if("number"==typeof t)throw new i("Can't convert number to bigint");return BigInt(t)}},60821:function(e,t,n){"use strict";var r=n(11573),i=n(63663),o=RangeError;e.exports=function(e){if(void 0===e)return 0;var t=r(e),n=i(t);if(t!==n)throw new o("Wrong length or index");return n}},60621:function(e,t,n){"use strict";var r=n(34677),i=n(80456);e.exports=function(e){return r(i(e))}},11573:function(e,t,n){"use strict";var r=n(6083);e.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}},63663:function(e,t,n){"use strict";var r=n(11573),i=Math.min;e.exports=function(e){var t=r(e);return t>0?i(t,9007199254740991):0}},87670:function(e,t,n){"use strict";var r=n(80456),i=Object;e.exports=function(e){return i(r(e))}},26817:function(e,t,n){"use strict";var r=n(1285),i=RangeError;e.exports=function(e,t){var n=r(e);if(n%t)throw new i("Wrong offset");return n}},1285:function(e,t,n){"use strict";var r=n(11573),i=RangeError;e.exports=function(e){var t=r(e);if(t<0)throw new i("The argument can't be less than 0");return t}},67967:function(e,t,n){"use strict";var r=n(87494),i=n(86840),o=n(83139),a=n(36780),s=n(626),l=n(78583),u=TypeError,c=l("toPrimitive");e.exports=function(e,t){if(!i(e)||o(e))return e;var n,l=a(e,c);if(l){if(void 0===t&&(t="default"),!i(n=r(l,e,t))||o(n))return n;throw new u("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},91051:function(e,t,n){"use strict";var r=n(67967),i=n(83139);e.exports=function(e){var t=r(e,"string");return i(t)?t:t+""}},28149:function(e,t,n){"use strict";var r=n(78583)("toStringTag"),i={};i[r]="z",e.exports="[object z]"===String(i)},43576:function(e,t,n){"use strict";var r=n(34074),i=String;e.exports=function(e){if("Symbol"===r(e))throw TypeError("Cannot convert a Symbol value to a string");return i(e)}},27670:function(e){"use strict";var t=Math.floor;e.exports=function(e){var n=+e;if(n!=n||n<=0)return 0;if(n>=255)return 255;var r=t(n);return r+.5=0},ee=function(e,t){return $(e,t=A(t))?p(2,e[t]):U(e,t)},et=function(e,t,n){return $(e,t=A(t))&&v(n)&&b(n,"value")&&!b(n,"get")&&!b(n,"set")&&!n.configurable&&(!b(n,"writable")||n.writable)&&(!b(n,"enumerable")||n.enumerable)?(e[t]=n.value,e):F(e,t,n)};a?(!V&&(R.f=ee,_.f=et,X(Q,"buffer"),X(Q,"byteOffset"),X(Q,"byteLength"),X(Q,"length")),r({target:"Object",stat:!0,forced:!V},{getOwnPropertyDescriptor:ee,defineProperty:et}),e.exports=function(e,t,n){var a=e.match(/\d+/)[0]/8,l=e+(n?"Clamped":"")+"Array",u="get"+e,p="set"+e,h=i[l],A=h,b=A&&A.prototype,y={},S=function(e,t){var n=M(e);return n.view[u](t*a+n.byteOffset,!0)},E=function(e,t,r){var i=M(e);i.view[p](t*a+i.byteOffset,n?g(r):r,!0)},k=function(e,t){F(e,t,{get:function(){return S(this,t)},set:function(e){return E(this,t,e)},enumerable:!0})};V?s&&(A=t(function(e,t,n,r){return c(e,b),D(v(t)?J(t)?void 0!==r?new h(t,m(n,a),r):void 0!==n?new h(t,m(n,a)):new h(t):q(t)?P(A,t):o(C,A,t):new h(f(t)),e,A)}),O&&O(A,W),x(T(h),function(e){!(e in A)&&d(A,e,h[e])}),A.prototype=b):(A=t(function(e,t,n,r){c(e,b);var i,s,l,u=0,p=0;if(v(t)){if(J(t)){i=t,p=m(n,a);var d=t.byteLength;if(void 0===r){if(d%a||(s=d-p)<0)throw new j(Y)}else if((s=f(r)*a)+p>d)throw new j(Y);l=s/a}else if(q(t))return P(A,t);else return o(C,A,t)}else i=new z(s=(l=f(t))*a);for(L(e,{buffer:i,byteOffset:p,byteLength:s,length:l,view:new Z(i)});u1?arguments[1]:void 0,O=void 0!==E;O&&o(E);var T=s(e),C=c(T);if(C&&!p(C))for(v=(y=u(T,C)).next,T=[];!(b=i(v,y)).done;)T.push(b.value);for(O&&w>2&&(E=r(E,arguments[2])),n=l(T),g=d(m=new(h(S))(n)),t=0;n>t;t++)A=O?E(T[t],t):T[t],m[t]=g?f(A):+A;return m}},18508:function(e,t,n){"use strict";var r=n(12814),i=0,o=Math.random(),a=r(1.1.toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++i+o,36)}},47026:function(e,t,n){"use strict";var r=n(30456),i=n(12814),o=n(61257),a=n(74420),s=n(85848),l=n(50135),u=n(67521),c=n(87556),p=l.c2i,d=l.c2iUrl,h=r.SyntaxError,f=r.TypeError,m=i("".charAt),g=function(e,t){for(var n=e.length;t>16&255,i>>8&255,255&i];if(2===r){if(n&&0!==o[1])throw new h("Extra bits");return[o[0]]}if(3===r){if(n&&0!==o[2])throw new h("Extra bits");return[o[0],o[1]]}return o},b=function(e,t,n){for(var r=t.length,i=0;i0){if("stop-before-partial"===l)break;if("loose"===l){if(1===E.length)throw new h("Malformed padding: exactly one additional character");S=b(v,A(E,i,!1),S)}else throw new h("Missing padding")}w=y;break}var T=m(e,O);if(++O,"="===T){if(E.length<2)throw new h("Padding is too early");if(O=g(e,O),2===E.length){if(O===y){if("stop-before-partial"===l)break;throw new h("Malformed padding: only one =")}"="===m(e,O)&&(O=g(e,++O))}if(O>4}return{bytes:i,read:c<<1}}},1110:function(e,t,n){"use strict";var r=n(81455),i=n(78583),o=n(61360),a=n(83294),s=i("iterator");e.exports=!r(function(){var e=new URL("b?a=1&b=2&c=3","https://a"),t=e.searchParams,n=new URLSearchParams("a=1&a=2&b=3"),r="";return e.pathname="c%20d",t.forEach(function(e,n){t.delete("b"),r+=n+e}),n.delete("a",2),n.delete("b",void 0),a&&(!e.toJSON||!n.has("a",1)||n.has("a",2)||!n.has("a",void 0)||n.has("b"))||!t.size&&(a||!o)||!t.sort||"https://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==r||"x"!==new URL("https://x",void 0).host})},56254:function(e,t,n){"use strict";var r=n(45946);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},77174:function(e,t,n){"use strict";var r=n(61360),i=n(81455);e.exports=r&&i(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},60968:function(e){"use strict";var t=TypeError;e.exports=function(e,n){if(eb&&d(r,arguments[b]),r});if(O.prototype=w,"Error"!==v?s?s(O,E):l(O,E,{name:!0}):f&&A in S&&(u(O,S,A),u(O,S,"prepareStackTrace")),l(O,S),!m)try{w.name!==v&&o(w,"name",v),w.constructor=O}catch(e){}return O}}},87671:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(37626),a=n(81455),s=n(43150),l="AggregateError",u=i(l),c=!a(function(){return 1!==u([1]).errors[0]})&&a(function(){return 7!==u([1],l,{cause:7}).cause});r({global:!0,constructor:!0,arity:2,forced:c},{AggregateError:s(l,function(e){return function(t,n){return o(e,this,arguments)}},c,!0)})},50355:function(e,t,n){"use strict";var r=n(77341),i=n(86711),o=n(43424),a=n(46682),s=n(27130),l=n(31153),u=n(92444),c=n(98590),p=n(64504),d=n(50807),h=n(45249),f=n(74735),m=n(78583)("toStringTag"),g=Error,A=[].push,b=function(e,t){var n,r=i(y,this);a?n=a(new g,r?o(this):y):u(n=r?this:l(y),m,"Error"),void 0!==t&&u(n,"message",f(t)),d(n,b,n.stack,1),arguments.length>2&&p(n,arguments[2]);var s=[];return h(e,A,{that:s}),u(n,"errors",s),n};a?a(b,g):s(b,g,{name:!0});var y=b.prototype=l(g.prototype,{constructor:c(1,b),message:c(1,""),name:c(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:b})},446:function(e,t,n){"use strict";n(50355)},78136:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(87479),a=n(29483),s="ArrayBuffer",l=o[s];r({global:!0,constructor:!0,forced:i[s]!==l},{ArrayBuffer:l}),a(s)},97810:function(e,t,n){"use strict";var r=n(61360),i=n(42749),o=n(61851),a=ArrayBuffer.prototype;r&&!("detached"in a)&&i(a,"detached",{configurable:!0,get:function(){return o(this)}})},85696:function(e,t,n){"use strict";var r=n(77341),i=n(40163);r({target:"ArrayBuffer",stat:!0,forced:!i.NATIVE_ARRAY_BUFFER_VIEWS},{isView:i.isView})},73350:function(e,t,n){"use strict";var r=n(77341),i=n(91609),o=n(81455),a=n(87479),s=n(36539),l=n(77732),u=n(63663),c=a.ArrayBuffer,p=a.DataView,d=p.prototype,h=i(c.prototype.slice),f=i(d.getUint8),m=i(d.setUint8);r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o(function(){return!new c(2).slice(1,void 0).byteLength})},{slice:function(e,t){if(h&&void 0===t)return h(s(this),e);for(var n=s(this).byteLength,r=l(e,n),i=l(void 0===t?n:t,n),o=new c(u(i-r)),a=new p(this),d=new p(o),g=0;r=0?r:n+r;return s<0||s>=n?void 0:t[s]}}),s("at")},12212:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(61748),a=n(86840),s=n(87670),l=n(80555),u=n(56182),c=n(82250),p=n(82919),d=n(85016),h=n(18471),f=n(78583),m=n(21033),g=f("isConcatSpreadable"),A=m>=51||!i(function(){var e=[];return e[g]=!1,e.concat()[0]!==e}),b=function(e){if(!a(e))return!1;var t=e[g];return void 0!==t?!!t:o(e)};r({target:"Array",proto:!0,arity:1,forced:!A||!h("concat")},{concat:function(e){var t,n,r,i,o,a=s(this),h=d(a,0),f=0;for(t=-1,r=arguments.length;t1?arguments[1]:void 0)}})},63430:function(e,t,n){"use strict";var r=n(77341),i=n(12298),o=n(84950);r({target:"Array",proto:!0},{fill:i}),o("fill")},25518:function(e,t,n){"use strict";var r=n(77341),i=n(15368).filter;r({target:"Array",proto:!0,forced:!n(18471)("filter")},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},14487:function(e,t,n){"use strict";var r=n(77341),i=n(15368).findIndex,o=n(84950),a="findIndex",s=!0;a in[]&&[,][a](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o(a)},91298:function(e,t,n){"use strict";var r=n(77341),i=n(70225).findLastIndex,o=n(84950);r({target:"Array",proto:!0},{findLastIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o("findLastIndex")},86782:function(e,t,n){"use strict";var r=n(77341),i=n(70225).findLast,o=n(84950);r({target:"Array",proto:!0},{findLast:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o("findLast")},70021:function(e,t,n){"use strict";var r=n(77341),i=n(15368).find,o=n(84950),a="find",s=!0;a in[]&&[,][a](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o(a)},81315:function(e,t,n){"use strict";var r=n(77341),i=n(46381),o=n(65085),a=n(87670),s=n(80555),l=n(85016);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),r=s(n);return o(e),i(t=l(n,0),n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},24674:function(e,t,n){"use strict";var r=n(77341),i=n(46381),o=n(87670),a=n(80555),s=n(11573),l=n(85016);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=o(this),n=a(t),r=void 0===e?1:s(e),u=l(t,0);return i(u,t,t,n,0,r),u}})},49193:function(e,t,n){"use strict";var r=n(77341),i=n(36751);r({target:"Array",proto:!0,forced:[].forEach!==i},{forEach:i})},16995:function(e,t,n){"use strict";var r=n(77341),i=n(76093),o=n(81455),a=Array.fromAsync;r({target:"Array",stat:!0,forced:!a||o(function(){var e=0;return a.call(function(){return e++,[]},{length:0}),1!==e})},{fromAsync:i})},55204:function(e,t,n){"use strict";var r=n(77341),i=n(55782);r({target:"Array",stat:!0,forced:!n(23277)(function(e){Array.from(e)})},{from:i})},39710:function(e,t,n){"use strict";var r=n(77341),i=n(83355).includes,o=n(81455),a=n(84950),s=o(function(){return![,].includes()}),l=o(function(){return[,1].includes(void 0,1)});r({target:"Array",proto:!0,forced:s||l},{includes:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("includes")},87622:function(e,t,n){"use strict";var r=n(77341),i=n(91609),o=n(83355).indexOf,a=n(88486),s=i([].indexOf),l=!!s&&1/s([1],1,-0)<0;r({target:"Array",proto:!0,forced:l||!a("indexOf")},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return l?s(this,e,t)||0:o(this,e,t)}})},21868:function(e,t,n){"use strict";n(77341)({target:"Array",stat:!0},{isArray:n(61748)})},26847:function(e,t,n){"use strict";var r=n(60621),i=n(84950),o=n(90649),a=n(89904),s=n(68235).f,l=n(55852),u=n(37056),c=n(83294),p=n(61360),d="Array Iterator",h=a.set,f=a.getterFor(d);e.exports=l(Array,"Array",function(e,t){h(this,{type:d,target:r(e),index:0,kind:t})},function(){var e=f(this),t=e.target,n=e.index++;if(!t||n>=t.length)return e.target=null,u(void 0,!0);switch(e.kind){case"keys":return u(n,!1);case"values":return u(t[n],!1)}return u([n,t[n]],!1)},"values");var m=o.Arguments=o.Array;if(i("keys"),i("values"),i("entries"),!c&&p&&"values"!==m.name)try{s(m,"name",{value:"values"})}catch(e){}},38997:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(34677),a=n(60621),s=n(88486),l=i([].join);r({target:"Array",proto:!0,forced:o!==Object||!s("join",",")},{join:function(e){return l(a(this),void 0===e?",":e)}})},66778:function(e,t,n){"use strict";var r=n(77341),i=n(58014);r({target:"Array",proto:!0,forced:i!==[].lastIndexOf},{lastIndexOf:i})},24819:function(e,t,n){"use strict";var r=n(77341),i=n(15368).map;r({target:"Array",proto:!0,forced:!n(18471)("map")},{map:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},89674:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(62219),a=n(82250),s=n(82919),l=Array;r({target:"Array",stat:!0,forced:i(function(){function e(){}return!(l.of.call(e) instanceof e)})},{of:function(){for(var e=0,t=arguments.length,n=new(o(this)?this:l)(t);t>e;)a(n,e,arguments[e++]);return s(n,t),n}})},2394:function(e,t,n){"use strict";var r=n(77341),i=n(87670),o=n(80555),a=n(82919),s=n(56182),l=n(81455)(function(){return 4294967297!==[].push.call({length:4294967296},1)});r({target:"Array",proto:!0,arity:1,forced:l||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var t=i(this),n=o(t),r=arguments.length;s(n+r);for(var l=0;l79&&a<83||!o("reduceRight")},{reduceRight:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},44438:function(e,t,n){"use strict";var r=n(77341),i=n(39845).left,o=n(88486),a=n(21033),s=n(18050);r({target:"Array",proto:!0,forced:!s&&a>79&&a<83||!o("reduce")},{reduce:function(e){var t=arguments.length;return i(this,e,t,t>1?arguments[1]:void 0)}})},6988:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(61748),a=i([].reverse),s=[1,2];r({target:"Array",proto:!0,forced:String(s)===String(s.reverse())},{reverse:function(){return o(this)&&(this.length=this.length),a(this)}})},69643:function(e,t,n){"use strict";var r=n(77341),i=n(61748),o=n(62219),a=n(86840),s=n(77732),l=n(80555),u=n(60621),c=n(82250),p=n(82919),d=n(78583),h=n(18471),f=n(47441),m=h("slice"),g=d("species"),A=Array,b=Math.max;r({target:"Array",proto:!0,forced:!m},{slice:function(e,t){var n,r,d,h=u(this),m=l(h),y=s(e,m),v=s(void 0===t?m:t,m);if(i(h)&&(o(n=h.constructor)&&(n===A||i(n.prototype))?n=void 0:a(n)&&null===(n=n[g])&&(n=void 0),n===A||void 0===n))return f(h,y,v);for(d=0,r=new(void 0===n?A:n)(b(v-y,0));y1?arguments[1]:void 0)}})},18574:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(65085),a=n(87670),s=n(80555),l=n(90533),u=n(43576),c=n(81455),p=n(17322),d=n(88486),h=n(61392),f=n(71949),m=n(21033),g=n(53047),A=[],b=i(A.sort),y=i(A.push),v=c(function(){A.sort(void 0)}),S=c(function(){A.sort(null)}),w=d("sort"),E=!c(function(){if(m)return m<70;if(!h||!(h>3)){if(f)return!0;if(g)return g<603;var e,t,n,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)A.push({k:t+r,v:n})}for(A.sort(function(e,t){return t.v-e.v}),r=0;ri?1:-1})),n=s(c),r=0;rv-r+n;g--)d(y,g-1)}else if(n>r)for(g=v-r;g>S;g--)A=g+r-1,b=g+n-1,A in y?y[b]=y[A]:d(y,b);for(g=0;g=r||p<0)throw new u("Incorrect index");for(var d=new l(r),h=0;h>>15,n=e>>>10&31,r=1023&e;return 31===n?0===r?0===t?1/0:-1/0:NaN:0===n?r*(0===t?a:-a):o(2,n-15)*(0===t?1+9765625e-10*r:-1-9765625e-10*r)},l=i(DataView.prototype.getUint16);r({target:"DataView",proto:!0},{getFloat16:function(e){return s(l(this,e,arguments.length>1&&arguments[1]))}})},7324:function(e,t,n){"use strict";n(11568)},46209:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(99930),a=n(60821),s=n(1289),l=n(46808),u=Math.floor,c=Math.pow,p=function(e){if(e!=e)return 32256;if(0===e)return(1/e==-1/0)<<15;var t=e<0;if(t&&(e=-e),e>=65520)return t<<15|31744;if(e<61005353927612305e-21)return t<<15|l(16777216*e);var n=u(s(e));if(-15===n)return t<<15|1024;var r=l((e*c(2,-n)-1)*1024);return 1024===r?t<<15|n+16<<10:t<<15|n+15<<10|r},d=i(DataView.prototype.setUint16);r({target:"DataView",proto:!0},{setFloat16:function(e,t){d(o(this),a(e),p(+t),arguments.length>2&&arguments[2])}})},344:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(81455)(function(){return 120!==new Date(16e11).getYear()}),a=i(Date.prototype.getFullYear);r({target:"Date",proto:!0,forced:o},{getYear:function(){return a(this)-1900}})},33272:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=Date,a=i(o.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return a(new o)}})},71190:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(11573),a=Date.prototype,s=i(a.getTime),l=i(a.setFullYear);r({target:"Date",proto:!0},{setYear:function(e){s(this);var t=+e;if(t!=t)return l(this,t);var n=o(t);return l(this,n>=0&&n<=99?n+1900:n)}})},12244:function(e,t,n){"use strict";n(77341)({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},46323:function(e,t,n){"use strict";var r=n(77341),i=n(61305);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==i},{toISOString:i})},59129:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(87670),a=n(67967);r({target:"Date",proto:!0,arity:1,forced:i(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})},{toJSON:function(e){var t=o(this),n=a(t,"number");return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},61712:function(e,t,n){"use strict";var r=n(85848),i=n(40453),o=n(87789),a=n(78583)("toPrimitive"),s=Date.prototype;!r(s,a)&&i(s,a,o)},13699:function(e,t,n){"use strict";var r=n(12814),i=n(40453),o=Date.prototype,a="Invalid Date",s="toString",l=r(o[s]),u=r(o.getTime);String(new Date(NaN))!==a&&i(o,s,function(){var e=u(this);return e==e?l(this):a})},88802:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(76451),a=n(65085),s=n(70591),l=n(40453),u=n(26252),c=n(42749),p=n(78583),d=n(89904),h=n(50098),f=o("SuppressedError"),m=ReferenceError,g=p("dispose"),A=p("toStringTag"),b="DisposableStack",y=d.set,v=d.getterFor(b),S="sync-dispose",w="disposed",E=function(e){var t=v(e);if(t.state===w)throw new m(b+" already disposed");return t},O=function(){y(s(this,T),{type:b,state:"pending",stack:[]}),!i&&(this.disposed=!1)},T=O.prototype;u(T,{dispose:function(){var e,t=v(this);if(t.state!==w){t.state=w,!i&&(this.disposed=!0);for(var n=t.stack,r=n.length,o=!1;r;){var a=n[--r];n[r]=null;try{a()}catch(t){o?e=new f(t,e):(o=!0,e=t)}}if(t.stack=null,o)throw e}},use:function(e){return h(E(this),e,S),e},adopt:function(e,t){var n=E(this);return a(t),h(n,void 0,S,function(){t(e)}),e},defer:function(e){var t=E(this);a(e),h(t,void 0,S,e)},move:function(){var e=E(this),t=new O;return v(t).stack=e.stack,e.stack=[],e.state=w,!i&&(this.disposed=!0),t}}),i&&c(T,"disposed",{configurable:!0,get:function(){return v(this).state===w}}),l(T,g,T.dispose,{name:"dispose"}),l(T,A,b,{nonWritable:!0}),r({global:!0,constructor:!0},{DisposableStack:O})},40777:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(37626),a=n(43150),s="WebAssembly",l=i[s],u=7!==Error("e",{cause:7}).cause,c=function(e,t){var n={};n[e]=a(e,t,u),r({global:!0,constructor:!0,arity:1,forced:u},n)},p=function(e,t){if(l&&l[e]){var n={};n[e]=a(s+"."+e,t,u),r({target:s,stat:!0,constructor:!0,arity:1,forced:u},n)}};c("Error",function(e){return function(t){return o(e,this,arguments)}}),c("EvalError",function(e){return function(t){return o(e,this,arguments)}}),c("RangeError",function(e){return function(t){return o(e,this,arguments)}}),c("ReferenceError",function(e){return function(t){return o(e,this,arguments)}}),c("SyntaxError",function(e){return function(t){return o(e,this,arguments)}}),c("TypeError",function(e){return function(t){return o(e,this,arguments)}}),c("URIError",function(e){return function(t){return o(e,this,arguments)}}),p("CompileError",function(e){return function(t){return o(e,this,arguments)}}),p("LinkError",function(e){return function(t){return o(e,this,arguments)}}),p("RuntimeError",function(e){return function(t){return o(e,this,arguments)}})},23384:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(86840),a=n(34074),s=n(81455),l="Error",u="DOMException",c=Object.setPrototypeOf||({}).__proto__,p=i(u),d=Error,h=d.isError;r({target:"Error",stat:!0,sham:!0,forced:!h||!c||s(function(){return p&&!h(new p(u))||!h(new d(l,{cause:function(){}}))||h(i("Object","create")(d.prototype))})},{isError:function(e){if(!o(e))return!1;var t=a(e);return t===l||t===u}})},31418:function(e,t,n){"use strict";var r=n(40453),i=n(60708),o=Error.prototype;o.toString!==i&&r(o,"toString",i)},43457:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(43576),a=i("".charAt),s=i("".charCodeAt),l=i(/./.exec),u=i(1.1.toString),c=i("".toUpperCase),p=/[\w*+\-./@]/,d=function(e,t){for(var n=u(e,16);n.length=n.length){this.done=!0;return}var r=n[t];this.iterables[t]=null,e=this.iterator=a(i(r.method,r.iterable)),this.next=e.next}var o=a(i(this.next,e));if(o.done){this.iterator=null,this.next=null;continue}return o.value}});r({target:"Iterator",stat:!0,forced:u},{concat:function(){for(var e=arguments.length,t=c(e),n=0;n94906265.62425156?a(t)+l:i(t-1+s(t-1)*s(t+1))}})},22773:function(e,t,n){"use strict";var r=n(77341),i=Math.asinh,o=Math.log,a=Math.sqrt,s=Math.LN2;r({target:"Math",stat:!0,forced:!(i&&1/i(0)>0)},{asinh:function e(t){var n=+t;return isFinite(n)&&0!==n?n<0?-e(-n):n>94906265.62425156?o(n)+s:o(n+a(n*n+1)):n}})},10416:function(e,t,n){"use strict";var r=n(77341),i=n(21638),o=Math.atanh;r({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(e){var t=+e;return 0===t?t:i(2*t/(1-t))/2}})},48783:function(e,t,n){"use strict";var r=n(77341),i=n(86503),o=Math.abs,a=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){var t=+e;return i(t)*a(o(t),1/3)}})},69094:function(e,t,n){"use strict";var r=n(77341),i=Math.floor,o=Math.log,a=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){var t=e>>>0;return t?31-i(o(t+.5)*a):32}})},15170:function(e,t,n){"use strict";var r=n(77341),i=n(1523),o=Math.cosh,a=Math.abs,s=Math.E;r({target:"Math",stat:!0,forced:!o||o(710)===1/0},{cosh:function(e){var t=i(a(e)-1)+1;return s/2*(t+1/(t*s*s))}})},60878:function(e,t,n){"use strict";var r=n(77341),i=n(1523);r({target:"Math",stat:!0,forced:i!==Math.expm1},{expm1:i})},23437:function(e,t,n){"use strict";var r=n(77341),i=n(20338);r({target:"Math",stat:!0},{f16round:function(e){return i(e,9765625e-10,65504,6103515625e-14)}})},89067:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{fround:n(10382)})},69068:function(e,t,n){"use strict";var r=n(77341),i=Math.hypot,o=Math.abs,a=Math.sqrt;r({target:"Math",stat:!0,arity:2,forced:!!i&&i(1/0,NaN)!==1/0},{hypot:function(e,t){for(var n,r,i=0,s=0,l=arguments.length,u=0;s0?i+=(r=n/u)*r:i+=n;return u===1/0?1/0:u*a(i)}})},52978:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=Math.imul;r({target:"Math",stat:!0,forced:i(function(){return -5!==o(4294967295,5)||2!==o.length})},{imul:function(e,t){var n=+e,r=+t,i=65535&n,o=65535&r;return 0|i*o+((65535&n>>>16)*o+i*(65535&r>>>16)<<16>>>0)}})},27427:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{log10:n(4957)})},95417:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{log1p:n(21638)})},62958:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{log2:n(1289)})},5235:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{sign:n(86503)})},40563:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(1523),a=Math.abs,s=Math.exp,l=Math.E;r({target:"Math",stat:!0,forced:i(function(){return -.00000000000000002!==Math.sinh(-.00000000000000002)})},{sinh:function(e){var t=+e;return 1>a(t)?(o(t)-o(-t))/2:(s(t-1)-s(-t-1))*(l/2)}})},23178:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(45249),a=RangeError,s=TypeError,l=1/0,u=NaN,c=Math.abs,p=Math.pow,d=i([].push),h=p(2,1023),f=p(2,53)-1,m=Number.MAX_VALUE,g=p(2,971),A={},b={},y={},v={},S={},w=function(e,t){var n=e+t;return{hi:n,lo:t-(n-e)}};r({target:"Math",stat:!0},{sumPrecise:function(e){var t,n,r,i,p,E,O=[],T=0,C=v;switch(o(e,function(e){if(++T>f)throw new a("Maximum allowed index exceeded");if("number"!=typeof e)throw new s("Value is not a number");C!==A&&(e!=e?C=A:e===l?C=C===b?A:y:e===-l?C=C===y?A:b:(0!==e||1/e===l)&&(C===v||C===S)&&(C=S,d(O,e)))}),C){case A:return u;case b:return-l;case y:return l;case v:return -0}for(var x=[],I=0,k=0;k=0?x[N]:0;if(N--,c(I)>1||I>0&&D>0||I<0&&D<0)return I>0?l:-l;if(i=(r=w(I*h,D/2)).hi,p=2*r.lo,c(2*i)===l)return i>0?i===h&&p===-(g/2)&&N>=0&&x[N]<0?m:l:i===-h&&p===g/2&&N>=0&&x[N]>0?-m:-l;0!==p&&(x[++N]=p,p=0),i*=2}for(;N>=0&&(i=(r=w(i,x[N--])).hi,0===(p=r.lo)););return N>=0&&(p<0&&x[N]<0||p>0&&x[N]>0)&&(t=i+(n=2*p),n===t-i&&(i=t)),i}})},88433:function(e,t,n){"use strict";var r=n(77341),i=n(1523),o=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=+e,n=i(t),r=i(-t);return n===1/0?1:r===1/0?-1:(n-r)/(o(t)+o(-t))}})},28273:function(e,t,n){"use strict";n(78711)(Math,"Math",!0)},9262:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{trunc:n(6083)})},96821:function(e,t,n){"use strict";var r=n(77341),i=n(83294),o=n(61360),a=n(30456),s=n(61728),l=n(12814),u=n(37653),c=n(85848),p=n(35724),d=n(86711),h=n(83139),f=n(67967),m=n(81455),g=n(25487).f,A=n(13895).f,b=n(68235).f,y=n(74121),v=n(27169).trim,S="Number",w=a[S],E=s[S],O=w.prototype,T=a.TypeError,C=l("".slice),x=l("".charCodeAt),I=function(e){var t=f(e,"number");return"bigint"==typeof t?t:k(t)},k=function(e){var t,n,r,i,o,a,s,l,u=f(e,"number");if(h(u))throw new T("Cannot convert a Symbol value to a number");if("string"==typeof u&&u.length>2){if(43===(t=x(u=v(u),0))||45===t){if(88===(n=x(u,2))||120===n)return NaN}else if(48===t){switch(x(u,1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+u}for(s=0,a=(o=C(u,2)).length;si)return NaN;return parseInt(o,r)}}return+u},_=u(S,!w(" 0o1")||!w("0b1")||w("+0x1")),R=function(e){var t,n=arguments.length<1?0:w(I(e));return(t=this,d(O,t)&&m(function(){y(t)}))?p(Object(n),this,R):n};R.prototype=O,_&&!i&&(O.constructor=R),r({global:!0,constructor:!0,wrap:!0,forced:_},{Number:R});var P=function(e,t){for(var n,r=o?g(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),i=0;r.length>i;i++)c(t,n=r[i])&&!c(e,n)&&b(e,n,A(t,n))};i&&E&&P(s[S],E),(_||i)&&P(s[S],w)},32396:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:2220446049250313e-31})},60515:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0},{isFinite:n(8942)})},35385:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0},{isInteger:n(8504)})},99233:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},12389:function(e,t,n){"use strict";var r=n(77341),i=n(8504),o=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return i(e)&&9007199254740991>=o(e)}})},68076:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},58266:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},95203:function(e,t,n){"use strict";var r=n(77341),i=n(85133);r({target:"Number",stat:!0,forced:Number.parseFloat!==i},{parseFloat:i})},87854:function(e,t,n){"use strict";var r=n(77341),i=n(92781);r({target:"Number",stat:!0,forced:Number.parseInt!==i},{parseInt:i})},60226:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(11573),a=n(74121),s=n(84838),l=n(4957),u=n(81455),c=RangeError,p=String,d=isFinite,h=Math.abs,f=Math.floor,m=Math.pow,g=Math.round,A=i(1.1.toExponential),b=i(s),y=i("".slice),v=m(10,308),S="-6.9000e-11"===A(-.000000000069,4)&&"1.25e+0"===A(1.255,2)&&"1.235e+4"===A(12345,3)&&"3e+1"===A(25,0);r({target:"Number",proto:!0,forced:!S||!(u(function(){A(1,1/0)})&&u(function(){A(1,-1/0)}))||!!u(function(){A(1/0,1/0),A(NaN,1/0)})},{toExponential:function(e){var t,n,r,i,s,u,w=a(this);if(void 0===e)return A(w);var E=o(e);if(!d(w))return String(w);if(E<0||E>20)throw new c("Incorrect fraction digits");if(S)return A(w,E);var O="";return w<0&&(O="-",w=-w),0===w?(n=0,t=b("0",E+1)):(s=g(u=E-(n=f(l(w)))>=308?w*v*m(10,E-n-308):w/m(10,n-E)),u-s>=.5&&(s+=1),s>=m(10,E+1)&&(s/=10,n+=1),t=p(s)),0!==E&&(t=y(t,0,1)+"."+y(t,1)),0===n?(r="+",i="0"):(r=n>0?"+":"-",i=p(h(n))),O+(t+="e"+r+i)}})},25718:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(11573),a=n(74121),s=n(84838),l=n(81455),u=RangeError,c=String,p=Math.floor,d=i(s),h=i("".slice),f=i(1.1.toFixed),m=function(e,t,n){return 0===t?n:t%2==1?m(e,t-1,n*e):m(e*e,t/2,n)},g=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t},A=function(e,t,n){for(var r=-1,i=n;++r<6;)i+=t*e[r],e[r]=i%1e7,i=p(i/1e7)},b=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=p(r/t),r=r%t*1e7},y=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=c(e[t]);n=""===n?r:n+d("0",7-r.length)+r}return n};r({target:"Number",proto:!0,forced:l(function(){return"0.000"!==f(8e-5,3)||"1"!==f(.9,0)||"1.25"!==f(1.255,2)||"1000000000000000128"!==f(0xde0b6b3a7640080,0)})||!l(function(){f({})})},{toFixed:function(e){var t,n,r,i,s=a(this),l=o(e),p=[0,0,0,0,0,0],f="",v="0";if(l<0||l>20)throw new u("Incorrect fraction digits");if(s!=s)return"NaN";if(s<=-1e21||s>=1e21)return c(s);if(s<0&&(f="-",s=-s),s>1e-21){if(n=((t=g(s*m(2,69,1))-69)<0?s*m(2,-t,1):s/m(2,t,1))*4503599627370496,(t=52-t)>0){for(A(p,0,n),r=l;r>=7;)A(p,1e7,0),r-=7;for(A(p,m(10,r,1),0),r=t-1;r>=23;)b(p,8388608),r-=23;b(p,1<0?f+((i=v.length)<=l?"0."+d("0",l-i)+v:h(v,0,i-l)+"."+h(v,i-l)):f+v}})},4295:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(81455),a=n(74121),s=i(1.1.toPrecision);r({target:"Number",proto:!0,forced:o(function(){return"1"!==s(1,void 0)})||!o(function(){s({})})},{toPrecision:function(e){return void 0===e?s(a(this)):s(a(this),e)}})},87799:function(e,t,n){"use strict";var r=n(77341),i=n(60372);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==i},{assign:i})},79817:function(e,t,n){"use strict";n(77341)({target:"Object",stat:!0,sham:!n(61360)},{create:n(31153)})},61550:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(28920),a=n(65085),s=n(87670),l=n(68235);i&&r({target:"Object",proto:!0,forced:o},{__defineGetter__:function(e,t){l.f(s(this),e,{get:a(t),enumerable:!0,configurable:!0})}})},70349:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(15242).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==o,sham:!i},{defineProperties:o})},15142:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(68235).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==o,sham:!i},{defineProperty:o})},83836:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(28920),a=n(65085),s=n(87670),l=n(68235);i&&r({target:"Object",proto:!0,forced:o},{__defineSetter__:function(e,t){l.f(s(this),e,{set:a(t),enumerable:!0,configurable:!0})}})},48454:function(e,t,n){"use strict";var r=n(77341),i=n(99717).entries;r({target:"Object",stat:!0},{entries:function(e){return i(e)}})},59741:function(e,t,n){"use strict";var r=n(77341),i=n(63058),o=n(81455),a=n(86840),s=n(6586).onFreeze,l=Object.freeze;r({target:"Object",stat:!0,forced:o(function(){l(1)}),sham:!i},{freeze:function(e){return l&&a(e)?l(s(e)):e}})},18514:function(e,t,n){"use strict";var r=n(77341),i=n(45249),o=n(82250);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return i(e,function(e,n){o(t,e,n)},{AS_ENTRIES:!0}),t}})},96389:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(60621),a=n(13895).f,s=n(61360);r({target:"Object",stat:!0,forced:!s||i(function(){a(1)}),sham:!s},{getOwnPropertyDescriptor:function(e,t){return a(o(e),t)}})},19836:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(27040),a=n(60621),s=n(13895),l=n(82250);r({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),i=s.f,u=o(r),c={},p=0;u.length>p;)void 0!==(n=i(r,t=u[p++]))&&l(c,t,n);return c}})},56995:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(73361).f;r({target:"Object",stat:!0,forced:i(function(){return!Object.getOwnPropertyNames(1)})},{getOwnPropertyNames:o})},18621:function(e,t,n){"use strict";var r=n(77341),i=n(45946),o=n(81455),a=n(74713),s=n(87670);r({target:"Object",stat:!0,forced:!i||o(function(){a.f(1)})},{getOwnPropertySymbols:function(e){var t=a.f;return t?t(s(e)):[]}})},29573:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(87670),a=n(43424),s=n(64276);r({target:"Object",stat:!0,forced:i(function(){a(1)}),sham:!s},{getPrototypeOf:function(e){return a(o(e))}})},78307:function(e,t,n){"use strict";var r=n(77341),i=n(82250),o=n(76451),a=n(12814),s=n(65085),l=n(80456),u=n(91051),c=n(45249),p=n(81455),d=Object.groupBy,h=o("Object","create"),f=a([].push);r({target:"Object",stat:!0,forced:!d||p(function(){return 1!==d("ab",function(e){return e}).a.length})},{groupBy:function(e,t){l(e),s(t);var n=h(null),r=0;return c(e,function(e){var o=u(t(e,r++));o in n?f(n[o],e):i(n,o,[e])}),n}})},90601:function(e,t,n){"use strict";n(77341)({target:"Object",stat:!0},{hasOwn:n(85848)})},98354:function(e,t,n){"use strict";var r=n(77341),i=n(25549);r({target:"Object",stat:!0,forced:Object.isExtensible!==i},{isExtensible:i})},70822:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(86840),a=n(32185),s=n(30426),l=Object.isFrozen;r({target:"Object",stat:!0,forced:s||i(function(){l(1)})},{isFrozen:function(e){return!o(e)||!!s&&"ArrayBuffer"===a(e)||!!l&&l(e)}})},28501:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(86840),a=n(32185),s=n(30426),l=Object.isSealed;r({target:"Object",stat:!0,forced:s||i(function(){l(1)})},{isSealed:function(e){return!o(e)||!!s&&"ArrayBuffer"===a(e)||!!l&&l(e)}})},29784:function(e,t,n){"use strict";n(77341)({target:"Object",stat:!0},{is:n(46149)})},24533:function(e,t,n){"use strict";var r=n(77341),i=n(87670),o=n(35387);r({target:"Object",stat:!0,forced:n(81455)(function(){o(1)})},{keys:function(e){return o(i(e))}})},67405:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(28920),a=n(87670),s=n(91051),l=n(43424),u=n(13895).f;i&&r({target:"Object",proto:!0,forced:o},{__lookupGetter__:function(e){var t,n=a(this),r=s(e);do if(t=u(n,r))return t.get;while(n=l(n))}})},85437:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(28920),a=n(87670),s=n(91051),l=n(43424),u=n(13895).f;i&&r({target:"Object",proto:!0,forced:o},{__lookupSetter__:function(e){var t,n=a(this),r=s(e);do if(t=u(n,r))return t.set;while(n=l(n))}})},96395:function(e,t,n){"use strict";var r=n(77341),i=n(86840),o=n(6586).onFreeze,a=n(63058),s=n(81455),l=Object.preventExtensions;r({target:"Object",stat:!0,forced:s(function(){l(1)}),sham:!a},{preventExtensions:function(e){return l&&i(e)?l(o(e)):e}})},28417:function(e,t,n){"use strict";var r=n(61360),i=n(42749),o=n(86840),a=n(89268),s=n(87670),l=n(80456),u=Object.getPrototypeOf,c=Object.setPrototypeOf,p=Object.prototype,d="__proto__";if(r&&u&&c&&!(d in p))try{i(p,d,{configurable:!0,get:function(){return u(s(this))},set:function(e){var t=l(this);a(e)&&o(t)&&c(t,e)}})}catch(e){}},36172:function(e,t,n){"use strict";var r=n(77341),i=n(86840),o=n(6586).onFreeze,a=n(63058),s=n(81455),l=Object.seal;r({target:"Object",stat:!0,forced:s(function(){l(1)}),sham:!a},{seal:function(e){return l&&i(e)?l(o(e)):e}})},821:function(e,t,n){"use strict";n(77341)({target:"Object",stat:!0},{setPrototypeOf:n(46682)})},54480:function(e,t,n){"use strict";var r=n(28149),i=n(40453),o=n(9483);!r&&i(Object.prototype,"toString",o,{unsafe:!0})},69920:function(e,t,n){"use strict";var r=n(77341),i=n(99717).values;r({target:"Object",stat:!0},{values:function(e){return i(e)}})},35100:function(e,t,n){"use strict";var r=n(77341),i=n(85133);r({global:!0,forced:parseFloat!==i},{parseFloat:i})},70820:function(e,t,n){"use strict";var r=n(77341),i=n(92781);r({global:!0,forced:parseInt!==i},{parseInt:i})},10189:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(65085),a=n(33803),s=n(59090),l=n(45249);r({target:"Promise",stat:!0,forced:n(65202)},{allSettled:function(e){var t=this,n=a.f(t),r=n.resolve,u=n.reject,c=s(function(){var n=o(t.resolve),a=[],s=0,u=1;l(e,function(e){var o=s++,l=!1;u++,i(n,t,e).then(function(e){!l&&(l=!0,a[o]={status:"fulfilled",value:e},--u||r(a))},function(e){!l&&(l=!0,a[o]={status:"rejected",reason:e},--u||r(a))})}),--u||r(a)});return c.error&&u(c.value),n.promise}})},32945:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(65085),a=n(33803),s=n(59090),l=n(45249);r({target:"Promise",stat:!0,forced:n(65202)},{all:function(e){var t=this,n=a.f(t),r=n.resolve,u=n.reject,c=s(function(){var n=o(t.resolve),a=[],s=0,c=1;l(e,function(e){var o=s++,l=!1;c++,i(n,t,e).then(function(e){!l&&(l=!0,a[o]=e,--c||r(a))},u)}),--c||r(a)});return c.error&&u(c.value),n.promise}})},60862:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(65085),a=n(76451),s=n(33803),l=n(59090),u=n(45249),c=n(65202),p="No one promise resolved";r({target:"Promise",stat:!0,forced:c},{any:function(e){var t=this,n=a("AggregateError"),r=s.f(t),c=r.resolve,d=r.reject,h=l(function(){var r=o(t.resolve),a=[],s=0,l=1,h=!1;u(e,function(e){var o=s++,u=!1;l++,i(r,t,e).then(function(e){!u&&!h&&(h=!0,c(e))},function(e){!u&&!h&&(u=!0,a[o]=e,--l||d(new n(a,p)))})}),--l||d(new n(a,p))});return h.error&&d(h.value),r.promise}})},63098:function(e,t,n){"use strict";var r=n(77341),i=n(83294),o=n(84810).CONSTRUCTOR,a=n(14958),s=n(76451),l=n(99821),u=n(40453),c=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(e){return this.then(void 0,e)}}),!i&&l(a)){var p=s("Promise").prototype.catch;c.catch!==p&&u(c,"catch",p,{unsafe:!0})}},38721:function(e,t,n){"use strict";var r,i,o,a,s=n(77341),l=n(83294),u=n(18050),c=n(30456),p=n(61728),d=n(87494),h=n(40453),f=n(46682),m=n(78711),g=n(29483),A=n(65085),b=n(99821),y=n(86840),v=n(70591),S=n(74696),w=n(16414).set,E=n(88018),O=n(87861),T=n(59090),C=n(17714),x=n(89904),I=n(14958),k=n(84810),_=n(33803),R="Promise",P=k.CONSTRUCTOR,N=k.REJECTION_EVENT,D=k.SUBCLASSING,M=x.getterFor(R),L=x.set,B=I&&I.prototype,F=I,U=B,j=c.TypeError,z=c.document,H=c.process,Z=_.f,V=Z,G=!!(z&&z.createEvent&&c.dispatchEvent),W="unhandledrejection",Q=function(e){var t;return!!(y(e)&&b(t=e.then))&&t},q=function(e,t){var n,r,i,o=t.value,a=1===t.state,s=a?e.ok:e.fail,l=e.resolve,u=e.reject,c=e.domain;try{s?(!a&&(2===t.rejection&&$(t),t.rejection=1),!0===s?n=o:(c&&c.enter(),n=s(o),c&&(c.exit(),i=!0)),n===e.promise?u(new j("Promise-chain cycle")):(r=Q(n))?d(r,n,l,u):l(n)):u(o)}catch(e){c&&!i&&c.exit(),u(e)}},K=function(e,t){!e.notified&&(e.notified=!0,E(function(){for(var n,r=e.reactions;n=r.get();)q(n,e);e.notified=!1,t&&!e.rejection&&X(e)}))},Y=function(e,t,n){var r,i;G?((r=z.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),c.dispatchEvent(r)):r={promise:t,reason:n},!N&&(i=c["on"+e])?i(r):e===W&&O("Unhandled promise rejection",n)},X=function(e){d(w,c,function(){var t,n=e.facade,r=e.value;if(J(e)&&(t=T(function(){u?H.emit("unhandledRejection",r,n):Y(W,n,r)}),e.rejection=u||J(e)?2:1,t.error))throw t.value})},J=function(e){return 1!==e.rejection&&!e.parent},$=function(e){d(w,c,function(){var t=e.facade;u?H.emit("rejectionHandled",t):Y("rejectionhandled",t,e.value)})},ee=function(e,t,n){return function(r){e(t,r,n)}},et=function(e,t,n){!e.done&&(e.done=!0,n&&(e=n),e.value=t,e.state=2,K(e,!0))},en=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw new j("Promise can't be resolved itself");var r=Q(t);r?E(function(){var n={done:!1};try{d(r,t,ee(en,n,e),ee(et,n,e))}catch(t){et(n,t,e)}}):(e.value=t,e.state=1,K(e,!1))}catch(t){et({done:!1},t,e)}}};if(P&&(U=(F=function(e){v(this,U),A(e),d(r,this);var t=M(this);try{e(ee(en,t),ee(et,t))}catch(e){et(t,e)}}).prototype,(r=function(e){L(this,{type:R,done:!1,notified:!1,parent:!1,reactions:new C,rejection:!1,state:0,value:null})}).prototype=h(U,"then",function(e,t){var n=M(this),r=Z(S(this,F));return n.parent=!0,r.ok=!b(e)||e,r.fail=b(t)&&t,r.domain=u?H.domain:void 0,0===n.state?n.reactions.add(r):E(function(){q(r,n)}),r.promise}),i=function(){var e=new r,t=M(e);this.promise=e,this.resolve=ee(en,t),this.reject=ee(et,t)},_.f=Z=function(e){return e===F||e===o?new i(e):V(e)},!l&&b(I)&&B!==Object.prototype)){a=B.then,!D&&h(B,"then",function(e,t){var n=this;return new F(function(e,t){d(a,n,e,t)}).then(e,t)},{unsafe:!0});try{delete B.constructor}catch(e){}f&&f(B,U)}s({global:!0,constructor:!0,wrap:!0,forced:P},{Promise:F}),o=p.Promise,m(F,R,!1,!0),g(R)},67496:function(e,t,n){"use strict";var r=n(77341),i=n(83294),o=n(14958),a=n(81455),s=n(76451),l=n(99821),u=n(74696),c=n(41941),p=n(40453),d=o&&o.prototype;if(r({target:"Promise",proto:!0,real:!0,forced:!!o&&a(function(){d.finally.call({then:function(){}},function(){})})},{finally:function(e){var t=u(this,s("Promise")),n=l(e);return this.then(n?function(n){return c(t,e()).then(function(){return n})}:e,n?function(n){return c(t,e()).then(function(){throw n})}:e)}}),!i&&l(o)){var h=s("Promise").prototype.finally;d.finally!==h&&p(d,"finally",h,{unsafe:!0})}},1455:function(e,t,n){"use strict";n(38721),n(32945),n(63098),n(5201),n(79476),n(9921)},5201:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(65085),a=n(33803),s=n(59090),l=n(45249);r({target:"Promise",stat:!0,forced:n(65202)},{race:function(e){var t=this,n=a.f(t),r=n.reject,u=s(function(){var a=o(t.resolve);l(e,function(e){i(a,t,e).then(n.resolve,r)})});return u.error&&r(u.value),n.promise}})},79476:function(e,t,n){"use strict";var r=n(77341),i=n(33803);r({target:"Promise",stat:!0,forced:n(84810).CONSTRUCTOR},{reject:function(e){var t=i.f(this);return(0,t.reject)(e),t.promise}})},9921:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(83294),a=n(14958),s=n(84810).CONSTRUCTOR,l=n(41941),u=i("Promise"),c=o&&!s;r({target:"Promise",stat:!0,forced:o||s},{resolve:function(e){return l(c&&this===u?a:this,e)}})},17074:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(37626),a=n(47441),s=n(33803),l=n(65085),u=n(59090),c=i.Promise,p=!1;r({target:"Promise",stat:!0,forced:!c||!c.try||u(function(){c.try(function(e){p=8===e},8)}).error||!p},{try:function(e){var t=arguments.length>1?a(arguments,1):[],n=s.f(this),r=u(function(){return o(l(e),void 0,t)});return(r.error?n.reject:n.resolve)(r.value),n.promise}})},95353:function(e,t,n){"use strict";var r=n(77341),i=n(33803);r({target:"Promise",stat:!0},{withResolvers:function(){var e=i.f(this);return{promise:e.promise,resolve:e.resolve,reject:e.reject}}})},63849:function(e,t,n){"use strict";var r=n(77341),i=n(37626),o=n(65085),a=n(36539);r({target:"Reflect",stat:!0,forced:!n(81455)(function(){Reflect.apply(function(){})})},{apply:function(e,t,n){return i(o(e),t,a(n))}})},31454:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(37626),a=n(67697),s=n(15058),l=n(36539),u=n(86840),c=n(31153),p=n(81455),d=i("Reflect","construct"),h=Object.prototype,f=[].push,m=p(function(){function e(){}return!(d(function(){},[],e) instanceof e)}),g=!p(function(){d(function(){})}),A=m||g;r({target:"Reflect",stat:!0,forced:A,sham:A},{construct:function(e,t){s(e);var n=arguments.length<3?e:s(arguments[2]);if(l(t),g&&!m)return d(e,t,n);if(e===n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return o(f,r,t),new(o(a,e,r))}var i=n.prototype,p=c(u(i)?i:h),A=o(e,p,t);return u(A)?A:p}})},11161:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(36539),a=n(91051),s=n(68235),l=n(99821),u=n(81455),c=TypeError;r({target:"Reflect",stat:!0,forced:u(function(){Reflect.defineProperty(s.f({},1,{value:1}),1,{value:2})}),sham:!i},{defineProperty:function(e,t,n){o(e);var r,i,u=a(t);if(o(n),("get"in n||"set"in n)&&("get"in n&&!l(r=n.get)&&void 0!==r||"set"in n&&!l(i=n.set)&&void 0!==i||"value"in n||"writable"in n))throw new c("Invalid property descriptor");try{return s.f(e,u,n),!0}catch(e){return!1}}})},36205:function(e,t,n){"use strict";var r=n(77341),i=n(36539),o=n(13895).f,a=n(91051);r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){i(e);var n=a(t),r=o(e,n);return(!r||!!r.configurable)&&delete e[n]}})},12829:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(36539),a=n(13895);r({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(e,t){return a.f(o(e),t)}})},42655:function(e,t,n){"use strict";var r=n(77341),i=n(36539),o=n(43424);r({target:"Reflect",stat:!0,sham:!n(64276)},{getPrototypeOf:function(e){return o(i(e))}})},24233:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(86840),a=n(36539),s=n(43577),l=n(13895),u=n(43424),c=n(91051),p=function(e,t,n){if(a(e)===n)return e[t];var r=l.f(e,t);if(r)return s(r)?r.value:void 0===r.get?void 0:i(r.get,n);var c=u(e);if(o(c))return p(c,t,n)};r({target:"Reflect",stat:!0},{get:function(e,t){return p(a(e),c(t),arguments.length<3?e:arguments[2])}})},54194:function(e,t,n){"use strict";n(77341)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},69606:function(e,t,n){"use strict";var r=n(77341),i=n(36539),o=n(25549);r({target:"Reflect",stat:!0},{isExtensible:function(e){return i(e),o(e)}})},28123:function(e,t,n){"use strict";n(77341)({target:"Reflect",stat:!0},{ownKeys:n(27040)})},68947:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(36539);r({target:"Reflect",stat:!0,sham:!n(63058)},{preventExtensions:function(e){o(e);try{var t=i("Object","preventExtensions");return t&&t(e),!0}catch(e){return!1}}})},51033:function(e,t,n){"use strict";var r=n(77341),i=n(36539),o=n(91526),a=n(46682);a&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){i(e),o(t);try{return a(e,t),!0}catch(e){return!1}}})},23693:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(36539),a=n(86840),s=n(43577),l=n(81455),u=n(68235),c=n(13895),p=n(43424),d=n(98590),h=n(91051),f=function(e,t,n,r){var l,h,m,g=c.f(o(e),t);if(!g){if(a(h=p(e)))return f(h,t,n,r);g=d(0)}if(s(g)){if(!1===g.writable||!a(r))return!1;if(l=c.f(r,t)){if(!s(l)||!1===l.writable)return!1;u.f(r,t,{value:n})}else try{u.f(r,t,d(0,n))}catch(e){return!1}}else{if(void 0===(m=g.set))return!1;i(m,r,n)}return!0};r({target:"Reflect",stat:!0,forced:l(function(){var e=function(){},t=u.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)})},{set:function(e,t,n){return f(o(e),h(t),n,arguments.length<4?e:arguments[3])}})},576:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(78711);r({global:!0},{Reflect:{}}),o(i.Reflect,"Reflect",!0)},65640:function(e,t,n){"use strict";var r=n(61360),i=n(30456),o=n(12814),a=n(37653),s=n(35724),l=n(92444),u=n(31153),c=n(25487).f,p=n(86711),d=n(85013),h=n(43576),f=n(47726),m=n(76371),g=n(24301),A=n(40453),b=n(81455),y=n(85848),v=n(89904).enforce,S=n(29483),w=n(78583),E=n(46020),O=n(28697),T=w("match"),C=i.RegExp,x=C.prototype,I=i.SyntaxError,k=o(x.exec),_=o("".charAt),R=o("".replace),P=o("".indexOf),N=o("".slice),D=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,M=/a/g,L=/a/g,B=new C(M)!==M,F=m.MISSED_STICKY,U=m.UNSUPPORTED_Y,j=r&&(!B||F||E||O||b(function(){return L[T]=!1,C(M)!==M||C(L)===L||"/a/i"!==String(C(M,"i"))})),z=function(e){for(var t,n=e.length,r=0,i="",o=!1;r"===t&&l:if(""===p||y(a,p))throw new I("Invalid capture group name");a[p]=!0,o[o.length]=[p,c],l=!1,p="";continue}l?p+=t:i+=t}for(var d=0;d",f="\\"+o[d][1];P(i,h)>-1;)i=R(i,h,f)}return[i,o]};if(a("RegExp",j)){for(var Z=function(e,t){var n,r,i,o,a,u,c=p(x,this),m=d(e),g=void 0===t,A=[],b=e;if(!c&&m&&g&&e.constructor===Z)return e;if((m||p(x,e))&&(e=e.source,g&&(t=f(b))),e=void 0===e?"":h(e),t=void 0===t?"":h(t),b=e,E&&"dotAll"in M&&(r=!!t&&P(t,"s")>-1)&&(t=R(t,/s/g,"")),n=t,F&&"sticky"in M&&(i=!!t&&P(t,"y")>-1)&&U&&(t=R(t,/y/g,"")),O&&(e=(o=H(e))[0],A=o[1]),a=s(C(e,t),c?this:x,Z),(r||i||A.length)&&(u=v(a),r&&(u.dotAll=!0,u.raw=Z(z(e),n)),i&&(u.sticky=!0),A.length&&(u.groups=A)),e!==b)try{l(a,"source",""===b?"(?:)":b)}catch(e){}return a},V=c(C),G=0;V.length>G;)g(Z,C,V[G++]);x.constructor=Z,Z.prototype=x,A(i,"RegExp",Z,{constructor:!0})}S("RegExp")},28660:function(e,t,n){"use strict";var r=n(61360),i=n(46020),o=n(32185),a=n(42749),s=n(89904).get,l=RegExp.prototype,u=TypeError;r&&i&&a(l,"dotAll",{configurable:!0,get:function(){if(this!==l){if("RegExp"===o(this))return!!s(this).dotAll;throw new u("Incompatible receiver, RegExp required")}}})},95666:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(74420),a=n(85848),s=n(82498).start,l=n(76959),u=Array,c=RegExp.escape,p=i("".charAt),d=i("".charCodeAt),h=i(1.1.toString),f=i([].join),m=/^[0-9a-z]/i,g=/^[$()*+./?[\\\]^{|}]/,A=RegExp("^[!\"#%&',\\-:;<=>@`~"+l+"]"),b=i(m.exec),y={" ":"t","\n":"n","\v":"v","\f":"f","\r":"r"},v=function(e){var t=h(d(e,0),16);return t.length<3?"\\x"+s(t,2,"0"):"\\u"+s(t,4,"0")};r({target:"RegExp",stat:!0,forced:!c||"\\x61b"!==c("ab")},{escape:function(e){o(e);for(var t=e.length,n=u(t),r=0;r=56320||r+1>=t||(64512&d(e,r+1))!=56320?n[r]=v(i):(n[r]=i,n[++r]=p(e,r))}}return f(n,"")}})},64455:function(e,t,n){"use strict";var r=n(77341),i=n(20625);r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},60142:function(e,t,n){"use strict";var r=n(61360),i=n(42749),o=n(48904),a=n(43635);r&&!o.correct&&(i(RegExp.prototype,"flags",{configurable:!0,get:a}),o.correct=!0)},20727:function(e,t,n){"use strict";var r=n(61360),i=n(76371).MISSED_STICKY,o=n(32185),a=n(42749),s=n(89904).get,l=RegExp.prototype,u=TypeError;r&&i&&a(l,"sticky",{configurable:!0,get:function(){if(this!==l){if("RegExp"===o(this))return!!s(this).sticky;throw new u("Incompatible receiver, RegExp required")}}})},32192:function(e,t,n){"use strict";n(64455);var r,i,o=n(77341),a=n(87494),s=n(99821),l=n(36539),u=n(43576);var c=(r=!1,(i=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===i.test("abc")&&r),p=/./.test;o({target:"RegExp",proto:!0,forced:!c},{test:function(e){var t=l(this),n=u(e),r=t.exec;if(!s(r))return a(p,t,n);var i=a(r,t,n);return null!==i&&(l(i),!0)}})},56303:function(e,t,n){"use strict";var r=n(50360).PROPER,i=n(40453),o=n(36539),a=n(43576),s=n(81455),l=n(47726),u="toString",c=RegExp.prototype,p=c[u],d=s(function(){return"/a/b"!==p.call({source:"a",flags:"b"})}),h=r&&p.name!==u;(d||h)&&i(c,u,function(){var e=o(this);return"/"+a(e.source)+"/"+a(l(e))},{unsafe:!0})},61285:function(e,t,n){"use strict";n(54096)("Set",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},n(13962))},67886:function(e,t,n){"use strict";var r=n(77341),i=n(90794),o=n(81455);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("difference",function(e){return 0===e.size})||o(function(){var e=new Set([1,2,3,4]);return 3!==e.difference({size:1,has:function(){return!0},keys:function(){var t=0;return{next:function(){var n=t++>1;return e.has(1)&&e.clear(),{done:n,value:2}}}}}).size})},{difference:i})},65451:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(88583);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("intersection",function(e){return 2===e.size&&e.has(1)&&e.has(2)})||i(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))})},{intersection:o})},46015:function(e,t,n){"use strict";var r=n(77341),i=n(2932);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("isDisjointFrom",function(e){return!e})},{isDisjointFrom:i})},38334:function(e,t,n){"use strict";var r=n(77341),i=n(5970);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("isSubsetOf",function(e){return e})},{isSubsetOf:i})},94880:function(e,t,n){"use strict";var r=n(77341),i=n(25267);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("isSupersetOf",function(e){return!e})},{isSupersetOf:i})},11353:function(e,t,n){"use strict";n(61285)},75643:function(e,t,n){"use strict";var r=n(77341),i=n(98936),o=n(59544);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("symmetricDifference")||!o("symmetricDifference")},{symmetricDifference:i})},29761:function(e,t,n){"use strict";var r=n(77341),i=n(12688),o=n(59544);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("union")||!o("union")},{union:i})},52700:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("anchor")},{anchor:function(e){return i(this,"a","name",e)}})},5458:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(80456),a=n(11573),s=n(43576),l=n(81455),u=i("".charAt);r({target:"String",proto:!0,forced:l(function(){return"\uD842"!=="\uD842\uDFB7".at(-2)})},{at:function(e){var t=s(o(this)),n=t.length,r=a(e),i=r>=0?r:n+r;return i<0||i>=n?void 0:u(t,i)}})},70008:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("big")},{big:function(){return i(this,"big","","")}})},70610:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("blink")},{blink:function(){return i(this,"blink","","")}})},59224:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("bold")},{bold:function(){return i(this,"b","","")}})},38077:function(e,t,n){"use strict";var r=n(77341),i=n(68047).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return i(this,e)}})},26086:function(e,t,n){"use strict";var r,i=n(77341),o=n(91609),a=n(13895).f,s=n(63663),l=n(43576),u=n(279),c=n(80456),p=n(95524),d=n(83294),h=o("".slice),f=Math.min,m=p("endsWith");i({target:"String",proto:!0,forced:!(!d&&!m&&(r=a(String.prototype,"endsWith"))&&!r.writable)&&!m},{endsWith:function(e){var t=l(c(this));u(e);var n=l(e),r=arguments.length>1?arguments[1]:void 0,i=t.length,o=void 0===r?i:f(s(r),i);return h(t,o-n.length,o)===n}})},24826:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("fixed")},{fixed:function(){return i(this,"tt","","")}})},33063:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("fontcolor")},{fontcolor:function(e){return i(this,"font","color",e)}})},40416:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("fontsize")},{fontsize:function(e){return i(this,"font","size",e)}})},11102:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(77732),a=RangeError,s=String.fromCharCode,l=String.fromCodePoint,u=i([].join);r({target:"String",stat:!0,arity:1,forced:!!l&&1!==l.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,i=0;r>i;){if(t=+arguments[i],o(t,1114111)!==t)throw new a(t+" is not a valid code point");n[i++]=t<65536?s(t):s(((t-=65536)>>10)+55296,t%1024+56320)}return u(n,"")}})},56389:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(279),a=n(80456),s=n(43576),l=n(95524),u=i("".indexOf);r({target:"String",proto:!0,forced:!l("includes")},{includes:function(e){return!!~u(s(a(this)),s(o(e)),arguments.length>1?arguments[1]:void 0)}})},37451:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(80456),a=n(43576),s=i("".charCodeAt);r({target:"String",proto:!0},{isWellFormed:function(){for(var e=a(o(this)),t=e.length,n=0;n=56320||++n>=t||(64512&s(e,n))!=56320))return!1}return!0}})},10910:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("italics")},{italics:function(){return i(this,"i","","")}})},48694:function(e,t,n){"use strict";var r=n(68047).charAt,i=n(43576),o=n(89904),a=n(55852),s=n(37056),l="String Iterator",u=o.set,c=o.getterFor(l);a(String,"String",function(e){u(this,{type:l,string:i(e),index:0})},function(){var e,t=c(this),n=t.string,i=t.index;return i>=n.length?s(void 0,!0):(e=r(n,i),t.index+=e.length,s(e,!1))})},78122:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("link")},{link:function(e){return i(this,"a","href",e)}})},49685:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(91609),a=n(40052),s=n(37056),l=n(80456),u=n(63663),c=n(43576),p=n(36539),d=n(86840),h=n(32185),f=n(85013),m=n(47726),g=n(36780),A=n(40453),b=n(81455),y=n(78583),v=n(74696),S=n(12751),w=n(69774),E=n(89904),O=n(83294),T=y("matchAll"),C="RegExp String",x=C+" Iterator",I=E.set,k=E.getterFor(x),_=RegExp.prototype,R=TypeError,P=o("".indexOf),N=o("".matchAll),D=!!N&&!b(function(){N("a",/./)}),M=a(function(e,t,n,r){I(this,{type:x,regexp:e,string:t,global:n,unicode:r,done:!1})},C,function(){var e=k(this);if(e.done)return s(void 0,!0);var t=e.regexp,n=e.string,r=w(t,n);return null===r?(e.done=!0,s(void 0,!0)):e.global?(""===c(r[0])&&(t.lastIndex=S(n,u(t.lastIndex),e.unicode)),s(r,!1)):(e.done=!0,s(r,!1))}),L=function(e){var t,n,r,i=p(this),o=c(e),a=v(i,RegExp),s=c(m(i));return t=new a(a===RegExp?i.source:i,s),n=!!~P(s,"g"),r=!!~P(s,"u")||!!~P(s,"v"),t.lastIndex=u(i.lastIndex),new M(t,o,n,r)};r({target:"String",proto:!0,forced:D},{matchAll:function(e){var t,n,r,o=l(this);if(d(e)){if(f(e)&&!~P(c(l(m(e))),"g"))throw new R("`.matchAll` does not allow non-global regexes");if(D)return N(o,e);if(void 0===(n=g(e,T))&&O&&"RegExp"===h(e)&&(n=L),n)return i(n,e,o)}else if(D)return N(o,e);return t=c(o),r=RegExp(e,"g"),O?i(L,r,t):r[T](t)}}),O||T in _||A(_,T,L)},40005:function(e,t,n){"use strict";var r=n(87494),i=n(12814),o=n(87432),a=n(36539),s=n(86840),l=n(63663),u=n(43576),c=n(80456),p=n(36780),d=n(12751),h=n(47726),f=n(69774),m=i("".indexOf);o("match",function(e,t,n){return[function(t){var n=c(this),i=s(t)?p(t,e):void 0;return i?r(i,t,n):new RegExp(t)[e](u(n))},function(e){var r,i=a(this),o=u(e),s=n(t,i,o);if(s.done)return s.value;var c=u(h(i));if(!~m(c,"g"))return f(i,o);var p=!!~m(c,"u")||!!~m(c,"v");i.lastIndex=0;for(var g=[],A=0;null!==(r=f(i,o));){var b=u(r[0]);g[A]=b,""===b&&(i.lastIndex=d(o,l(i.lastIndex),p)),A++}return 0===A?null:g}]})},83128:function(e,t,n){"use strict";var r=n(77341),i=n(82498).end;r({target:"String",proto:!0,forced:n(35726)},{padEnd:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},18977:function(e,t,n){"use strict";var r=n(77341),i=n(82498).start;r({target:"String",proto:!0,forced:n(35726)},{padStart:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},17959:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(60621),a=n(87670),s=n(43576),l=n(80555),u=i([].push),c=i([].join);r({target:"String",stat:!0},{raw:function(e){var t=o(a(e).raw),n=l(t);if(!n)return"";for(var r=arguments.length,i=[],p=0;;){if(u(i,s(t[p++])),p===n)return c(i,"");po.length?-1:b(o,f,T+O);return I=k&&(I+=C(s,k,L)+D,k=L+M.length)}return I+C(s,k)}]},!!s(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})||!x||I)},41381:function(e,t,n){"use strict";var r=n(87494),i=n(87432),o=n(36539),a=n(86840),s=n(80456),l=n(46149),u=n(43576),c=n(36780),p=n(69774);i("search",function(e,t,n){return[function(t){var n=s(this),i=a(t)?c(t,e):void 0;return i?r(i,t,n):new RegExp(t)[e](u(n))},function(e){var r=o(this),i=u(e),a=n(t,r,i);if(a.done)return a.value;var s=r.lastIndex;!l(s,0)&&(r.lastIndex=0);var c=p(r,i);return!l(r.lastIndex,s)&&(r.lastIndex=s),null===c?-1:c.index}]})},66397:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("small")},{small:function(){return i(this,"small","","")}})},38465:function(e,t,n){"use strict";var r=n(87494),i=n(12814),o=n(87432),a=n(36539),s=n(86840),l=n(80456),u=n(74696),c=n(12751),p=n(63663),d=n(43576),h=n(36780),f=n(47726),m=n(69774),g=n(76371),A=n(81455),b=g.UNSUPPORTED_Y,y=Math.min,v=i([].push),S=i("".slice),w=i("".indexOf),E=!A(function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}),O="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;o("split",function(e,t,n){var i="0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:r(t,this,e,n)}:t;return[function(t,n){var o=l(this),a=s(t)?h(t,e):void 0;return a?r(a,t,o,n):r(i,d(o),t,n)},function(e,r){var o=a(this),s=d(e);if(!O){var l=n(i,o,s,r,i!==t);if(l.done)return l.value}var h=u(o,RegExp),g=d(f(o)),A=!!~w(g,"u")||!!~w(g,"v");b?!~w(g,"g")&&(g+="g"):!~w(g,"y")&&(g+="y");var E=new h(b?"^(?:"+o.source+")":o,g),T=void 0===r?4294967295:r>>>0;if(0===T)return[];if(0===s.length)return null===m(E,s)?[s]:[];for(var C=0,x=0,I=[];x1?arguments[1]:void 0,t.length));return h(t,r,r+n.length)===n}})},76874:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("strike")},{strike:function(){return i(this,"strike","","")}})},76082:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("sub")},{sub:function(){return i(this,"sub","","")}})},89632:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(80456),a=n(11573),s=n(43576),l=i("".slice),u=Math.max,c=Math.min;r({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(e,t){var n=s(o(this)),r=n.length,i=a(e),p=i<0?u(r+i,0):c(i,r),d=void 0===t?r:a(t);if(d<=0)return"";var h=c(p+d,r);return p>=h?"":l(n,p,h)}})},13329:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("sup")},{sup:function(){return i(this,"sup","","")}})},86152:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(12814),a=n(80456),s=n(43576),l=n(81455),u=Array,c=o("".charAt),p=o("".charCodeAt),d=o([].join),h="".toWellFormed,f=h&&l(function(){return"1"!==i(h,1)});r({target:"String",proto:!0,forced:f},{toWellFormed:function(){var e=s(a(this));if(f)return i(h,e);for(var t=e.length,n=u(t),r=0;r=56320||r+1>=t||(64512&p(e,r+1))!=56320?n[r]="�":(n[r]=c(e,r),n[++r]=c(e,r))}return d(n,"")}})},55066:function(e,t,n){"use strict";n(3373);var r=n(77341),i=n(35398);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==i},{trimEnd:i})},20116:function(e,t,n){"use strict";var r=n(77341),i=n(4915);r({target:"String",proto:!0,name:"trimStart",forced:void 0!==i},{trimLeft:i})},3373:function(e,t,n){"use strict";var r=n(77341),i=n(35398);r({target:"String",proto:!0,name:"trimEnd",forced:void 0!==i},{trimRight:i})},69586:function(e,t,n){"use strict";n(20116);var r=n(77341),i=n(4915);r({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==i},{trimStart:i})},20655:function(e,t,n){"use strict";var r=n(77341),i=n(27169).trim;r({target:"String",proto:!0,forced:n(39353)("trim")},{trim:function(){return i(this)}})},83712:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(86711),a=n(43424),s=n(46682),l=n(27130),u=n(31153),c=n(92444),p=n(98590),d=n(50807),h=n(74735),f=n(78583),m=n(81455),g=n(83294),A=i.SuppressedError,b=f("toStringTag"),y=Error,v=!!A&&3!==A.length,S=!!A&&m(function(){return 4===new A(1,2,3,{cause:4}).cause}),w=v||S,E=function(e,t,n){var r,i=o(O,this);return s?r=w&&(!i||a(this)===O)?new A:s(new y,i?a(this):O):c(r=i?this:u(O),b,"Error"),void 0!==n&&c(r,"message",h(n)),d(r,E,r.stack,1),c(r,"error",e),c(r,"suppressed",t),r};s?s(E,y):l(E,y,{name:!0});var O=E.prototype=w?A.prototype:u(y.prototype,{constructor:p(1,E),message:p(1,""),name:p(1,"SuppressedError")});w&&!g&&(O.constructor=E),r({global:!0,constructor:!0,arity:3,forced:w},{SuppressedError:E})},48622:function(e,t,n){"use strict";var r=n(30456),i=n(79478),o=n(68235).f,a=n(13895).f,s=r.Symbol;if(i("asyncDispose"),s){var l=a(s,"asyncDispose");l.enumerable&&l.configurable&&l.writable&&o(s,"asyncDispose",{value:l.value,enumerable:!1,configurable:!1,writable:!1})}},15411:function(e,t,n){"use strict";n(79478)("asyncIterator")},39606:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(87494),a=n(12814),s=n(83294),l=n(61360),u=n(45946),c=n(81455),p=n(85848),d=n(86711),h=n(36539),f=n(60621),m=n(91051),g=n(43576),A=n(98590),b=n(31153),y=n(35387),v=n(25487),S=n(73361),w=n(74713),E=n(13895),O=n(68235),T=n(15242),C=n(322),x=n(40453),I=n(42749),k=n(19263),_=n(72566),R=n(82793),P=n(18508),N=n(78583),D=n(33233),M=n(79478),L=n(63920),B=n(78711),F=n(89904),U=n(15368).forEach,j=_("hidden"),z="Symbol",H="prototype",Z=F.set,V=F.getterFor(z),G=Object[H],W=i.Symbol,Q=W&&W[H],q=i.RangeError,K=i.TypeError,Y=i.QObject,X=E.f,J=O.f,$=S.f,ee=C.f,et=a([].push),en=k("symbols"),er=k("op-symbols"),ei=k("wks"),eo=!Y||!Y[H]||!Y[H].findChild,ea=function(e,t,n){var r=X(G,t);return r&&delete G[t],J(e,t,n),r&&e!==G&&J(G,t,r),e},es=l&&c(function(){return 7!==b(J({},"a",{get:function(){return J(this,"a",{value:7}).a}})).a})?ea:J,el=function(e,t){var n=en[e]=b(Q);return Z(n,{type:z,tag:e,description:t}),!l&&(n.description=t),n},eu=function(e,t,n){e===G&&eu(er,t,n),h(e);var r=m(t);return(h(n),p(en,r))?(("enumerable"in n?!n.enumerable:!p(e,r)||p(e,j)&&e[j][r])?(!p(e,j)&&J(e,j,A(1,b(null))),e[j][r]=!0):(p(e,j)&&e[j][r]&&(e[j][r]=!1),n=b(n,{enumerable:A(0,!1)})),es(e,r,n)):J(e,r,n)},ec=function(e,t){h(e);var n=f(t);return U(y(n).concat(ef(n)),function(t){(!l||o(ep,n,t))&&eu(e,t,n[t])}),e},ep=function(e){var t=m(e),n=o(ee,this,t);return(!(this===G&&p(en,t))||!!p(er,t))&&(!(n||!p(this,t)||!p(en,t)||p(this,j)&&this[j][t])||n)},ed=function(e,t){var n=f(e),r=m(t);if(!(n===G&&p(en,r))||p(er,r)){var i=X(n,r);return i&&p(en,r)&&!(p(n,j)&&n[j][r])&&(i.enumerable=!0),i}},eh=function(e){var t=$(f(e)),n=[];return U(t,function(e){!p(en,e)&&!p(R,e)&&et(n,e)}),n},ef=function(e){var t=e===G,n=$(t?er:f(e)),r=[];return U(n,function(e){p(en,e)&&(!t||p(G,e))&&et(r,en[e])}),r};!u&&(x(Q=(W=function(){if(d(Q,this))throw new K("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?g(arguments[0]):void 0,t=P(e),n=function(e){var r=void 0===this?i:this;r===G&&o(n,er,e),p(r,j)&&p(r[j],t)&&(r[j][t]=!1);var a=A(1,e);try{es(r,t,a)}catch(e){if(!(e instanceof q))throw e;ea(r,t,a)}};return l&&eo&&es(G,t,{configurable:!0,set:n}),el(t,e)})[H],"toString",function(){return V(this).tag}),x(W,"withoutSetter",function(e){return el(P(e),e)}),C.f=ep,O.f=eu,T.f=ec,E.f=ed,v.f=S.f=eh,w.f=ef,D.f=function(e){return el(N(e),e)},l&&(I(Q,"description",{configurable:!0,get:function(){return V(this).description}}),!s&&x(G,"propertyIsEnumerable",ep,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!u,sham:!u},{Symbol:W}),U(y(ei),function(e){M(e)}),r({target:z,stat:!0,forced:!u},{useSetter:function(){eo=!0},useSimple:function(){eo=!1}}),r({target:"Object",stat:!0,forced:!u,sham:!l},{create:function(e,t){return void 0===t?b(e):ec(b(e),t)},defineProperty:eu,defineProperties:ec,getOwnPropertyDescriptor:ed}),r({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:eh}),L(),B(W,z),R[j]=!0},84730:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(30456),a=n(87494),s=n(12814),l=n(85848),u=n(99821),c=n(86711),p=n(43576),d=n(42749),h=n(27130),f=o.Symbol,m=f&&f.prototype;if(i&&u(f)&&(!("description"in m)||void 0!==f().description)){var g={},A=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:p(arguments[0]),t=c(m,this)?new f(e):void 0===e?f():f(e);return""===e&&(g[t]=!0),t};h(A,f);var b=A.for;A.for=({for:function(e){var t=p(e),n=a(b,this,t);return""===t&&(g[n]=!0),n}}).for,A.prototype=m,m.constructor=A;var y="Symbol(description detection)"===String(f("description detection")),v=s(m.valueOf),S=s(m.toString),w=/^Symbol\((.*)\)[^)]+$/,E=s("".replace),O=s("".slice);d(m,"description",{configurable:!0,get:function(){var e=v(this);if(l(g,e))return"";var t=S(e),n=y?O(t,7,-1):E(t,w,"$1");return""===n?void 0:n}}),r({global:!0,constructor:!0,forced:!0},{Symbol:A})}},94304:function(e,t,n){"use strict";var r=n(30456),i=n(79478),o=n(68235).f,a=n(13895).f,s=r.Symbol;if(i("dispose"),s){var l=a(s,"dispose");l.enumerable&&l.configurable&&l.writable&&o(s,"dispose",{value:l.value,enumerable:!1,configurable:!1,writable:!1})}},1756:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(85848),a=n(43576),s=n(19263),l=n(81982),u=s("string-to-symbol-registry"),c=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!l},{for:function(e){var t=a(e);if(o(u,t))return u[t];var n=i("Symbol")(t);return u[t]=n,c[n]=t,n}})},81596:function(e,t,n){"use strict";n(79478)("hasInstance")},6280:function(e,t,n){"use strict";n(79478)("isConcatSpreadable")},79133:function(e,t,n){"use strict";n(79478)("iterator")},73249:function(e,t,n){"use strict";n(39606),n(1756),n(43359),n(21700),n(18621)},43359:function(e,t,n){"use strict";var r=n(77341),i=n(85848),o=n(83139),a=n(74263),s=n(19263),l=n(81982),u=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!l},{keyFor:function(e){if(!o(e))throw TypeError(a(e)+" is not a symbol");if(i(u,e))return u[e]}})},84562:function(e,t,n){"use strict";n(79478)("matchAll")},37257:function(e,t,n){"use strict";n(79478)("match")},58240:function(e,t,n){"use strict";n(79478)("replace")},17020:function(e,t,n){"use strict";n(79478)("search")},36668:function(e,t,n){"use strict";n(79478)("species")},19719:function(e,t,n){"use strict";n(79478)("split")},67589:function(e,t,n){"use strict";var r=n(79478),i=n(63920);r("toPrimitive"),i()},20289:function(e,t,n){"use strict";var r=n(76451),i=n(79478),o=n(78711);i("toStringTag"),o(r("Symbol"),"Symbol")},20648:function(e,t,n){"use strict";n(79478)("unscopables")},52483:function(e,t,n){"use strict";var r=n(40163),i=n(80555),o=n(11573),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("at",function(e){var t=a(this),n=i(t),r=o(e),s=r>=0?r:n+r;return s<0||s>=n?void 0:t[s]})},13286:function(e,t,n){"use strict";var r=n(12814),i=n(40163),o=r(n(16220)),a=i.aTypedArray;(0,i.exportTypedArrayMethod)("copyWithin",function(e,t){return o(a(this),e,t,arguments.length>2?arguments[2]:void 0)})},31444:function(e,t,n){"use strict";var r=n(40163),i=n(15368).every,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},76840:function(e,t,n){"use strict";var r=n(40163),i=n(12298),o=n(29499),a=n(34074),s=n(87494),l=n(12814),u=n(81455),c=r.aTypedArray,p=r.exportTypedArrayMethod,d=l("".slice);p("fill",function(e){var t=arguments.length;return c(this),s(i,this,"Big"===d(a(this),0,3)?o(e):+e,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)},u(function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e}))},29175:function(e,t,n){"use strict";var r=n(40163),i=n(15368).filter,o=n(93663),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("filter",function(e){var t=i(a(this),e,arguments.length>1?arguments[1]:void 0);return o(this,t)})},23631:function(e,t,n){"use strict";var r=n(40163),i=n(15368).findIndex,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},87148:function(e,t,n){"use strict";var r=n(40163),i=n(70225).findLastIndex,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("findLastIndex",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},53152:function(e,t,n){"use strict";var r=n(40163),i=n(70225).findLast,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("findLast",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},86921:function(e,t,n){"use strict";var r=n(40163),i=n(15368).find,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},454:function(e,t,n){"use strict";n(73890)("Float32",function(e){return function(t,n,r){return e(this,t,n,r)}})},39085:function(e,t,n){"use strict";n(73890)("Float64",function(e){return function(t,n,r){return e(this,t,n,r)}})},47005:function(e,t,n){"use strict";var r=n(40163),i=n(15368).forEach,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",function(e){i(o(this),e,arguments.length>1?arguments[1]:void 0)})},79032:function(e,t,n){"use strict";var r=n(63482);(0,n(40163).exportTypedArrayStaticMethod)("from",n(19575),r)},63168:function(e,t,n){"use strict";var r=n(40163),i=n(83355).includes,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},94245:function(e,t,n){"use strict";var r=n(40163),i=n(83355).indexOf,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},48963:function(e,t,n){"use strict";n(73890)("Int16",function(e){return function(t,n,r){return e(this,t,n,r)}})},25353:function(e,t,n){"use strict";n(73890)("Int32",function(e){return function(t,n,r){return e(this,t,n,r)}})},42520:function(e,t,n){"use strict";n(73890)("Int8",function(e){return function(t,n,r){return e(this,t,n,r)}})},5781:function(e,t,n){"use strict";var r=n(30456),i=n(81455),o=n(12814),a=n(40163),s=n(26847),l=n(78583)("iterator"),u=r.Uint8Array,c=o(s.values),p=o(s.keys),d=o(s.entries),h=a.aTypedArray,f=a.exportTypedArrayMethod,m=u&&u.prototype,g=!i(function(){m[l].call([1])}),A=!!m&&m.values&&m[l]===m.values&&"values"===m.values.name,b=function(){return c(h(this))};f("entries",function(){return d(h(this))},g),f("keys",function(){return p(h(this))},g),f("values",b,g||!A,{name:"values"}),f(l,b,g||!A,{name:"values"})},42097:function(e,t,n){"use strict";var r=n(40163),i=n(12814),o=r.aTypedArray,a=r.exportTypedArrayMethod,s=i([].join);a("join",function(e){return s(o(this),e)})},76440:function(e,t,n){"use strict";var r=n(40163),i=n(37626),o=n(58014),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",function(e){var t=arguments.length;return i(o,a(this),t>1?[e,arguments[1]]:[e])})},52497:function(e,t,n){"use strict";var r=n(40163),i=n(15368).map,o=n(93663),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("map",function(e){var t=i(a(this),e,arguments.length>1?arguments[1]:void 0);return o(this,t)})},33099:function(e,t,n){"use strict";var r=n(40163),i=n(63482),o=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",function(){for(var e=0,t=arguments.length,n=new(o(this))(t);t>e;)n[e]=arguments[e++];return n},i)},51410:function(e,t,n){"use strict";var r=n(40163),i=n(39845).right,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",function(e){var t=arguments.length;return i(o(this),e,t,t>1?arguments[1]:void 0)})},91260:function(e,t,n){"use strict";var r=n(40163),i=n(39845).left,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",function(e){var t=arguments.length;return i(o(this),e,t,t>1?arguments[1]:void 0)})},78632:function(e,t,n){"use strict";var r=n(40163),i=r.aTypedArray,o=r.exportTypedArrayMethod,a=Math.floor;o("reverse",function(){for(var e,t=i(this).length,n=a(t/2),r=0;r1?arguments[1]:void 0,1),n=l(e);if(g)return i(h,this,n,t);var r=this.length,o=a(n),u=0;if(o+t>r)throw new c("Wrong length");for(;ui;)u[i]=n[i++];return u},i(function(){new Int8Array(1).slice()}))},61791:function(e,t,n){"use strict";var r=n(40163),i=n(15368).some,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},3481:function(e,t,n){"use strict";var r=n(30456),i=n(91609),o=n(81455),a=n(65085),s=n(17322),l=n(40163),u=n(61392),c=n(71949),p=n(21033),d=n(53047),h=l.aTypedArray,f=l.exportTypedArrayMethod,m=r.Uint16Array,g=m&&i(m.prototype.sort),A=!!g&&!(o(function(){g(new m(2),null)})&&o(function(){g(new m(2),{})})),b=!!g&&!o(function(){if(p)return p<74;if(u)return u<67;if(c)return!0;if(d)return d<602;var e,t,n=new m(516),r=Array(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(g(n,function(e,t){return(e/4|0)-(t/4|0)}),e=0;e<516;e++)if(n[e]!==r[e])return!0});f("sort",function(e){var t;if(void 0!==e&&a(e),b)return g(this,e);return s(h(this),(t=e,function(e,n){return void 0!==t?+t(e,n)||0:n!=n?e!=e?0:-1:e!=e?1:0===e&&0===n?1/e>0?1/n>0?0:1:1/n>0?-1:0:e>n?1:e=r||d<0)throw new p("Incorrect index");for(var f=new(u(n))(r),m=0;m1?arguments[1]:void 0,null,9007199254740991);return o(s,t.bytes)}})},35150:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(74420),a=n(7908);i.Uint8Array&&r({target:"Uint8Array",stat:!0},{fromHex:function(e){return a(o(e)).bytes}})},23977:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(47026),a=n(27463),s=i.Uint8Array,l=!s||!s.prototype.setFromBase64||!function(){var e=new s([255,255,255,255,255]);try{e.setFromBase64("",null);return}catch(e){}try{e.setFromBase64("a");return}catch(e){}try{e.setFromBase64("MjYyZg===")}catch(t){return 50===e[0]&&54===e[1]&&50===e[2]&&255===e[3]&&255===e[4]}}();s&&r({target:"Uint8Array",proto:!0,forced:l},{setFromBase64:function(e){a(this);var t=o(e,arguments.length>1?arguments[1]:void 0,this,this.length);return{read:t.read,written:t.written}}})},79168:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(74420),a=n(27463),s=n(87556),l=n(7908);i.Uint8Array&&r({target:"Uint8Array",proto:!0,forced:function(){try{var e=new ArrayBuffer(16,{maxByteLength:1024});new Uint8Array(e).setFromHex("cafed00d")}catch(e){return!0}}()},{setFromHex:function(e){a(this),o(e),s(this.buffer);var t=l(e,this).read;return{read:t,written:t/2}}})},88196:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(12814),a=n(61257),s=n(27463),l=n(87556),u=n(50135),c=n(67521),p=u.i2c,d=u.i2cUrl,h=o("".charAt),f=i.Uint8Array,m=!f||!f.prototype.toBase64||!function(){try{new f().toBase64(null)}catch(e){return!0}}();f&&r({target:"Uint8Array",proto:!0,forced:m},{toBase64:function(){var e,t=s(this),n=arguments.length?a(arguments[0]):void 0,r="base64"===c(n)?p:d,i=!!n&&!!n.omitPadding;l(this.buffer);for(var o="",u=0,f=t.length,m=function(t){return h(r,e>>6*t&63)};u+2>2)*3+(C?C-1:0)),I=0;l>(-2*T&6)));return v(x,"")}})},59454:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(76451),a=n(12814),s=n(87494),l=n(81455),u=n(43576),c=n(60968),p=n(50135).i2c,d=o("btoa"),h=Array,f=a([].join),m=a("".charAt),g=a("".charCodeAt),A=!!d&&!l(function(){return"aGk="!==d("hi")}),b=A&&!l(function(){d()}),y=A&&l(function(){return"bnVsbA=="!==d(null)}),v=A&&1!==d.length;r({global:!0,bind:!0,enumerable:!0,forced:!A||b||y||v},{btoa:function(e){if(c(arguments.length,1),A)return s(d,i,u(e));for(var t,n,r=u(e),a=new h((r.length+2)/3<<2),l=0,b=0,y=p;m(r,b)||(y="=",b%1);){if((n=g(r,b+=3/4))>255)throw new(o("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");t=t<<8|n,a[l++]=m(y,63&t>>8-b%1*8)}return f(a,"")}})},23857:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(16414).clear;r({global:!0,bind:!0,enumerable:!0,forced:i.clearImmediate!==o},{clearImmediate:o})},67398:function(e,t,n){"use strict";var r=n(30456),i=n(22685),o=n(27703),a=n(36751),s=n(92444),l=function(e){if(e&&e.forEach!==a)try{s(e,"forEach",a)}catch(t){e.forEach=a}};for(var u in i)i[u]&&l(r[u]&&r[u].prototype);l(o)},27530:function(e,t,n){"use strict";var r=n(30456),i=n(22685),o=n(27703),a=n(26847),s=n(92444),l=n(78711),u=n(78583)("iterator"),c=a.values,p=function(e,t){if(e){if(e[u]!==c)try{s(e,u,c)}catch(t){e[u]=c}if(l(e,t,!0),i[t]){for(var n in a)if(e[n]!==a[n])try{s(e,n,a[n])}catch(t){e[n]=a[n]}}}};for(var d in i)p(r[d]&&r[d].prototype,d);p(o,"DOMTokenList")},93782:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(95766),a=n(81455),s=n(31153),l=n(98590),u=n(68235).f,c=n(40453),p=n(42749),d=n(85848),h=n(70591),f=n(36539),m=n(60708),g=n(74735),A=n(82415),b=n(3101),y=n(89904),v=n(61360),S=n(83294),w="DOMException",E="DATA_CLONE_ERR",O=i("Error"),T=i(w)||function(){try{new(i("MessageChannel")||o("worker_threads").MessageChannel)().port1.postMessage(new WeakMap)}catch(e){if(e.name===E&&25===e.code)return e.constructor}}(),C=T&&T.prototype,x=O.prototype,I=y.set,k=y.getterFor(w),_="stack"in new O(w),R=function(e){return d(A,e)&&A[e].m?A[e].c:0},P=function(){h(this,N);var e=arguments.length,t=g(e<1?void 0:arguments[0]),n=g(e<2?void 0:arguments[1],"Error"),r=R(n);if(I(this,{type:w,name:n,message:t,code:r}),!v&&(this.name=n,this.message=t,this.code=r),_){var i=new O(t);i.name=w,u(this,"stack",l(1,b(i.stack,1)))}},N=P.prototype=s(x),D=function(e){return{enumerable:!0,configurable:!0,get:e}},M=function(e){return D(function(){return k(this)[e]})};v&&(p(N,"code",M("code")),p(N,"message",M("message")),p(N,"name",M("name"))),u(N,"constructor",l(1,P));var L=a(function(){return!(new T instanceof O)}),B=L||a(function(){return x.toString!==m||"2: 1"!==String(new T(1,2))}),F=L||a(function(){return 25!==new T(1,"DataCloneError").code}),U=L||25!==T[E]||25!==C[E],j=S?B||F||U:L;r({global:!0,constructor:!0,forced:j},{DOMException:j?P:T});var z=i(w),H=z.prototype;for(var Z in B&&(S||T===z)&&c(H,"toString",m),F&&v&&T===z&&p(H,"code",D(function(){return R(f(this).name)})),A)if(d(A,Z)){var V=A[Z],G=V.s,W=l(6,V.c);!d(z,G)&&u(z,G,W),!d(H,G)&&u(H,G,W)}},63355:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(76451),a=n(98590),s=n(68235).f,l=n(85848),u=n(70591),c=n(35724),p=n(74735),d=n(82415),h=n(3101),f=n(61360),m=n(83294),g="DOMException",A=o("Error"),b=o(g),y=function(){u(this,v);var e=arguments.length,t=p(e<1?void 0:arguments[0]),n=p(e<2?void 0:arguments[1],"Error"),r=new b(t,n),i=new A(t);return i.name=g,s(r,"stack",a(1,h(i.stack,1))),c(r,this,y),r},v=y.prototype=b.prototype,S="stack"in new A(g),w="stack"in new b(1,2),E=b&&f&&Object.getOwnPropertyDescriptor(i,g),O=!!E&&!(E.writable&&E.configurable),T=S&&!O&&!w;r({global:!0,constructor:!0,forced:m||T},{DOMException:T?y:b});var C=o(g),x=C.prototype;if(x.constructor!==C){for(var I in!m&&s(x,"constructor",a(1,C)),d)if(l(d,I)){var k=d[I],_=k.s;!l(C,_)&&s(C,_,a(6,k.c))}}},69250:function(e,t,n){"use strict";var r=n(76451),i=n(78711),o="DOMException";i(r(o),o)},28856:function(e,t,n){"use strict";n(23857),n(53619)},2503:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(88018),a=n(65085),s=n(60968),l=n(81455),u=n(61360);r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:l(function(){return u&&1!==Object.getOwnPropertyDescriptor(i,"queueMicrotask").value.length})},{queueMicrotask:function(e){s(arguments.length,1),o(a(e))}})},77451:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(42749),a=n(61360),s=TypeError,l=Object.defineProperty,u=i.self!==i;try{if(a){var c=Object.getOwnPropertyDescriptor(i,"self");(u||!c||!c.get||!c.enumerable)&&o(i,"self",{get:function(){return i},set:function(e){if(this!==i)throw new s("Illegal invocation");l(i,"self",{value:e,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else r({global:!0,simple:!0,forced:u},{self:i})}catch(e){}},53619:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(16414).set,a=n(41696),s=i.setImmediate?a(o,!1):o;r({global:!0,bind:!0,enumerable:!0,forced:i.setImmediate!==s},{setImmediate:s})},74764:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(41696)(i.setInterval,!0);r({global:!0,bind:!0,forced:i.setInterval!==o},{setInterval:o})},53342:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(41696)(i.setTimeout,!0);r({global:!0,bind:!0,forced:i.setTimeout!==o},{setTimeout:o})},14897:function(e,t,n){"use strict";var r,i=n(83294),o=n(77341),a=n(30456),s=n(76451),l=n(12814),u=n(81455),c=n(18508),p=n(99821),d=n(62219),h=n(59700),f=n(86840),m=n(83139),g=n(45249),A=n(36539),b=n(34074),y=n(85848),v=n(82250),S=n(92444),w=n(80555),E=n(60968),O=n(47726),T=n(74692),C=n(51718),x=n(16137),I=n(61589),k=n(24859),_=n(47113),R=a.Object,P=a.Array,N=a.Date,D=a.Error,M=a.TypeError,L=a.PerformanceMark,B=s("DOMException"),F=T.Map,U=T.has,j=T.get,z=T.set,H=C.Set,Z=C.add,V=C.has,G=s("Object","keys"),W=l([].push),Q=l((!0).valueOf),q=l(1.1.valueOf),K=l("".valueOf),Y=l(N.prototype.getTime),X=c("structuredClone"),J="DataCloneError",$="Transferring",ee=function(e){return!u(function(){var t=new a.Set([7]),n=e(t),r=e(R(7));return n===t||!n.has(7)||!f(r)||7!=+r})&&e},et=function(e,t){return!u(function(){var n=new t,r=e({a:n,b:n});return!(r&&r.a===r.b&&r.a instanceof t&&r.a.stack===n.stack)})},en=a.structuredClone;var er=i||!et(en,D)||!et(en,B)||(r=en,!!u(function(){var e=r(new a.AggregateError([1],X,{cause:3}));return"AggregateError"!==e.name||1!==e.errors[0]||e.message!==X||3!==e.cause})),ei=!en&&ee(function(e){return new L(X,{detail:e}).detail}),eo=ee(en)||ei,ea=function(e){throw new B("Uncloneable type: "+e,J)},es=function(e,t){throw new B((t||"Cloning")+" of "+e+" cannot be properly polyfilled in this engine",J)},el=function(e,t){return!eo&&es(t),eo(e)},eu=function(){var e;try{e=new a.DataTransfer}catch(t){try{e=new a.ClipboardEvent("").clipboardData}catch(e){}}return e&&e.items&&e.files?e:null},ec=function(e,t,n){if(U(t,e))return j(t,e);if("SharedArrayBuffer"===(n||b(e)))r=eo?eo(e):e;else{var r,i,o,s,l,u,c=a.DataView;!c&&!p(e.slice)&&es("ArrayBuffer");try{if(p(e.slice)&&!e.resizable)r=e.slice(0);else for(u=0,i=e.byteLength,o=("maxByteLength"in e)?{maxByteLength:e.maxByteLength}:void 0,r=new ArrayBuffer(i,o),s=new c(e),l=new c(r);u1&&!h(arguments[1])?A(arguments[1]):void 0,i=r?r.transfer:void 0;void 0!==i&&(n=eh(i,t=new F));var o=ed(e,t);return n&&ef(n),o}})},88946:function(e,t,n){"use strict";n(74764),n(53342)},71709:function(e,t,n){"use strict";n(26847),n(11102);var r=n(77341),i=n(30456),o=n(38666),a=n(76451),s=n(87494),l=n(12814),u=n(61360),c=n(1110),p=n(40453),d=n(42749),h=n(26252),f=n(78711),m=n(40052),g=n(89904),A=n(70591),b=n(99821),y=n(85848),v=n(37722),S=n(34074),w=n(36539),E=n(86840),O=n(43576),T=n(31153),C=n(98590),x=n(70269),I=n(4311),k=n(37056),_=n(60968),R=n(78583),P=n(17322),N=R("iterator"),D="URLSearchParams",M=D+"Iterator",L=g.set,B=g.getterFor(D),F=g.getterFor(M),U=o("fetch"),j=o("Request"),z=o("Headers"),H=j&&j.prototype,Z=z&&z.prototype,V=i.TypeError,G=i.encodeURIComponent,W=String.fromCharCode,Q=a("String","fromCodePoint"),q=parseInt,K=l("".charAt),Y=l([].join),X=l([].push),J=l("".replace),$=l([].shift),ee=l([].splice),et=l("".split),en=l("".slice),er=l(/./.exec),ei=/\+/g,eo=/^[0-9a-f]+$/i,ea=function(e,t){var n=en(e,t,t+2);return er(eo,n)?q(n,16):NaN},es=function(e){for(var t=0,n=128;n>0&&(e&n)!=0;n>>=1)t++;return t},el=function(e){var t=null,n=e.length;switch(n){case 1:t=e[0];break;case 2:t=(31&e[0])<<6|63&e[1];break;case 3:t=(15&e[0])<<12|(63&e[1])<<6|63&e[2];break;case 4:t=(7&e[0])<<18|(63&e[1])<<12|(63&e[2])<<6|63&e[3]}return null===t||t>1114111||t>=55296&&t<=57343||t<(n>3?65536:n>2?2048:n>1?128:0)?null:t},eu=function(e){for(var t=(e=J(e,ei," ")).length,n="",r=0;rt){n+="%",r++;continue}var o=ea(e,r+1);if(o!=o){n+=i,r++;continue}r+=2;var a=es(o);if(0===a)i=W(o);else{if(1===a||a>4){n+="�",r++;continue}for(var s=[o],l=1;lt)&&"%"===K(e,r);){;var u=ea(e,r+1);if(u!=u||u>191||u<128||1===l&&(224===o&&u<160||237===o&&u>159||240===o&&u<144||244===o&&u>143))break;X(s,u),r+=2,l++}if(s.length!==a){n+="�";continue}var c=el(s);if(null===c){for(var p=0;p=t.length)return e.target=null,k(void 0,!0);var r=t[n];switch(e.kind){case"keys":return k(r.key,!1);case"values":return k(r.value,!1)}return k([r.key,r.value],!1)},!0),em=function(e){this.entries=[],this.url=null,void 0!==e&&(E(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===K(e,0)?en(e,1):e:O(e)))};em.prototype={type:D,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,i,o,a,l,u=this.entries,c=I(e);if(c)for(n=(t=x(e,c)).next;!(r=s(n,t)).done;){if((a=s(o=(i=x(w(r.value))).next,i)).done||(l=s(o,i)).done||!s(o,i).done)throw new V("Expected sequence with length 2");X(u,{key:O(a.value),value:O(l.value)})}else for(var p in e)y(e,p)&&X(u,{key:p,value:O(e[p])})},parseQuery:function(e){if(e){for(var t,n,r=this.entries,i=et(e,"&"),o=0;o0?arguments[0]:void 0,t=L(this,new em(e));!u&&(this.size=t.entries.length)},eA=eg.prototype;if(h(eA,{append:function(e,t){var n=B(this);_(arguments.length,2),X(n.entries,{key:O(e),value:O(t)}),!u&&this.size++,n.updateURL()},delete:function(e){for(var t=B(this),n=_(arguments.length,1),r=t.entries,i=O(e),o=n<2?void 0:arguments[1],a=void 0===o?o:O(o),s=0;st.key?1:-1}),e.updateURL()},forEach:function(e){for(var t,n=B(this).entries,r=v(e,arguments.length>1?arguments[1]:void 0),i=0;i1?ev(arguments[1]):{})}}),b(j)){var eS=function(e){return A(this,H),new j(e,arguments.length>1?ev(arguments[1]):{})};H.constructor=eS,eS.prototype=H,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:eS})}}e.exports={URLSearchParams:eg,getState:B}},36330:function(e,t,n){"use strict";var r=n(40453),i=n(12814),o=n(43576),a=n(60968),s=URLSearchParams,l=s.prototype,u=i(l.append),c=i(l.delete),p=i(l.forEach),d=i([].push),h=new s("a=1&a=2&b=3");h.delete("a",1),h.delete("b",void 0),h+""!="a=2"&&r(l,"delete",function(e){var t,n=arguments.length,r=n<2?void 0:arguments[1];if(n&&void 0===r)return c(this,e);var i=[];p(this,function(e,t){d(i,{key:t,value:e})}),a(n,1);for(var s=o(e),l=o(r),h=0,f=i.length;h?@[\\\]^|]/,er=/[\0\t\n\r #/:<>?@[\\\]^|]/,ei=/^[\u0000-\u0020]+/,eo=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ea=/[\t\n\r]/g,es=function(e){var t,n,r=H(e,".");if(""===r[r.length-1]){if(1===r.length)return!1;r.length--}return!!M(ee,t=r[r.length-1])||!!M(J,t)&&(""===(n=Z(t,2))||!!M(et,n))},el=function(e){var t,n,r,i,o,a,s,l=H(e,".");if(l.length&&""===l[l.length-1]&&l.length--,(t=l.length)>4)return null;for(r=0,n=[];r1&&"0"===D(i,0)&&(o=M(J,i)?16:8,i=Z(i,8===o?1:2)),""===i)a=0;else{if(!M(10===o?ee:8===o?$:et,i))return null;a=R(i,o)}U(n,a)}for(r=0;r=N(256,5-t))return null}else if(a>255)return null;for(r=0,s=F(n);r6)return;for(r=0;d();){if(i=null,r>0){if("."!==d()||!(r<4))return;p++}if(!M(X,d()))return;for(;M(X,d());){if(o=R(d(),10),null===i)i=o;else{if(0===i)return;i=10*i+o}if(i>255)return;p++}l[u]=256*l[u]+i,(2==++r||4===r)&&u++}if(4!==r)return;break}if(":"===d()){if(p++,!d())return}else if(d())return;l[u++]=t}if(null!==c)for(a=u-c,u=7;0!==u&&a>0;)s=l[u],l[u--]=l[c+a-1],l[c+--a]=s;else if(8!==u)return;return l},ec=function(e){for(var t=null,n=1,r=null,i=0,o=0;o<8;o++)0!==e[o]?(i>n&&(t=r,n=i),r=null,i=0):(null===r&&(r=o),++i);return i>n?r:t},ep=function(e){var t,n,r,i;if("number"==typeof e){for(n=0,t=[];n<4;n++)G(t,e%256),e=P(e/256);return L(t,".")}if("object"==typeof e){for(n=0,t="",r=ec(e);n<8;n++)(!i||0!==e[n])&&(i&&(i=!1),r===n?(t+=n?":":"::",i=!0):(t+=B(e[n],16),n<7&&(t+=":")));return"["+t+"]"}return e},ed={},eh=f({},ed,{" ":1,'"':1,"#":1,"<":1,">":1}),ef=f({},eh,{"'":1}),em=f({},ed,{" ":1,'"':1,"<":1,">":1,"`":1}),eg=f({},em,{"#":1,"?":1,"{":1,"}":1,"^":1}),eA=f({},eg,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),eb=function(e,t){var n=A(e,0);return n>=32&&n<127&&!h(t,e)?e:"'"===e&&h(t,e)?"%27":_(e)},ey={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ev=function(e,t){var n;return 2===e.length&&M(K,D(e,0))&&(":"===(n=D(e,1))||!t&&"|"===n)},eS=function(e){var t;return e.length>1&&ev(Z(e,0,2))&&(2===e.length||"/"===(t=D(e,2))||"\\"===t||"?"===t||"#"===t)},ew={},eE={},eO={},eT={},eC={},ex={},eI={},ek={},e_={},eR={},eP={},eN={},eD={},eM={},eL={},eB={},eF={},eU={},ej={},ez={},eH={},eZ=function(e,t,n){var r,i,o,a=y(e);if(t){if(i=this.parse(a))throw new k(i);this.searchParams=null}else{if(void 0!==n&&(r=new eZ(n,!0)),i=this.parse(a,null,r))throw new k(i);(o=x(new C)).bindURL(this),this.searchParams=o}};eZ.prototype={type:"URL",parse:function(e,t,n){var i=t||ew,o=0,a="",s=!1,l=!1,u=!1;for(e=y(e),!t&&(this.scheme="",this.username="",this.password="",this.host=null,this.port=null,this.path=[],this.query=null,this.fragment=null,this.cannotBeABaseURL=!1,e=j(e,ei,""),e=j(e,eo,"$1")),c=m(e=j(e,ea,""));o<=c.length;){switch(p=c[o],i){case ew:if(p&&M(K,p))a+=V(p),i=eE;else{if(t)return W;i=eO;continue}break;case eE:if(p&&M(Y,p))a+=V(p);else if(":"===p){if(t&&(this.isSpecial()!==h(ey,a)||"file"===a&&(this.includesCredentials()||null!==this.port)||"file"===this.scheme&&""===this.host))return;if(this.scheme=a,t){this.isSpecial()&&ey[this.scheme]===this.port&&(this.port=null);return}a="","file"===this.scheme?i=eM:this.isSpecial()&&n&&n.scheme===this.scheme?i=eT:this.isSpecial()?i=ek:"/"===c[o+1]?(i=eC,o++):(this.cannotBeABaseURL=!0,U(this.path,""),i=ej)}else{if(t)return W;a="",i=eO,o=0;continue}break;case eO:if(!n||n.cannotBeABaseURL&&"#"!==p)return W;if(n.cannotBeABaseURL&&"#"===p){this.scheme=n.scheme,this.path=g(n.path),this.query=n.query,this.fragment="",this.cannotBeABaseURL=!0,i=eH;break}i="file"===n.scheme?eM:ex;continue;case eT:if("/"===p&&"/"===c[o+1])i=e_,o++;else{i=ex;continue}break;case eC:if("/"===p){i=eR;break}i=eU;continue;case ex:if(this.scheme=n.scheme,p===r)this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,this.path=g(n.path),this.query=n.query;else if("/"===p||"\\"===p&&this.isSpecial())i=eI;else if("?"===p)this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,this.path=g(n.path),this.query="",i=ez;else if("#"===p)this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,this.path=g(n.path),this.query=n.query,this.fragment="",i=eH;else{this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,this.path=g(n.path),this.path.length&&this.path.length--,i=eU;continue}break;case eI:if(this.isSpecial()&&("/"===p||"\\"===p))i=e_;else if("/"===p)i=eR;else{this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,i=eU;continue}break;case ek:if(i=e_,"/"!==p||"/"!==c[o+1])continue;o++;break;case e_:if("/"!==p&&"\\"!==p){i=eR;continue}break;case eR:if("@"===p){s&&(a="%40"+a),s=!0,d=m(a);for(var c,p,d,f,A,b,v=0;v65535)return q;this.port=this.isSpecial()&&E===ey[this.scheme]?null:E,a=""}if(t)return;i=eF;continue}break;case eM:if(this.scheme="file",this.host="","/"===p||"\\"===p)i=eL;else if(n&&"file"===n.scheme)switch(p){case r:this.host=n.host,this.path=g(n.path),this.query=n.query;break;case"?":this.host=n.host,this.path=g(n.path),this.query="",i=ez;break;case"#":this.host=n.host,this.path=g(n.path),this.query=n.query,this.fragment="",i=eH;break;default:this.host=n.host,!eS(L(g(c,o),""))&&(this.path=g(n.path),this.shortenPath()),i=eU;continue}else{i=eU;continue}break;case eL:if("/"===p||"\\"===p){i=eB;break}n&&"file"===n.scheme&&(this.host=n.host,!eS(L(g(c,o),""))&&ev(n.path[0],!0)&&U(this.path,n.path[0])),i=eU;continue;case eB:if(p===r||"/"===p||"\\"===p||"?"===p||"#"===p){if(!t&&ev(a))i=eU;else if(""===a){if(this.host="",t)return;i=eF}else{if(f=this.parseHost(a))return f;if("localhost"===this.host&&(this.host=""),t)return;a="",i=eF}continue}a+=p;break;case eF:if(this.isSpecial()){if(i=eU,"/"!==p&&"\\"!==p)continue}else if(t||"?"!==p){if(t||"#"!==p){if(p!==r&&(i=eU,"/"!==p))continue}else this.fragment="",i=eH}else this.query="",i=ez;break;case eU:if(p===r||"/"===p||"\\"===p&&this.isSpecial()||!t&&("?"===p||"#"===p)){;if(".."===(A=V(A=a))||"%2e."===A||".%2e"===A||"%2e%2e"===A)this.shortenPath(),"/"!==p&&!("\\"===p&&this.isSpecial())&&U(this.path,"");else{;if("."===(b=a)||"%2e"===V(b))"/"!==p&&!("\\"===p&&this.isSpecial())&&U(this.path,"");else"file"===this.scheme&&!this.path.length&&ev(a)&&(null!==this.host&&""!==this.host&&(this.host=""),a=D(a,0)+":"),U(this.path,a)}if(a="","file"===this.scheme&&(p===r||"?"===p||"#"===p))for(;this.path.length>1&&""===this.path[0];)z(this.path);"?"===p?(this.query="",i=ez):"#"===p&&(this.fragment="",i=eH)}else a+=eb(p,eg);break;case ej:"?"===p?(this.query="",i=ez):"#"===p?(this.fragment="",i=eH):p!==r&&(this.path[0]+=eb(p,ed));break;case ez:t||"#"!==p?p!==r&&(this.query+=eb(p,this.isSpecial()?ef:eh)):(this.fragment="",i=eH);break;case eH:p!==r&&(this.fragment+=eb(p,em))}o++}},parseHost:function(e){var t,n,r;if("["===D(e,0)){if("]"!==D(e,e.length-1)||!(t=eu(Z(e,1,-1))))return Q;this.host=t}else if(this.isSpecial()){if(M(en,e=b(e)))return Q;if(es(e)){if(null===(t=el(e)))return Q;this.host=t}else this.host=e}else{if(M(er,e))return Q;for(r=0,t="",n=m(e);r1&&""===o[0]&&(l+="/."),l+=this.cannotBeABaseURL?o[0]:o.length?"/"+L(o,"/"):"",null!==a&&(l+="?"+a),null!==s&&(l+="#"+s),l},setHref:function(e){var t=this.parse(e);if(t)throw new k(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"===e)try{return new eV(this.path[0]).origin}catch(e){return"null"}return"file"!==e&&this.isSpecial()?e+"://"+ep(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(y(e)+":",ew)},getUsername:function(){return this.username},setUsername:function(e){var t=m(y(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var n=0;n1?arguments[1]:void 0,r=O(t,new eZ(e,!1,n));!o&&(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},eG=eV.prototype,eW=function(e,t){return{get:function(){return T(this)[e]()},set:t&&function(e){return T(this)[t](e)},configurable:!0,enumerable:!0}};if(o&&(p(eG,"href",eW("serialize","setHref")),p(eG,"origin",eW("getOrigin")),p(eG,"protocol",eW("getProtocol","setProtocol")),p(eG,"username",eW("getUsername","setUsername")),p(eG,"password",eW("getPassword","setPassword")),p(eG,"host",eW("getHost","setHost")),p(eG,"hostname",eW("getHostname","setHostname")),p(eG,"port",eW("getPort","setPort")),p(eG,"pathname",eW("getPathname","setPathname")),p(eG,"search",eW("getSearch","setSearch")),p(eG,"searchParams",eW("getSearchParams")),p(eG,"hash",eW("getHash","setHash"))),c(eG,"toJSON",function(){return T(this).serialize()},{enumerable:!0}),c(eG,"toString",function(){return T(this).serialize()},{enumerable:!0}),I){var eQ=I.createObjectURL,eq=I.revokeObjectURL;eQ&&c(eV,"createObjectURL",l(eQ,I)),eq&&c(eV,"revokeObjectURL",l(eq,I))}v(eV,"URL"),i({global:!0,constructor:!0,forced:!a,sham:!o},{URL:eV})},41465:function(e,t,n){"use strict";n(20204)},30601:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(60968),a=n(43576),s=n(1110),l=i("URL");r({target:"URL",stat:!0,forced:!s},{parse:function(e){var t=o(arguments.length,1),n=a(e),r=t<2||void 0===arguments[1]?void 0:a(arguments[1]);try{return new l(n,r)}catch(e){return null}}})},34845:function(e,t,n){"use strict";var r=n(77341),i=n(87494);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return i(URL.prototype.toString,this)}})},8647:function(e,t,n){"use strict";n(73249),n(84730),n(48622),n(15411),n(94304),n(81596),n(6280),n(79133),n(37257),n(84562),n(58240),n(17020),n(36668),n(19719),n(67589),n(20289),n(20648),n(40777),n(23384),n(31418),n(446),n(87671),n(83712),n(55619),n(12212),n(84140),n(1709),n(63430),n(25518),n(70021),n(14487),n(86782),n(91298),n(24674),n(81315),n(49193),n(55204),n(39710),n(87622),n(21868),n(26847),n(38997),n(66778),n(24819),n(89674),n(2394),n(44438),n(41305),n(6988),n(69643),n(14328),n(18574),n(47296),n(13571),n(37339),n(34051),n(15519),n(20678),n(78152),n(73042),n(45146),n(78136),n(85696),n(73350),n(7324),n(28267),n(46209),n(97810),n(43044),n(83694),n(344),n(33272),n(71190),n(12244),n(46323),n(59129),n(61712),n(13699),n(88802),n(43457),n(98389),n(72040),n(13189),n(13715),n(81738),n(75434),n(60399),n(8302),n(33480),n(94814),n(29981),n(55770),n(22960),n(31845),n(6989),n(93190),n(72489),n(13101),n(92581),n(76622),n(80158),n(99572),n(21700),n(92377),n(7175),n(97582),n(87995),n(61222),n(66585),n(22773),n(10416),n(48783),n(69094),n(15170),n(60878),n(89067),n(23437),n(69068),n(52978),n(27427),n(95417),n(62958),n(5235),n(40563),n(23178),n(88433),n(28273),n(9262),n(96821),n(32396),n(60515),n(35385),n(99233),n(12389),n(68076),n(58266),n(95203),n(87854),n(60226),n(25718),n(4295),n(87799),n(79817),n(61550),n(70349),n(15142),n(83836),n(48454),n(59741),n(18514),n(96389),n(19836),n(56995),n(29573),n(78307),n(90601),n(29784),n(98354),n(70822),n(28501),n(24533),n(67405),n(85437),n(96395),n(28417),n(36172),n(821),n(54480),n(69920),n(35100),n(70820),n(1455),n(10189),n(60862),n(67496),n(17074),n(95353),n(16995),n(80706),n(87040),n(63849),n(31454),n(11161),n(36205),n(24233),n(12829),n(42655),n(54194),n(69606),n(28123),n(68947),n(23693),n(51033),n(576),n(65640),n(95666),n(28660),n(64455),n(60142),n(20727),n(32192),n(56303),n(11353),n(67886),n(65451),n(46015),n(38334),n(94880),n(75643),n(29761),n(5458),n(38077),n(26086),n(11102),n(56389),n(37451),n(48694),n(40005),n(49685),n(83128),n(18977),n(17959),n(10490),n(6202),n(17994),n(41381),n(38465),n(44261),n(89632),n(86152),n(20655),n(55066),n(69586),n(52700),n(70008),n(70610),n(59224),n(24826),n(33063),n(40416),n(10910),n(78122),n(66397),n(76874),n(76082),n(13329),n(454),n(39085),n(42520),n(48963),n(25353),n(9306),n(33250),n(38559),n(31373),n(52483),n(13286),n(31444),n(76840),n(29175),n(86921),n(23631),n(53152),n(87148),n(47005),n(79032),n(63168),n(94245),n(5781),n(42097),n(76440),n(52497),n(33099),n(91260),n(51410),n(78632),n(17654),n(97776),n(61791),n(3481),n(43987),n(67946),n(18248),n(5099),n(30022),n(7303),n(73680),n(35150),n(23977),n(79168),n(88196),n(74062),n(95523),n(52530),n(76181),n(78843),n(30890),n(8314),n(59454),n(67398),n(27530),n(93782),n(63355),n(69250),n(28856),n(2503),n(77451),n(14897),n(88946),n(41465),n(36707),n(30601),n(34845),n(95729),n(36330),n(38221),n(75863),n(61728)},16019:function(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,i){if(1&i&&(r=this(r)),8&i||"object"==typeof r&&r&&(4&i&&r.__esModule||16&i&&"function"==typeof r.then))return r;var o=Object.create(null);n.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var s=2&i&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach(function(e){a[e]=function(){return r[e]}});return a.default=function(){return r},n.d(o,a),o}})(),n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.k=function(e){return""+e+".css"},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.rv=function(){return"1.0.0"},(()=>{var e={},t="openstudioreleases",r="data-webpack-loading",i=function(e,i,o,a,s){var l,u,c="chunk-"+e;if(!a){for(var p=document.getElementsByTagName("link"),d=0;d{var s,l,u="",c="",p="",d={},h="--webpack-"+t+"-"+a,f=1,m={};try{!o&&(o=i(a));for(var g=o.sheet.cssRules||o.sheet.rules,A=g.length-1;A>-1&&!s;){var b=g[A--].style;if(!!b)s=b.getPropertyValue(h)}}catch(e){}if(!s&&(s=getComputedStyle(document.head).getPropertyValue(h)),!s)return;var y,v={},S=s[0],w=S,E=S,O=256;for(l=1;l65535&&(O=256,v={}),w=y;for(l=0,s=E;f;l++)58==(f=s.charCodeAt(l))?(c=u,u=""):47==f?(u=u.replace(/^_/,""),c=c.replace(/^_/,""),p?m.push(c,p,u):d[c]=void 0===d[c]?u:d[c]+" "+u,u="",c="",p=""):38==f?n.r(d):f&&44!=f?92==f?u+=s[++l]:64==f?(p=u,u=""):u+=s[l]:(r[u=u.replace(/^_/,"")]=((e,t,r)=>{!function(e,t){for(var r=0;rn)throw S7(`Invalid value for '${e}'. Expected ${n} or less.`)}function wr(e,t,n){let r=t;return null==n&&(r=`https://${t}`),`${n}://${r}/v0${e}`}function wi(e){let t=encodeURIComponent,n="?";for(let r in e)e.hasOwnProperty(r)&&(n=n+(t(r)+"="+t(e[r]))+"&");return n=n.slice(0,-1)}(C=eE||(eE={}))[C.NO_ERROR=0]="NO_ERROR",C[C.NETWORK_ERROR=1]="NETWORK_ERROR",C[C.ABORT=2]="ABORT";class wo{constructor(e,t,n,r,i,o,a,s,l,u,c,p=!0){this.url_=e,this.method_=t,this.headers_=n,this.body_=r,this.successCodes_=i,this.additionalRetryCodes_=o,this.callback_=a,this.errorCallback_=s,this.timeout_=l,this.progressCallback_=u,this.connectionFactory_=c,this.retry=p,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){let e=(e,t)=>{let n=this.resolve_,r=this.reject_,i=t.connection;if(t.wasSuccessCode)try{var o;let e=this.callback_(i,i.getResponse());if(o=e,void 0!==o)n(e);else n()}catch(e){r(e)}else if(null!==i){let e=S6();e.serverResponse=i.getErrorText(),r(this.errorCallback_?this.errorCallback_(i,e):e)}else r(t.canceled?this.appDelete_?S8():new S4(ew.CANCELED,"User canceled the upload/download."):new S4(ew.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again."))};this.canceled_?e(!1,new wa(!1,null,!0)):this.backoffId_=function(e,t,n){let r=1,i=null,o=null,a=!1,s=0;function l(){return 2===s}let u=!1;function c(...e){!u&&(u=!0,t.apply(null,e))}function p(t){i=setTimeout(()=>{i=null,e(h,2===s)},t)}function d(){o&&clearTimeout(o)}function h(e,...t){let n;if(u){d();return}if(e||2===s||a){d(),c.call(null,e,...t);return}r<64&&(r*=2),1===s?(s=2,n=0):n=(r+Math.random())*1e3,p(n)}let f=!1;function m(e){if(f)return;if(f=!0,d(),!u)null!==i?(!e&&(s=2),clearTimeout(i),p(0)):!e&&(s=1)}return p(0),o=setTimeout(()=>{a=!0,m(!0)},n),m}((e,t)=>{if(t){e(!1,new wa(!1,null,!0));return}let n=this.connectionFactory_();this.pendingConnection_=n;let r=e=>{let t=e.loaded,n=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,n)};null!==this.progressCallback_&&n.addUploadProgressListener(r),n.send(this.url_,this.method_,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&n.removeUploadProgressListener(r),this.pendingConnection_=null;let t=n.getErrorCode()===eE.NO_ERROR,i=n.getStatus();if(!t||function(e,t){let n=e>=500&&e<600,r=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return n||r||i}(i,this.additionalRetryCodes_)&&this.retry){e(!1,new wa(!1,null,n.getErrorCode()===eE.ABORT));return}e(!0,new wa(-1!==this.successCodes_.indexOf(i),n))})},e,this.timeout_)}getPromise(){return this.promise_}cancel(e){if(this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_)(0,this.backoffId_)(!1);null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class wa{constructor(e,t,n){this.wasSuccessCode=e,this.connection=t,this.canceled=!!n}}function ws(e){var t;let n;try{n=JSON.parse(e)}catch(e){return null}return"object"!=typeof(t=n)||Array.isArray(t)?null:n}function wl(e){let t=e.lastIndexOf("/",e.length-2);return -1===t?e:e.slice(t+1)}function wu(e,t){return t}class wc{constructor(e,t,n,r){this.server=e,this.local=t||e,this.writable=!!n,this.xform=r||wu}}let wp=null;function wd(){if(wp)return wp;let e=[];e.push(new wc("bucket")),e.push(new wc("generation")),e.push(new wc("metageneration")),e.push(new wc("name","fullPath",!0));let t=new wc("name");t.xform=function(e,t){var n;return!wt(n=t)||n.length<2?n:wl(n)},e.push(t);let n=new wc("size");return n.xform=function(e,t){return void 0!==t?Number(t):t},e.push(n),e.push(new wc("timeCreated")),e.push(new wc("updated")),e.push(new wc("md5Hash",null,!0)),e.push(new wc("cacheControl",null,!0)),e.push(new wc("contentDisposition",null,!0)),e.push(new wc("contentEncoding",null,!0)),e.push(new wc("contentLanguage",null,!0)),e.push(new wc("contentType",null,!0)),e.push(new wc("metadata","customMetadata",!0)),wp=e}function wh(e,t,n){let r=ws(t);return null===r?null:function(e,t,n){var r,i;let o={};o.type="file";let a=n.length;for(let e=0;e{this.xhr_.addEventListener("abort",()=>{this.errorCode_=eE.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=eE.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,n,r){if(this.sent_)throw S5("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==r)for(let e in r)r.hasOwnProperty(e)&&this.xhr_.setRequestHeader(e,r[e].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(!this.sent_)throw S5("cannot .getErrorCode() before sending");return this.errorCode_}getStatus(){if(!this.sent_)throw S5("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return -1}}getResponse(){if(!this.sent_)throw S5("cannot .getResponse() before sending");return this.xhr_.response}getErrorText(){if(!this.sent_)throw S5("cannot .getErrorText() before sending");return this.xhr_.statusText}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}class wb extends wA{initXhr(){this.xhr_.responseType="text"}}function wy(){return new wb}class wv{constructor(e,t){this._service=e,t instanceof S9?this._location=t:this._location=S9.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new wv(e,t)}get root(){let e=new S9(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return wl(this._location.path)}get storage(){return this._service}get parent(){let e=function(e){if(0===e.length)return null;let t=e.lastIndexOf("/");return -1===t?"":e.slice(0,t)}(this._location.path);if(null===e)return null;let t=new S9(this._location.bucket,e);return new wv(this._service,t)}_throwIfRoot(e){if(""===this._location.path){var t;throw t=e,new S4(ew.INVALID_ROOT_OPERATION,"The operation '"+t+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}}}function wS(e,t){let n=null==t?void 0:t[S2];return null==n?null:S9.makeFromBucketSpec(n,e)}class ww{constructor(e,t,n,r,i){this.app=e,this._authProvider=t,this._appCheckProvider=n,this._url=r,this._firebaseVersion=i,this._bucket=null,this._host=S1,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,null!=r?this._bucket=S9.makeFromBucketSpec(r,this._host):this._bucket=wS(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=S9.makeFromBucketSpec(this._url,e):this._bucket=wS(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){wn("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){wn("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;let e=this._authProvider.getImmediate({optional:!0});if(e){let t=await e.getToken();if(null!==t)return t.accessToken}return null}async _getAppCheckToken(){let e=this._appCheckProvider.getImmediate({optional:!0});return e?(await e.getToken()).token:null}_delete(){return!this._deleted&&(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new wv(this,e)}_makeRequest(e,t,n,r,i=!0){if(this._deleted)return new we(S8());{let o=function(e,t,n,r,i,o,a=!0){var s,l,u,c,p,d,h,f;let m=wi(e.urlParams),g=e.url+m,A=Object.assign({},e.headers);return s=A,(l=t)&&(s["X-Firebase-GMPID"]=l),u=A,null!==(c=n)&&c.length>0&&(u.Authorization="Firebase "+c),p=A,d=o,p["X-Firebase-Storage-Version"]="webjs/"+(null!=d?d:"AppManager"),h=A,null!==(f=r)&&(h["X-Firebase-AppCheck"]=f),new wo(g,e.method,A,e.body,e.successCodes,e.additionalRetryCodes,e.handler,e.errorHandler,e.timeout,e.progressCallback,i,a)}(e,this._appId,n,r,t,this._firebaseVersion,i);return this._requests.add(o),o.getPromise().then(()=>this._requests.delete(o),()=>this._requests.delete(o)),o}}async makeRequestWithTokens(e,t){let[n,r]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,n,r).getPromise()}}let wE="@firebase/storage",wO="0.13.2",wT="storage";function wC(e,t){return function(e,t){var n;if(!(t&&(n=t,/^[A-Za-z]+:\/\//.test(n))))return function e(t,n){if(t instanceof ww){if(null==t._bucket)throw new S4(ew.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+S2+"' property when initializing the app?");let r=new wv(t,t._bucket);return null!=n?e(r,n):r}return void 0!==n?function(e,t){let n=function(e,t){let n=t.split("/").filter(e=>e.length>0).join("/");return 0===e.length?n:e+"/"+n}(e._location.path,t),r=new S9(e._location.bucket,n);return new wv(e.storage,r)}(t,n):t}(e,t);if(e instanceof ww)return new wv(e,t);throw S7("To use ref(service, url), the first argument must be a Storage instance.")}(e=dS(e),t)}function wx(e,{instanceIdentifier:t}){let n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal");return new ww(n,r,e.getProvider("app-check-internal"),t,d8)}d2(new dw(wT,wx,"PUBLIC").setMultipleInstances(!0)),he(wE,wO,""),he(wE,wO,"esm2017");let wI="@firebase/installations",wk="0.6.9",w_=`w:${wk}`,wR="FIS_v2",wP=new dp("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function wN(e){return e instanceof dc&&e.code.includes("request-failed")}function wD({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function wM(e){return{token:e.token,requestStatus:2,expiresIn:function(e){return Number(e.replace("s","000"))}(e.expiresIn),creationTime:Date.now()}}async function wL(e,t){let n=(await t.json()).error;return wP.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function wB({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}async function wF(e){let t=await e();return t.status>=500&&t.status<600?e():t}async function wU({appConfig:e,heartbeatServiceProvider:t},{fid:n}){let r=wD(e),i=wB(e),o=t.getImmediate({optional:!0});if(o){let e=await o.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}let a={method:"POST",headers:i,body:JSON.stringify({fid:n,authVersion:wR,appId:e.appId,sdkVersion:w_})},s=await wF(()=>fetch(r,a));if(s.ok){let e=await s.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:wM(e.authToken)}}throw await wL("Create Installation",s)}function wj(e){return new Promise(t=>{setTimeout(t,e)})}let wz=/^[cdef][\w-]{21}$/;function wH(e){return`${e.appName}!${e.appId}`}let wZ=new Map;function wV(e,t){let n=wH(e);wG(n,t),function(e,t){let n=function(){return!wW&&"BroadcastChannel"in self&&((wW=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{wG(e.data.key,e.data.fid)}),wW}();n&&n.postMessage({key:e,fid:t}),function(){0===wZ.size&&wW&&(wW.close(),wW=null)}()}(n,t)}function wG(e,t){let n=wZ.get(e);if(!!n)for(let e of n)e(t)}let wW=null,wQ="firebase-installations-store",wq=null;function wK(){return!wq&&(wq=dz("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(wQ)}})),wq}async function wY(e,t){let n=wH(e),r=(await wK()).transaction(wQ,"readwrite"),i=r.objectStore(wQ),o=await i.get(n);return await i.put(t,n),await r.done,(!o||o.fid!==t.fid)&&wV(e,t.fid),t}async function wX(e){let t=wH(e),n=(await wK()).transaction(wQ,"readwrite");await n.objectStore(wQ).delete(t),await n.done}async function wJ(e,t){let n=wH(e),r=(await wK()).transaction(wQ,"readwrite"),i=r.objectStore(wQ),o=await i.get(n),a=t(o);return void 0===a?await i.delete(n):await i.put(a,n),await r.done,a&&(!o||o.fid!==a.fid)&&wV(e,a.fid),a}async function w$(e){let t;let n=await wJ(e.appConfig,n=>{let r=function(e,t){if(0===t.registrationStatus){if(!navigator.onLine)return{installationEntry:t,registrationPromise:Promise.reject(wP.create("app-offline"))};let n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=w0(e,n);return{installationEntry:n,registrationPromise:r}}if(1===t.registrationStatus)return{installationEntry:t,registrationPromise:w1(e)};return{installationEntry:t}}(e,function(e){return w4(e||{fid:function(){try{let e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;let t=function(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").substr(0,22)}(e);return wz.test(t)?t:""}catch(e){return""}}(),registrationStatus:0})}(n));return t=r.registrationPromise,r.installationEntry});return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function w0(e,t){try{let n=await wU(e,t);return wY(e.appConfig,n)}catch(n){throw wN(n)&&409===n.customData.serverCode?await wX(e.appConfig):await wY(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}async function w1(e){let t=await w2(e.appConfig);for(;1===t.registrationStatus;)await wj(100),t=await w2(e.appConfig);if(0===t.registrationStatus){let{installationEntry:t,registrationPromise:n}=await w$(e);return n?n:t}return t}function w2(e){return wJ(e,e=>{if(!e)throw wP.create("installation-not-found");return w4(e)})}function w4(e){return function(e){return 1===e.registrationStatus&&e.registrationTime+1e4fetch(r,a));if(s.ok)return wM(await s.json());throw await wL("Generate Auth Token",s)}async function w6(e,t=!1){let n;let r=await wJ(e.appConfig,r=>{if(!w9(r))throw wP.create("not-registered");let i=r.authToken;if(!t&&function(e){return 2===e.requestStatus&&!function(e){let t=Date.now();return t{if(!w9(e))throw wP.create("not-registered");return function(e){return 1===e.requestStatus&&e.requestTime+1e4{let t=e.getProvider("app").getImmediate(),n=function(e){if(!e||!e.options)throw Er("App Configuration");if(!e.name)throw Er("App Name");for(let t of["projectId","apiKey","appId"])if(!e.options[t])throw Er(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t),r=d4(t,"heartbeat");return{app:t,appConfig:n,heartbeatServiceProvider:r,_delete:()=>Promise.resolve()}},Ea=e=>{let t=d4(e.getProvider("app").getImmediate(),Ei).getImmediate();return{getId:()=>Ee(t),getToken:e=>Et(t,e)}};d2(new dw(Ei,Eo,"PUBLIC")),d2(new dw("installations-internal",Ea,"PRIVATE")),he(wI,wk),he(wI,wk,"esm2017");let Es="analytics",El="https://www.googletagmanager.com/gtag/js",Eu=new dR("@firebase/analytics"),Ec=new dp("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function Ep(e){if(!e.startsWith(El)){let t=Ec.create("invalid-gtag-resource",{gtagURL:e});return Eu.warn(t.message),""}return e}function Ed(e){return Promise.all(e.map(e=>e.catch(e=>e)))}async function Eh(e,t,n,r,i,o){let a=r[i];try{if(a)await t[a];else{let e=(await Ed(n)).find(e=>e.measurementId===i);e&&await t[e.appId]}}catch(e){Eu.error(e)}e("config",i,o)}async function Ef(e,t,n,r,i){try{let o=[];if(i&&i.send_to){let e=i.send_to;!Array.isArray(e)&&(e=[e]);let r=await Ed(n);for(let n of e){let e=r.find(e=>e.measurementId===n),i=e&&t[e.appId];if(i)o.push(i);else{o=[];break}}}0===o.length&&(o=Object.values(t)),await Promise.all(o),e("event",r,i||{})}catch(e){Eu.error(e)}}let Em=new class e{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function Eg(e){var t;let{appId:n,apiKey:r}=e,i={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},o="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig".replace("{app-id}",n),a=await fetch(o,i);if(200!==a.status&&304!==a.status){let e="";try{let n=await a.json();(null===(t=n.error)||void 0===t?void 0:t.message)&&(e=n.error.message)}catch(e){}throw Ec.create("config-fetch-failed",{httpStatus:a.status,responseMessage:e})}return a.json()}async function EA(e,t=Em,n){let{appId:r,apiKey:i,measurementId:o}=e.options;if(!r)throw Ec.create("no-app-id");if(!i){if(o)return{measurementId:o,appId:r};throw Ec.create("no-api-key")}let a=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()},s=new Ey;return setTimeout(async()=>{s.abort()},void 0!==n?n:6e4),Eb({appId:r,apiKey:i,measurementId:o},a,s,t)}async function Eb(e,{throttleEndTimeMillis:t,backoffCount:n},r,i=Em){var o;let{appId:a,measurementId:s}=e;try{await function(e,t){return new Promise((n,r)=>{let i=setTimeout(n,Math.max(t-Date.now(),0));e.addEventListener(()=>{clearTimeout(i),r(Ec.create("fetch-throttle",{throttleEndTimeMillis:t}))})})}(r,t)}catch(e){if(s)return Eu.warn(`Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID ${s} provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:a,measurementId:s};throw e}try{let t=await Eg(e);return i.deleteThrottleMetadata(a),t}catch(u){if(!function(e){if(!(e instanceof dc)||!e.customData)return!1;let t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}(u)){if(i.deleteThrottleMetadata(a),s)return Eu.warn(`Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID ${s} provided in the "measurementId" field in the local Firebase config. [${null==u?void 0:u.message}]`),{appId:a,measurementId:s};throw u}let t=503===Number(null===(o=null==u?void 0:u.customData)||void 0===o?void 0:o.httpStatus)?dv(n,i.intervalMillis,30):dv(n,i.intervalMillis),l={throttleEndTimeMillis:Date.now()+t,backoffCount:n+1};return i.setThrottleMetadata(a,l),Eu.debug(`Calling attemptFetch again in ${t} millis`),Eb(e,l,r,i)}}class Ey{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function Ev(e,t,n,r,i){if(i&&i.global){e("event",n,r);return}{let i=await t;e("event",n,Object.assign(Object.assign({},r),{send_to:i}))}}async function ES(){if(!dl())return Eu.warn(Ec.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await du()}catch(e){return Eu.warn(Ec.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0}async function Ew(e,t,n,r,i,o,a){var s;let c=EA(e);c.then(t=>{n[t.measurementId]=t.appId,e.options.measurementId&&t.measurementId!==e.options.measurementId&&Eu.warn(`The measurement ID in the local Firebase config (${e.options.measurementId}) does not match the measurement ID fetched from the server (${t.measurementId}). To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.`)}).catch(e=>Eu.error(e)),t.push(c);let p=ES().then(e=>e?r.getId():void 0),[d,h]=await Promise.all([c,p]);if(!function(e){for(let t of Object.values(window.document.getElementsByTagName("script")))if(t.src&&t.src.includes(El)&&t.src.includes(e))return t;return null}(o)&&!function(e,t){var n,r;let i;let o=(n="firebase-js-sdk-policy",r={createScriptURL:Ep},window.trustedTypes&&(i=window.trustedTypes.createPolicy(n,r)),i),a=document.createElement("script"),s=`${El}?l=${e}&id=${t}`;a.src=o?null==o?void 0:o.createScriptURL(s):s,a.async=!0,document.head.appendChild(a)}(o,d.measurementId),u)i("consent","default",u),u=void 0;i("js",new Date);let f=null!==(s=null==a?void 0:a.config)&&void 0!==s?s:{};if(f.origin="firebase",f.update=!0,null!=h&&(f.firebase_id=h),i("config",d.measurementId,f),l)i("set",l),l=void 0;return d.measurementId}class EE{constructor(e){this.app=e}_delete(){return delete EO[this.app.options.appId],Promise.resolve()}}let EO={},ET=[],EC={},Ex="dataLayer",EI=!1;function Ek(e,t,n,r){e=dS(e),Ev(p,EO[e.app.options.appId],t,n,r).catch(e=>Eu.error(e))}let E_="@firebase/analytics",ER="0.10.8";d2(new dw(Es,(e,{options:t})=>{let n=e.getProvider("app").getImmediate();return function(e,t,n){!function(){let e=[];if(ds()&&e.push("This is a browser extension environment."),!("undefined"!=typeof navigator&&navigator.cookieEnabled)&&e.push("Cookies are not available."),e.length>0){let t=e.map((e,t)=>`(${t+1}) ${e}`).join(" "),n=Ec.create("invalid-analytics-context",{errorInfo:t});Eu.warn(n.message)}}();let r=e.options.appId;if(!r)throw Ec.create("no-app-id");if(!e.options.apiKey){if(e.options.measurementId)Eu.warn(`The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID ${e.options.measurementId} provided in the "measurementId" field in the local Firebase config.`);else throw Ec.create("no-api-key")}if(null!=EO[r])throw Ec.create("already-exists",{id:r});if(!EI){var i,o,a,s,l,u,d,h,f,m;let e,t;i=Ex,e=[],Array.isArray(window[i])?e=window[i]:window[i]=e;let{wrappedGtag:n,gtagCore:r}=(o=EO,a=ET,s=EC,l=Ex,u="gtag",t=function(...e){window[l].push(arguments)},window[u]&&"function"==typeof window[u]&&(t=window[u]),window[u]=(d=t,h=o,f=a,m=s,async function e(t,...n){try{if("event"===t){let[e,t]=n;await Ef(d,h,f,e,t)}else if("config"===t){let[e,t]=n;await Eh(d,h,f,m,e,t)}else if("consent"===t){let[e,t]=n;d("consent",e,t)}else if("get"===t){let[e,t,r]=n;d("get",e,t,r)}else if("set"===t){let[e]=n;d("set",e)}else d(t,...n)}catch(e){Eu.error(e)}}),{gtagCore:t,wrappedGtag:window[u]});p=n,c=r,EI=!0}return EO[r]=Ew(e,ET,EC,t,c,Ex,n),new EE(e)}(n,e.getProvider("installations-internal").getImmediate(),t)},"PUBLIC")),d2(new dw("analytics-internal",function(e){try{let t=e.getProvider(Es).getImmediate();return{logEvent:(e,n,r)=>Ek(t,e,n,r)}}catch(e){throw Ec.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),he(E_,ER),he(E_,ER,"esm2017");var EP=d5(JSON.parse('{"apiKey":"AIzaSyBrp4sEJltP_Dz2QXnnBoKEMx74MKWheLk","authDomain":"osc-downloads.firebaseapp.com","projectId":"osc-downloads","storageBucket":"gs://osc-downloads.appspot.com","messagingSenderId":"891236007779","appId":"1:891236007779:web:6fbdd2dd40ce2e72d19d56","measurementId":"G-YE9RWQVV9V"}')),EN=function(e=d9()){let t=d4(e,"auth");if(t.isInitialized())return t.getImmediate();let n=function(e,t){let n=d4(e,"auth");if(n.isInitialized()){let e=n.getImmediate();if(dh(n.getOptions(),null!=t?t:{}))return e;hg(e,"already-initialized")}return n.initialize({options:t})}(e,{popupRedirectResolver:m4,persistence:[mS,mi,mo]}),r=dn("authTokenSyncURL");if(r&&"boolean"==typeof isSecureContext&&isSecureContext){let e=new URL(r,location.origin);if(location.origin===e.origin){var i,o,a,s,l,u,c;let t=gi(e.toString());i=n,o=t,a=()=>t(n.currentUser),dS(i).beforeAuthStateChanged(o,a),s=n,l=e=>t(e),dS(s).onIdTokenChanged(l,void 0,void 0)}}let p=p9("auth");return p&&!function(e,t,n){let r=dS(e);hS(r._canInitEmulator,r,"emulator-config-failed"),hS(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");let i=false,o=fE(t),{host:a,port:s}=function(e){let t=fE(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};let r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){let e=i[1];return{host:e,port:fO(r.substr(e.length+1))}}{let[e,t]=r.split(":");return{host:e,port:fO(t)}}}(t),l=null===s?"":`:${s}`;r.config.emulator={url:`${o}//${a}${l}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:a,port:s,protocol:o.replace(":",""),options:Object.freeze({disableWarnings:i})}),!i&&function(){function e(){let e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(n,`http://${p}`),n}(EP),ED=function(e,t){let n=d4("object"==typeof e?e:d9(),"firestore").getImmediate({identifier:"string"==typeof e?e:"(default)"});if(!n._initialized){let e=de("firestore");e&&function(e,t,n,r={}){var i;let o=(e=Sh(e,Sm))._getSettings(),a=`${t}:${n}`;if("firestore.googleapis.com"!==o.host&&o.host!==a&&gA("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),e._setSettings(Object.assign(Object.assign({},o),{host:a,ssl:!1})),r.mockUserToken){let t,n;if("string"==typeof r.mockUserToken)t=r.mockUserToken,n=gp.MOCK_USER;else{t=di(r.mockUserToken,null===(i=e._app)||void 0===i?void 0:i.options.projectId);let o=r.mockUserToken.sub||r.mockUserToken.user_id;if(!o)throw new gE(gw.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new gp(o)}e._authCredentials=new gx(new gT(t,n))}}(n,...e)}return n}(EP),EM=function(e=d9(),t){let n=d4(e=dS(e),wT).getImmediate({identifier:void 0}),r=de("storage");return r&&function(e,t,n,r={}){!function(e,t,n,r={}){e.host=`${t}:${n}`,e._protocol="http";let{mockUserToken:i}=r;i&&(e._overrideAuthToken="string"==typeof i?i:di(i,e.app.options.projectId))}(e,t,n,r)}(n,...r),n}(EP),EL=function(e=d9()){let t=d4(e=dS(e),Es);return t.isInitialized()?t.getImmediate():function(e,t={}){let n=d4(e,Es);if(n.isInitialized()){let e=n.getImmediate();if(dh(t,n.getOptions()))return e;throw Ec.create("already-initialized")}return n.initialize({options:t})}(e)}(EP),EB=new fQ;let EF=function(){for(var e,t,n=0,r="";n{if("object"==typeof window){let t=(e?e.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return t.nonce=window.__nonce__,t.parentNode||(e||document.head).appendChild(t),t.firstChild}return e||EU},Ez=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,EH=/\/\*[^]*?\*\/| +/g,EZ=/\n+/g,EV=(e,t)=>{let n="",r="",i="";for(let o in e){let a=e[o];"@"==o[0]?"i"==o[1]?n=o+" "+a+";":r+="f"==o[1]?EV(a,o):o+"{"+EV(a,"k"==o[1]?"":t)+"}":"object"==typeof a?r+=EV(a,t?t.replace(/([^,])+/g,e=>o.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):o):null!=a&&(o="-"==o[1]?o:o.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=EV.p?EV.p(o,a):o+":"+a+";")}return n+(t&&i?t+"{"+i+"}":i)+r},EG={},EW=e=>{if("object"==typeof e){let t="";for(let n in e)t+=n+EW(e[n]);return t}return e},EQ=(e,t,n,r,i)=>{var o,a,s,l;let u=EW(e),c=EG[u]||(EG[u]=(e=>{let t=0,n=11;for(;t>>0;return"go"+n})(u));if(!EG[c]){let t=u!==e?e:(e=>{let t,n,r=[{}];for(;t=Ez.exec(e.replace(EH,""));)t[4]?r.shift():t[3]?(n=t[3].replace(EZ," ").trim(),r.unshift(r[0][n]=r[0][n]||{})):r[0][t[1]]=t[2].replace(EZ," ").trim();return r[0]})(e);EG[c]=EV(i?{["@keyframes "+c]:t}:t,n?"":"."+c)}let p=n&&EG.g;return n&&(EG.g=EG[c]),o=EG[c],a=t,s=r,(l=p)?a.data=a.data.replace(l,o):-1===a.data.indexOf(o)&&(a.data=s?o+a.data:a.data+o),c},Eq=(e,t,n)=>e.reduce((e,r,i)=>{let o=t[i];if(o&&o.call){let e=o(n),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;o=t?"."+t:e&&"object"==typeof e?e.props?"":EV(e,""):!1===e?"":e}return e+r+(null==o?"":o)},"");function EK(e){let t=this||{},n=e.call?e(t.p):e;return EQ(n.unshift?n.raw?Eq(n,[].slice.call(arguments,1),t.p):n.reduce((e,n)=>Object.assign(e,n&&n.call?n(t.p):n),{}):n,Ej(t.target),t.g,t.o,t.k)}function EY(e,t){for(var n=0;n=0)&&(i[n]=e[n]);return i}function E1(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}EK.bind({g:1}),EK.bind({k:1});var E2=function(){return""},E4=e0.createContext({enqueueSnackbar:E2,closeSnackbar:E2}),E3="@media (max-width:599.95px)",E6="@media (min-width:600px)",E7=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},E8=function(e){return""+E7(e.vertical)+E7(e.horizontal)},E5=function(e){return!!e||0===e},E9="unmounted",Oe="exited",Ot="entering",On="entered",Or="exiting",Oi=function(e){function t(t){n=e.call(this,t)||this;var n,r,i=t.appear;return n.appearStatus=null,t.in?i?(r=Oe,n.appearStatus=Ot):r=On:r=t.unmountOnExit||t.mountOnEnter?E9:Oe,n.state={status:r},n.nextCallback=null,n}E$(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===E9?{status:Oe}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==Ot&&n!==On&&(t=Ot):(n===Ot||n===On)&&(t=Or)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e=this.props.timeout,t=e,n=e;return null!=e&&"number"!=typeof e&&"string"!=typeof e&&(n=e.exit,t=e.enter),{exit:n,enter:t}},n.updateStatus=function(e,t){void 0===e&&(e=!1),null!==t?(this.cancelNextCallback(),t===Ot?this.performEnter(e):this.performExit()):this.props.unmountOnExit&&this.state.status===Oe&&this.setState({status:E9})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.getTimeouts();if(!e&&!n){this.safeSetState({status:On},function(){t.props.onEntered&&t.props.onEntered(t.node,e)});return}this.props.onEnter&&this.props.onEnter(this.node,e),this.safeSetState({status:Ot},function(){t.props.onEntering&&t.props.onEntering(t.node,e),t.onTransitionEnd(r.enter,function(){t.safeSetState({status:On},function(){t.props.onEntered&&t.props.onEntered(t.node,e)})})})},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts();if(!t){this.safeSetState({status:Oe},function(){e.props.onExited&&e.props.onExited(e.node)});return}this.props.onExit&&this.props.onExit(this.node),this.safeSetState({status:Or},function(){e.props.onExiting&&e.props.onExiting(e.node),e.onTransitionEnd(n.exit,function(){e.safeSetState({status:Oe},function(){e.props.onExited&&e.props.onExited(e.node)})})})},n.cancelNextCallback=function(){null!==this.nextCallback&&this.nextCallback.cancel&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(){n&&(n=!1,t.nextCallback=null,e())},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=null==e&&!this.props.addEndListener;if(!this.node||n){setTimeout(this.nextCallback,0);return}this.props.addEndListener&&this.props.addEndListener(this.node,this.nextCallback),null!=e&&setTimeout(this.nextCallback,e)},n.render=function(){var e=this.state.status;if(e===E9)return null;var t=this.props;return(0,t.children)(e,E0(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]))},EX(t,[{key:"node",get:function(){var e,t=null===(e=this.props.nodeRef)||void 0===e?void 0:e.current;if(!t)throw Error("notistack - Custom snackbar is not refForwarding");return t}}]),t}(e0.Component);function Oo(){}function Oa(e,t){"function"==typeof e?e(t):e&&(e.current=t)}function Os(e,t){return(0,e0.useMemo)(function(){return null==e&&null==t?null:function(n){Oa(e,n),Oa(t,n)}},[e,t])}function Ol(e){var t=e.timeout,n=e.style,r=void 0===n?{}:n,i=e.mode;return{duration:"object"==typeof t?t[i]||0:t,easing:r.transitionTimingFunction,delay:r.transitionDelay}}Oi.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Oo,onEntering:Oo,onEntered:Oo,onExit:Oo,onExiting:Oo,onExited:Oo};var Ou={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Oc=function(e){e.scrollTop=e.scrollTop},Op=function(e){return Math.round(e)+"ms"};function Od(e,t){void 0===e&&(e=["all"]);var n=t||{},r=n.duration,i=void 0===r?300:r,o=n.easing,a=void 0===o?Ou.easeInOut:o,s=n.delay,l=void 0===s?0:s;return(Array.isArray(e)?e:[e]).map(function(e){return e+" "+("string"==typeof i?i:Op(i))+" "+a+" "+("string"==typeof l?l:Op(l))}).join(",")}function Oh(e){var t;return((t=e)&&t.ownerDocument||document).defaultView||window}function Of(e,t){if(t){var n=function(e,t){var n,r=t.getBoundingClientRect(),i=Oh(t);if(t.fakeTransform)n=t.fakeTransform;else{var o=i.getComputedStyle(t);n=o.getPropertyValue("-webkit-transform")||o.getPropertyValue("transform")}var a=0,s=0;if(n&&"none"!==n&&"string"==typeof n){var l=n.split("(")[1].split(")")[0].split(",");a=parseInt(l[4],10),s=parseInt(l[5],10)}switch(e){case"left":return"translateX("+(i.innerWidth+a-r.left)+"px)";case"right":return"translateX(-"+(r.left+r.width-a)+"px)";case"up":return"translateY("+(i.innerHeight+s-r.top)+"px)";default:return"translateY(-"+(r.top+r.height-s)+"px)"}}(e,t);n&&(t.style.webkitTransform=n,t.style.transform=n)}}var Om=(0,e0.forwardRef)(function(e,t){var n=e.children,r=e.direction,i=void 0===r?"down":r,o=e.in,a=e.style,s=e.timeout,l=void 0===s?0:s,u=e.onEnter,c=e.onEntered,p=e.onExit,d=e.onExited,h=E0(e,["children","direction","in","style","timeout","onEnter","onEntered","onExit","onExited"]),f=(0,e0.useRef)(null),m=Os(n.ref,f),g=Os(m,t),A=(0,e0.useCallback)(function(){f.current&&Of(i,f.current)},[i]);return(0,e0.useEffect)(function(){if(!o&&"down"!==i&&"right"!==i){var e=function(e,t){var n;function r(){for(var r=this,i=arguments.length,o=Array(i),a=0;a-1,i=e.snacks.findIndex(t)>-1;if(r||i)return e}return n.handleDisplaySnack(EJ({},e,{queue:[].concat(e.queue,[h])}))}),p},n.handleDisplaySnack=function(e){return e.snacks.length>=n.maxSnack?n.handleDismissOldest(e):n.processQueue(e)},n.processQueue=function(e){var t=e.queue,n=e.snacks;return t.length>0?EJ({},e,{snacks:[].concat(n,[t[0]]),queue:t.slice(1,t.length)}):e},n.handleDismissOldest=function(e){if(e.snacks.some(function(e){return!e.open||e.requestClose}))return e;var t=!1,r=!1;e.snacks.reduce(function(e,t){return e+(t.open&&t.persist?1:0)},0)===n.maxSnack&&(r=!0);var i=e.snacks.map(function(e){if(!t&&(!e.persist||r))return(t=!0,e.entered)?(e.onClose&&e.onClose(null,"maxsnack",e.id),n.props.onClose&&n.props.onClose(null,"maxsnack",e.id),EJ({},e,{open:!1})):EJ({},e,{requestClose:!0});return EJ({},e)});return EJ({},e,{snacks:i})},n.handleEnteredSnack=function(e,t,r){if(!E5(r))throw Error("handleEnteredSnack Cannot be called with undefined key");n.setState(function(e){return{snacks:e.snacks.map(function(e){return e.id===r?EJ({},e,{entered:!0}):EJ({},e)})}})},n.handleCloseSnack=function(e,t,r){n.props.onClose&&n.props.onClose(e,t,r);var i=void 0===r;n.setState(function(e){var t=e.snacks,n=e.queue;return{snacks:t.map(function(e){return i||e.id===r?e.entered?EJ({},e,{open:!1}):EJ({},e,{requestClose:!0}):EJ({},e)}),queue:n.filter(function(e){return e.id!==r})}})},n.closeSnackbar=function(e){var t=n.state.snacks.find(function(t){return t.id===e});E5(e)&&t&&t.onClose&&t.onClose(null,"instructed",e),n.handleCloseSnack(null,"instructed",e)},n.handleExitedSnack=function(e,t){if(!E5(t))throw Error("handleExitedSnack Cannot be called with undefined key");n.setState(function(e){var r=n.processQueue(EJ({},e,{snacks:e.snacks.filter(function(e){return e.id!==t})}));return 0===r.queue.length?r:n.handleDismissOldest(r)})},e_=n.enqueueSnackbar,eR=n.closeSnackbar,n.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:n.enqueueSnackbar.bind(E1(n)),closeSnackbar:n.closeSnackbar.bind(E1(n))}},n}return E$(t,e),t.prototype.render=function(){var e=this,t=this.state.contextValue,n=this.props,r=n.domRoot,i=n.children,o=n.dense,a=void 0!==o&&o,s=n.Components,l=void 0===s?{}:s,u=n.classes,c=this.state.snacks.reduce(function(e,t){var n,r=E8(t.anchorOrigin),i=e[r]||[];return EJ({},e,((n={})[r]=[].concat(i,[t]),n))},{}),p=Object.keys(c).map(function(t){var n=c[t],r=n[0];return e0.createElement(OQ,{key:t,dense:a,anchorOrigin:r.anchorOrigin,classes:u},n.map(function(t){return e0.createElement(OH,{key:t.id,snack:t,classes:u,Component:l[t.variant],onClose:e.handleCloseSnack,onEnter:e.props.onEnter,onExit:e.props.onExit,onExited:OR([e.handleExitedSnack,e.props.onExited],t.id),onEntered:OR([e.handleEnteredSnack,e.props.onEntered],t.id)})}))});return e0.createElement(E4.Provider,{value:t},i,r?(0,e2.createPortal)(p,r):p)},EX(t,[{key:"maxSnack",get:function(){return this.props.maxSnack||OA.maxSnack}}]),t}(e0.Component),OY=n("49089"),OX=function(e){var t=(0,e0.useRef)();return(0,e0.useEffect)(function(){t.current=e}),t.current},OJ=function(){var e=ny();OX(e),(0,e0.useEffect)(function(){},[e])},O$=function(e){console.log("gaLoginEvent",e,{category:"User",action:"Login",label:e}),OY.default.event({category:"User",action:"Login",label:e}),Ek(EL,"login",{category:"User",action:"Login",label:e})},O0=function(e,t,n){console.log("gaDownloadClick",e,{file_name:e,release_version:t,platform:n}),OY.default.event("file_download",{file_name:e,release_version:t,platform:n}),Ek(EL,"file_download",{file_name:e,release_version:t,platform:n}),Ek(EL,"select_content",{content_type:e,item_id:e,file_name:e,release_version:t,platform:n})};function O1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n\\n\\n Click to see details\\n\\n**Closed Issues: 17**\\n- ➕ [#615]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/615 ), Unable to Save Model with Cloud Storage\\n- ➕ [#680]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/680 ), Add language support to other GUI tabs\\n- ➕ [#757]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/757 ), Implement a method to specify monthly ground temperature schedule\\n- ➕ [#770]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/770 ), hvac_Library.osm object OS:AirConditioner:VariableRefrigerantFlow Defrost wattage should be autosize\\n- ➕ [#834]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/834 ), The Default HVAC Library object \\"MultiSpeed Heat Pump AirToAir\\" is not a Heat Pump\\n- ✔️ [#850]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/850 ), v1.11.0-rc1 Testing: Call for help from the community - updated to include v1.11.0-rc2\\n- ✔️ [#861]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/861 ), Can\'t build with Qt 6.5.2 with macOS Tahoe 26.x\\n- ➕ [#862]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/862 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\n- ✔️ [#871]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/871 ), Informational window shows updating model from wrong version number\\n- ➕ [#872]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/872 ), 1.11.0 release is missing the mac and windows installers\\n- ➕ [#875]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/875 ), Language request - Bahasa Indonesia\\n- ✔️ [#878]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/878 ), BCL Library not working\\n- ✔️ [#879]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/879 ), BCL not online\\n- ✔️ [#880]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/880 ), The BCL URL changed without any redirect, affecting every OpenStudio Application released up to 1.11.0 - Workaround\\n- ➕ [#882]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/882 ), Add Apply to Selected to the Facility Shading tab\\n- ✔️ [#887]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/887 ), Add unitary system with dehumidification (2-speed DX, CoolReheat) to default HVAC library\\n- ✔️ [#889]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/889 ), Windows installer (.exe) missing from releases v1.9.0, v1.10.0, v1.11.0 and v1.11.1\\n\\n**Accepted Pull Requests: 24**\\n- ✔️ [#837]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/837 ), Work In Progress - Replace QtCharts with LGPL compliant JKQtPlotter\\n- ✔️ [#856]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/856 ), Future proof pinging bcl.nlr.gov instead of bcl.nrel.gov\\n- ✔️ [#858]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/858 ), Merge for OpenStudio Application v1.11.0 release\\n- ➕ [#859]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/859 ), #757 - Implement a Site subtab for ground temperatures\\n- ➕ [#863]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/863 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\n- ✔️ [#864]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/864 ), Remove Qt from ModelEditor Ruby bindings\\n- ✔️ [#865]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/865 ), Refactor with architecture and developer documentation\\n- ✔️ [#867]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/867 ), Remove qt5compat\\n- ✔️ [#868]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/868 ), Bump Qt from 6.5.2 to Qt 6.11.0\\n- ✔️ [#869]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/869 ), Remove shared library exports for Windows\\n- ✔️ [#870]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/870 ), Add docker build container for AI agents to use\\n- ✔️ [#873]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/873 ), Complete language support to all GUI tabs\\n- ✔️ [#874]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/874 ), Complete language support to all GUI tabs\\n- ✔️ [#877]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/877 ), Complete language support to all GUI tabs (#876)\\n- ✔️ [#881]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/881 ), Create 1.11.1 patch changing NREL to NLR\\n- ✔️ [#883]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/883 ), Add Apply to Selected to Facility Shading tab Construction and Schedule columns\\n- ✔️ [#884]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/884 ), Update actions to avoid warnings\\n- ✔️ [#885]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/885 ), Merge for 1.12.0-rc.1\\n- ✔️ [#888]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/888 ), fix: address misc hvac_library.osm issues\\n- ✔️ [#891]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/891 ), Add hot-gas reheat unitary system (Coil:Heating:Desuperheater)\\n- ✔️ [#892]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/892 ), Fix CI to run on prs from external forks\\n- ✔️ [#893]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/893 ), Install QtIFW even for forks\\n- ✔️ [#894]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/894 ), Don\'t set code signing args for external prs\\n- ✔️ [#895]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/895 ), Pull request for 1.12.0-rc2\\n\\n**Total Open Issues: 128** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #649, #658, #659, #679, #687, #704, #709, #711, #751, #752, #760, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #847, #851, #852, #857, #860, #866, #886, #890)\\n\\n**Total Open Pull Requests: 3** (#236, #470, #876)\\n\\n\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490895608","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490896118","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490957512","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490957750","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490891426","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490891617","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490890927","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490891244","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490909920","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/490910128","name":"OpenStudioApplication-1.12.0-rc2+2c9f7455ef-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc2/OpenStudioApplication-1.12.0-rc2%2B2c9f7455ef-Windows.zip"}]},{"name":"v1.12.0-rc1","tag_name":"v1.12.0-rc1","published_at":"2026-06-21T17:19:43Z","prerelease":true,"body":"## What\'s Changed\\r\\n* Update actions to work after clearing cache, bump to RC2 by [@macumber](https://github.com/macumber) in [#854](https://github.com/openstudiocoalition/OpenStudioApplication/pull/854)\\r\\n* #757 - Implement a Site subtab for ground temperatures by [@jmarrec](https://github.com/jmarrec) in [#859](https://github.com/openstudiocoalition/OpenStudioApplication/pull/859)\\r\\n* Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices) by [@jmarrec](https://github.com/jmarrec) in [#863](https://github.com/openstudiocoalition/OpenStudioApplication/pull/863)\\r\\n* Remove qt5compat by [@jmarrec](https://github.com/jmarrec) in [#867](https://github.com/openstudiocoalition/OpenStudioApplication/pull/867)\\r\\n* Remove Qt from ModelEditor Ruby bindings by [@macumber](https://github.com/macumber) in [#864](https://github.com/openstudiocoalition/OpenStudioApplication/pull/864)\\r\\n* Bump Qt from 6.5.2 to Qt 6.11.0 by [@jmarrec](https://github.com/jmarrec) in [#868](https://github.com/openstudiocoalition/OpenStudioApplication/pull/868)\\r\\n* Add docker build container for AI agents to use by [@macumber](https://github.com/macumber) in [#870](https://github.com/openstudiocoalition/OpenStudioApplication/pull/870)\\r\\n* Future proof pinging bcl.nlr.gov instead of bcl.nrel.gov by [@jmarrec](https://github.com/jmarrec) in [#856](https://github.com/openstudiocoalition/OpenStudioApplication/pull/856)\\r\\n* Create 1.11.1 patch changing NREL to NLR by [@macumber](https://github.com/macumber) in [#881](https://github.com/openstudiocoalition/OpenStudioApplication/pull/881)\\r\\n* Complete language support to all GUI tabs (#876) by [@Ski90Moo](https://github.com/Ski90Moo) in [#877](https://github.com/openstudiocoalition/OpenStudioApplication/pull/877)\\r\\n* Update actions to avoid warnings by [@macumber](https://github.com/macumber) in [#884](https://github.com/openstudiocoalition/OpenStudioApplication/pull/884)\\r\\n* Refactor with architecture and developer documentation by [@macumber](https://github.com/macumber) in [#865](https://github.com/openstudiocoalition/OpenStudioApplication/pull/865)\\r\\n* Merge for 1.12.0-rc.1 by [@macumber](https://github.com/macumber) in [#885](https://github.com/openstudiocoalition/OpenStudioApplication/pull/885)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.11.0...v1.12.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.11.0...v1.12.0)-rc1\\r\\n\\r\\n\\r\\n**Date Range: 2026-02-18** (v1.11.0) - **2026-06-21:**\\r\\n\\r\\n**New Issues: 11**\\r\\n\\r\\n**Closed Issues: 7**\\r\\n\\r\\n**Accepted Pull Requests: 17**\\r\\n\\r\\n**Total Open Issues: 134**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\nClick to see details\\r\\n\\r\\n**Closed Issues: 7**\\r\\n- ➕ [#757]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/757 ), Implement a method to specify monthly ground temperature schedule\\r\\n- ✔️ [#850]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/850 ), v1.11.0-rc1 Testing: Call for help from the community - updated to include v1.11.0-rc2\\r\\n- ✔️ [#861]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/861 ), Can\'t build with Qt 6.5.2 with macOS Tahoe 26.x\\r\\n- ➕ [#862]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/862 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\r\\n- ➕ [#872]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/872 ), 1.11.0 release is missing the mac and windows installers\\r\\n- ✔️ [#878]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/878 ), BCL Library not working\\r\\n- ✔️ [#879]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/879 ), BCL not online\\r\\n\\r\\n**Accepted Pull Requests: 17**\\r\\n- ✔️ [#837]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/837 ), Work In Progress - Replace QtCharts with LGPL compliant JKQtPlotter\\r\\n- ✔️ [#856]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/856 ), Future proof pinging bcl.nlr.gov instead of bcl.nrel.gov\\r\\n- ✔️ [#858]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/858 ), Merge for OpenStudio Application v1.11.0 release\\r\\n- ➕ [#859]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/859 ), #757 - Implement a Site subtab for ground temperatures\\r\\n- ➕ [#863]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/863 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\r\\n- ✔️ [#864]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/864 ), Remove Qt from ModelEditor Ruby bindings\\r\\n- ✔️ [#865]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/865 ), Refactor with architecture and developer documentation\\r\\n- ✔️ [#867]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/867 ), Remove qt5compat\\r\\n- ✔️ [#868]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/868 ), Bump Qt from 6.5.2 to Qt 6.11.0\\r\\n- ✔️ [#869]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/869 ), Remove shared library exports for Windows\\r\\n- ✔️ [#870]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/870 ), Add docker build container for AI agents to use\\r\\n- ✔️ [#873]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/873 ), Complete language support to all GUI tabs\\r\\n- ✔️ [#874]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/874 ), Complete language support to all GUI tabs\\r\\n- ✔️ [#877]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/877 ), Complete language support to all GUI tabs (#876)\\r\\n- ✔️ [#881]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/881 ), Create 1.11.1 patch changing NREL to NLR\\r\\n- ✔️ [#884]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/884 ), Update actions to avoid warnings\\r\\n- ✔️ [#885]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/885 ), Merge for 1.12.0-rc.1\\r\\n\\r\\n**Total Open Issues: 134** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #851, #852, #857, #860, #866, #871, #875, #880, #882)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#876, #883)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453851342","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453851503","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453857412","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453857546","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453848339","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453848538","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453848409","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453848497","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453860932","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/453861000","name":"OpenStudioApplication-1.12.0-rc1+cc8f5a3524-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.12.0-rc1/OpenStudioApplication-1.12.0-rc1%2Bcc8f5a3524-Windows.zip"}]},{"name":"v1.11.1","tag_name":"v1.11.1","published_at":"2026-06-17T11:30:54Z","prerelease":false,"body":"This is essentially the same as v1.11.0, but patched so that BCL is accessed at the new url bcl.nlr.gov now that bcl.nrel.gov was dropped without any redirects.\\r\\n\\r\\n## What\'s Changed\\r\\n* Create 1.11.1 patch changing NREL to NLR by [@macumber](https://github.com/macumber) in [#881](https://github.com/openstudiocoalition/OpenStudioApplication/pull/881)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.11.0...v1.11.1](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.11.0...v1.11.1)\\n\\n## Changelog\\n\\n\\n**Date Range: 2025-02-09** (v1.9.0) - **2026-06-17:**\\n\\n**New Issues: 51**\\n\\n**Closed Issues: 35**\\n\\n**Accepted Pull Requests: 38**\\n\\n**Total Open Issues: 134**\\n\\n**Total Open Pull Requests: 5**\\n\\n\\n
\\n\\n Click to see details\\n\\n**Closed Issues: 35**\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\n- ➕ [#757]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/757 ), Implement a method to specify monthly ground temperature schedule\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\n- ✔️ [#819]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/819 ), v1.10.0-rc2 Testing: Call for help from the community\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\n- ✔️ [#832]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/832 ), openstudio怎么使用\\n- ✔️ [#833]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/833 ), OpenStudio Results Report html is sometimes Garbled\\n- ✔️ [#835]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/835 ), Resources for OpenStudio installation on Linux\\n- ✔️ [#836]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/836 ), OpenStudio Application uses GPLv3 only licensed QtCharts\\n- ✔️ [#840]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/840 ), OpenStudioApp fails to start in Windows 11\\n- ✔️ [#843]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/843 ), Deleting an object does not delete children that are OS:Table:IndependentVariable\\n- ➕ [#844]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/844 ), Add build instructions\\n- ✔️ [#850]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/850 ), v1.11.0-rc1 Testing: Call for help from the community - updated to include v1.11.0-rc2\\n- ✔️ [#853]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/853 ), I am trying to set \\"CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule\\" but keep getting \'incompatible ScheduleTypeLimits\' error OpenstudioSDK 3.10.0\\n- ✔️ [#861]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/861 ), Can\'t build with Qt 6.5.2 with macOS Tahoe 26.x\\n- ➕ [#862]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/862 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\n- ➕ [#872]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/872 ), 1.11.0 release is missing the mac and windows installers\\n- ✔️ [#878]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/878 ), BCL Library not working\\n- ✔️ [#879]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/879 ), BCL not online\\n\\n**Accepted Pull Requests: 38**\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\n- ✔️ [#837]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/837 ), Work In Progress - Replace QtCharts with LGPL compliant JKQtPlotter\\n- ✔️ [#838]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/838 ), Fix #836 - QtCharts is GPL only\\n- ✔️ [#839]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/839 ), Fixup empty elsif preventing Werror\\n- ✔️ [#841]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/841 ), Fixup empty elsif preventing Werror \\n- ✔️ [#842]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/842 ), Fix #836 - QtCharts is GPL only\\n- ✔️ [#845]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/845 ), Update to OpenStudio SDK v3.11.0-RC1\\n- ✔️ [#846]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/846 ), Update to MacOS 15 runners\\n- ✔️ [#848]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/848 ), Update for 1.11.0-rc1\\n- ✔️ [#849]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/849 ), Update OpenStudio Standards to 0.8.5\\n- ✔️ [#854]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/854 ), Update actions to work after clearing cache, bump to RC2\\n- ✔️ [#855]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/855 ), Update actions to work after clearing cache, bump to RC2 (#854)\\n- ✔️ [#856]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/856 ), Future proof pinging bcl.nlr.gov instead of bcl.nrel.gov\\n- ✔️ [#858]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/858 ), Merge for OpenStudio Application v1.11.0 release\\n- ➕ [#859]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/859 ), #757 - Implement a Site subtab for ground temperatures\\n- ➕ [#863]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/863 ), Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)\\n- ✔️ [#864]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/864 ), Remove Qt from ModelEditor Ruby bindings\\n- ✔️ [#867]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/867 ), Remove qt5compat\\n- ✔️ [#868]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/868 ), Bump Qt from 6.5.2 to Qt 6.11.0\\n- ✔️ [#869]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/869 ), Remove shared library exports for Windows\\n- ✔️ [#870]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/870 ), Add docker build container for AI agents to use\\n- ✔️ [#874]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/874 ), Complete language support to all GUI tabs\\n- ✔️ [#881]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/881 ), Create 1.11.1 patch changing NREL to NLR\\n\\n**Total Open Issues: 134** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #851, #852, #857, #860, #866, #871, #875, #880, #882)\\n\\n**Total Open Pull Requests: 5** (#865, #873, #876, #877, #883)\\n\\n
\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450185533","name":"OpenStudioApplication-1.11.1+b19f3a988b-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450185683","name":"OpenStudioApplication-1.11.1+b19f3a988b-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/452007399","name":"OpenStudioApplication-1.11.1+b19f3a988b-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/452007642","name":"OpenStudioApplication-1.11.1+b19f3a988b-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450189855","name":"OpenStudioApplication-1.11.1+b19f3a988b-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450190057","name":"OpenStudioApplication-1.11.1+b19f3a988b-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450188405","name":"OpenStudioApplication-1.11.1+b19f3a988b-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450188548","name":"OpenStudioApplication-1.11.1+b19f3a988b-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450219569","name":"OpenStudioApplication-1.11.1+b19f3a988b-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/450219810","name":"OpenStudioApplication-1.11.1+b19f3a988b-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.1/OpenStudioApplication-1.11.1%2Bb19f3a988b-Windows.zip"}]},{"name":"v1.11.0","tag_name":"v1.11.0","published_at":"2026-02-18T03:32:35Z","prerelease":false,"body":"The OpenStudio Application 1.11.0 release updates the application to OpenStudio 3.11.0, EnergyPlus 25.2.0. This version of the OpenStudio SDK is based on Ruby version 3.2.2. This allows OpenStudio Application 1.11.0 to be compatible with the embedded Ruby interpreter in SketchUp 2024, 2025, and 2026.\\r\\n\\r\\nThe OpenStudio Application 1.11.0 installers are hosted on the new member’s only section of the https://openstudiocoalition.org/ website. This new section provides a secure location to download installers for this and future releases. Create an account, give it a try, and let us know what you think!\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## What\'s Changed\\r\\n* Fixup empty elsif preventing Werror by [@jmarrec](https://github.com/jmarrec) in [#841](https://github.com/openstudiocoalition/OpenStudioApplication/pull/841)\\r\\n* Update to OpenStudio SDK v3.11.0-RC1 by [@jmarrec](https://github.com/jmarrec) in [#845](https://github.com/openstudiocoalition/OpenStudioApplication/pull/845)\\r\\n* Fix #836 - QtCharts is GPL only by [@jmarrec](https://github.com/jmarrec) in [#842](https://github.com/openstudiocoalition/OpenStudioApplication/pull/842)\\r\\n* Update to MacOS 15 runners by [@macumber](https://github.com/macumber) in [#846](https://github.com/openstudiocoalition/OpenStudioApplication/pull/846)\\r\\n* Update for 1.11.0-rc1 by [@macumber](https://github.com/macumber) in [#848](https://github.com/openstudiocoalition/OpenStudioApplication/pull/848)\\r\\n* Update actions to work after clearing cache, bump to RC2 (#854) by [@macumber](https://github.com/macumber) in [#855](https://github.com/openstudiocoalition/OpenStudioApplication/pull/855)\\r\\n* Merge for OpenStudio Application v1.11.0 release by [@macumber](https://github.com/macumber) in [#858](https://github.com/openstudiocoalition/OpenStudioApplication/pull/858)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.10.0...v1.11.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.10.0...v1.11.0)\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2026-02-18:**\\r\\n\\r\\n**New Issues: 40**\\r\\n\\r\\n**Closed Issues: 28**\\r\\n\\r\\n**Accepted Pull Requests: 27**\\r\\n\\r\\n**Total Open Issues: 130**\\r\\n\\r\\n**Total Open Pull Requests: 4**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 28**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\r\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\r\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\r\\n- ✔️ [#819]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/819 ), v1.10.0-rc2 Testing: Call for help from the community\\r\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\r\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\r\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\r\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\r\\n- ✔️ [#832]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/832 ), openstudio怎么使用\\r\\n- ✔️ [#833]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/833 ), OpenStudio Results Report html is sometimes Garbled\\r\\n- ✔️ [#835]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/835 ), Resources for OpenStudio installation on Linux\\r\\n- ✔️ [#836]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/836 ), OpenStudio Application uses GPLv3 only licensed QtCharts\\r\\n- ✔️ [#840]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/840 ), OpenStudioApp fails to start in Windows 11\\r\\n- ✔️ [#843]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/843 ), Deleting an object does not delete children that are OS:Table:IndependentVariable\\r\\n- ➕ [#844]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/844 ), Add build instructions\\r\\n- ✔️ [#853]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/853 ), I am trying to set \\"CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule\\" but keep getting \'incompatible ScheduleTypeLimits\' error OpenstudioSDK 3.10.0\\r\\n\\r\\n**Accepted Pull Requests: 27**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\r\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\r\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\r\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\r\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\r\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\r\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\r\\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\r\\n- ✔️ [#838]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/838 ), Fix #836 - QtCharts is GPL only\\r\\n- ✔️ [#839]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/839 ), Fixup empty elsif preventing Werror\\r\\n- ✔️ [#841]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/841 ), Fixup empty elsif preventing Werror \\r\\n- ✔️ [#842]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/842 ), Fix #836 - QtCharts is GPL only\\r\\n- ✔️ [#845]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/845 ), Update to OpenStudio SDK v3.11.0-RC1\\r\\n- ✔️ [#846]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/846 ), Update to MacOS 15 runners\\r\\n- ✔️ [#848]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/848 ), Update for 1.11.0-rc1\\r\\n- ✔️ [#849]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/849 ), Update OpenStudio Standards to 0.8.5\\r\\n- ✔️ [#854]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/854 ), Update actions to work after clearing cache, bump to RC2\\r\\n- ✔️ [#855]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/855 ), Update actions to work after clearing cache, bump to RC2 (#854)\\r\\n- ✔️ [#858]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/858 ), Merge for OpenStudio Application v1.11.0 release\\r\\n\\r\\n**Total Open Issues: 130** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #850, #851, #852, #857)\\r\\n\\r\\n**Total Open Pull Requests: 4** (#236, #470, #837, #856)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357727681","name":"OpenStudioApplication-1.11.0+856a164b97-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357727754","name":"OpenStudioApplication-1.11.0+856a164b97-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357728153","name":"OpenStudioApplication-1.11.0+856a164b97-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357728329","name":"OpenStudioApplication-1.11.0+856a164b97-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357722963","name":"OpenStudioApplication-1.11.0+856a164b97-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357723114","name":"OpenStudioApplication-1.11.0+856a164b97-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357722934","name":"OpenStudioApplication-1.11.0+856a164b97-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357723038","name":"OpenStudioApplication-1.11.0+856a164b97-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357730929","name":"OpenStudioApplication-1.11.0+856a164b97-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/357731002","name":"OpenStudioApplication-1.11.0+856a164b97-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0/OpenStudioApplication-1.11.0%2B856a164b97-Windows.zip"}]},{"name":"v1.11.0-rc2","tag_name":"v1.11.0-rc2","published_at":"2026-02-01T04:50:52Z","prerelease":true,"body":"\\n\\n## Changelog\\n\\n\\n**Date Range: 2025-02-09** (v1.9.0) - **2026-02-01:**\\n\\n**New Issues: 39**\\n\\n**Closed Issues: 28**\\n\\n**Accepted Pull Requests: 26**\\n\\n**Total Open Issues: 129**\\n\\n**Total Open Pull Requests: 3**\\n\\n\\n
\\n\\n Click to see details\\n\\n**Closed Issues: 28**\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\n- ✔️ [#819]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/819 ), v1.10.0-rc2 Testing: Call for help from the community\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\n- ✔️ [#832]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/832 ), openstudio怎么使用\\n- ✔️ [#833]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/833 ), OpenStudio Results Report html is sometimes Garbled\\n- ✔️ [#835]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/835 ), Resources for OpenStudio installation on Linux\\n- ✔️ [#836]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/836 ), OpenStudio Application uses GPLv3 only licensed QtCharts\\n- ✔️ [#840]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/840 ), OpenStudioApp fails to start in Windows 11\\n- ✔️ [#843]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/843 ), Deleting an object does not delete children that are OS:Table:IndependentVariable\\n- ➕ [#844]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/844 ), Add build instructions\\n- ✔️ [#853]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/853 ), I am trying to set \\"CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule\\" but keep getting \'incompatible ScheduleTypeLimits\' error OpenstudioSDK 3.10.0\\n\\n**Accepted Pull Requests: 26**\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\n- ✔️ [#838]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/838 ), Fix #836 - QtCharts is GPL only\\n- ✔️ [#839]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/839 ), Fixup empty elsif preventing Werror\\n- ✔️ [#841]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/841 ), Fixup empty elsif preventing Werror \\n- ✔️ [#842]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/842 ), Fix #836 - QtCharts is GPL only\\n- ✔️ [#845]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/845 ), Update to OpenStudio SDK v3.11.0-RC1\\n- ✔️ [#846]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/846 ), Update to MacOS 15 runners\\n- ✔️ [#848]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/848 ), Update for 1.11.0-rc1\\n- ✔️ [#849]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/849 ), Update OpenStudio Standards to 0.8.5\\n- ✔️ [#854]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/854 ), Update actions to work after clearing cache, bump to RC2\\n- ✔️ [#855]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/855 ), Update actions to work after clearing cache, bump to RC2 (#854)\\n\\n**Total Open Issues: 129** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #850, #851, #852)\\n\\n**Total Open Pull Requests: 3** (#236, #470, #837)\\n\\n
\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348965092","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348965146","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348966520","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348966576","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348962781","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348962902","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348963243","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348963333","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348968468","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/348968535","name":"OpenStudioApplication-1.11.0-rc2+f24d7e3234-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc2/OpenStudioApplication-1.11.0-rc2%2Bf24d7e3234-Windows.zip"}]},{"name":"v1.11.0-rc1","tag_name":"v1.11.0-rc1","published_at":"2026-01-19T08:05:58Z","prerelease":true,"body":"## What\'s Changed\\r\\n\\r\\n* Fixup empty elsif preventing Werror by [@jmarrec](https://github.com/jmarrec) in [#841](https://github.com/openstudiocoalition/OpenStudioApplication/pull/841)\\r\\n* Update to OpenStudio SDK v3.11.0-RC1 by [@jmarrec](https://github.com/jmarrec) in [#845](https://github.com/openstudiocoalition/OpenStudioApplication/pull/845)\\r\\n* Fix #836 - QtCharts is GPL only by [@jmarrec](https://github.com/jmarrec) in [#842](https://github.com/openstudiocoalition/OpenStudioApplication/pull/842)\\r\\n* Update to MacOS 15 runners by [@macumber](https://github.com/macumber) in [#846](https://github.com/openstudiocoalition/OpenStudioApplication/pull/846)\\r\\n* Update for 1.11.0-rc1 by [@macumber](https://github.com/macumber) in [#848](https://github.com/openstudiocoalition/OpenStudioApplication/pull/848)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.10.0...v1.11.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.10.0...v1.11.0)-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2026-01-19:**\\r\\n\\r\\n**New Issues: 35**\\r\\n\\r\\n**Closed Issues: 27**\\r\\n\\r\\n**Accepted Pull Requests: 24**\\r\\n\\r\\n**Total Open Issues: 126**\\r\\n\\r\\n**Total Open Pull Requests: 3**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 27**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\r\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\r\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\r\\n- ✔️ [#819]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/819 ), v1.10.0-rc2 Testing: Call for help from the community\\r\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\r\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\r\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\r\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\r\\n- ✔️ [#832]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/832 ), openstudio怎么使用\\r\\n- ✔️ [#833]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/833 ), OpenStudio Results Report html is sometimes Garbled\\r\\n- ✔️ [#835]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/835 ), Resources for OpenStudio installation on Linux\\r\\n- ✔️ [#836]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/836 ), OpenStudio Application uses GPLv3 only licensed QtCharts\\r\\n- ✔️ [#840]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/840 ), OpenStudioApp fails to start in Windows 11\\r\\n- ✔️ [#843]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/843 ), Deleting an object does not delete children that are OS:Table:IndependentVariable\\r\\n- ➕ [#844]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/844 ), Add build instructions\\r\\n\\r\\n**Accepted Pull Requests: 24**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\r\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\r\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\r\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\r\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\r\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\r\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\r\\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\r\\n- ✔️ [#838]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/838 ), Fix #836 - QtCharts is GPL only\\r\\n- ✔️ [#839]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/839 ), Fixup empty elsif preventing Werror\\r\\n- ✔️ [#841]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/841 ), Fixup empty elsif preventing Werror \\r\\n- ✔️ [#842]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/842 ), Fix #836 - QtCharts is GPL only\\r\\n- ✔️ [#845]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/845 ), Update to OpenStudio SDK v3.11.0-RC1\\r\\n- ✔️ [#846]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/846 ), Update to MacOS 15 runners\\r\\n- ✔️ [#848]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/848 ), Update for 1.11.0-rc1\\r\\n- ✔️ [#849]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/849 ), Update OpenStudio Standards to 0.8.5\\r\\n\\r\\n**Total Open Issues: 126** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847)\\r\\n\\r\\n**Total Open Pull Requests: 3** (#236, #470, #837)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342656044","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342656105","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342657181","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342657267","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342651517","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342651658","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342651380","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342651479","name":"OpenStudioApplication-1.11.0-rc1+17df4b5fa6-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/OpenStudioApplication-1.11.0-rc1%2B17df4b5fa6-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/342859479","name":"Unsigned_OpenStudioApplication-1.11.0-rc1+4cbabd9925-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.11.0-rc1/Unsigned_OpenStudioApplication-1.11.0-rc1%2B4cbabd9925-Windows.exe"}]},{"name":"v1.10.0","tag_name":"v1.10.0","published_at":"2025-07-26T17:39:32Z","prerelease":false,"body":"The OpenStudio Application 1.10.0 release updates the application to OpenStudio 3.10.0, EnergyPlus 25.1.0. This version of the OpenStudio SDK is based on Ruby version 3.2.2. This allows OpenStudio Application 1.10.0 to be compatible with the embedded Ruby interpreter in SketchUp 2024 and 2025.\\r\\n\\r\\n**The OpenStudio Application 1.10.0 installers are hosted on the new member’s only section of the [https://openstudiocoalition.org/](https://openstudiocoalition.org/) website**. This new section provides a secure location to download installers for this and future releases. Create an account, give it a try, and let us know what you think!\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## What\'s Changed\\r\\n* Fix #796 - Add ScheduleFile to MainRightColumnController by [@jmarrec](https://github.com/jmarrec) in [#797](https://github.com/openstudiocoalition/OpenStudioApplication/pull/797)\\r\\n* Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes by [@jmarrec](https://github.com/jmarrec) in [#809](https://github.com/openstudiocoalition/OpenStudioApplication/pull/809)\\r\\n* Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition by [@jmarrec](https://github.com/jmarrec) in [#793](https://github.com/openstudiocoalition/OpenStudioApplication/pull/793)\\r\\n* Issue #166 - Sort measures alphabetically in GUI by [@antonszilasi](https://github.com/antonszilasi) in [#795](https://github.com/openstudiocoalition/OpenStudioApplication/pull/795)\\r\\n* Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days by [@antonszilasi](https://github.com/antonszilasi) in [#791](https://github.com/openstudiocoalition/OpenStudioApplication/pull/791)\\r\\n* Update version to 1.10.0-rc1 by [@macumber](https://github.com/macumber) in [#813](https://github.com/openstudiocoalition/OpenStudioApplication/pull/813)\\r\\n* PR to create 1.10.0-RC1 by [@macumber](https://github.com/macumber) in [#814](https://github.com/openstudiocoalition/OpenStudioApplication/pull/814)\\r\\n* #799 - Add Support for AlmaLinux9 by [@jmarrec](https://github.com/jmarrec) in [#822](https://github.com/openstudiocoalition/OpenStudioApplication/pull/822)\\r\\n* Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App by [@jmarrec](https://github.com/jmarrec) in [#820](https://github.com/openstudiocoalition/OpenStudioApplication/pull/820)\\r\\n* Fix #815 - Add OutputControl:ResilienceSummaries to OS App by [@jmarrec](https://github.com/jmarrec) in [#821](https://github.com/openstudiocoalition/OpenStudioApplication/pull/821)\\r\\n* Revert changes to BuildingComponentDialogCentralWidget from PR #795 by [@macumber](https://github.com/macumber) in [#824](https://github.com/openstudiocoalition/OpenStudioApplication/pull/824)\\r\\n* #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab by [@jmarrec](https://github.com/jmarrec) in [#826](https://github.com/openstudiocoalition/OpenStudioApplication/pull/826)\\r\\n* Merge for RC2 by [@macumber](https://github.com/macumber) in [#827](https://github.com/openstudiocoalition/OpenStudioApplication/pull/827)\\r\\n* Use noexcept versions of filesystem by [@macumber](https://github.com/macumber) in [#829](https://github.com/openstudiocoalition/OpenStudioApplication/pull/829)\\r\\n* Merge for 1.10.0 Release by [@macumber](https://github.com/macumber) in [#830](https://github.com/openstudiocoalition/OpenStudioApplication/pull/830)\\r\\n\\r\\n## New Contributors\\r\\n* [@antonszilasi](https://github.com/antonszilasi) made their first contribution in [#795](https://github.com/openstudiocoalition/OpenStudioApplication/pull/795)\\r\\n\\r\\n**Full Changelog**: [v1.9.0...v1.10.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.9.0...v1.10.0)\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2025-07-26:**\\r\\n\\r\\n**New Issues: 27**\\r\\n\\r\\n**Closed Issues: 19**\\r\\n\\r\\n**Accepted Pull Requests: 16**\\r\\n\\r\\n**Total Open Issues: 126**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 19**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\r\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ➕ [#806]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/806 ), Display full path to model when hovering over filename on Main Window\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\r\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\r\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\r\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Add Terrain and Elevation fields to the Site tab\\r\\n- ✔️ [#828]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/828 ), Filesystem exists throws an exception\\r\\n- ✔️ [#831]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/831 ), Water Heater Stratified - Incorrect Time for Tank Recovery in default library\\r\\n\\r\\n**Accepted Pull Requests: 16**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\r\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\r\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\r\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\r\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\r\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\r\\n- ✔️ [#829]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/829 ), Use noexcept versions of filesystem \\r\\n- ✔️ [#830]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/830 ), Merge for 1.10.0 Release\\r\\n\\r\\n**Total Open Issues: 126** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #819, #832)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276618840","name":"OpenStudioApplication-1.10.0+14257a978b-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276619226","name":"OpenStudioApplication-1.10.0+14257a978b-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276622321","name":"OpenStudioApplication-1.10.0+14257a978b-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276622381","name":"OpenStudioApplication-1.10.0+14257a978b-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276617352","name":"OpenStudioApplication-1.10.0+14257a978b-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276617378","name":"OpenStudioApplication-1.10.0+14257a978b-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276617395","name":"OpenStudioApplication-1.10.0+14257a978b-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276617422","name":"OpenStudioApplication-1.10.0+14257a978b-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276619465","name":"OpenStudioApplication-1.10.0+14257a978b-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/276619489","name":"OpenStudioApplication-1.10.0+14257a978b-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0/OpenStudioApplication-1.10.0%2B14257a978b-Windows.zip"}]},{"name":"v1.10.0-rc2","tag_name":"v1.10.0-rc2","published_at":"2025-07-19T21:36:26Z","prerelease":true,"body":"Pre-release RC2 for 1.10.0 release\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2025-07-19:**\\r\\n\\r\\n**New Issues: 24**\\r\\n\\r\\n**Closed Issues: 16**\\r\\n\\r\\n**Accepted Pull Requests: 14**\\r\\n\\r\\n**Total Open Issues: 126**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 16**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#742]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/742 ), Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?\\r\\n- ✔️ [#784]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/784 ), v1.9.0-rc1 Testing: Call for help from the community\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ➕ [#799]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/799 ), Linux RPM built or building from sources documentation\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n- ➕ [#815]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/815 ), [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries\\r\\n- ➕ [#816]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/816 ), [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit\\r\\n- ✔️ [#823]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/823 ), [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)\\r\\n- ➕ [#825]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/825 ), Terrain field is missing from Site tab\\r\\n\\r\\n**Accepted Pull Requests: 14**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n- ➕ [#820]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/820 ), Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App\\r\\n- ➕ [#821]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/821 ), Fix #815 - Add OutputControl:ResilienceSummaries to OS App\\r\\n- ➕ [#822]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/822 ), #799 - Add Support for AlmaLinux9\\r\\n- ✔️ [#824]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/824 ), Revert changes to BuildingComponentDialogCentralWidget from PR #795\\r\\n- ➕ [#826]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/826 ), #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab\\r\\n- ✔️ [#827]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/827 ), Merge for RC2\\r\\n\\r\\n**Total Open Issues: 126** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #757, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #806, #810, #811, #817, #818, #819)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274565984","name":"OpenStudioApplication-1.10.0-rc2+4e212b2f46-AlmaLinux9.6.rpm","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2B4e212b2f46-AlmaLinux9.6.rpm"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274566140","name":"OpenStudioApplication-1.10.0-rc2+4e212b2f46-AlmaLinux9.6.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2B4e212b2f46-AlmaLinux9.6.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274461618","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274462128","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274461616","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274461678","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274458421","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274458471","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274458742","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274458821","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274463153","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/274463176","name":"OpenStudioApplication-1.10.0-rc2+a64e47bea3-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc2/OpenStudioApplication-1.10.0-rc2%2Ba64e47bea3-Windows.zip"}]},{"name":"v1.10.0-rc1","tag_name":"v1.10.0-rc1","published_at":"2025-07-07T07:32:43Z","prerelease":true,"body":"Pre-release RC1 for 1.10.0 release\\r\\n\\r\\n## What\'s Changed\\r\\n* Fix #796 - Add ScheduleFile to MainRightColumnController by [@jmarrec](https://github.com/jmarrec) in [#797](https://github.com/openstudiocoalition/OpenStudioApplication/pull/797)\\r\\n* Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes by [@jmarrec](https://github.com/jmarrec) in [#809](https://github.com/openstudiocoalition/OpenStudioApplication/pull/809)\\r\\n* Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition by [@jmarrec](https://github.com/jmarrec) in [#793](https://github.com/openstudiocoalition/OpenStudioApplication/pull/793)\\r\\n* Issue #166 - Sort measures alphabetically in GUI by [@antonszilasi](https://github.com/antonszilasi) in [#795](https://github.com/openstudiocoalition/OpenStudioApplication/pull/795)\\r\\n* Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days by [@antonszilasi](https://github.com/antonszilasi) in [#791](https://github.com/openstudiocoalition/OpenStudioApplication/pull/791)\\r\\n* Update version to 1.10.0-rc1 by [@macumber](https://github.com/macumber) in [#813](https://github.com/openstudiocoalition/OpenStudioApplication/pull/813)\\r\\n* PR to create 1.10.0-RC1 by [@macumber](https://github.com/macumber) in [#814](https://github.com/openstudiocoalition/OpenStudioApplication/pull/814)\\r\\n\\r\\n## New Contributors\\r\\n* [@antonszilasi](https://github.com/antonszilasi) made their first contribution in [#795](https://github.com/openstudiocoalition/OpenStudioApplication/pull/795)\\r\\n\\r\\n**Full Changelog**: [v1.9.0...v1.10.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.9.0...v1.10.0)-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2025-02-09** (v1.9.0) - **2025-07-07:**\\r\\n\\r\\n**New Issues: 17**\\r\\n\\r\\n**Closed Issues: 10**\\r\\n\\r\\n**Accepted Pull Requests: 8**\\r\\n\\r\\n**Total Open Issues: 125**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 10**\\r\\n- ➕ [#153]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/153 ), Allow users to choose which design days (0.4%, 1%, 2%) are imported\\r\\n- ➕ [#166]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/166 ), Sort measures alphabetically in GUI\\r\\n- ✔️ [#485]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/485 ), ucrtbase.dll Error on Windows 11 in Parallels\\r\\n- ➕ [#792]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/792 ), Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#796]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/796 ), Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)\\r\\n- ✔️ [#800]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/800 ), thermochromic material group\\r\\n- ✔️ [#804]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/804 ), I can\'t access BCL/browse today\\r\\n- ✔️ [#807]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/807 ), District Heating category is greyed out\\r\\n- ➕ [#808]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/808 ), Peer-to-peer trade for surplus on-site generation (local flexibility market)\\r\\n- ✔️ [#812]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/812 ), The v1.9.0 release has no installer binaries\\r\\n\\r\\n**Accepted Pull Requests: 8**\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n- ➕ [#791]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/791 ), Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days\\r\\n- ➕ [#793]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/793 ), Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition\\r\\n- ✔️ [#795]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/795 ), Issue #166 - Sort measures alphabetically in GUI\\r\\n- ✔️ [#797]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/797 ), Fix #796 - Add ScheduleFile to MainRightColumnController\\r\\n- ✔️ [#809]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/809 ), Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes\\r\\n- ✔️ [#813]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/813 ), Update version to 1.10.0-rc1\\r\\n- ✔️ [#814]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/814 ), PR to create 1.10.0-RC1\\r\\n\\r\\n**Total Open Issues: 125** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #742, #751, #752, #757, #760, #770, #776, #782, #784, #786, #787, #794, #798, #799, #801, #802, #803, #805, #806, #810, #811)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270741574","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-AlmaLinux9.6.rpm","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-AlmaLinux9.6.rpm"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270741621","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-AlmaLinux9.6.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-AlmaLinux9.6.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270628491","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270628739","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270627186","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270627260","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270625381","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270625429","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270625722","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270625790","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270628705","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/270628750","name":"OpenStudioApplication-1.10.0-rc1+71e3cf8663-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.10.0-rc1/OpenStudioApplication-1.10.0-rc1%2B71e3cf8663-Windows.zip"}]},{"name":"v1.9.0","tag_name":"v1.9.0","published_at":"2025-02-09T05:18:31Z","prerelease":false,"body":"The OpenStudio Application 1.9.0 release updates the application to OpenStudio 3.9.0, EnergyPlus 24.2.0. This version of the OpenStudio SDK is based on Ruby version 3.2.2. This allows OpenStudio Application 1.9.0 to be compatible with the embedded Ruby interpreter in SketchUp 2024 and 2025.\\r\\n\\r\\n**The OpenStudio Application 1.9.0 installers are hosted on the new member’s only section of the [https://openstudiocoalition.org/](https://openstudiocoalition.org/) website**. This new section provides a secure location to download installers for this and future releases. Create an account, give it a try, and let us know what you think!\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). \\r\\n\\r\\nThe OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## What\'s Changed\\r\\n* PR to master for 1.8.0 by [@macumber](https://github.com/macumber) in [#755](https://github.com/openstudiocoalition/OpenStudioApplication/pull/755)\\r\\n* Update README.md by [@jmarrec](https://github.com/jmarrec) in [#756](https://github.com/openstudiocoalition/OpenStudioApplication/pull/756)\\r\\n* Fix #758 - Properly encode path to QUrl when trying to display results by [@jmarrec](https://github.com/jmarrec) in [#759](https://github.com/openstudiocoalition/OpenStudioApplication/pull/759)\\r\\n* Fix #763 - Adjust deps for debian bookworm by [@jmarrec](https://github.com/jmarrec) in [#765](https://github.com/openstudiocoalition/OpenStudioApplication/pull/765)\\r\\n* Fix #262 #263 - Handle Path Arguments (QFileDialog) by [@jmarrec](https://github.com/jmarrec) in [#761](https://github.com/openstudiocoalition/OpenStudioApplication/pull/761)\\r\\n* Update installer qss script by [@macumber](https://github.com/macumber) in [#775](https://github.com/openstudiocoalition/OpenStudioApplication/pull/775)\\r\\n* Update to OS 3.9.0 by [@macumber](https://github.com/macumber) in [#771](https://github.com/openstudiocoalition/OpenStudioApplication/pull/771)\\r\\n* Show empty required object-list fields with warning icon, remove unused IGdefaultRemoved slot by [@macumber](https://github.com/macumber) in [#780](https://github.com/openstudiocoalition/OpenStudioApplication/pull/780)\\r\\n* Write settings on change, fixes #766 by [@macumber](https://github.com/macumber) in [#781](https://github.com/openstudiocoalition/OpenStudioApplication/pull/781)\\r\\n* PR to create 1.9.0-RC1 by [@macumber](https://github.com/macumber) in [#783](https://github.com/openstudiocoalition/OpenStudioApplication/pull/783)\\r\\n* Fixes #785 by selecting the first idd object type by [@macumber](https://github.com/macumber) in [#788](https://github.com/openstudiocoalition/OpenStudioApplication/pull/788)\\r\\n* Remove pre-release by [@macumber](https://github.com/macumber) in [#789](https://github.com/openstudiocoalition/OpenStudioApplication/pull/789)\\r\\n* Merge for 1.9.0 release by [@macumber](https://github.com/macumber) in [#790](https://github.com/openstudiocoalition/OpenStudioApplication/pull/790)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.8.0...v1.9.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0...v1.9.0)\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-09-18** (v1.8.0) - **2025-02-09:**\\r\\n\\r\\n**New Issues: 22**\\r\\n\\r\\n**Closed Issues: 28**\\r\\n\\r\\n**Accepted Pull Requests: 15**\\r\\n\\r\\n**Total Open Issues: 118**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 28**\\r\\n- ➕ [#42]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/42 ), Consider linking to FloorSpaceJS instead of embedding\\r\\n- ✔️ [#116]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/116 ), Space Types library item collapses after dragging in Space Type from library\\r\\n- ✔️ [#213]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/213 ), A bug related to OS:Schedule:File and OS:External:File with OpenStudio App\\r\\n- ➕ [#262]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/262 ), Add file system browse control for measure path arguments\\r\\n- ✔️ [#263]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/263 ), Cannot enter path arguments in apply measure now\\r\\n- ➕ [#271]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/271 ), Allow compact schedules editing in the schedules graphical editor\\r\\n- ✔️ [#272]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/272 ), OS:SpaceInfiltration:DesignFlowRate edit panel displays wrong units\\r\\n- ➕ [#279]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/279 ), Package Reporting Measure with OS App\\r\\n- ✔️ [#280]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/280 ), Generated files in Apply Measure Now\\r\\n- ✔️ [#322]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/322 ), Delete the coil unit in the air loop\\r\\n- ➕ [#417]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/417 ), Allow access to AdditionalProperties\\r\\n- ✔️ [#493]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/493 ), Geometry editor is missing the ruler when grid view is on\\r\\n- ➕ [#668]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/668 ), Upgrade from Conan v1 to Conan v2\\r\\n- ✔️ [#743]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/743 ), v1.8.0-rc3 Testing: Call for help from the community\\r\\n- ✔️ [#758]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/758 ), Results tab shows Your file couldn’t be accessed\\r\\n- ✔️ [#762]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/762 ), The problem of gathering Openstudio reports\\r\\n- ➕ [#763]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/763 ), Support Debian\\r\\n- ✔️ [#764]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/764 ), Version 2.9.1 not working for some Intel chips\\r\\n- ✔️ [#766]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/766 ), Units selection reverts when opening or reverting\\r\\n- ✔️ [#767]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/767 ), Python Measures break after opening OS 1.4.0\\r\\n- ✔️ [#768]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/768 ), OS:Rendering:Color objects added every time the geometry tab is clicked and the model is saved again\\r\\n- ➕ [#769]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/769 ), HVAC Schedule Flaw\\r\\n- ➕ [#772]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/772 ), Providing Supply and Demand node in the OpenStudio Application for WaterHeater:Mixed\\r\\n- ➕ [#773]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/773 ), WaterHeater:HeatPump Field !- Tank Element Control Logic is not exposed\\r\\n- ✔️ [#777]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/777 ), Add back capability to add AirLoopHVAC:ReturnPlenum\\r\\n- ✔️ [#778]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/778 ), Unable to assign zone name to Refrigeration:Case\\r\\n- ➕ [#779]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/779 ), SolarCollector:FlatPlate:Water volumetric water flow rate specified in CFM\\r\\n- ✔️ [#785]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/785 ), Crash on empty model when no subcategory is selected (eg Materials) and \\"Add\\" is clicked\\r\\n\\r\\n**Accepted Pull Requests: 15**\\r\\n- ✔️ [#754]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/754 ), Add an Ubuntu-2404 runner\\r\\n- ✔️ [#755]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/755 ), PR to master for 1.8.0\\r\\n- ✔️ [#756]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/756 ), Update README.md\\r\\n- ✔️ [#759]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/759 ), Fix #758 - Properly encode path to QUrl when trying to display results\\r\\n- ➕ [#761]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/761 ), Fix #262 #263 - Handle Path Arguments (QFileDialog)\\r\\n- ✔️ [#765]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/765 ), Fix #763 - Adjust deps for debian bookworm\\r\\n- ✔️ [#771]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/771 ), Update to OS 3.9.0\\r\\n- ✔️ [#774]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/774 ), Update qss script\\r\\n- ✔️ [#775]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/775 ), Update installer qss script\\r\\n- ✔️ [#780]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/780 ), Show empty required object-list fields with warning icon, remove unused IGdefaultRemoved slot\\r\\n- ✔️ [#781]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/781 ), Write settings on change, fixes #766\\r\\n- ✔️ [#783]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/783 ), PR to create 1.9.0-RC1\\r\\n- ✔️ [#788]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/788 ), Fixes #785 by selecting the first idd object type \\r\\n- ✔️ [#789]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/789 ), Remove pre-release\\r\\n- ✔️ [#790]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/790 ), Merge for 1.9.0 release\\r\\n\\r\\n**Total Open Issues: 118** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #485, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #742, #751, #752, #757, #760, #770, #776, #782, #784, #786, #787)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553855","name":"OpenStudioApplication-1.9.0+d1f890902a-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553963","name":"OpenStudioApplication-1.9.0+d1f890902a-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227555678","name":"OpenStudioApplication-1.9.0+d1f890902a-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227555720","name":"OpenStudioApplication-1.9.0+d1f890902a-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553241","name":"OpenStudioApplication-1.9.0+d1f890902a-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553261","name":"OpenStudioApplication-1.9.0+d1f890902a-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553265","name":"OpenStudioApplication-1.9.0+d1f890902a-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227553313","name":"OpenStudioApplication-1.9.0+d1f890902a-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227554849","name":"OpenStudioApplication-1.9.0+d1f890902a-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/227554872","name":"OpenStudioApplication-1.9.0+d1f890902a-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0/OpenStudioApplication-1.9.0%2Bd1f890902a-Windows.zip"}]},{"name":"v1.9.0-rc1","tag_name":"v1.9.0-rc1","published_at":"2025-01-12T23:09:50Z","prerelease":true,"body":"Pre-release RC1 for 1.9.0 release\\r\\n\\r\\n## What\'s Changed\\r\\n\\r\\n* PR to master for 1.8.0 by [@macumber](https://github.com/macumber) in [#755](https://github.com/openstudiocoalition/OpenStudioApplication/pull/755)\\r\\n* Update README.md by [@jmarrec](https://github.com/jmarrec) in [#756](https://github.com/openstudiocoalition/OpenStudioApplication/pull/756)\\r\\n* Fix #758 - Properly encode path to QUrl when trying to display results by [@jmarrec](https://github.com/jmarrec) in [#759](https://github.com/openstudiocoalition/OpenStudioApplication/pull/759)\\r\\n* Fix #763 - Adjust deps for debian bookworm by [@jmarrec](https://github.com/jmarrec) in [#765](https://github.com/openstudiocoalition/OpenStudioApplication/pull/765)\\r\\n* Fix #262 #263 - Handle Path Arguments (QFileDialog) by [@jmarrec](https://github.com/jmarrec) in [#761](https://github.com/openstudiocoalition/OpenStudioApplication/pull/761)\\r\\n* Update installer qss script by [@macumber](https://github.com/macumber) in [#775](https://github.com/openstudiocoalition/OpenStudioApplication/pull/775)\\r\\n* Update to OS 3.9.0 by [@macumber](https://github.com/macumber) in [#771](https://github.com/openstudiocoalition/OpenStudioApplication/pull/771)\\r\\n* Show empty required object-list fields with warning icon, remove unused IGdefaultRemoved slot by [@macumber](https://github.com/macumber) in [#780](https://github.com/openstudiocoalition/OpenStudioApplication/pull/780)\\r\\n* Write settings on change, fixes #766 by [@macumber](https://github.com/macumber) in [#781](https://github.com/openstudiocoalition/OpenStudioApplication/pull/781)\\r\\n* PR to create 1.9.0-RC1 by [@macumber](https://github.com/macumber) in [#783](https://github.com/openstudiocoalition/OpenStudioApplication/pull/783)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.8.0...v1.9.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0...v1.9.0)-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-09-18** (v1.8.0) - **2025-01-12:**\\r\\n\\r\\n**New Issues: 18**\\r\\n\\r\\n**Closed Issues: 27**\\r\\n\\r\\n**Accepted Pull Requests: 12**\\r\\n\\r\\n**Total Open Issues: 115**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 27**\\r\\n- ➕ [#42]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/42 ), Consider linking to FloorSpaceJS instead of embedding\\r\\n- ✔️ [#116]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/116 ), Space Types library item collapses after dragging in Space Type from library\\r\\n- ✔️ [#213]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/213 ), A bug related to OS:Schedule:File and OS:External:File with OpenStudio App\\r\\n- ➕ [#262]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/262 ), Add file system browse control for measure path arguments\\r\\n- ✔️ [#263]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/263 ), Cannot enter path arguments in apply measure now\\r\\n- ➕ [#271]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/271 ), Allow compact schedules editing in the schedules graphical editor\\r\\n- ✔️ [#272]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/272 ), OS:SpaceInfiltration:DesignFlowRate edit panel displays wrong units\\r\\n- ➕ [#279]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/279 ), Package Reporting Measure with OS App\\r\\n- ✔️ [#280]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/280 ), Generated files in Apply Measure Now\\r\\n- ✔️ [#322]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/322 ), Delete the coil unit in the air loop\\r\\n- ➕ [#417]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/417 ), Allow access to AdditionalProperties\\r\\n- ✔️ [#493]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/493 ), Geometry editor is missing the ruler when grid view is on\\r\\n- ➕ [#668]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/668 ), Upgrade from Conan v1 to Conan v2\\r\\n- ✔️ [#743]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/743 ), v1.8.0-rc3 Testing: Call for help from the community\\r\\n- ✔️ [#758]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/758 ), Results tab shows Your file couldn’t be accessed\\r\\n- ✔️ [#762]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/762 ), The problem of gathering Openstudio reports\\r\\n- ➕ [#763]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/763 ), Support Debian\\r\\n- ✔️ [#764]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/764 ), Version 2.9.1 not working for some Intel chips\\r\\n- ✔️ [#766]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/766 ), Units selection reverts when opening or reverting\\r\\n- ✔️ [#767]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/767 ), Python Measures break after opening OS 1.4.0\\r\\n- ✔️ [#768]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/768 ), OS:Rendering:Color objects added every time the geometry tab is clicked and the model is saved again\\r\\n- ➕ [#769]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/769 ), HVAC Schedule Flaw\\r\\n- ➕ [#772]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/772 ), Providing Supply and Demand node in the OpenStudio Application for WaterHeater:Mixed\\r\\n- ➕ [#773]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/773 ), WaterHeater:HeatPump Field !- Tank Element Control Logic is not exposed\\r\\n- ✔️ [#777]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/777 ), Add back capability to add AirLoopHVAC:ReturnPlenum\\r\\n- ✔️ [#778]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/778 ), Unable to assign zone name to Refrigeration:Case\\r\\n- ➕ [#779]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/779 ), SolarCollector:FlatPlate:Water volumetric water flow rate specified in CFM\\r\\n\\r\\n**Accepted Pull Requests: 12**\\r\\n- ✔️ [#754]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/754 ), Add an Ubuntu-2404 runner\\r\\n- ✔️ [#755]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/755 ), PR to master for 1.8.0\\r\\n- ✔️ [#756]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/756 ), Update README.md\\r\\n- ✔️ [#759]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/759 ), Fix #758 - Properly encode path to QUrl when trying to display results\\r\\n- ➕ [#761]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/761 ), Fix #262 #263 - Handle Path Arguments (QFileDialog)\\r\\n- ✔️ [#765]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/765 ), Fix #763 - Adjust deps for debian bookworm\\r\\n- ✔️ [#771]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/771 ), Update to OS 3.9.0\\r\\n- ✔️ [#774]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/774 ), Update qss script\\r\\n- ✔️ [#775]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/775 ), Update installer qss script\\r\\n- ✔️ [#780]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/780 ), Show empty required object-list fields with warning icon, remove unused IGdefaultRemoved slot\\r\\n- ✔️ [#781]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/781 ), Write settings on change, fixes #766\\r\\n- ✔️ [#783]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/783 ), PR to create 1.9.0-RC1\\r\\n\\r\\n**Total Open Issues: 115** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #485, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #742, #751, #752, #757, #760, #770, #776, #782)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219928134","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-macOS13-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-macOS13-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219929115","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-macOS13-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-macOS13-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219933303","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-macOS13-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-macOS13-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219933312","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-macOS13-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-macOS13-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219926214","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219926241","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219926247","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219926284","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219940673","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/219940720","name":"OpenStudioApplication-1.9.0-rc1+898f15e6c5-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.9.0-rc1/OpenStudioApplication-1.9.0-rc1%2B898f15e6c5-Windows.zip"}]},{"name":"v1.8.0","tag_name":"v1.8.0","published_at":"2024-09-20T23:44:26Z","prerelease":false,"body":"The OpenStudio Application 1.8.0 release updates the application to OpenStudio 3.8.0, EnergyPlus 24.1.0. This version of the OpenStudio SDK updates the version of the embedded Ruby interpreter from 2.7.2 to 3.2.2. This allows OpenStudio Application 1.8.0 to be compatible with the embedded Ruby interpreter in SketchUp 2024.\\r\\n\\r\\nThe OpenStudio SDK update to 3.8.0 was not backwards compatible with many measures on the BCL. This release updates the OpenStudio Application to be compatible with the newest released versions of these measures.\\r\\n\\r\\nThe OpenStudio Application 1.8.0 installers are hosted on GitHub as well as a new member’s only section of the https://openstudiocoalition.org/ website. This new section will provide a secure location to download installers in future releases. Create an account, give it a try, and let us know what you think!\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## What\'s Changed\\r\\n* Conan v2 + OS SDK 3.8.0-rc2 by [@jmarrec](https://github.com/jmarrec) in [#712](https://github.com/openstudiocoalition/OpenStudioApplication/pull/712)\\r\\n* #672 - More BCLSearchResults info (pending a PR) by [@jmarrec](https://github.com/jmarrec) in [#698](https://github.com/openstudiocoalition/OpenStudioApplication/pull/698)\\r\\n* Updates for SketchUp 2024 by [@macumber](https://github.com/macumber) in [#714](https://github.com/openstudiocoalition/OpenStudioApplication/pull/714)\\r\\n* Update floorspace by [@macumber](https://github.com/macumber) in [#718](https://github.com/openstudiocoalition/OpenStudioApplication/pull/718)\\r\\n* Implement support for further grouping by category in Library (HVAC, Schedules, etc) by [@manuvarkey](https://github.com/manuvarkey) in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n* #612 - Display Name by [@jmarrec](https://github.com/jmarrec) in [#715](https://github.com/openstudiocoalition/OpenStudioApplication/pull/715)\\r\\n* Fix issues with MeasureManager by [@macumber](https://github.com/macumber) in [#720](https://github.com/openstudiocoalition/OpenStudioApplication/pull/720)\\r\\n* Update scripts to Ruby 3.2 by [@macumber](https://github.com/macumber) in [#724](https://github.com/openstudiocoalition/OpenStudioApplication/pull/724)\\r\\n* Configure compressed ext for different builds by [@macumber](https://github.com/macumber) in [#725](https://github.com/openstudiocoalition/OpenStudioApplication/pull/725)\\r\\n* Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone by [@jmarrec](https://github.com/jmarrec) in [#729](https://github.com/openstudiocoalition/OpenStudioApplication/pull/729)\\r\\n* Codesign on macOS by [@jmarrec](https://github.com/jmarrec) in [#727](https://github.com/openstudiocoalition/OpenStudioApplication/pull/727)\\r\\n* Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile by [@jmarrec](https://github.com/jmarrec) in [#731](https://github.com/openstudiocoalition/OpenStudioApplication/pull/731)\\r\\n* Fix a race condition during CPack packaging when creating symlink on Apple by [@jmarrec](https://github.com/jmarrec) in [#732](https://github.com/openstudiocoalition/OpenStudioApplication/pull/732)\\r\\n* Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop by [@jmarrec](https://github.com/jmarrec) in [#730](https://github.com/openstudiocoalition/OpenStudioApplication/pull/730)\\r\\n* Hotfix #730 - QtCharts not needed by modeleditor by [@jmarrec](https://github.com/jmarrec) in [#734](https://github.com/openstudiocoalition/OpenStudioApplication/pull/734)\\r\\n* Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation by [@jmarrec](https://github.com/jmarrec) in [#733](https://github.com/openstudiocoalition/OpenStudioApplication/pull/733)\\r\\n* Fix #736 #738 - resources install by [@macumber](https://github.com/macumber) in [#737](https://github.com/openstudiocoalition/OpenStudioApplication/pull/737)\\r\\n* Fix #739 - Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing by [@jmarrec](https://github.com/jmarrec) in [#740](https://github.com/openstudiocoalition/OpenStudioApplication/pull/740)\\r\\n* Fix #633 - Apply short style copyright and hopefully for the last time by [@jmarrec](https://github.com/jmarrec) in [#741](https://github.com/openstudiocoalition/OpenStudioApplication/pull/741)\\r\\n* Fix #744 Fix #745 - fixup icon and Can\'t see QtWebEngine pages on macOS by [@jmarrec](https://github.com/jmarrec) in [#746](https://github.com/openstudiocoalition/OpenStudioApplication/pull/746)\\r\\n* Fix #747 - crash shoebox by [@jmarrec](https://github.com/jmarrec) in [#748](https://github.com/openstudiocoalition/OpenStudioApplication/pull/748)\\r\\n* Improve installer by [@jmarrec](https://github.com/jmarrec) in [#749](https://github.com/openstudiocoalition/OpenStudioApplication/pull/749)\\r\\n* Add an Ubuntu-2404 runner by [@jmarrec](https://github.com/jmarrec) in [#754](https://github.com/openstudiocoalition/OpenStudioApplication/pull/754)\\r\\n\\r\\n## New Contributors\\r\\n* [@manuvarkey](https://github.com/manuvarkey) made their first contribution in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n\\r\\n**Full Changelog**: [v1.7.2...v1.8.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.2...v1.8.0)\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-09-20:**\\r\\n\\r\\n**New Issues: 41**\\r\\n\\r\\n**Closed Issues: 52**\\r\\n\\r\\n**Accepted Pull Requests: 37**\\r\\n\\r\\n**Total Open Issues: 124**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 52**\\r\\n- ➕ [#112]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/112 ), Refrigeration Spreadsheet GUI: drop-down lists\\r\\n- ✔️ [#115]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/115 ), Delete a measure, re-add it from library: no prompt and duplicated folders\\r\\n- ➕ [#123]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/123 ), Organize HVAC library by category\\r\\n- ✔️ [#142]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/142 ), Double click to open does not work on Mac\\r\\n- ✔️ [#143]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/143 ), Start OpenStudio button does not work in sketchup if osm is on network drive\\r\\n- ➕ [#162]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/162 ), Allow visualization of Schedule:Compact and Schedule:Constant on Schedules tab in OS App\\r\\n- ➕ [#175]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/175 ), Add ability for OS app to look for updated BCL components and measures.\\r\\n- ✔️ [#179]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/179 ), CMakeLists.txt incorrectly assumes that any LSB release ID that\'s not 18.04 must be 16.04\\r\\n- ✔️ [#217]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/217 ), App crashes when multiplying (cloning) Dual Duct AirLoopHVAC\\r\\n- ➕ [#475]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/475 ), Add \\"Launch OS App Now\\" and \\"Install Shortcuts\\" checkboxes to installer\\r\\n- ✔️ [#512]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/512 ), Fix TGZ installer on Mac\\r\\n- ➕ [#557]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/557 ), Upgrade Ruby to 3.1\\r\\n- ✔️ [#561]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/561 ), Subsurfaces across thermal zones do not have outside boundary condition object assigned\\r\\n- ➕ [#612]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/612 ), Show displayname in grid view\\r\\n- ✔️ [#620]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/620 ), `sync project measures with library` does not work as before\\r\\n- ➕ [#633]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/633 ), Simplify license docstring in files\\r\\n- ✔️ [#656]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/656 ), Application crash when using Python measures without Python Bindings component installed\\r\\n- ➕ [#669]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/669 ), v1.7.0-rc2 Testing: Call for help from the community\\r\\n- ➕ [#670]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/670 ), Show Python/Ruby measure badge on measures in the workflow\\r\\n- ➕ [#671]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/671 ), Mark Python measures as in error if using classic CLI\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ➕ [#706]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/706 ), v1.7.1-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n- ➕ [#708]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/708 ), Support more SetpointManager types on HVACSystemViews\\r\\n- ✔️ [#716]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/716 ), Disable classic CLI option if not working\\r\\n- ✔️ [#717]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/717 ), \\"Do you want to reset Measure Manager settings?\\" does not work\\r\\n- ✔️ [#719]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/719 ), Windows build no longer works on Windows2022 github runner\\r\\n- ➕ [#721]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/721 ), Add space infiltration design flow rate schedule selection at space level\\r\\n- ✔️ [#722]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/722 ), OpenStudio Results Measure is broken\\r\\n- ✔️ [#726]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/726 ), OS X 14.5 1.71 Crash on attempt to open gbXML\\r\\n- ✔️ [#728]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/728 ), Adding ERV Crashes OpenStudioApplication\\r\\n- ✔️ [#735]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/735 ), v1.8.0-rc2 Testing: Call for help from the community \\r\\n- ✔️ [#736]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/736 ), [v1.8.0-rc2] Bundled openstudio_results measure is at wrong location\\r\\n- ✔️ [#738]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/738 ), [v1.8.0-rc2] Cannot launch, Qt6OpenGLWidgets.dll was not found on Windows\\r\\n- ➕ [#739]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/739 ), [v1.8.0-rc2] Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing.\\r\\n- ✔️ [#744]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/744 ), [v1.8.0-rc3] os.icns is outdated\\r\\n- ✔️ [#745]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/745 ), [v1.8.0-rc3] Can\'t see QtWebEngine pages on macOS\\r\\n- ✔️ [#747]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/747 ), [v1.8.0-rc3] Opening Shoebox Model several times in a row produces a crash\\r\\n- ✔️ [#750]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/750 ), v1.8.0 does not appear to be compatible with BCL measure\\r\\n- ✔️ [#753]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/753 ), [1.8.0-rc3] Crash when new or revert to saved after apply measure now to a model.\\r\\n\\r\\n**Accepted Pull Requests: 37**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#698]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/698 ), #672 - More BCLSearchResults info (pending a PR)\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n- ✔️ [#712]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/712 ), Conan v2 + OS SDK 3.8.0-rc2\\r\\n- ✔️ [#713]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/713 ), Implement support for further grouping by category in Library (HVAC, Schedules, etc)\\r\\n- ✔️ [#714]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/714 ), Updates for SketchUp 2024\\r\\n- ✔️ [#715]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/715 ), #612 - Display Name\\r\\n- ✔️ [#718]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/718 ), Update floorspace\\r\\n- ✔️ [#720]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/720 ), Fix issues with MeasureManager\\r\\n- ✔️ [#723]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/723 ), v1.7.2 patch to not automatically download results measure\\r\\n- ✔️ [#724]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/724 ), Update scripts to Ruby 3.2\\r\\n- ✔️ [#725]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/725 ), Configure compressed ext for different builds\\r\\n- ➕ [#727]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/727 ), Codesign on macOS\\r\\n- ➕ [#729]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/729 ), Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone\\r\\n- ➕ [#730]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/730 ), Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop\\r\\n- ➕ [#731]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/731 ), Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile\\r\\n- ✔️ [#732]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/732 ), Fix a race condition during CPack packaging when creating symlink on Apple\\r\\n- ✔️ [#733]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/733 ), Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation\\r\\n- ✔️ [#734]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/734 ), Hotfix #730 - QtCharts not needed by modeleditor\\r\\n- ✔️ [#737]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/737 ), Fix #736 #738 - resources install\\r\\n- ➕ [#740]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/740 ), Fix #739 - Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing\\r\\n- ✔️ [#741]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/741 ), Fix #633 - Apply short style copyright and hopefully for the last time\\r\\n- ✔️ [#746]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/746 ), Fix #744 Fix #745 - fixup icon and Can\'t see QtWebEngine pages on macOS\\r\\n- ✔️ [#748]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/748 ), Fix #747 - crash shoebox\\r\\n- ➕ [#749]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/749 ), Improve installer\\r\\n- ✔️ [#754]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/754 ), Add an Ubuntu-2404 runner\\r\\n- ✔️ [#755]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/755 ), PR to master for 1.8.0\\r\\n\\r\\n**Total Open Issues: 124** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #199, #206, #213, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #481, #485, #491, #493, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #668, #679, #680, #687, #704, #709, #711, #742, #743, #751, #752)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193941155","name":"OpenStudioApplication-1.8.0+2722e3e751-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193941217","name":"OpenStudioApplication-1.8.0+2722e3e751-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193941056","name":"OpenStudioApplication-1.8.0+2722e3e751-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193941442","name":"OpenStudioApplication-1.8.0+2722e3e751-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938525","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938564","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938486","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938527","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938485","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu24.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu24.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193938522","name":"OpenStudioApplication-1.8.0+2722e3e751-Ubuntu24.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Ubuntu24.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193943346","name":"OpenStudioApplication-1.8.0+2722e3e751-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/193943356","name":"OpenStudioApplication-1.8.0+2722e3e751-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0/OpenStudioApplication-1.8.0%2B2722e3e751-Windows.zip"}]},{"name":"v1.8.0-rc3","tag_name":"v1.8.0-rc3","published_at":"2024-09-04T11:29:04Z","prerelease":true,"body":"Pre-release RC3 for 1.8.0 release\\r\\n\\r\\n## What\'s Changed (Since v1.8.0-rc2)\\r\\n\\r\\n* Fix #736 #738 - resources install by [@macumber](https://github.com/macumber) in [#737](https://github.com/openstudiocoalition/OpenStudioApplication/pull/737)\\r\\n* Fix #739 - Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing by [@jmarrec](https://github.com/jmarrec) in [#740](https://github.com/openstudiocoalition/OpenStudioApplication/pull/740)\\r\\n* Fix #633 - Apply short style copyright and hopefully for the last time by [@jmarrec](https://github.com/jmarrec) in [#741](https://github.com/openstudiocoalition/OpenStudioApplication/pull/741)\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0-rc2...v1.8.0-rc3\\r\\n\\r\\n---- \\r\\n\\r\\n## What\'s Changed (since v1.8.0-rc1)\\r\\n\\r\\n* Update scripts to Ruby 3.2 by [@macumber](https://github.com/macumber) in [#724](https://github.com/openstudiocoalition/OpenStudioApplication/pull/724)\\r\\n* Configure compressed ext for different builds by [@macumber](https://github.com/macumber) in [#725](https://github.com/openstudiocoalition/OpenStudioApplication/pull/725)\\r\\n* Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone by [@jmarrec](https://github.com/jmarrec) in [#729](https://github.com/openstudiocoalition/OpenStudioApplication/pull/729)\\r\\n* Codesign on macOS by [@jmarrec](https://github.com/jmarrec) in [#727](https://github.com/openstudiocoalition/OpenStudioApplication/pull/727)\\r\\n* Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile by [@jmarrec](https://github.com/jmarrec) in [#731](https://github.com/openstudiocoalition/OpenStudioApplication/pull/731)\\r\\n* Fix a race condition during CPack packaging when creating symlink on Apple by [@jmarrec](https://github.com/jmarrec) in [#732](https://github.com/openstudiocoalition/OpenStudioApplication/pull/732)\\r\\n* Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop by [@jmarrec](https://github.com/jmarrec) in [#730](https://github.com/openstudiocoalition/OpenStudioApplication/pull/730)\\r\\n* Hotfix #730 - QtCharts not needed by modeleditor by [@jmarrec](https://github.com/jmarrec) in [#734](https://github.com/openstudiocoalition/OpenStudioApplication/pull/734)\\r\\n* Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation by [@jmarrec](https://github.com/jmarrec) in [#733](https://github.com/openstudiocoalition/OpenStudioApplication/pull/733)\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0-rc1...v1.8.0-rc2\\r\\n\\r\\n\\r\\n-----\\r\\n\\r\\n## What\'s Changed (since v1.7.2)\\r\\n\\r\\n* Conan v2 + OS SDK 3.8.0-rc2 by [@jmarrec](https://github.com/jmarrec) in [#712](https://github.com/openstudiocoalition/OpenStudioApplication/pull/712)\\r\\n* #672 - More BCLSearchResults info (pending a PR) by [@jmarrec](https://github.com/jmarrec) in [#698](https://github.com/openstudiocoalition/OpenStudioApplication/pull/698)\\r\\n* Updates for SketchUp 2024 by [@macumber](https://github.com/macumber) in [#714](https://github.com/openstudiocoalition/OpenStudioApplication/pull/714)\\r\\n* Update floorspace by [@macumber](https://github.com/macumber) in [#718](https://github.com/openstudiocoalition/OpenStudioApplication/pull/718)\\r\\n* Implement support for further grouping by category in Library (HVAC, Schedules, etc) by [@manuvarkey](https://github.com/manuvarkey) in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n* #612 - Display Name by [@jmarrec](https://github.com/jmarrec) in [#715](https://github.com/openstudiocoalition/OpenStudioApplication/pull/715)\\r\\n* Fix issues with MeasureManager by [@macumber](https://github.com/macumber) in [#720](https://github.com/openstudiocoalition/OpenStudioApplication/pull/720)\\r\\n\\r\\n**Full Changelog**: [v1.7.2...v1.8.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.2...v1.8.0)-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-09-04:**\\r\\n\\r\\n**New Issues: 32**\\r\\n\\r\\n**Closed Issues: 44**\\r\\n\\r\\n**Accepted Pull Requests: 32**\\r\\n\\r\\n**Total Open Issues: 123**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 44**\\r\\n- ➕ [#112]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/112 ), Refrigeration Spreadsheet GUI: drop-down lists\\r\\n- ✔️ [#115]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/115 ), Delete a measure, re-add it from library: no prompt and duplicated folders\\r\\n- ➕ [#123]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/123 ), Organize HVAC library by category\\r\\n- ✔️ [#142]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/142 ), Double click to open does not work on Mac\\r\\n- ✔️ [#143]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/143 ), Start OpenStudio button does not work in sketchup if osm is on network drive\\r\\n- ➕ [#162]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/162 ), Allow visualization of Schedule:Compact and Schedule:Constant on Schedules tab in OS App\\r\\n- ➕ [#175]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/175 ), Add ability for OS app to look for updated BCL components and measures.\\r\\n- ✔️ [#179]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/179 ), CMakeLists.txt incorrectly assumes that any LSB release ID that\'s not 18.04 must be 16.04\\r\\n- ✔️ [#512]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/512 ), Fix TGZ installer on Mac\\r\\n- ➕ [#557]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/557 ), Upgrade Ruby to 3.1\\r\\n- ✔️ [#561]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/561 ), Subsurfaces across thermal zones do not have outside boundary condition object assigned\\r\\n- ➕ [#612]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/612 ), Show displayname in grid view\\r\\n- ✔️ [#620]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/620 ), `sync project measures with library` does not work as before\\r\\n- ➕ [#633]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/633 ), Simplify license docstring in files\\r\\n- ✔️ [#656]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/656 ), Application crash when using Python measures without Python Bindings component installed\\r\\n- ➕ [#669]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/669 ), v1.7.0-rc2 Testing: Call for help from the community\\r\\n- ➕ [#670]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/670 ), Show Python/Ruby measure badge on measures in the workflow\\r\\n- ➕ [#671]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/671 ), Mark Python measures as in error if using classic CLI\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ➕ [#706]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/706 ), v1.7.1-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n- ➕ [#708]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/708 ), Support more SetpointManager types on HVACSystemViews\\r\\n- ✔️ [#716]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/716 ), Disable classic CLI option if not working\\r\\n- ✔️ [#717]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/717 ), \\"Do you want to reset Measure Manager settings?\\" does not work\\r\\n- ✔️ [#719]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/719 ), Windows build no longer works on Windows2022 github runner\\r\\n- ➕ [#721]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/721 ), Add space infiltration design flow rate schedule selection at space level\\r\\n- ✔️ [#722]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/722 ), OpenStudio Results Measure is broken\\r\\n- ✔️ [#726]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/726 ), OS X 14.5 1.71 Crash on attempt to open gbXML\\r\\n- ✔️ [#728]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/728 ), Adding ERV Crashes OpenStudioApplication\\r\\n- ✔️ [#736]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/736 ), [v1.8.0-rc2] Bundled openstudio_results measure is at wrong location\\r\\n- ✔️ [#738]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/738 ), [v1.8.0-rc2] Cannot launch, Qt6OpenGLWidgets.dll was not found on Windows\\r\\n- ➕ [#739]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/739 ), [v1.8.0-rc2] Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing.\\r\\n\\r\\n**Accepted Pull Requests: 32**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#698]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/698 ), #672 - More BCLSearchResults info (pending a PR)\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n- ✔️ [#712]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/712 ), Conan v2 + OS SDK 3.8.0-rc2\\r\\n- ✔️ [#713]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/713 ), Implement support for further grouping by category in Library (HVAC, Schedules, etc)\\r\\n- ✔️ [#714]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/714 ), Updates for SketchUp 2024\\r\\n- ✔️ [#715]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/715 ), #612 - Display Name\\r\\n- ✔️ [#718]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/718 ), Update floorspace\\r\\n- ✔️ [#720]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/720 ), Fix issues with MeasureManager\\r\\n- ✔️ [#723]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/723 ), v1.7.2 patch to not automatically download results measure\\r\\n- ✔️ [#724]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/724 ), Update scripts to Ruby 3.2\\r\\n- ✔️ [#725]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/725 ), Configure compressed ext for different builds\\r\\n- ➕ [#727]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/727 ), Codesign on macOS\\r\\n- ➕ [#729]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/729 ), Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone\\r\\n- ➕ [#730]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/730 ), Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop\\r\\n- ➕ [#731]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/731 ), Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile\\r\\n- ✔️ [#732]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/732 ), Fix a race condition during CPack packaging when creating symlink on Apple\\r\\n- ✔️ [#733]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/733 ), Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation\\r\\n- ✔️ [#734]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/734 ), Hotfix #730 - QtCharts not needed by modeleditor\\r\\n- ✔️ [#737]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/737 ), Fix resources install\\r\\n- ➕ [#740]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/740 ), Fix #739 - Issues with Ubuntu 24.04: unmet apt dependencies, icon not showing\\r\\n- ✔️ [#741]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/741 ), Fix #633 - Apply short style copyright and hopefully for the last time\\r\\n\\r\\n**Total Open Issues: 123** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #668, #679, #680, #687, #704, #709, #711, #735)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190356917","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190357059","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190352638","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353133","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353646","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353660","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353512","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190353540","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190361970","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190361995","name":"OpenStudioApplication-1.8.0-rc3+44f381f6f7-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc3/OpenStudioApplication-1.8.0-rc3%2B44f381f6f7-Windows.zip"}]},{"name":"v1.8.0-rc2","tag_name":"v1.8.0-rc2","published_at":"2024-09-03T12:27:43Z","prerelease":true,"body":"Pre-release RC2 for 1.8.0 release\\r\\n\\r\\n## What\'s Changed (since v1.8.0-rc1)\\r\\n\\r\\n* Update scripts to Ruby 3.2 by [@macumber](https://github.com/macumber) in [#724](https://github.com/openstudiocoalition/OpenStudioApplication/pull/724)\\r\\n* Configure compressed ext for different builds by [@macumber](https://github.com/macumber) in [#725](https://github.com/openstudiocoalition/OpenStudioApplication/pull/725)\\r\\n* Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone by [@jmarrec](https://github.com/jmarrec) in [#729](https://github.com/openstudiocoalition/OpenStudioApplication/pull/729)\\r\\n* Codesign on macOS by [@jmarrec](https://github.com/jmarrec) in [#727](https://github.com/openstudiocoalition/OpenStudioApplication/pull/727)\\r\\n* Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile by [@jmarrec](https://github.com/jmarrec) in [#731](https://github.com/openstudiocoalition/OpenStudioApplication/pull/731)\\r\\n* Fix a race condition during CPack packaging when creating symlink on Apple by [@jmarrec](https://github.com/jmarrec) in [#732](https://github.com/openstudiocoalition/OpenStudioApplication/pull/732)\\r\\n* Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop by [@jmarrec](https://github.com/jmarrec) in [#730](https://github.com/openstudiocoalition/OpenStudioApplication/pull/730)\\r\\n* Hotfix #730 - QtCharts not needed by modeleditor by [@jmarrec](https://github.com/jmarrec) in [#734](https://github.com/openstudiocoalition/OpenStudioApplication/pull/734)\\r\\n* Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation by [@jmarrec](https://github.com/jmarrec) in [#733](https://github.com/openstudiocoalition/OpenStudioApplication/pull/733)\\r\\n\\r\\n\\r\\n**Full Changelog**: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.8.0-rc1...v1.8.0-rc2\\r\\n\\r\\n\\r\\n-----\\r\\n\\r\\n\\r\\n## What\'s Changed (since v1.7.2)\\r\\n\\r\\n* Conan v2 + OS SDK 3.8.0-rc2 by [@jmarrec](https://github.com/jmarrec) in [#712](https://github.com/openstudiocoalition/OpenStudioApplication/pull/712)\\r\\n* #672 - More BCLSearchResults info (pending a PR) by [@jmarrec](https://github.com/jmarrec) in [#698](https://github.com/openstudiocoalition/OpenStudioApplication/pull/698)\\r\\n* Updates for SketchUp 2024 by [@macumber](https://github.com/macumber) in [#714](https://github.com/openstudiocoalition/OpenStudioApplication/pull/714)\\r\\n* Update floorspace by [@macumber](https://github.com/macumber) in [#718](https://github.com/openstudiocoalition/OpenStudioApplication/pull/718)\\r\\n* Implement support for further grouping by category in Library (HVAC, Schedules, etc) by [@manuvarkey](https://github.com/manuvarkey) in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n* #612 - Display Name by [@jmarrec](https://github.com/jmarrec) in [#715](https://github.com/openstudiocoalition/OpenStudioApplication/pull/715)\\r\\n* Fix issues with MeasureManager by [@macumber](https://github.com/macumber) in [#720](https://github.com/openstudiocoalition/OpenStudioApplication/pull/720)\\r\\n* Update scripts to Ruby 3.2 by [@macumber](https://github.com/macumber) in [#724](https://github.com/openstudiocoalition/OpenStudioApplication/pull/724)\\r\\n* Configure compressed ext for different builds by [@macumber](https://github.com/macumber) in [#725](https://github.com/openstudiocoalition/OpenStudioApplication/pull/725)\\r\\n* Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone by [@jmarrec](https://github.com/jmarrec) in [#729](https://github.com/openstudiocoalition/OpenStudioApplication/pull/729)\\r\\n* Codesign on macOS by [@jmarrec](https://github.com/jmarrec) in [#727](https://github.com/openstudiocoalition/OpenStudioApplication/pull/727)\\r\\n* Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile by [@jmarrec](https://github.com/jmarrec) in [#731](https://github.com/openstudiocoalition/OpenStudioApplication/pull/731)\\r\\n* Fix a race condition during CPack packaging when creating symlink on Apple by [@jmarrec](https://github.com/jmarrec) in [#732](https://github.com/openstudiocoalition/OpenStudioApplication/pull/732)\\r\\n* Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop by [@jmarrec](https://github.com/jmarrec) in [#730](https://github.com/openstudiocoalition/OpenStudioApplication/pull/730)\\r\\n* Hotfix #730 - QtCharts not needed by modeleditor by [@jmarrec](https://github.com/jmarrec) in [#734](https://github.com/openstudiocoalition/OpenStudioApplication/pull/734)\\r\\n* Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation by [@jmarrec](https://github.com/jmarrec) in [#733](https://github.com/openstudiocoalition/OpenStudioApplication/pull/733)\\r\\n\\r\\n## New Contributors\\r\\n* [@manuvarkey](https://github.com/manuvarkey) made their first contribution in [#713](https://github.com/openstudiocoalition/OpenStudioApplication/pull/713)\\r\\n\\r\\n**Full Changelog**: [v1.7.2...v1.8.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.2...v1.8.0)-rc2\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-09-03:**\\r\\n\\r\\n**New Issues: 28**\\r\\n\\r\\n**Closed Issues: 40**\\r\\n\\r\\n**Accepted Pull Requests: 29**\\r\\n\\r\\n**Total Open Issues: 123**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 40**\\r\\n- ➕ [#112]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/112 ), Refrigeration Spreadsheet GUI: drop-down lists\\r\\n- ✔️ [#115]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/115 ), Delete a measure, re-add it from library: no prompt and duplicated folders\\r\\n- ➕ [#123]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/123 ), Organize HVAC library by category\\r\\n- ✔️ [#142]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/142 ), Double click to open does not work on Mac\\r\\n- ✔️ [#143]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/143 ), Start OpenStudio button does not work in sketchup if osm is on network drive\\r\\n- ➕ [#162]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/162 ), Allow visualization of Schedule:Compact and Schedule:Constant on Schedules tab in OS App\\r\\n- ➕ [#175]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/175 ), Add ability for OS app to look for updated BCL components and measures.\\r\\n- ✔️ [#179]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/179 ), CMakeLists.txt incorrectly assumes that any LSB release ID that\'s not 18.04 must be 16.04\\r\\n- ✔️ [#512]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/512 ), Fix TGZ installer on Mac\\r\\n- ➕ [#557]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/557 ), Upgrade Ruby to 3.1\\r\\n- ✔️ [#561]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/561 ), Subsurfaces across thermal zones do not have outside boundary condition object assigned\\r\\n- ➕ [#612]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/612 ), Show displayname in grid view\\r\\n- ✔️ [#620]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/620 ), `sync project measures with library` does not work as before\\r\\n- ✔️ [#656]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/656 ), Application crash when using Python measures without Python Bindings component installed\\r\\n- ➕ [#669]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/669 ), v1.7.0-rc2 Testing: Call for help from the community\\r\\n- ➕ [#670]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/670 ), Show Python/Ruby measure badge on measures in the workflow\\r\\n- ➕ [#671]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/671 ), Mark Python measures as in error if using classic CLI\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ➕ [#706]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/706 ), v1.7.1-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n- ➕ [#708]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/708 ), Support more SetpointManager types on HVACSystemViews\\r\\n- ✔️ [#716]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/716 ), Disable classic CLI option if not working\\r\\n- ✔️ [#717]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/717 ), \\"Do you want to reset Measure Manager settings?\\" does not work\\r\\n- ✔️ [#719]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/719 ), Windows build no longer works on Windows2022 github runner\\r\\n- ➕ [#721]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/721 ), Add space infiltration design flow rate schedule selection at space level\\r\\n- ✔️ [#722]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/722 ), OpenStudio Results Measure is broken\\r\\n- ✔️ [#726]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/726 ), OS X 14.5 1.71 Crash on attempt to open gbXML\\r\\n- ✔️ [#728]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/728 ), Adding ERV Crashes OpenStudioApplication\\r\\n\\r\\n**Accepted Pull Requests: 29**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#698]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/698 ), #672 - More BCLSearchResults info (pending a PR)\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n- ✔️ [#712]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/712 ), Conan v2 + OS SDK 3.8.0-rc2\\r\\n- ✔️ [#713]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/713 ), Implement support for further grouping by category in Library (HVAC, Schedules, etc)\\r\\n- ✔️ [#714]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/714 ), Updates for SketchUp 2024\\r\\n- ✔️ [#715]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/715 ), #612 - Display Name\\r\\n- ✔️ [#718]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/718 ), Update floorspace\\r\\n- ✔️ [#720]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/720 ), Fix issues with MeasureManager\\r\\n- ✔️ [#723]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/723 ), v1.7.2 patch to not automatically download results measure\\r\\n- ✔️ [#724]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/724 ), Update scripts to Ruby 3.2\\r\\n- ✔️ [#725]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/725 ), Configure compressed ext for different builds\\r\\n- ➕ [#727]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/727 ), Codesign on macOS\\r\\n- ➕ [#729]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/729 ), Fix #721 - Allow space infiltration at space level, and fix #728 - Crash when adding ERV to ThermalZone\\r\\n- ➕ [#730]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/730 ), Fix #708 - Improve SetpointManager views: support more types, add plots where applicable, and support PlantLoop\\r\\n- ➕ [#731]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/731 ), Fix #162 - Display ScheduleConstant, ScheduleCompact and ScheduleFile\\r\\n- ✔️ [#732]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/732 ), Fix a race condition during CPack packaging when creating symlink on Apple\\r\\n- ✔️ [#733]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/733 ), Fix #671 - Mark Python Measures as in Error if use classic CLI to run the simulation\\r\\n- ✔️ [#734]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/734 ), Hotfix #730 - QtCharts not needed by modeleditor\\r\\n\\r\\n**Total Open Issues: 123** (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #520, #529, #542, #555, #571, #615, #633, #649, #658, #659, #668, #679, #680, #687, #704, #709, #711)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190109070","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190109179","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190108221","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190108636","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190107770","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190107796","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190106380","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190106419","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190111923","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/190111944","name":"OpenStudioApplication-1.8.0-rc2+cd925a1005-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc2/OpenStudioApplication-1.8.0-rc2%2Bcd925a1005-Windows.zip"}]},{"name":"v1.8.0-rc1","tag_name":"v1.8.0-rc1","published_at":"2024-08-02T17:17:53Z","prerelease":true,"body":"Pre-release RC1 for 1.8.0 release\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-08-06:**\\r\\n\\r\\n**New Issues: 26**\\r\\n\\r\\n**Closed Issues: 29**\\r\\n\\r\\n**Accepted Pull Requests: 20**\\r\\n\\r\\n**Total Open Issues: 132**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 29**\\r\\n- ✔️ [#115]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/115 ), Delete a measure, re-add it from library: no prompt and duplicated folders\\r\\n- ➕ [#123]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/123 ), Organize HVAC library by category\\r\\n- ➕ [#175]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/175 ), Add ability for OS app to look for updated BCL components and measures.\\r\\n- ✔️ [#179]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/179 ), CMakeLists.txt incorrectly assumes that any LSB release ID that\'s not 18.04 must be 16.04\\r\\n- ➕ [#557]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/557 ), Upgrade Ruby to 3.1\\r\\n- ✔️ [#620]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/620 ), `sync project measures with library` does not work as before\\r\\n- ✔️ [#656]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/656 ), Application crash when using Python measures without Python Bindings component installed\\r\\n- ➕ [#669]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/669 ), v1.7.0-rc2 Testing: Call for help from the community\\r\\n- ➕ [#670]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/670 ), Show Python/Ruby measure badge on measures in the workflow\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ➕ [#706]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/706 ), v1.7.1-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n- ✔️ [#716]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/716 ), Disable classic CLI option if not working\\r\\n- ✔️ [#717]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/717 ), \\"Do you want to reset Measure Manager settings?\\" does not work\\r\\n- ✔️ [#719]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/719 ), Windows build no longer works on Windows2022 github runner\\r\\n- ➕ [#721]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/721 ), Add space infiltration design flow rate schedule selection at space level\\r\\n- ✔️ [#722]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/722 ), OpenStudio Results Measure is broken\\r\\n\\r\\n**Accepted Pull Requests: 20**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#698]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/698 ), #672 - More BCLSearchResults info (pending a PR)\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n- ✔️ [#712]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/712 ), Conan v2 + OS SDK 3.8.0-rc2\\r\\n- ✔️ [#713]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/713 ), Implement support for further grouping by category in Library (HVAC, Schedules, etc)\\r\\n- ✔️ [#714]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/714 ), Updates for SketchUp 2024\\r\\n- ✔️ [#715]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/715 ), #612 - Display Name\\r\\n- ✔️ [#718]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/718 ), Update floorspace\\r\\n- ✔️ [#720]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/720 ), Fix issues with MeasureManager\\r\\n- ✔️ [#723]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/723 ), v1.7.2 patch to not automatically download results measure\\r\\n\\r\\n**Total Open Issues: 132** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #561, #571, #612, #615, #633, #649, #658, #659, #668, #671, #679, #680, #687, #704, #708, #709, #711)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184358059","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184358198","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184352572","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184352987","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184355974","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184355990","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184355516","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184355539","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/184361890","name":"OpenStudioApplication-1.8.0-rc1+a3314ec8cc-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.8.0-rc1/OpenStudioApplication-1.8.0-rc1%2Ba3314ec8cc-Windows.exe"}]},{"name":"v1.7.2","tag_name":"v1.7.2","published_at":"2024-07-18T03:17:59Z","prerelease":false,"body":"## What\'s Changed\\r\\n\\r\\n* v1.7.2 patch to not automatically download results measure by [@macumber](https://github.com/macumber) in [#723](https://github.com/openstudiocoalition/OpenStudioApplication/pull/723)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.7.1...v1.7.2](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.1...v1.7.2)","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180284871","name":"OpenStudioApplication-1.7.2+10eb8f76d6-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180284908","name":"OpenStudioApplication-1.7.2+10eb8f76d6-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180279434","name":"OpenStudioApplication-1.7.2+10eb8f76d6-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180279756","name":"OpenStudioApplication-1.7.2+10eb8f76d6-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180281835","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180281848","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180281265","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180281272","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180286838","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/180286844","name":"OpenStudioApplication-1.7.2+10eb8f76d6-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.2/OpenStudioApplication-1.7.2%2B10eb8f76d6-Windows.zip"}]},{"name":"v1.7.1","tag_name":"v1.7.1","published_at":"2024-04-14T23:09:01Z","prerelease":false,"body":"## OpenStudio Application Version 1.7.1\\r\\n\\r\\nThe [OpenStudio Coalition](https://openstudiocoalition.org/) is proud to announce the releases of [OpenStudio Application v1.7.1](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.7.1). This is a patch release based on [OpenStudio SDK v3.7.0](https://github.com/NREL/OpenStudio/releases/tag/v3.7.0) which uses [EnergyPlus v23.2.0](https://github.com/NREL/EnergyPlus/releases/tag/v23.2.0).\\r\\n\\r\\n### Overview\\r\\nThe OpenStudio Application 1.7.1 release fixes several important bugs that were present in the 1.7.0 release.\\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n### Bug Fixes:\\r\\n\\r\\n- BCL Viewer Human Readable Descriptions by [@jmarrec](https://github.com/jmarrec) in [#672](https://github.com/openstudiocoalition/OpenStudioApplication/pull/697)\\r\\n- Dragging construction set from library is very slow by [@macumber](https://github.com/macumber) in https://github.com/openstudiocoalition/OpenStudioApplication/issues/687\\r\\n- Unable to edit Water Use Equipment Definition by [@macumber](https://github.com/macumber) in [#685](https://github.com/openstudiocoalition/OpenStudioApplication/pull/685)\\r\\n- OpenStudio Application unusable on MacOS14 with M2 by https://github.com/openstudiocoalition/OpenStudioApplication/pull/692\\r\\n- Error when running Create Typical Building from Model Measures by [@jmarrec](https://github.com/jmarrec) and @macumber in [#699](https://github.com/openstudiocoalition/OpenStudioApplication/pull/699)\\r\\n- Local copy of BCL folder gets wiped/overwritten by [@macumber](https://github.com/macumber) in [#700](https://github.com/openstudiocoalition/OpenStudioApplication/pull/700)\\r\\n\\r\\n### Internal/Developer changes:\\r\\n\\r\\n- Mac CI failing on GMP by [@macumber](https://github.com/macumber) in [#690](https://github.com/openstudiocoalition/OpenStudioApplication/pull/690)\\r\\n\\r\\n### Installation Instructions\\r\\n\\r\\nOpenStudio Application v1.7.1 is supported on 64-bit Windows 10 – 11, OS X 11.0 and higher for x86, OS X 12.1 and higher on M1, Ubuntu 20.04, and Ubuntu 22.04. The OpenStudio SketchUp Plug-in v1.7.0 requires SketchUp 2021 or higher. Refer to the [OpenStudio Application Compatibility Matrix](https://github.com/openstudiocoalition/OpenStudioApplication/wiki/OpenStudio-Application-Version-Compatibility-Matrix#openstudio-application-version-compatibility-matrix) and the [OpenStudio SketchUp Plug-in Compatibility Matrix](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/wiki/OpenStudio-SketchUp-Plug-in-Wiki#openstudio-sketchup-plug-in-version-compatibility-matrix) for more information.\\r\\n\\r\\n- Download and run the correct [OpenStudio Application v1.7.1](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.7.1) installer for your platform. Select components for installation. Note that OpenStudio Application is a standalone app and does not require you to install OpenStudio SDK.\\r\\n- (Optional) Download the [OpenStudio SketchUp Plug-in v1.7.0](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/releases/tag/v1.7.0) RBZ package. Launch SketchUp 2021 or higher and install the RBZ package.\\r\\n- New - The new GitHub based Building Component Library (BCL) no longer requires an account to access online building components and measures! \\r\\n- Note that the Mac installers are currently not signed by the OpenStudio Coalition. To run these installers, the user must [ctrl-click the file and select open](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac). Additionally, Mac OS may add a quarantine attribute to the dmg file that prevents it from opening. This attribute can be removed using the command [`xattr -dr com.apple.quarantine`](https://hiringengineersbook.com/post/disable-quarantine/) at the command line.\\r\\n- Note that the current version of SketchUp 2023 (Version 23.1.341) on Mac is currently affected by [OpenStudio SketchUp Plug-in crashes on launch on Mac (x86_64 and ARM) with SketchUp 2023 #133](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/issues/133). For Mac users, it is advised to use SketchUp 2022 with the OpenStudio SketchUp Plug-in until this issue is resolved.\\r\\n- Note that [PAT](https://github.com/NREL/OpenStudio-PAT) and [DView](https://beopt.nrel.gov/downloadDView.) are not included in either the SDK or Application installers. You will need to install PAT separately which is distributed on the [OpenStudio-PAT](https://github.com/NREL/OpenStudio-PAT) GitHub page and DView at the [Dview home page](https://beopt.nrel.gov/downloadDView).\\r\\nInstallation Notes\\r\\n\\r\\nFor help with common installation problems and more detailed instructions please visit, https://openstudiocoalition.org/getting_started/getting_started/.\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-04-14:**\\r\\n\\r\\n**New Issues: 20**\\r\\n\\r\\n**Closed Issues: 14**\\r\\n\\r\\n**Accepted Pull Requests: 12**\\r\\n\\r\\n**Total Open Issues: 141**\\r\\n\\r\\n**Total Open Pull Requests: 3**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 14**\\r\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\r\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\r\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\r\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\r\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\r\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\r\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\r\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\r\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\r\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\r\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\r\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\r\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\r\\n- ✔️ [#707]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/707 ), No response after online bcl selects categories\\r\\n\\r\\n**Accepted Pull Requests: 12**\\r\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\r\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\r\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\r\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\r\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\r\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\r\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\r\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\r\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\r\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\r\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\r\\n- ✔️ [#710]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/710 ), Remove pre-release tag for 1.7.1\\r\\n\\r\\n**Total Open Issues: 141** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #612, #615, #620, #633, #649, #656, #658, #659, #668, #669, #670, #671, #679, #680, #687, #704, #706, #708, #709)\\r\\n\\r\\n**Total Open Pull Requests: 3** (#236, #470, #698)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162081470","name":"OpenStudioApplication-1.7.1+fd8611de00-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162081528","name":"OpenStudioApplication-1.7.1+fd8611de00-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162084545","name":"OpenStudioApplication-1.7.1+fd8611de00-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162084889","name":"OpenStudioApplication-1.7.1+fd8611de00-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162079978","name":"OpenStudioApplication-1.7.1+fd8611de00-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162079992","name":"OpenStudioApplication-1.7.1+fd8611de00-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162079991","name":"OpenStudioApplication-1.7.1+fd8611de00-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162080019","name":"OpenStudioApplication-1.7.1+fd8611de00-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162083747","name":"OpenStudioApplication-1.7.1+fd8611de00-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/162083786","name":"OpenStudioApplication-1.7.1+fd8611de00-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1/OpenStudioApplication-1.7.1%2Bfd8611de00-Windows.zip"}]},{"name":"v1.7.1-rc1","tag_name":"v1.7.1-rc1","published_at":"2024-03-30T20:24:03Z","prerelease":true,"body":"## What\'s Changed\\r\\n* Add early failure for too old macOS, XCode or target macOS version by [@mduvanel](https://github.com/mduvanel) in [#678](https://github.com/openstudiocoalition/OpenStudioApplication/pull/678)\\r\\n* Fix Mac CI by [@macumber](https://github.com/macumber) in [#690](https://github.com/openstudiocoalition/OpenStudioApplication/pull/690)\\r\\n* Upgrade to Qt 6.6.2 to fix #688 by [@macumber](https://github.com/macumber) in [#692](https://github.com/openstudiocoalition/OpenStudioApplication/pull/692)\\r\\n* Fix inspector in loads tab by [@macumber](https://github.com/macumber) in [#685](https://github.com/openstudiocoalition/OpenStudioApplication/pull/685)\\r\\n* Speed up controllers by [@macumber](https://github.com/macumber) in [#682](https://github.com/openstudiocoalition/OpenStudioApplication/pull/682)\\r\\n* Fix 696 2 by [@jmarrec](https://github.com/jmarrec) in [#702](https://github.com/openstudiocoalition/OpenStudioApplication/pull/702)\\r\\n* Install openstudio to bin directory so it can be found relative to lib by [@macumber](https://github.com/macumber) in [#699](https://github.com/openstudiocoalition/OpenStudioApplication/pull/699)\\r\\n* Update to Qt 6.6.3 by [@macumber](https://github.com/macumber) in [#703](https://github.com/openstudiocoalition/OpenStudioApplication/pull/703)\\r\\n* Correctly remove old measures when downloading new ones by [@macumber](https://github.com/macumber) in [#700](https://github.com/openstudiocoalition/OpenStudioApplication/pull/700)\\r\\n* Fix #672 - Add description, modelerDescription, UID and version UID to bcl results by [@jmarrec](https://github.com/jmarrec) in [#697](https://github.com/openstudiocoalition/OpenStudioApplication/pull/697)\\r\\n* PR to master for 1.7.1-rc1 by [@macumber](https://github.com/macumber) in [#705](https://github.com/openstudiocoalition/OpenStudioApplication/pull/705)\\r\\n\\r\\n## New Contributors\\r\\n* [@mduvanel](https://github.com/mduvanel) made their first contribution in [#678](https://github.com/openstudiocoalition/OpenStudioApplication/pull/678)\\r\\n\\r\\n**Full Changelog**: [v1.7.0...v1.7.1](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.7.0...v1.7.1)-rc1\\n\\n## Changelog\\n\\n\\n**Date Range: 2024-02-01** (v1.7.0) - **2024-03-30:**\\n\\n**New Issues: 16**\\n\\n**Closed Issues: 13**\\n\\n**Accepted Pull Requests: 11**\\n\\n**Total Open Issues: 138**\\n\\n**Total Open Pull Requests: 3**\\n\\n\\n
\\n\\n Click to see details\\n\\n**Closed Issues: 13**\\n- ➕ [#672]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/672 ), BCL Viewer Human Readable Descriptions\\n- ✔️ [#681]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/681 ), Dragging construction set from library is very slow\\n- ✔️ [#683]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/683 ), Unable to edit Water Use Equipment Definition\\n- ✔️ [#684]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/684 ), District Heating meter name\\n- ✔️ [#686]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/686 ), Crashing Issue in OpenStudio When Accessing Thermal Zone Tab\\n- ✔️ [#688]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/688 ), OpenStudio Application unusable on MacOS14 with M2\\n- ✔️ [#689]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/689 ), Mac CI failing on GMP\\n- ✔️ [#691]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/691 ), EnergyPlus does not recognize Zone Sizing is Initialized\\n- ✔️ [#693]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/693 ), Defaults for Zone and System Sizing\\n- ✔️ [#694]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/694 ), Default is missing ZoneAirDistribution object\\n- ✔️ [#695]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/695 ), Error when running Create Typical Building from Model Measures\\n- ✔️ [#696]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/696 ), Local copy of BCL folder gets wiped/overwritten\\n- ➕ [#701]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/701 ), Update to Qt 6.6.3\\n\\n**Accepted Pull Requests: 11**\\n- ✔️ [#678]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/678 ), Add early failure for too old macOS, XCode or target macOS version\\n- ➕ [#682]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/682 ), Speed up controllers\\n- ✔️ [#685]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/685 ), Fix inspector in loads tab\\n- ✔️ [#690]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/690 ), Fix Mac CI\\n- ✔️ [#692]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/692 ), Upgrade to Qt 6.6.2 to fix #688\\n- ✔️ [#697]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/697 ), Fix #672 - Add description, modelerDescription, UID and version UID to bcl results\\n- ✔️ [#699]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/699 ), Install openstudio to bin directory so it can be found relative to lib\\n- ✔️ [#700]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/700 ), Correctly remove old measures when downloading new ones\\n- ✔️ [#702]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/702 ), Fix 696 2\\n- ✔️ [#703]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/703 ), Update to Qt 6.6.3\\n- ✔️ [#705]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/705 ), PR to master for 1.7.1-rc1\\n\\n**Total Open Issues: 138** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #612, #615, #620, #633, #649, #656, #658, #659, #668, #669, #670, #671, #679, #680, #687, #704)\\n\\n**Total Open Pull Requests: 3** (#236, #470, #698)\\n\\n
\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159459296","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-macOS11-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-macOS11-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159459308","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-macOS11-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-macOS11-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159459190","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159459394","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159457229","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159457246","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159457244","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159457251","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159458661","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/159458724","name":"OpenStudioApplication-1.7.1-rc1+5f63e31f2c-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.1-rc1/OpenStudioApplication-1.7.1-rc1%2B5f63e31f2c-Windows.zip"}]},{"name":"v1.7.0","tag_name":"v1.7.0","published_at":"2024-02-01T05:51:18Z","prerelease":false,"body":"## OpenStudio Application Version 1.7.0\\r\\n\\r\\nThe [OpenStudio Coalition](https://openstudiocoalition.org/) is proud to announce the releases of [OpenStudio Application v1.7.0](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.7.0) and [OpenStudio SketchUp Plug-in v1.7.0](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/releases/tag/v1.7.0). These releases are based on [OpenStudio SDK v3.7.0](https://github.com/NREL/OpenStudio/releases/tag/v3.7.0) which uses [EnergyPlus v23.2.0](https://github.com/NREL/EnergyPlus/releases/tag/v23.2.0).\\r\\n\\r\\n### Overview\\r\\nThe OpenStudio Application 1.7.0 release updates the application to OpenStudio 3.7.0, EnergyPlus 23.2.0. This version of the OpenStudio Application is the first version to allow access to Python Measures now supported by the OpenStudio SDK. This functionality allows users to create and use Python Measures in OpenStudio Workflows. Opening the door to the measure writing world for Python expands the potential for users to automate and augment their workflows. If you make something amazing, please share it at https://bcl.nrel.gov/! \\r\\n\\r\\nThe OpenStudio Application and OpenStudio SketchUp Plug-in are funded by the OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). The OpenStudio Coalition has a strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education while ensuring the OpenStudio Application and OpenStudio SketchUp Plug-in user interfaces continue to be free and open source. To continue our efforts and provide additional support or training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n### New Features:\\r\\n\\r\\n- Update to OpenStudio SDK v3.7.0 and EnergyPlus v23.2.0 by [@jmarrec](https://github.com/jmarrec) in [#627](https://github.com/openstudiocoalition/OpenStudioApplication/pull/627)\\r\\n- Updated the Qt dependency from 6.3.0 to 6.6.1 by [@macumber](https://github.com/macumber) in [#650](https://github.com/openstudiocoalition/OpenStudioApplication/pull/650).\\r\\n- A new option to create and run Python measures has been added to the OpenStudio Application by [@jmarrec](https://github.com/jmarrec) in [#651](https://github.com/openstudiocoalition/OpenStudioApplication/pull/651). \\r\\n - An option to re-enable the Classic CLI (which does not support Python Measures) has been added as well.\\r\\n- A search bar has been added to the library tab by [@macumber](https://github.com/macumber) in [#618](https://github.com/openstudiocoalition/OpenStudioApplication/pull/618)\\r\\n- Added geometry diagnostics in the geometry preview: incorrectly oriented surfaces, non convex spaces by [@jmarrec](https://github.com/jmarrec) in [#630](https://github.com/openstudiocoalition/OpenStudioApplication/pull/630)\\r\\n- Allow searching and bulk updating output variables by [@jmarrec](https://github.com/jmarrec) in [#623](https://github.com/openstudiocoalition/OpenStudioApplication/pull/623) and [@macumber](https://github.com/macumber) in [#631](https://github.com/openstudiocoalition/OpenStudioApplication/pull/631)\\r\\n\\r\\n### Bug Fixes:\\r\\n\\r\\n- Fix the crash in schedules view by [@macumber](https://github.com/macumber) in [#614](https://github.com/openstudiocoalition/OpenStudioApplication/pull/614)\\r\\n- Fix [#482](https://github.com/openstudiocoalition/OpenStudioApplication/issues/482) - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter by [@jmarrec](https://github.com/jmarrec) in [#621](https://github.com/openstudiocoalition/OpenStudioApplication/pull/621)\\r\\n- Fix [#560](https://github.com/openstudiocoalition/OpenStudioApplication/issues/560) - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab by [@jmarrec](https://github.com/jmarrec) in [#622](https://github.com/openstudiocoalition/OpenStudioApplication/pull/622)\\r\\n- Fix [#238](https://github.com/openstudiocoalition/OpenStudioApplication/issues/238) - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency by [@jmarrec](https://github.com/jmarrec) in [#623](https://github.com/openstudiocoalition/OpenStudioApplication/pull/623)\\r\\n- Fix [#638](https://github.com/openstudiocoalition/OpenStudioApplication/issues/638) - Make links clickable for measure descriptions by [@jmarrec](https://github.com/jmarrec) in [#639](https://github.com/openstudiocoalition/OpenStudioApplication/pull/639)\\r\\n- Install the OpenStudio Results measure as a backup to the BCL by [@macumber](https://github.com/macumber) in [#642](https://github.com/openstudiocoalition/OpenStudioApplication/pull/642)\\r\\n- Fix bug when cloning a story with windows by [@macumber](https://github.com/macumber) in [#643](https://github.com/openstudiocoalition/OpenStudioApplication/pull/643)\\r\\n- Update mechanical ventilation outdoor air method combo box by [@eringold](https://github.com/eringold) in [#646](https://github.com/openstudiocoalition/OpenStudioApplication/pull/646)\\r\\n- Partially address Mac hang issue [#659](https://github.com/openstudiocoalition/OpenStudioApplication/issues/659) by [@jmarrec](https://github.com/jmarrec) in [#663](https://github.com/openstudiocoalition/OpenStudioApplication/pull/663)\\r\\n\\r\\n### Internal/Developer changes:\\r\\n\\r\\n- Fix MacOS CI by [@macumber](https://github.com/macumber) in [#624](https://github.com/openstudiocoalition/OpenStudioApplication/pull/624)\\r\\n- Geometry Preview refactor - separate into several files, allow running in browser directly by [@jmarrec](https://github.com/jmarrec) in [#628](https://github.com/openstudiocoalition/OpenStudioApplication/pull/628)\\r\\n- Update to OpenStudio SDK 3.7.0-alpha (latest nightly build) by [@jmarrec](https://github.com/jmarrec) in [#627](https://github.com/openstudiocoalition/OpenStudioApplication/pull/627)\\r\\n- Use the GitHub hosted macos-13 runners by [@macumber](https://github.com/macumber) in [#647](https://github.com/openstudiocoalition/OpenStudioApplication/pull/647)\\r\\n- Re-enable tar.gz for MacOS by [@macumber](https://github.com/macumber) in [#654](https://github.com/openstudiocoalition/OpenStudioApplication/pull/654)\\r\\n- Properly find libruby/libpythonengine on macOS by [@jmarrec](https://github.com/jmarrec) in [#664](https://github.com/openstudiocoalition/OpenStudioApplication/pull/664)\\r\\n- Test SDK CLI from installers from another C++ CI run by [@jmarrec](https://github.com/jmarrec) in [#666](https://github.com/openstudiocoalition/OpenStudioApplication/pull/666)\\r\\n- Redo app build caching by [@jmarrec](https://github.com/jmarrec) in [#667](https://github.com/openstudiocoalition/OpenStudioApplication/pull/667)\\r\\n- 1.7.0 rc2 fixes by [@jmarrec](https://github.com/jmarrec) in [#676](https://github.com/openstudiocoalition/OpenStudioApplication/pull/676)\\r\\n\\r\\n### Installation Instructions\\r\\n\\r\\nOpenStudio Application v1.7.0 is supported on 64-bit Windows 10 – 11, OS X 11.0 and higher for x86, OS X 12.1 and higher on M1, Ubuntu 20.04, and Ubuntu 22.04. The OpenStudio SketchUp Plug-in v1.7.0 requires SketchUp 2021 or higher. Refer to the [OpenStudio Application Compatibility Matrix](https://github.com/openstudiocoalition/OpenStudioApplication/wiki/OpenStudio-Application-Version-Compatibility-Matrix#openstudio-application-version-compatibility-matrix) and the [OpenStudio SketchUp Plug-in Compatibility Matrix](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/wiki/OpenStudio-SketchUp-Plug-in-Wiki#openstudio-sketchup-plug-in-version-compatibility-matrix) for more information.\\r\\n\\r\\n- Download and run the correct [OpenStudio Application v1.7.0](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.7.0) installer for your platform. Select components for installation. Note that OpenStudio Application is a standalone app and does not require you to install OpenStudio SDK.\\r\\n- (Optional) Download the [OpenStudio SketchUp Plug-in v1.7.0](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/releases/tag/v1.7.0) RBZ package. Launch SketchUp 2021 or higher and install the RBZ package.\\r\\n- New - The new GitHub based Building Component Library (BCL) no longer requires an account to access online building components and measures! \\r\\n- Note that the Mac installers are currently not signed by the OpenStudio Coalition. To run these installers, the user must [ctrl-click the file and select open](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac). Additionally, Mac OS may add a quarantine attribute to the dmg file that prevents it from opening. This attribute can be removed using the command [`xattr -dr com.apple.quarantine`](https://hiringengineersbook.com/post/disable-quarantine/) at the command line.\\r\\n- Note that the current version of SketchUp 2023 (Version 23.1.341) on Mac is currently affected by [OpenStudio SketchUp Plug-in crashes on launch on Mac (x86_64 and ARM) with SketchUp 2023 #133](https://github.com/openstudiocoalition/openstudio-sketchup-plugin/issues/133). For Mac users, it is advised to use SketchUp 2022 with the OpenStudio SketchUp Plug-in until this issue is resolved.\\r\\n- Note that [PAT](https://github.com/NREL/OpenStudio-PAT) and [DView](https://beopt.nrel.gov/downloadDView.) are not included in either the SDK or Application installers. You will need to install PAT separately which is distributed on the [OpenStudio-PAT](https://github.com/NREL/OpenStudio-PAT) GitHub page and DView at the [Dview home page](https://beopt.nrel.gov/downloadDView).\\r\\nInstallation Notes\\r\\n\\r\\nFor help with common installation problems and more detailed instructions please visit, https://openstudiocoalition.org/getting_started/getting_started/.\\r\\n\\r\\n## Changelog\\r\\n\\r\\nFull Changelog: [v1.6.0...v1.7.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.6.0...v1.7.0)\\r\\n\\r\\n**Date Range: 2023-06-06** (v1.6.0) - **2024-02-01:**\\r\\n\\r\\n**New Issues: 33**\\r\\n\\r\\n**Closed Issues: 31**\\r\\n\\r\\n**Accepted Pull Requests: 34**\\r\\n\\r\\n**Total Open Issues: 135**\\r\\n\\r\\n**Total Open Pull Requests: 2**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 31**\\r\\n- ➕ [#238]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/238 ), Possible option of a search icon in the output variable tab\\r\\n- ➕ [#284]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/284 ), Have a search icon in the right-hand pane.\\r\\n- ✔️ [#314]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/314 ), Inspector dialog allows setting invalid object names\\r\\n- ✔️ [#332]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/332 ), Making a copy of some measures crushes the app\\r\\n- ➕ [#482]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/482 ), Adjust Policy for Swimming Pool to hide Pool Water In/Outlet Nodes (+ icon)\\r\\n- ✔️ [#554]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/554 ), Openstudio application crashes after clicking on thermal zone tab\\r\\n- ✔️ [#560]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/560 ), HVAC tab for VRF does not zoom\\r\\n- ➕ [#562]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/562 ), Search Function Request for User Interface in \\"My Model\\" tab and \\"Library\\" tab especially for HVAC tab\\r\\n- ✔️ [#590]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/590 ), Remove caching of the build dir on GHA\\r\\n- ✔️ [#602]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/602 ), OpenStudioApplication 1.6.0 - Release Checklist #507 \\r\\n- ✔️ [#605]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/605 ), v1.6.0-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#613]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/613 ), Crashes with assigning Summer/Winter Schedule\\r\\n- ✔️ [#616]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/616 ), OSM geometry rendering doesn\'t reflect space origins (but IDF does)\\r\\n- ✔️ [#617]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/617 ), Can\'t find any file in the online BCL \\r\\n- ✔️ [#619]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/619 ), Cannot find open studio results measure (msg when app launches & issue when running a simulation) \\r\\n- ➕ [#625]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/625 ), Refactor HVACSystemsController to hide controls by default and enable them only when needed\\r\\n- ➕ [#626]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/626 ), Redo the layout of the new Output:Variable filter capability\\r\\n- ✔️ [#632]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/632 ), Window and door components are not placing on geometry in floorspace.js\\r\\n- ✔️ [#634]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/634 ), Viewing HVAC Systems Control view resets Controller:MechanicalVentilation System Outdoor Air Method\\r\\n- ➕ [#638]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/638 ), Make links clickable in measure descriptions\\r\\n- ✔️ [#640]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/640 ), Unable to find openstudio measures.\\r\\n- ➕ [#641]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/641 ), Bundle OpenStudio Results Measure with installer\\r\\n- ➕ [#653]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/653 ), v1.7.0-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#655]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/655 ), Unknown CMake command \\"conan_check\\" ?\\r\\n- ✔️ [#657]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/657 ), Can\'t run Python measure on Mac M1\\r\\n- ➕ [#660]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/660 ), Better feedback from measures using new CLI\\r\\n- ✔️ [#661]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/661 ), Crash when using OS:GroundHeatExchanger:HorizontalTrench\\r\\n- ➕ [#665]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/665 ), Add CI test to automatically install OSApp and run example workflow\\r\\n- ✔️ [#673]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/673 ), RPATH broken for OpenStudioApplication 1.7.0-rc2 on Ubuntu\\r\\n- ✔️ [#674]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/674 ), OpenStudioApplication 1.7.0-rc2: cannot load qtwebengine (geometry preview / results tabs)\\r\\n- ✔️ [#675]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/675 ), Chromium debug fails\\r\\n\\r\\n**Accepted Pull Requests: 34**\\r\\n- ✔️ [#611]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/611 ), Merge for 1.6.0 release\\r\\n- ✔️ [#614]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/614 ), Fix the crash in schedules view\\r\\n- ➕ [#618]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/618 ), Add search bar to OSCollapsibleItemList\\r\\n- ➕ [#621]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/621 ), Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter\\r\\n- ➕ [#622]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/622 ), Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab\\r\\n- ➕ [#623]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/623 ), Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency\\r\\n- ✔️ [#624]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/624 ), Fix MacOS CI\\r\\n- ✔️ [#627]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/627 ), Update to OpenStudio SDK 3.7.0-alpha (latest nightly build)\\r\\n- ➕ [#628]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/628 ), Geometry Preview refactor - separate into several files, allow running in browser directly\\r\\n- ➕ [#629]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/629 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\r\\n- ✔️ [#630]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/630 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\r\\n- ✔️ [#631]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/631 ), Update variables layout\\r\\n- ✔️ [#635]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/635 ), Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official\\r\\n- ✔️ [#636]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/636 ), Update to OpenStudio 3.7.0-rc1\\r\\n- ✔️ [#637]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/637 ), Disable TLS_VERIFY for conan cmake for windows CI runner\\r\\n- ➕ [#639]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/639 ), Fix #638 - Make links clickable for measure descriptions\\r\\n- ✔️ [#642]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/642 ), Install the OpenStudio Results measure as a backup to the BCL\\r\\n- ✔️ [#643]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/643 ), Fix bug when cloning a story with windows\\r\\n- ✔️ [#644]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/644 ), Update to OpenStudio v3.7.0\\r\\n- ✔️ [#645]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/645 ), Update the application version\\r\\n- ✔️ [#646]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/646 ), Update mechanical ventilation outdoor air method combo box\\r\\n- ✔️ [#647]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/647 ), Use the GitHub hosted macos-13 runners\\r\\n- ✔️ [#648]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/648 ), Update OSM versions to 3.7.0\\r\\n- ✔️ [#650]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/650 ), Update to Qt 6.6.1\\r\\n- ✔️ [#651]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/651 ), Add support for Python Measures\\r\\n- ✔️ [#652]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/652 ), Merge to master for 1.7.0\\r\\n- ✔️ [#654]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/654 ), Re-enable tar.gz for MacOS\\r\\n- ✔️ [#662]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/662 ), Support new CLI output\\r\\n- ✔️ [#663]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/663 ), Bad workaround for #659\\r\\n- ✔️ [#664]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/664 ), #657 - Properly find libruby/libpythonengine on macOS\\r\\n- ✔️ [#666]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/666 ), Test SDK CLI from installers from another C++ CI run\\r\\n- ✔️ [#667]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/667 ), Redo app build caching\\r\\n- ✔️ [#676]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/676 ), 1.7.0 rc2 fixes\\r\\n- ✔️ [#677]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/677 ), Add help menu item to debug webgl issues\\r\\n\\r\\n**Total Open Issues: 135** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #612, #615, #620, #633, #649, #656, #658, #659, #668, #669, #670, #671, #672)\\r\\n\\r\\n**Total Open Pull Requests: 2** (#236, #470)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149102712","name":"OpenStudioApplication-1.7.0+b070178884-macOS10.15-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-macOS10.15-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149102809","name":"OpenStudioApplication-1.7.0+b070178884-macOS10.15-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-macOS10.15-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149104959","name":"OpenStudioApplication-1.7.0+b070178884-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149105258","name":"OpenStudioApplication-1.7.0+b070178884-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149101768","name":"OpenStudioApplication-1.7.0+b070178884-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149101797","name":"OpenStudioApplication-1.7.0+b070178884-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149101896","name":"OpenStudioApplication-1.7.0+b070178884-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149101911","name":"OpenStudioApplication-1.7.0+b070178884-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149110226","name":"OpenStudioApplication-1.7.0+b070178884-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/149110247","name":"OpenStudioApplication-1.7.0+b070178884-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0/OpenStudioApplication-1.7.0%2Bb070178884-Windows.zip"}]},{"name":"v1.7.0-rc2","tag_name":"v1.7.0-rc2","published_at":"2024-01-22T14:13:22Z","prerelease":true,"body":"## What\'s Changed\\r\\n* Fix the crash in schedules view by [@macumber](https://github.com/macumber) in [#614](https://github.com/openstudiocoalition/OpenStudioApplication/pull/614)\\r\\n* Add search bar to OSCollapsibleItemList by [@macumber](https://github.com/macumber) in [#618](https://github.com/openstudiocoalition/OpenStudioApplication/pull/618)\\r\\n* Fix MacOS CI by [@macumber](https://github.com/macumber) in [#624](https://github.com/openstudiocoalition/OpenStudioApplication/pull/624)\\r\\n* Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter by [@jmarrec](https://github.com/jmarrec) in [#621](https://github.com/openstudiocoalition/OpenStudioApplication/pull/621)\\r\\n* Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab by [@jmarrec](https://github.com/jmarrec) in [#622](https://github.com/openstudiocoalition/OpenStudioApplication/pull/622)\\r\\n* Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency by [@jmarrec](https://github.com/jmarrec) in [#623](https://github.com/openstudiocoalition/OpenStudioApplication/pull/623)\\r\\n* Update to OpenStudio SDK 3.7.0-alpha (latest nightly build) by [@jmarrec](https://github.com/jmarrec) in [#627](https://github.com/openstudiocoalition/OpenStudioApplication/pull/627)\\r\\n* Geometry Preview refactor - separate into several files, allow running in browser directly by [@jmarrec](https://github.com/jmarrec) in [#628](https://github.com/openstudiocoalition/OpenStudioApplication/pull/628)\\r\\n* New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces by [@jmarrec](https://github.com/jmarrec) in [#630](https://github.com/openstudiocoalition/OpenStudioApplication/pull/630)\\r\\n* Update variables layout by [@macumber](https://github.com/macumber) in [#631](https://github.com/openstudiocoalition/OpenStudioApplication/pull/631)\\r\\n* Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official by [@jmarrec](https://github.com/jmarrec) in [#635](https://github.com/openstudiocoalition/OpenStudioApplication/pull/635)\\r\\n* Update to OpenStudio 3.7.0-rc1 by [@jmarrec](https://github.com/jmarrec) in [#636](https://github.com/openstudiocoalition/OpenStudioApplication/pull/636)\\r\\n* Disable TLS_VERIFY for conan cmake for windows CI runner by [@jmarrec](https://github.com/jmarrec) in [#637](https://github.com/openstudiocoalition/OpenStudioApplication/pull/637)\\r\\n* Fix #638 - Make links clickable for measure descriptions by [@jmarrec](https://github.com/jmarrec) in [#639](https://github.com/openstudiocoalition/OpenStudioApplication/pull/639)\\r\\n* Update to OpenStudio v3.7.0 by [@macumber](https://github.com/macumber) in [#644](https://github.com/openstudiocoalition/OpenStudioApplication/pull/644)\\r\\n* Install the OpenStudio Results measure as a backup to the BCL by [@macumber](https://github.com/macumber) in [#642](https://github.com/openstudiocoalition/OpenStudioApplication/pull/642)\\r\\n* Update the application version by [@macumber](https://github.com/macumber) in [#645](https://github.com/openstudiocoalition/OpenStudioApplication/pull/645)\\r\\n* Update OSM versions to 3.7.0 by [@macumber](https://github.com/macumber) in [#648](https://github.com/openstudiocoalition/OpenStudioApplication/pull/648)\\r\\n* Fix bug when cloning a story with windows by [@macumber](https://github.com/macumber) in [#643](https://github.com/openstudiocoalition/OpenStudioApplication/pull/643)\\r\\n* Use the GitHub hosted macos-13 runners by [@macumber](https://github.com/macumber) in [#647](https://github.com/openstudiocoalition/OpenStudioApplication/pull/647)\\r\\n* Update to Qt 6.6.1 by [@macumber](https://github.com/macumber) in [#650](https://github.com/openstudiocoalition/OpenStudioApplication/pull/650)\\r\\n* Add support for Python Measures by [@jmarrec](https://github.com/jmarrec) in [#651](https://github.com/openstudiocoalition/OpenStudioApplication/pull/651)\\r\\n* Re-enable tar.gz for MacOS by [@macumber](https://github.com/macumber) in [#654](https://github.com/openstudiocoalition/OpenStudioApplication/pull/654)\\r\\n* Update mechanical ventilation outdoor air method combo box by [@eringold](https://github.com/eringold) in [#646](https://github.com/openstudiocoalition/OpenStudioApplication/pull/646)\\r\\n* Support new CLI output by [@macumber](https://github.com/macumber) in [#662](https://github.com/openstudiocoalition/OpenStudioApplication/pull/662)\\r\\n* Test SDK CLI from installers from another C++ CI run by [@jmarrec](https://github.com/jmarrec) in [#666](https://github.com/openstudiocoalition/OpenStudioApplication/pull/666)\\r\\n* #657 - Properly find libruby/libpythonengine on macOS by [@jmarrec](https://github.com/jmarrec) in [#664](https://github.com/openstudiocoalition/OpenStudioApplication/pull/664)\\r\\n* Redo app build caching by [@jmarrec](https://github.com/jmarrec) in [#667](https://github.com/openstudiocoalition/OpenStudioApplication/pull/667)\\r\\n* Bad workaround for #659 by [@jmarrec](https://github.com/jmarrec) in [#663](https://github.com/openstudiocoalition/OpenStudioApplication/pull/663)\\r\\n* 1.7.0 rc2 fixes by [@jmarrec](https://github.com/jmarrec) in [#676](https://github.com/openstudiocoalition/OpenStudioApplication/pull/676)\\r\\n\\r\\n\\r\\n**Full Changelog**: [v1.6.0...v1.7.0](https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.6.0...v1.7.0)-rc2\\n\\n## Changelog\\n\\n\\n**Date Range: 2023-06-06** (v1.6.0) - **2024-01-22:**\\n\\n**New Issues: 33**\\n\\n**Closed Issues: 30**\\n\\n**Accepted Pull Requests: 32**\\n\\n**Total Open Issues: 136**\\n\\n**Total Open Pull Requests: 3**\\n\\n\\n
\\n\\n Click to see details\\n\\n**Closed Issues: 30**\\n- ➕ [#238]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/238 ), Possible option of a search icon in the output variable tab\\n- ➕ [#284]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/284 ), Have a search icon in the right-hand pane.\\n- ✔️ [#314]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/314 ), Inspector dialog allows setting invalid object names\\n- ✔️ [#332]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/332 ), Making a copy of some measures crushes the app\\n- ➕ [#482]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/482 ), Adjust Policy for Swimming Pool to hide Pool Water In/Outlet Nodes (+ icon)\\n- ✔️ [#554]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/554 ), Openstudio application crashes after clicking on thermal zone tab\\n- ✔️ [#560]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/560 ), HVAC tab for VRF does not zoom\\n- ➕ [#562]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/562 ), Search Function Request for User Interface in \\"My Model\\" tab and \\"Library\\" tab especially for HVAC tab\\n- ✔️ [#602]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/602 ), OpenStudioApplication 1.6.0 - Release Checklist #507 \\n- ✔️ [#605]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/605 ), v1.6.0-rc1 Testing: Call for help from the community\\n- ✔️ [#613]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/613 ), Crashes with assigning Summer/Winter Schedule\\n- ✔️ [#616]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/616 ), OSM geometry rendering doesn\'t reflect space origins (but IDF does)\\n- ✔️ [#617]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/617 ), Can\'t find any file in the online BCL \\n- ✔️ [#619]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/619 ), Cannot find open studio results measure (msg when app launches & issue when running a simulation) \\n- ➕ [#625]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/625 ), Refactor HVACSystemsController to hide controls by default and enable them only when needed\\n- ➕ [#626]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/626 ), Redo the layout of the new Output:Variable filter capability\\n- ✔️ [#632]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/632 ), Window and door components are not placing on geometry in floorspace.js\\n- ✔️ [#634]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/634 ), Viewing HVAC Systems Control view resets Controller:MechanicalVentilation System Outdoor Air Method\\n- ➕ [#638]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/638 ), Make links clickable in measure descriptions\\n- ✔️ [#640]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/640 ), Unable to find openstudio measures.\\n- ➕ [#641]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/641 ), Bundle OpenStudio Results Measure with installer\\n- ➕ [#653]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/653 ), v1.7.0-rc1 Testing: Call for help from the community\\n- ✔️ [#655]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/655 ), Unknown CMake command \\"conan_check\\" ?\\n- ✔️ [#657]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/657 ), Can\'t run Python measure on Mac M1\\n- ➕ [#660]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/660 ), Better feedback from measures using new CLI\\n- ✔️ [#661]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/661 ), Crash when using OS:GroundHeatExchanger:HorizontalTrench\\n- ➕ [#665]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/665 ), Add CI test to automatically install OSApp and run example workflow\\n- ✔️ [#673]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/673 ), RPATH broken for OpenStudioApplication 1.7.0-rc2 on Ubuntu\\n- ✔️ [#674]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/674 ), OpenStudioApplication 1.7.0-rc2: cannot load qtwebengine (geometry preview / results tabs)\\n- ✔️ [#675]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/675 ), Chromium debug fails\\n\\n**Accepted Pull Requests: 32**\\n- ✔️ [#611]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/611 ), Merge for 1.6.0 release\\n- ✔️ [#614]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/614 ), Fix the crash in schedules view\\n- ➕ [#618]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/618 ), Add search bar to OSCollapsibleItemList\\n- ➕ [#621]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/621 ), Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter\\n- ➕ [#622]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/622 ), Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab\\n- ➕ [#623]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/623 ), Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency\\n- ✔️ [#624]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/624 ), Fix MacOS CI\\n- ✔️ [#627]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/627 ), Update to OpenStudio SDK 3.7.0-alpha (latest nightly build)\\n- ➕ [#628]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/628 ), Geometry Preview refactor - separate into several files, allow running in browser directly\\n- ➕ [#629]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/629 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\n- ✔️ [#630]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/630 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\n- ✔️ [#631]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/631 ), Update variables layout\\n- ✔️ [#635]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/635 ), Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official\\n- ✔️ [#636]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/636 ), Update to OpenStudio 3.7.0-rc1\\n- ✔️ [#637]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/637 ), Disable TLS_VERIFY for conan cmake for windows CI runner\\n- ➕ [#639]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/639 ), Fix #638 - Make links clickable for measure descriptions\\n- ✔️ [#642]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/642 ), Install the OpenStudio Results measure as a backup to the BCL\\n- ✔️ [#643]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/643 ), Fix bug when cloning a story with windows\\n- ✔️ [#644]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/644 ), Update to OpenStudio v3.7.0\\n- ✔️ [#645]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/645 ), Update the application version\\n- ✔️ [#646]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/646 ), Update mechanical ventilation outdoor air method combo box\\n- ✔️ [#647]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/647 ), Use the GitHub hosted macos-13 runners\\n- ✔️ [#648]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/648 ), Update OSM versions to 3.7.0\\n- ✔️ [#650]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/650 ), Update to Qt 6.6.1\\n- ✔️ [#651]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/651 ), Add support for Python Measures\\n- ✔️ [#654]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/654 ), Re-enable tar.gz for MacOS\\n- ✔️ [#662]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/662 ), Support new CLI output\\n- ✔️ [#663]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/663 ), Bad workaround for #659\\n- ✔️ [#664]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/664 ), #657 - Properly find libruby/libpythonengine on macOS\\n- ✔️ [#666]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/666 ), Test SDK CLI from installers from another C++ CI run\\n- ✔️ [#667]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/667 ), Redo app build caching\\n- ✔️ [#676]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/676 ), 1.7.0 rc2 fixes\\n\\n**Total Open Issues: 136** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #590, #612, #615, #620, #633, #649, #656, #658, #659, #668, #669, #670, #671, #672)\\n\\n**Total Open Pull Requests: 3** (#236, #470, #652)\\n\\n
\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147091352","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-macOS10.15-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-macOS10.15-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147091385","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-macOS10.15-x86_64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-macOS10.15-x86_64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147093513","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147093811","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147086094","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147086131","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147086178","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147086214","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147090181","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/147090200","name":"OpenStudioApplication-1.7.0-rc2+20d8af9727-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc2/OpenStudioApplication-1.7.0-rc2%2B20d8af9727-Windows.zip"}]},{"name":"v1.7.0-rc1","tag_name":"v1.7.0-rc1","published_at":"2023-12-25T04:55:21Z","prerelease":true,"body":"The OpenStudio Coalition is proud to release the first release candidate for OpenStudio Application 1.7.0, which has updates to OpenStudio SDK 3.7.0, EnergyPlus 23.2.0.\\r\\n\\r\\nAs a reminder we have strategic roadmap (here are the [high level results](https://openstudiocoalition.org/about/roadmap/)) which prioritizes education and outreach to states, utilities, and higher education. All this has been funded by founding OpenStudio Coalition members [The Energy Coalition](https://energycoalition.org/), [PSD](https://psdconsulting.com/), [VEIC](https://www.veic.org/), and [EffiBEM](https://www.effibem.com/). To continue our efforts and provide additional support and training, [please join us](https://openstudiocoalition.org/about/openstudio_coalition/)!\\r\\n\\r\\n## Testing: Call for help from the community\\r\\n\\r\\n**Please take a few minutes of your time to help us test this Release candidate by going to [this issue](https://github.com/openstudiocoalition/OpenStudioApplication/issues/653)**\\r\\n\\r\\n## What\'s Changed\\r\\n\\r\\n* Merge develop to master for 1.5.0 release by [@macumber](https://github.com/macumber) in [#589](https://github.com/openstudiocoalition/OpenStudioApplication/pull/589)\\r\\n* Send tab name instead of tab index and fix CORS issue by [@macumber](https://github.com/macumber) in [#607](https://github.com/openstudiocoalition/OpenStudioApplication/pull/607)\\r\\n* Don\'t crash if LocalBCL is corrupt by [@macumber](https://github.com/macumber) in [#609](https://github.com/openstudiocoalition/OpenStudioApplication/pull/609)\\r\\n* Update to OS 3.6.1 by [@macumber](https://github.com/macumber) in [#610](https://github.com/openstudiocoalition/OpenStudioApplication/pull/610)\\r\\n* Merge for 1.6.0 release by [@macumber](https://github.com/macumber) in [#611](https://github.com/openstudiocoalition/OpenStudioApplication/pull/611)\\r\\n* Fix the crash in schedules view by [@macumber](https://github.com/macumber) in [#614](https://github.com/openstudiocoalition/OpenStudioApplication/pull/614)\\r\\n* Add search bar to OSCollapsibleItemList by [@macumber](https://github.com/macumber) in [#618](https://github.com/openstudiocoalition/OpenStudioApplication/pull/618)\\r\\n* Fix MacOS CI by [@macumber](https://github.com/macumber) in [#624](https://github.com/openstudiocoalition/OpenStudioApplication/pull/624)\\r\\n* Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter by [@jmarrec](https://github.com/jmarrec) in [#621](https://github.com/openstudiocoalition/OpenStudioApplication/pull/621)\\r\\n* Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab by [@jmarrec](https://github.com/jmarrec) in [#622](https://github.com/openstudiocoalition/OpenStudioApplication/pull/622)\\r\\n* Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency by [@jmarrec](https://github.com/jmarrec) in [#623](https://github.com/openstudiocoalition/OpenStudioApplication/pull/623)\\r\\n* Update to OpenStudio SDK 3.7.0-alpha (latest nightly build) by [@jmarrec](https://github.com/jmarrec) in [#627](https://github.com/openstudiocoalition/OpenStudioApplication/pull/627)\\r\\n* Geometry Preview refactor - separate into several files, allow running in browser directly by [@jmarrec](https://github.com/jmarrec) in [#628](https://github.com/openstudiocoalition/OpenStudioApplication/pull/628)\\r\\n* New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces by [@jmarrec](https://github.com/jmarrec) in [#630](https://github.com/openstudiocoalition/OpenStudioApplication/pull/630)\\r\\n* Update variables layout by [@macumber](https://github.com/macumber) in [#631](https://github.com/openstudiocoalition/OpenStudioApplication/pull/631)\\r\\n* Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official by [@jmarrec](https://github.com/jmarrec) in [#635](https://github.com/openstudiocoalition/OpenStudioApplication/pull/635)\\r\\n* Update to OpenStudio 3.7.0-rc1 by [@jmarrec](https://github.com/jmarrec) in [#636](https://github.com/openstudiocoalition/OpenStudioApplication/pull/636)\\r\\n* Disable TLS_VERIFY for conan cmake for windows CI runner by [@jmarrec](https://github.com/jmarrec) in [#637](https://github.com/openstudiocoalition/OpenStudioApplication/pull/637)\\r\\n* Fix #638 - Make links clickable for measure descriptions by [@jmarrec](https://github.com/jmarrec) in [#639](https://github.com/openstudiocoalition/OpenStudioApplication/pull/639)\\r\\n* Update to OpenStudio v3.7.0 by [@macumber](https://github.com/macumber) in [#644](https://github.com/openstudiocoalition/OpenStudioApplication/pull/644)\\r\\n* Install the OpenStudio Results measure as a backup to the BCL by [@macumber](https://github.com/macumber) in [#642](https://github.com/openstudiocoalition/OpenStudioApplication/pull/642)\\r\\n* Update the application version by [@macumber](https://github.com/macumber) in [#645](https://github.com/openstudiocoalition/OpenStudioApplication/pull/645)\\r\\n* Update OSM versions to 3.7.0 by [@macumber](https://github.com/macumber) in [#648](https://github.com/openstudiocoalition/OpenStudioApplication/pull/648)\\r\\n* Fix bug when cloning a story with windows by [@macumber](https://github.com/macumber) in [#643](https://github.com/openstudiocoalition/OpenStudioApplication/pull/643)\\r\\n* Use the GitHub hosted macos-13 runners by [@macumber](https://github.com/macumber) in [#647](https://github.com/openstudiocoalition/OpenStudioApplication/pull/647)\\r\\n* Update to Qt 6.6.1 by [@macumber](https://github.com/macumber) in [#650](https://github.com/openstudiocoalition/OpenStudioApplication/pull/650)\\r\\n* Add support for Python Measures by [@jmarrec](https://github.com/jmarrec) in [#651](https://github.com/openstudiocoalition/OpenStudioApplication/pull/651)\\r\\n\\r\\n**Full Changelog**: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.6.0-rc1...v1.7.0-rc1\\r\\n\\r\\n## Changelog\\r\\n\\r\\n\\r\\n**Date Range: 2023-06-06** (v1.6.0) - **2023-12-25:**\\r\\n\\r\\n**New Issues: 17**\\r\\n\\r\\n**Closed Issues: 20**\\r\\n\\r\\n**Accepted Pull Requests: 24**\\r\\n\\r\\n**Total Open Issues: 130**\\r\\n\\r\\n**Total Open Pull Requests: 4**\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n Click to see details\\r\\n\\r\\n**Closed Issues: 20**\\r\\n- ➕ [#238]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/238 ), Possible option of a search icon in the output variable tab\\r\\n- ➕ [#284]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/284 ), Have a search icon in the right-hand pane.\\r\\n- ✔️ [#314]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/314 ), Inspector dialog allows setting invalid object names\\r\\n- ✔️ [#332]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/332 ), Making a copy of some measures crushes the app\\r\\n- ➕ [#482]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/482 ), Adjust Policy for Swimming Pool to hide Pool Water In/Outlet Nodes (+ icon)\\r\\n- ✔️ [#554]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/554 ), Openstudio application crashes after clicking on thermal zone tab\\r\\n- ✔️ [#560]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/560 ), HVAC tab for VRF does not zoom\\r\\n- ➕ [#562]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/562 ), Search Function Request for User Interface in \\"My Model\\" tab and \\"Library\\" tab especially for HVAC tab\\r\\n- ✔️ [#602]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/602 ), OpenStudioApplication 1.6.0 - Release Checklist #507 \\r\\n- ✔️ [#605]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/605 ), v1.6.0-rc1 Testing: Call for help from the community\\r\\n- ✔️ [#613]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/613 ), Crashes with assigning Summer/Winter Schedule\\r\\n- ✔️ [#616]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/616 ), OSM geometry rendering doesn\'t reflect space origins (but IDF does)\\r\\n- ✔️ [#617]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/617 ), Can\'t find any file in the online BCL \\r\\n- ✔️ [#619]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/619 ), Cannot find open studio results measure (msg when app launches & issue when running a simulation) \\r\\n- ➕ [#625]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/625 ), Refactor HVACSystemsController to hide controls by default and enable them only when needed\\r\\n- ➕ [#626]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/626 ), Redo the layout of the new Output:Variable filter capability\\r\\n- ✔️ [#632]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/632 ), Window and door components are not placing on geometry in floorspace.js\\r\\n- ➕ [#638]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/638 ), Make links clickable in measure descriptions\\r\\n- ✔️ [#640]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/640 ), Unable to find openstudio measures.\\r\\n- ➕ [#641]( https://github.com/openstudiocoalition/OpenStudioApplication/issues/641 ), Bundle OpenStudio Results Measure with installer\\r\\n\\r\\n**Accepted Pull Requests: 24**\\r\\n- ✔️ [#611]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/611 ), Merge for 1.6.0 release\\r\\n- ✔️ [#614]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/614 ), Fix the crash in schedules view\\r\\n- ➕ [#618]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/618 ), Add search bar to OSCollapsibleItemList\\r\\n- ➕ [#621]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/621 ), Fix #482 - SwimmingPool:Indoor icon + policy and implement a way to deal with ModelObjects having a model-dependent parameter\\r\\n- ➕ [#622]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/622 ), Fix #560 - Refactor HVACSystems view to hide unavailable controls, allow zooming display on VRF + Refrigeration tab\\r\\n- ➕ [#623]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/623 ), Fix #238 - Add a search bar for the Output Variable list, allow displaying only selected, bulk setting reporting frequency\\r\\n- ✔️ [#624]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/624 ), Fix MacOS CI\\r\\n- ✔️ [#627]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/627 ), Update to OpenStudio SDK 3.7.0-alpha (latest nightly build)\\r\\n- ➕ [#628]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/628 ), Geometry Preview refactor - separate into several files, allow running in browser directly\\r\\n- ➕ [#629]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/629 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\r\\n- ✔️ [#630]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/630 ), New Geometry Diagnostics in the Geometry Preview: Detect incorrectly oriented surfaces in spaces, non convex spaces\\r\\n- ✔️ [#631]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/631 ), Update variables layout\\r\\n- ✔️ [#635]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/635 ), Update to OpenStudio 3.7.0-alpha based on EnergyPlus v23.2.0 official\\r\\n- ✔️ [#636]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/636 ), Update to OpenStudio 3.7.0-rc1\\r\\n- ✔️ [#637]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/637 ), Disable TLS_VERIFY for conan cmake for windows CI runner\\r\\n- ➕ [#639]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/639 ), Fix #638 - Make links clickable for measure descriptions\\r\\n- ✔️ [#642]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/642 ), Install the OpenStudio Results measure as a backup to the BCL\\r\\n- ✔️ [#643]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/643 ), Fix bug when cloning a story with windows\\r\\n- ✔️ [#644]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/644 ), Update to OpenStudio v3.7.0\\r\\n- ✔️ [#645]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/645 ), Update the application version\\r\\n- ✔️ [#647]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/647 ), Use the GitHub hosted macos-13 runners\\r\\n- ✔️ [#648]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/648 ), Update OSM versions to 3.7.0\\r\\n- ✔️ [#650]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/650 ), Update to Qt 6.6.1\\r\\n- ✔️ [#651]( https://github.com/openstudiocoalition/OpenStudioApplication/pull/651 ), Add support for Python Measures\\r\\n\\r\\n**Total Open Issues: 130** (#130, #132, #111, #112, #142, #113, #143, #158, #133, #134, #172, #135, #136, #162, #139, #174, #157, #166, #175, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #115, #140, #122, #116, #164, #170, #165, #151, #154, #148, #117, #150, #123, #169, #153, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #42, #78, #101, #96, #104, #179, #199, #206, #213, #217, #224, #234, #239, #253, #254, #262, #263, #271, #272, #273, #278, #279, #280, #289, #293, #298, #300, #322, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #417, #423, #472, #475, #481, #485, #491, #493, #495, #512, #520, #529, #542, #555, #557, #561, #571, #590, #612, #615, #620, #633, #634, #649, #653)\\r\\n\\r\\n**Total Open Pull Requests: 4** (#236, #470, #646, #652)\\r\\n\\r\\n
\\r\\n","assets":[{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142339951","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-macOS10.15-x86_64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-macOS10.15-x86_64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142345531","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-macOS12.1-arm64.dmg","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-macOS12.1-arm64.dmg"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142345764","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-macOS12.1-arm64.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-macOS12.1-arm64.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142337815","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-Ubuntu20.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-Ubuntu20.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142337830","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-Ubuntu20.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-Ubuntu20.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142337770","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-Ubuntu22.04.deb","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-Ubuntu22.04.deb"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142337776","name":"OpenStudioApplication-1.7.0-rc1+3d3d913119-Ubuntu22.04.tar.gz","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2B3d3d913119-Ubuntu22.04.tar.gz"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142391482","name":"OpenStudioApplication-1.7.0-rc1+fc6dd76158-Windows.exe","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2Bfc6dd76158-Windows.exe"},{"url":"https://api.github.com/repos/openstudiocoalition/OpenStudioApplication/releases/assets/142391570","name":"OpenStudioApplication-1.7.0-rc1+fc6dd76158-Windows.zip","browser_download_url":"https://github.com/openstudiocoalition/OpenStudioApplication/releases/download/v1.7.0-rc1/OpenStudioApplication-1.7.0-rc1%2Bfc6dd76158-Windows.zip"}]}]');function O8(e){return(0,rA.ZP)("MuiListItemIcon",e)}(0,rl.Z)("MuiListItemIcon",["root","alignItemsFlexStart"]);let O5=["className"],O9=e=>{let{alignItems:t,classes:n}=e;return(0,rd.Z)({root:["root","flex-start"===t&&"alignItemsFlexStart"]},O8,n)},Te=(0,rh.ZP)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,"flex-start"===n.alignItems&&t.alignItemsFlexStart]}})(({theme:e,ownerState:t})=>(0,n4.Z)({minWidth:56,color:(e.vars||e).palette.action.active,flexShrink:0,display:"inline-flex"},"flex-start"===t.alignItems&&{marginTop:8})),Tt=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListItemIcon"}),{className:r}=n,i=(0,n3.Z)(n,O5),o=e0.useContext(l2),a=(0,n4.Z)({},n,{alignItems:o.alignItems}),s=O9(a);return(0,eJ.jsx)(Te,(0,n4.Z)({className:(0,n6.Z)(s.root,r),ownerState:a,ref:t},i))});function Tn(e){return(0,rA.ZP)("MuiCardHeader",e)}let Tr=(0,rl.Z)("MuiCardHeader",["root","avatar","action","content","title","subheader"]),Ti=["action","avatar","className","component","disableTypography","subheader","subheaderTypographyProps","title","titleTypographyProps"],To=e=>{let{classes:t}=e;return(0,rd.Z)({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},Tn,t)},Ta=(0,rh.ZP)("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(e,t)=>(0,n4.Z)({[`& .${Tr.title}`]:t.title,[`& .${Tr.subheader}`]:t.subheader},t.root)})({display:"flex",alignItems:"center",padding:16}),Ts=(0,rh.ZP)("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(e,t)=>t.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),Tl=(0,rh.ZP)("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(e,t)=>t.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),Tu=(0,rh.ZP)("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(e,t)=>t.content})({flex:"1 1 auto"}),Tc=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiCardHeader"}),{action:r,avatar:i,className:o,component:a="div",disableTypography:s=!1,subheader:l,subheaderTypographyProps:u,title:c,titleTypographyProps:p}=n,d=(0,n3.Z)(n,Ti),h=(0,n4.Z)({},n,{component:a,disableTypography:s}),f=To(h),m=c;null!=m&&m.type!==rz&&!s&&(m=(0,eJ.jsx)(rz,(0,n4.Z)({variant:i?"body2":"h5",className:f.title,component:"span",display:"block"},p,{children:m})));let g=l;return null!=g&&g.type!==rz&&!s&&(g=(0,eJ.jsx)(rz,(0,n4.Z)({variant:i?"body2":"body1",className:f.subheader,color:"text.secondary",component:"span",display:"block"},u,{children:g}))),(0,eJ.jsxs)(Ta,(0,n4.Z)({className:(0,n6.Z)(f.root,o),as:a,ref:t,ownerState:h},d,{children:[i&&(0,eJ.jsx)(Ts,{className:f.avatar,ownerState:h,children:i}),(0,eJ.jsxs)(Tu,{className:f.content,ownerState:h,children:[m,g]}),r&&(0,eJ.jsx)(Tl,{className:f.action,ownerState:h,children:r})]}))});function Tp(e){return(0,rA.ZP)("MuiDivider",e)}(0,rl.Z)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]);let Td=["absolute","children","className","component","flexItem","light","orientation","role","textAlign","variant"],Th=e=>{let{absolute:t,children:n,classes:r,flexItem:i,light:o,orientation:a,textAlign:s,variant:l}=e;return(0,rd.Z)({root:["root",t&&"absolute",l,o&&"light","vertical"===a&&"vertical",i&&"flexItem",n&&"withChildren",n&&"vertical"===a&&"withChildrenVertical","right"===s&&"vertical"!==a&&"textAlignRight","left"===s&&"vertical"!==a&&"textAlignLeft"],wrapper:["wrapper","vertical"===a&&"wrapperVertical"]},Tp,r)},Tf=(0,rh.ZP)("div",{name:"MuiDivider",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],n.light&&t.light,"vertical"===n.orientation&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,n.children&&"vertical"===n.orientation&&t.withChildrenVertical,"right"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignRight,"left"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignLeft]}})(({theme:e,ownerState:t})=>(0,n4.Z)({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(e.vars||e).palette.divider,borderBottomWidth:"thin"},t.absolute&&{position:"absolute",bottom:0,left:0,width:"100%"},t.light&&{borderColor:e.vars?`rgba(${e.vars.palette.dividerChannel} / 0.08)`:(0,rm.alpha)(e.palette.divider,.08)},"inset"===t.variant&&{marginLeft:72},"middle"===t.variant&&"horizontal"===t.orientation&&{marginLeft:e.spacing(2),marginRight:e.spacing(2)},"middle"===t.variant&&"vertical"===t.orientation&&{marginTop:e.spacing(1),marginBottom:e.spacing(1)},"vertical"===t.orientation&&{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"},t.flexItem&&{alignSelf:"stretch",height:"auto"}),({ownerState:e})=>(0,n4.Z)({},e.children&&{display:"flex",whiteSpace:"nowrap",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}),({theme:e,ownerState:t})=>(0,n4.Z)({},t.children&&"vertical"!==t.orientation&&{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:"inherit"}}),({theme:e,ownerState:t})=>(0,n4.Z)({},t.children&&"vertical"===t.orientation&&{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:"inherit"}}),({ownerState:e})=>(0,n4.Z)({},"right"===e.textAlign&&"vertical"!==e.orientation&&{"&::before":{width:"90%"},"&::after":{width:"10%"}},"left"===e.textAlign&&"vertical"!==e.orientation&&{"&::before":{width:"10%"},"&::after":{width:"90%"}})),Tm=(0,rh.ZP)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.wrapper,"vertical"===n.orientation&&t.wrapperVertical]}})(({theme:e,ownerState:t})=>(0,n4.Z)({display:"inline-block",paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`},"vertical"===t.orientation&&{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`})),Tg=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDivider"}),{absolute:r=!1,children:i,className:o,component:a=i?"div":"hr",flexItem:s=!1,light:l=!1,orientation:u="horizontal",role:c="hr"!==a?"separator":void 0,textAlign:p="center",variant:d="fullWidth"}=n,h=(0,n3.Z)(n,Td),f=(0,n4.Z)({},n,{absolute:r,component:a,flexItem:s,light:l,orientation:u,role:c,textAlign:p,variant:d}),m=Th(f);return(0,eJ.jsx)(Tf,(0,n4.Z)({as:a,className:(0,n6.Z)(m.root,o),role:c,ref:t,ownerState:f},h,{children:i?(0,eJ.jsx)(Tm,{className:m.wrapper,ownerState:f,children:i}):null}))});Tg.muiSkipListHighlight=!0;function TA(e){return(0,rA.ZP)("MuiListItem",e)}let Tb=(0,rl.Z)("MuiListItem",["root","container","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","padding","button","secondaryAction","selected"]),Ty=(0,rl.Z)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]);function Tv(e){return(0,rA.ZP)("MuiListItemSecondaryAction",e)}(0,rl.Z)("MuiListItemSecondaryAction",["root","disableGutters"]);let TS=["className"],Tw=e=>{let{disableGutters:t,classes:n}=e;return(0,rd.Z)({root:["root",t&&"disableGutters"]},Tv,n)},TE=(0,rh.ZP)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.disableGutters&&t.disableGutters]}})(({ownerState:e})=>(0,n4.Z)({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"},e.disableGutters&&{right:0})),TO=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListItemSecondaryAction"}),{className:r}=n,i=(0,n3.Z)(n,TS),o=e0.useContext(l2),a=(0,n4.Z)({},n,{disableGutters:o.disableGutters}),s=Tw(a);return(0,eJ.jsx)(TE,(0,n4.Z)({className:(0,n6.Z)(s.root,r),ownerState:a,ref:t},i))});TO.muiName="ListItemSecondaryAction";let TT=["className"],TC=["alignItems","autoFocus","button","children","className","component","components","componentsProps","ContainerComponent","ContainerProps","dense","disabled","disableGutters","disablePadding","divider","focusVisibleClassName","secondaryAction","selected","slotProps","slots"],Tx=e=>{let{alignItems:t,button:n,classes:r,dense:i,disabled:o,disableGutters:a,disablePadding:s,divider:l,hasSecondaryAction:u,selected:c}=e;return(0,rd.Z)({root:["root",i&&"dense",!a&&"gutters",!s&&"padding",l&&"divider",o&&"disabled",n&&"button","flex-start"===t&&"alignItemsFlexStart",u&&"secondaryAction",c&&"selected"],container:["container"]},TA,r)},TI=(0,rh.ZP)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.dense&&t.dense,"flex-start"===n.alignItems&&t.alignItemsFlexStart,n.divider&&t.divider,!n.disableGutters&&t.gutters,!n.disablePadding&&t.padding,n.button&&t.button,n.hasSecondaryAction&&t.secondaryAction]}})(({theme:e,ownerState:t})=>(0,n4.Z)({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left"},!t.disablePadding&&(0,n4.Z)({paddingTop:8,paddingBottom:8},t.dense&&{paddingTop:4,paddingBottom:4},!t.disableGutters&&{paddingLeft:16,paddingRight:16},!!t.secondaryAction&&{paddingRight:48}),!!t.secondaryAction&&{[`& > .${Ty.root}`]:{paddingRight:48}},{[`&.${Tb.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Tb.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${Tb.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${Tb.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}},"flex-start"===t.alignItems&&{alignItems:"flex-start"},t.divider&&{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"},t.button&&{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Tb.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity)}}},t.hasSecondaryAction&&{paddingRight:48})),Tk=(0,rh.ZP)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(e,t)=>t.container})({position:"relative"}),T_=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListItem"}),{alignItems:r="center",autoFocus:i=!1,button:o=!1,children:a,className:s,component:l,components:u={},componentsProps:c={},ContainerComponent:p="li",ContainerProps:{className:d}={},dense:h=!1,disabled:f=!1,disableGutters:m=!1,disablePadding:g=!1,divider:A=!1,focusVisibleClassName:b,secondaryAction:y,selected:v=!1,slotProps:S={},slots:w={}}=n,E=(0,n3.Z)(n.ContainerProps,TT),O=(0,n3.Z)(n,TC),T=e0.useContext(l2),C=e0.useMemo(()=>({dense:h||T.dense||!1,alignItems:r,disableGutters:m}),[r,T.dense,h,m]),x=e0.useRef(null);(0,sH.Z)(()=>{i&&x.current&&x.current.focus()},[i]);let I=e0.Children.toArray(a),k=I.length&&(0,lN.Z)(I[I.length-1],["ListItemSecondaryAction"]),_=(0,n4.Z)({},n,{alignItems:r,autoFocus:i,button:o,dense:C.dense,disabled:f,disableGutters:m,disablePadding:g,divider:A,hasSecondaryAction:k,selected:v}),R=Tx(_),P=(0,rV.Z)(x,t),N=w.root||u.Root||TI,D=S.root||c.root||{},M=(0,n4.Z)({className:(0,n6.Z)(R.root,D.className,s),disabled:f},O),L=l||"li";return(o&&(M.component=l||"div",M.focusVisibleClassName=(0,n6.Z)(Tb.focusVisible,b),L=ip),k)?(L=M.component||l?L:"div","li"===p&&("li"===L?L="div":"li"===M.component&&(M.component="div")),(0,eJ.jsx)(l2.Provider,{value:C,children:(0,eJ.jsxs)(Tk,(0,n4.Z)({as:p,className:(0,n6.Z)(R.container,d),ref:P,ownerState:_},E,{children:[(0,eJ.jsx)(N,(0,n4.Z)({},D,!sI(N)&&{as:L,ownerState:(0,n4.Z)({},_,D.ownerState)},M,{children:I})),I.pop()]}))})):(0,eJ.jsx)(l2.Provider,{value:C,children:(0,eJ.jsxs)(N,(0,n4.Z)({},D,{as:L,ref:P},!sI(N)&&{ownerState:(0,n4.Z)({},_,D.ownerState)},M,{children:[I,y&&(0,eJ.jsx)(TO,{children:y})]}))})});function TR(e){return(0,rA.ZP)("MuiListItemText",e)}let TP=(0,rl.Z)("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),TN=["children","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps"],TD=e=>{let{classes:t,inset:n,primary:r,secondary:i,dense:o}=e;return(0,rd.Z)({root:["root",n&&"inset",o&&"dense",r&&i&&"multiline"],primary:["primary"],secondary:["secondary"]},TR,t)},TM=(0,rh.ZP)("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${TP.primary}`]:t.primary},{[`& .${TP.secondary}`]:t.secondary},t.root,n.inset&&t.inset,n.primary&&n.secondary&&t.multiline,n.dense&&t.dense]}})(({ownerState:e})=>(0,n4.Z)({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4},e.primary&&e.secondary&&{marginTop:6,marginBottom:6},e.inset&&{paddingLeft:56})),TL=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListItemText"}),{children:r,className:i,disableTypography:o=!1,inset:a=!1,primary:s,primaryTypographyProps:l,secondary:u,secondaryTypographyProps:c}=n,p=(0,n3.Z)(n,TN),{dense:d}=e0.useContext(l2),h=null!=s?s:r,f=u,m=(0,n4.Z)({},n,{disableTypography:o,inset:a,primary:!!h,secondary:!!f,dense:d}),g=TD(m);return null!=h&&h.type!==rz&&!o&&(h=(0,eJ.jsx)(rz,(0,n4.Z)({variant:d?"body2":"body1",className:g.primary,component:null!=l&&l.variant?void 0:"span",display:"block"},l,{children:h}))),null!=f&&f.type!==rz&&!o&&(f=(0,eJ.jsx)(rz,(0,n4.Z)({variant:"body2",className:g.secondary,color:"text.secondary",display:"block"},c,{children:f}))),(0,eJ.jsxs)(TM,(0,n4.Z)({className:(0,n6.Z)(g.root,i),ownerState:m,ref:t},p,{children:[h,f]}))});function TB(e){return(0,rA.ZP)("MuiLink",e)}let TF=(0,rl.Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]);var TU=n("54844");let Tj={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},Tz=e=>Tj[e]||e,TH=({theme:e,ownerState:t})=>{let n=Tz(t.color),r=(0,TU.DW)(e,`palette.${n}`,!1)||t.color,i=(0,TU.DW)(e,`palette.${n}Channel`);return"vars"in e&&i?`rgba(${i} / 0.4)`:(0,rm.alpha)(r,.4)},TZ=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],TV=e=>{let{classes:t,component:n,focusVisible:r,underline:i}=e,o={root:["root",`underline${(0,rN.Z)(i)}`,"button"===n&&"button",r&&"focusVisible"]};return(0,rd.Z)(o,TB,t)},TG=(0,rh.ZP)(rz,{name:"MuiLink",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`underline${(0,rN.Z)(n.underline)}`],"button"===n.component&&t.button]}})(({theme:e,ownerState:t})=>(0,n4.Z)({},"none"===t.underline&&{textDecoration:"none"},"hover"===t.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===t.underline&&(0,n4.Z)({textDecoration:"underline"},"inherit"!==t.color&&{textDecorationColor:TH({theme:e,ownerState:t})},{"&:hover":{textDecorationColor:"inherit"}}),"button"===t.component&&{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${TF.focusVisible}`]:{outline:"auto"}})),TW=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiLink"}),{className:r,color:i="primary",component:o="a",onBlur:a,onFocus:s,TypographyClasses:l,underline:u="always",variant:c="inherit",sx:p}=n,d=(0,n3.Z)(n,TZ),{isFocusVisibleRef:h,onBlur:f,onFocus:m,ref:g}=(0,rW.Z)(),[A,b]=e0.useState(!1),y=(0,rV.Z)(t,g),v=(0,n4.Z)({},n,{color:i,component:o,focusVisible:A,underline:u,variant:c}),S=TV(v);return(0,eJ.jsx)(TG,(0,n4.Z)({color:i,className:(0,n6.Z)(S.root,r),classes:l,component:o,onBlur:e=>{f(e),!1===h.current&&b(!1),a&&a(e)},onFocus:e=>{m(e),!0===h.current&&b(!0),s&&s(e)},ref:y,ownerState:v,variant:c,sx:[...Object.keys(Tj).includes(i)?[]:[{color:i}],...Array.isArray(p)?p:[p]]},d))});function TQ(e){return(0,rA.ZP)("MuiCardActions",e)}(0,rl.Z)("MuiCardActions",["root","spacing"]);let Tq=["disableSpacing","className"],TK=e=>{let{classes:t,disableSpacing:n}=e;return(0,rd.Z)({root:["root",!n&&"spacing"]},TQ,t)},TY=(0,rh.ZP)("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})(({ownerState:e})=>(0,n4.Z)({display:"flex",alignItems:"center",padding:8},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),TX=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiCardActions"}),{disableSpacing:r=!1,className:i}=n,o=(0,n3.Z)(n,Tq),a=(0,n4.Z)({},n,{disableSpacing:r}),s=TK(a);return(0,eJ.jsx)(TY,(0,n4.Z)({className:(0,n6.Z)(s.root,i),ownerState:a,ref:t},o))});function TJ(){}function T$(){}function T0(e){let t=[],n=String(e||""),r=n.indexOf(","),i=0,o=!1;for(;!o;){-1===r&&(r=n.length,o=!0);let e=n.slice(i,r).trim();(e||!o)&&t.push(e),i=r+1,r=n.indexOf(",",i)}return t}function T1(e,t){let n=t||{};return(""===e[e.length-1]?[...e,""]:e).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}let T2=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,T4=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,T3={};function T6(e,t){return((t||T3).jsx?T4:T2).test(e)}let T7=/[ \t\n\f\r]/g;function T8(e){return""===e.replace(T7,"")}class T5{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}}function T9(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new T5(n,r,t)}function Ce(e){return e.toLowerCase()}T5.prototype.normal={},T5.prototype.property={},T5.prototype.space=void 0;class Ct{constructor(e,t){this.attribute=t,this.property=e}}Ct.prototype.attribute="",Ct.prototype.booleanish=!1,Ct.prototype.boolean=!1,Ct.prototype.commaOrSpaceSeparated=!1,Ct.prototype.commaSeparated=!1,Ct.prototype.defined=!1,Ct.prototype.mustUseProperty=!1,Ct.prototype.number=!1,Ct.prototype.overloadedBoolean=!1,Ct.prototype.property="",Ct.prototype.spaceSeparated=!1,Ct.prototype.space=void 0;let Cn=0,Cr=Cc(),Ci=Cc(),Co=Cc(),Ca=Cc(),Cs=Cc(),Cl=Cc(),Cu=Cc();function Cc(){return 2**++Cn}let Cp=Object.keys(eY);class Cd extends Ct{constructor(e,t,n,r){let i=-1;if(super(e,t),function(e,t,n){n&&(e[t]=n)}(this,"space",r),"number"==typeof n)for(;++i"role"===t?t:"aria-"+t.slice(4).toLowerCase()});function Cg(e,t){return t in e?e[t]:t}function CA(e,t){return Cg(e,t.toLowerCase())}let Cb=Cf({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Cl,acceptCharset:Cs,accessKey:Cs,action:null,allow:null,allowFullScreen:Cr,allowPaymentRequest:Cr,allowUserMedia:Cr,alpha:Cr,alt:null,as:null,async:Cr,autoCapitalize:null,autoComplete:Cs,autoFocus:Cr,autoPlay:Cr,blocking:Cs,capture:null,charSet:null,checked:Cr,cite:null,className:Cs,closedBy:null,colorSpace:null,cols:Ca,colSpan:Ca,command:null,commandFor:null,content:null,contentEditable:Ci,controls:Cr,controlsList:Cs,coords:Ca|Cl,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Cr,defer:Cr,dir:null,dirName:null,disabled:Cr,download:Co,draggable:Ci,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Cr,formTarget:null,headers:Cs,height:Ca,hidden:Co,high:Ca,href:null,hrefLang:null,htmlFor:Cs,httpEquiv:Cs,id:null,imageSizes:null,imageSrcSet:null,inert:Cr,inputMode:null,integrity:null,is:null,isMap:Cr,itemId:null,itemProp:Cs,itemRef:Cs,itemScope:Cr,itemType:Cs,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Cr,low:Ca,manifest:null,max:null,maxLength:Ca,media:null,method:null,min:null,minLength:Ca,multiple:Cr,muted:Cr,name:null,nonce:null,noModule:Cr,noValidate:Cr,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Cr,optimum:Ca,pattern:null,ping:Cs,placeholder:null,playsInline:Cr,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Cr,referrerPolicy:null,rel:Cs,required:Cr,reversed:Cr,rows:Ca,rowSpan:Ca,sandbox:Cs,scope:null,scoped:Cr,seamless:Cr,selected:Cr,shadowRootClonable:Cr,shadowRootCustomElementRegistry:Cr,shadowRootDelegatesFocus:Cr,shadowRootMode:null,shadowRootSerializable:Cr,shape:null,size:Ca,sizes:null,slot:null,span:Ca,spellCheck:Ci,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Ca,step:null,style:null,tabIndex:Ca,target:null,title:null,translate:null,type:null,typeMustMatch:Cr,useMap:null,value:Ci,width:Ca,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Cs,axis:null,background:null,bgColor:null,border:Ca,borderColor:null,bottomMargin:Ca,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Cr,declare:Cr,event:null,face:null,frame:null,frameBorder:null,hSpace:Ca,leftMargin:Ca,link:null,longDesc:null,lowSrc:null,marginHeight:Ca,marginWidth:Ca,noResize:Cr,noHref:Cr,noShade:Cr,noWrap:Cr,object:null,profile:null,prompt:null,rev:null,rightMargin:Ca,rules:null,scheme:null,scrolling:Ci,standby:null,summary:null,text:null,topMargin:Ca,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Ca,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Cr,disablePictureInPicture:Cr,disableRemotePlayback:Cr,exportParts:Cl,part:Cs,prefix:null,property:null,results:Ca,security:null,unselectable:null},space:"html",transform:CA}),Cy=Cf({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Cu,accentHeight:Ca,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Ca,amplitude:Ca,arabicForm:null,ascent:Ca,attributeName:null,attributeType:null,azimuth:Ca,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Ca,by:null,calcMode:null,capHeight:Ca,className:Cs,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Ca,diffuseConstant:Ca,direction:null,display:null,dur:null,divisor:Ca,dominantBaseline:null,download:Cr,dx:null,dy:null,edgeMode:null,editable:null,elevation:Ca,enableBackground:null,end:null,event:null,exponent:Ca,externalResourcesRequired:null,fill:null,fillOpacity:Ca,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Cl,g2:Cl,glyphName:Cl,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Ca,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Ca,horizOriginX:Ca,horizOriginY:Ca,id:null,ideographic:Ca,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Ca,k:Ca,k1:Ca,k2:Ca,k3:Ca,k4:Ca,kernelMatrix:Cu,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Ca,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Ca,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Ca,overlineThickness:Ca,paintOrder:null,panose1:null,path:null,pathLength:Ca,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Cs,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Ca,pointsAtY:Ca,pointsAtZ:Ca,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Cu,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Cu,rev:Cu,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Cu,requiredFeatures:Cu,requiredFonts:Cu,requiredFormats:Cu,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Ca,specularExponent:Ca,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Ca,strikethroughThickness:Ca,string:null,stroke:null,strokeDashArray:Cu,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Ca,strokeOpacity:Ca,strokeWidth:null,style:null,surfaceScale:Ca,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Cu,tabIndex:Ca,tableValues:null,target:null,targetX:Ca,targetY:Ca,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Cu,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Ca,underlineThickness:Ca,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Ca,values:null,vAlphabetic:Ca,vMathematical:Ca,vectorEffect:null,vHanging:Ca,vIdeographic:Ca,version:null,vertAdvY:Ca,vertOriginX:Ca,vertOriginY:Ca,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Ca,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Cg}),Cv=Cf({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(e,t)=>"xlink:"+t.slice(5).toLowerCase()}),CS=Cf({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:CA}),Cw=Cf({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(e,t)=>"xml:"+t.slice(3).toLowerCase()}),CE=T9([Cm,Cb,Cv,CS,Cw],"html"),CO=T9([Cm,Cy,Cv,CS,Cw],"svg"),CT=/[A-Z]/g,CC=/-[a-z]/g,Cx=/^data[-\w.:]+$/i;function CI(e,t){let n=Ce(t),r=t,i=Ct;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&Cx.test(t)){if("-"===t.charAt(4)){let e=t.slice(5).replace(CC,C_);r="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!CC.test(e)){let n=e.replace(CT,Ck);"-"!==n.charAt(0)&&(n="-"+n),t="data"+n}}i=Cd}return new i(r,t)}function Ck(e){return"-"+e.toLowerCase()}function C_(e){return e.charAt(1).toUpperCase()}let CR={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};function CP(e){let t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function CN(e){return e.join(" ").trim()}var CD=n("41476");let CM=CB("end"),CL=CB("start");function CB(e){return function(t){let n=t&&t.position&&t.position[e]||{};if("number"==typeof n.line&&n.line>0&&"number"==typeof n.column&&n.column>0)return{line:n.line,column:n.column,offset:"number"==typeof n.offset&&n.offset>-1?n.offset:void 0}}}function CF(e){return e&&"object"==typeof e?"position"in e||"type"in e?Cj(e.position):"start"in e||"end"in e?Cj(e):"line"in e||"column"in e?CU(e):"":""}function CU(e){return Cz(e&&e.line)+":"+Cz(e&&e.column)}function Cj(e){return CU(e&&e.start)+"-"+CU(e&&e.end)}function Cz(e){return e&&"number"==typeof e?e:1}class CH extends Error{constructor(e,t,n){super(),"string"==typeof t&&(n=t,t=void 0);let r="",i={},o=!1;if(t&&(i="line"in t&&"column"in t?{place:t}:"start"in t&&"end"in t?{place:t}:"type"in t?{ancestors:[t],place:t.position}:{...t}),"string"==typeof e?r=e:!i.cause&&e&&(o=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&"string"==typeof n){let e=n.indexOf(":");-1===e?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let a=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=r,this.line=a?a.line:void 0,this.name=CF(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&"string"==typeof i.cause.stack?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}CH.prototype.file="",CH.prototype.name="",CH.prototype.reason="",CH.prototype.message="",CH.prototype.stack="",CH.prototype.column=void 0,CH.prototype.line=void 0,CH.prototype.ancestors=void 0,CH.prototype.cause=void 0,CH.prototype.fatal=void 0,CH.prototype.place=void 0,CH.prototype.ruleId=void 0,CH.prototype.source=void 0;let CZ={}.hasOwnProperty,CV=new Map,CG=/[A-Z]/g,CW=new Set(["table","tbody","thead","tfoot","tr"]),CQ=new Set(["td","th"]),Cq="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function CK(e,t,n){return"element"===t.type?function(e,t,n){let r=e.schema,i=r;"svg"===t.tagName.toLowerCase()&&"html"===r.space&&(i=CO,e.schema=i),e.ancestors.push(t);let o=C$(e,t.tagName,!1),a=function(e,t){let n,r;let i={};for(r in t.properties)if("children"!==r&&CZ.call(t.properties,r)){let o=function(e,t,n){let r=CI(e.schema,t);if(!(null==n||"number"==typeof n&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?T1(n):CN(n)),"style"===r.property){let t="object"==typeof n?n:function(e,t){try{return CD(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};let t=new CH("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw t.file=e.filePath||void 0,t.url=Cq+"#cannot-parse-style-attribute",t}}(e,String(n));return"css"===e.stylePropertyNameCase&&(t=function(e){let t;let n={};for(t in e)CZ.call(e,t)&&(n[function(e){let t=e.replace(CG,C1);return"ms-"===t.slice(0,3)&&(t="-"+t),t}(t)]=e[t]);return n}(t)),["style",t]}return["react"===e.elementAttributeNameCase&&r.space?CR[r.property]||r.property:r.attribute,n]}}(e,r,t.properties[r]);if(o){let[r,a]=o;e.tableCellAlignToStyle&&"align"===r&&"string"==typeof a&&CQ.has(t.tagName)?n=a:i[r]=a}}return n&&((i.style||(i.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=n),i}(e,t),s=CJ(e,t);return CW.has(t.tagName)&&(s=s.filter(function(e){var t;return"string"!=typeof e||!("object"==typeof(t=e)?"text"===t.type&&T8(t.value):T8(t))})),CY(e,a,o,t),CX(a,s),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxFlowExpression"===t.type||"mdxTextExpression"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}C0(e,t.position)}(e,t):"mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type?function(e,t,n){let r=e.schema,i=r;"svg"===t.name&&"html"===r.space&&(i=CO,e.schema=i),e.ancestors.push(t);let o=null===t.name?e.Fragment:C$(e,t.name,!0),a=function(e,t){let n={};for(let r of t.attributes)if("mdxJsxExpressionAttribute"===r.type){if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let o=i.properties[0];o.type,Object.assign(n,e.evaluater.evaluateExpression(o.argument))}else C0(e,t.position)}else{let i;let o=r.name;if(r.value&&"object"==typeof r.value){if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,i=e.evaluater.evaluateExpression(t.expression)}else C0(e,t.position)}else i=null===r.value||r.value;n[o]=i}return n}(e,t),s=CJ(e,t);return CY(e,a,o,t),CX(a,s),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxjsEsm"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);C0(e,t.position)}(e,t):"root"===t.type?function(e,t,n){let r={};return CX(r,CJ(e,t)),e.create(t,e.Fragment,r,n)}(e,t,n):"text"===t.type?function(e,t){return t.value}(e,t):void 0}function CY(e,t,n,r){"string"!=typeof n&&n!==e.Fragment&&e.passNode&&(t.node=r)}function CX(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function CJ(e,t){let n=[],r=-1,i=e.passKeys?new Map:CV;for(;++ro?0:o+t:t>o?o:t,n=n>0?n:0,r.length<1e4)(i=Array.from(r)).unshift(t,n),e.splice(...i);else for(n&&e.splice(t,n);a0?(C7(e,e.length,0,t),e):t}class C5{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){this.setCursor(Math.trunc(e));let r=this.right.splice(this.right.length-(t||0),Number.POSITIVE_INFINITY);return n&&C9(this.left,n),r.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),C9(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),C9(this.right,e.reverse())}setCursor(e){if(e!==this.left.length&&(!(e>this.left.length)||0!==this.right.length)&&(!(e<0)||0!==this.left.length)){if(e-1&&e.test(String.fromCharCode(t))}}function xm(e,t,n,r){let i=r?r-1:Number.POSITIVE_INFINITY,o=0;return function(r){return xp(r)?(e.enter(n),function r(a){return xp(a)&&o++r))return;let s=i.events.length,l=s;for(;l--;)if("exit"===i.events[l][0]&&"chunkFlow"===i.events[l][1].type){if(e){n=i.events[l][1].end;break}e=!0}for(g(a),o=s;ot;){let t=o[n];i.containerState=t[1],t[0].exit.call(i,e)}o.length=t}function A(){t.write([null]),n=void 0,t=void 0,i.containerState._closeFlow=void 0}}},xb={tokenize:function(e,t,n){return xm(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}},xy={partial:!0,tokenize:function(e,t,n){return function(t){return xp(t)?xm(e,r,"linePrefix")(t):r(t)};function r(e){return null===e||xu(e)?t(e):n(e)}}},xv={resolve:function(e){return xe(e),e},tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?i(t):xu(t)?e.check(xS,o,i)(t):(e.consume(t),r)}function i(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function o(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}}},xS={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),xm(e,i,"linePrefix")};function i(i){if(null===i||xu(i))return n(i);let o=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}},xw={tokenize:function(e){let t=this,n=e.attempt(xy,function(r){if(null===r){e.consume(r);return}return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n},e.attempt(this.parser.constructs.flowInitial,r,xm(e,e.attempt(this.parser.constructs.flow,r,e.attempt(xv,r)),"linePrefix")));return n;function r(r){if(null===r){e.consume(r);return}return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n}}},xE={resolveAll:xx()},xO=xC("string"),xT=xC("text");function xC(e){return{resolveAll:xx("text"===e?xI:void 0),tokenize:function(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,o,a);return o;function o(e){return l(e)?i(e):a(e)}function a(e){if(null===e){t.consume(e);return}return t.enter("data"),t.consume(e),s}function s(e){return l(e)?(t.exit("data"),i(e)):(t.consume(e),s)}function l(e){if(null===e)return!0;let t=r[e],i=-1;if(t)for(;++i=3&&(null===a||xu(a))?(e.exit("thematicBreak"),t(a)):n(a)}}},x_={continuation:{tokenize:function(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(xy,function(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,xm(e,t,"listItemIndent",r.containerState.size+1)(n)},function(n){return r.containerState.furtherBlankLines||!xp(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,i(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(xP,t,i)(n))});function i(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,xm(e,e.attempt(x_,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)},name:"list",tokenize:function(e,t,n){let r=this,i=r.events[r.events.length-1],o=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,a=0;return function(t){let i=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||t===r.containerState.marker:xa(t)){if(!r.containerState.type&&(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===t||45===t?e.check(xk,n,s)(t):s(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),function t(i){return xa(i)&&++a<10?(e.consume(i),t):(!r.interrupt||a<2)&&(r.containerState.marker?i===r.containerState.marker:41===i||46===i)?(e.exit("listItemValue"),s(i)):n(i)}(t)}return n(t)};function s(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(xy,r.interrupt?n:l,e.attempt(xR,c,u))}function l(e){return r.containerState.initialBlankLine=!0,o++,c(e)}function u(t){return xp(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),c):n(t)}function c(n){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}}},xR={partial:!0,tokenize:function(e,t,n){let r=this;return xm(e,function(e){let i=r.events[r.events.length-1];return!xp(e)&&i&&"listItemPrefixWhitespace"===i[1].type?t(e):n(e)},"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},xP={partial:!0,tokenize:function(e,t,n){let r=this;return xm(e,function(e){let i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)},"listItemIndent",r.containerState.size+1)}},xN={continuation:{tokenize:function(e,t,n){let r=this;return function(t){return xp(t)?xm(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):i(t)};function i(r){return e.attempt(xN,t,n)(r)}}},exit:function(e){e.exit("blockQuote")},name:"blockQuote",tokenize:function(e,t,n){let r=this;return function(t){if(62===t){let n=r.containerState;return!n.open&&(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i}return n(t)};function i(n){return xp(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}}};function xD(e,t,n,r,i,o,a,s,l){let u=l||Number.POSITIVE_INFINITY,c=0;return function(t){return 60===t?(e.enter(r),e.enter(i),e.enter(o),e.consume(t),e.exit(o),p):null===t||32===t||41===t||xo(t)?n(t):(e.enter(r),e.enter(a),e.enter(s),e.enter("chunkString",{contentType:"string"}),f(t))};function p(n){return 62===n?(e.enter(o),e.consume(n),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),d(n))}function d(t){return 62===t?(e.exit("chunkString"),e.exit(s),p(t)):null===t||60===t||xu(t)?n(t):(e.consume(t),92===t?h:d)}function h(t){return 60===t||62===t||92===t?(e.consume(t),d):d(t)}function f(i){return!c&&(null===i||41===i||xc(i))?(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(i)):c999||null===p||91===p||93===p&&!a||94===p&&!l&&"_hiddenFootnoteSupport"in s.parser.constructs?n(p):93===p?(e.exit(o),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):xu(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),c(p))}function c(t){return null===t||91===t||93===t||xu(t)||l++>999?(e.exit("chunkString"),u(t)):(e.consume(t),!a&&(a=!xp(t)),92===t?p:c)}function p(t){return 91===t||92===t||93===t?(e.consume(t),l++,c):c(t)}}function xL(e,t,n,r,i,o){let a;return function(t){return 34===t||39===t||40===t?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),a=40===t?41:t,s):n(t)};function s(n){return n===a?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(o),l(n))}function l(t){return t===a?(e.exit(o),s(a)):null===t?n(t):xu(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),xm(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(t))}function u(t){return t===a||null===t||xu(t)?(e.exit("chunkString"),l(t)):(e.consume(t),92===t?c:u)}function c(t){return t===a||92===t?(e.consume(t),u):u(t)}}function xB(e,t){let n;return function r(i){return xu(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):xp(i)?xm(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}function xF(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}let xU={partial:!0,tokenize:function(e,t,n){return function(t){return xc(t)?xB(e,r)(t):n(t)};function r(t){return xL(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function i(t){return xp(t)?xm(e,o,"whitespace")(t):o(t)}function o(e){return null===e||xu(e)?t(e):n(e)}}},xj={name:"codeIndented",tokenize:function(e,t,n){let r=this;return function(t){return e.enter("codeIndented"),xm(e,i,"linePrefix",5)(t)};function i(e){let t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return null===t?a(t):xu(t)?e.attempt(xz,o,a)(t):(e.enter("codeFlowValue"),function t(n){return null===n||xu(n)?(e.exit("codeFlowValue"),o(n)):(e.consume(n),t)}(t))}function a(n){return e.exit("codeIndented"),t(n)}}},xz={partial:!0,tokenize:function(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):xu(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):xm(e,o,"linePrefix",5)(t)}function o(e){let o=r.events[r.events.length-1];return o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(e):xu(e)?i(e):n(e)}}},xH={name:"setextUnderline",resolveTo:function(e,t){let n,r,i,o=e.length;for(;o--;)if("enter"===e[o][0]){if("content"===e[o][1].type){n=o;break}"paragraph"===e[o][1].type&&(r=o)}else"content"===e[o][1].type&&e.splice(o,1),!i&&"definition"===e[o][1].type&&(i=o);let a={type:"setextHeading",start:{...e[n][1].start},end:{...e[e.length-1][1].end}};return e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",a,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end={...e[i][1].end}):e[n][1]=a,e.push(["exit",a,t]),e},tokenize:function(e,t,n){let r;let i=this;return function(t){let a,s=i.events.length;for(;s--;)if("lineEnding"!==i.events[s][1].type&&"linePrefix"!==i.events[s][1].type&&"content"!==i.events[s][1].type){a="paragraph"===i.events[s][1].type;break}return!i.parser.lazy[i.now().line]&&(i.interrupt||a)?(e.enter("setextHeadingLine"),r=t,function(t){return e.enter("setextHeadingLineSequence"),function t(n){return n===r?(e.consume(n),t):(e.exit("setextHeadingLineSequence"),xp(n)?xm(e,o,"lineSuffix")(n):o(n))}(t)}(t)):n(t)};function o(r){return null===r||xu(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}}},xZ=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],xV=["pre","script","style","textarea"],xG={partial:!0,tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(xy,t,n)}}},xW={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return xu(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):n(t)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},xQ={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return null===t?n(t):(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},xq={concrete:!0,name:"codeFenced",tokenize:function(e,t,n){let r;let i=this,o={partial:!0,tokenize:function(e,t,n){let o=0;return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),a};function a(t){return e.enter("codeFencedFence"),xp(t)?xm(e,l,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):l(t)}function l(t){return t===r?(e.enter("codeFencedFenceSequence"),function t(i){return i===r?(o++,e.consume(i),t):o>=s?(e.exit("codeFencedFenceSequence"),xp(i)?xm(e,u,"whitespace")(i):u(i)):n(i)}(t)):n(t)}function u(r){return null===r||xu(r)?(e.exit("codeFencedFence"),t(r)):n(r)}}},a=0,s=0;return function(t){return function(t){let o=i.events[i.events.length-1];return a=o&&"linePrefix"===o[1].type?o[2].sliceSerialize(o[1],!0).length:0,r=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),function t(i){return i===r?(s++,e.consume(i),t):s<3?n(i):(e.exit("codeFencedFenceSequence"),xp(i)?xm(e,l,"whitespace")(i):l(i))}(t)}(t)};function l(o){return null===o||xu(o)?(e.exit("codeFencedFence"),i.interrupt?t(o):e.check(xQ,c,f)(o)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),function t(i){return null===i||xu(i)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),l(i)):xp(i)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),xm(e,u,"whitespace")(i)):96===i&&i===r?n(i):(e.consume(i),t)}(o))}function u(t){return null===t||xu(t)?l(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),function t(i){return null===i||xu(i)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),l(i)):96===i&&i===r?n(i):(e.consume(i),t)}(t))}function c(t){return e.attempt(o,f,p)(t)}function p(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),d}function d(t){return a>0&&xp(t)?xm(e,h,"linePrefix",a+1)(t):h(t)}function h(t){return null===t||xu(t)?e.check(xQ,c,f)(t):(e.enter("codeFlowValue"),function t(n){return null===n||xu(n)?(e.exit("codeFlowValue"),h(n)):(e.consume(n),t)}(t))}function f(n){return e.exit("codeFenced"),t(n)}}},xK=document.createElement("i");function xY(e){let t="&"+e+";";xK.innerHTML=t;let n=xK.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&n!==t&&n}let xX={name:"characterReference",tokenize:function(e,t,n){let r,i;let o=this,a=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),s};function s(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),r=31,i=xr,u(t))}function l(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,i=xs,u):(e.enter("characterReferenceValue"),r=7,i=xa,u(t))}function u(s){if(59===s&&a){let r=e.exit("characterReferenceValue");return i!==xr||xY(o.sliceSerialize(r))?(e.enter("characterReferenceMarker"),e.consume(s),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(s)}return i(s)&&a++1&&e[c][1].end.offset-e[c][1].start.offset>1?2:1;let p={...e[n][1].end},d={...e[c][1].start};x5(p,-s),x5(d,s),o={type:s>1?"strongSequence":"emphasisSequence",start:p,end:{...e[n][1].end}},a={type:s>1?"strongSequence":"emphasisSequence",start:{...e[c][1].start},end:d},i={type:s>1?"strongText":"emphasisText",start:{...e[n][1].end},end:{...e[c][1].start}},r={type:s>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[n][1].end={...o.start},e[c][1].start={...a.end},l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=C8(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=C8(l,[["enter",r,t],["enter",o,t],["exit",o,t],["enter",i,t]]),l=C8(l,x0(t.parser.constructs.insideSpan.null,e.slice(n+1,c),t)),l=C8(l,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[c][1].end.offset-e[c][1].start.offset?(u=2,l=C8(l,[["enter",e[c][1],t],["exit",e[c][1],t]])):u=0,C7(e,n-1,c-n+3,l),c=n+l.length-u-2;break}}for(c=-1;++co&&"whitespace"===e[i][1].type&&(i-=2),"atxHeadingSequence"===e[i][1].type&&(o===i-1||i-4>o&&"whitespace"===e[i-2][1].type)&&(i-=o+1===i?2:4),i>o&&(n={type:"atxHeadingText",start:e[o][1].start,end:e[i][1].end},r={type:"chunkText",start:e[o][1].start,end:e[i][1].end,contentType:"text"},C7(e,o,i-o+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]])),e},tokenize:function(e,t,n){let r=0;return function(t){return e.enter("atxHeading"),function(t){return e.enter("atxHeadingSequence"),function t(o){return 35===o&&r++<6?(e.consume(o),t):null===o||xc(o)?(e.exit("atxHeadingSequence"),i(o)):n(o)}(t)}(t)};function i(n){return 35===n?(e.enter("atxHeadingSequence"),function t(n){return 35===n?(e.consume(n),t):(e.exit("atxHeadingSequence"),i(n))}(n)):null===n||xu(n)?(e.exit("atxHeading"),t(n)):xp(n)?xm(e,i,"whitespace")(n):(e.enter("atxHeadingText"),function t(n){return null===n||35===n||xc(n)?(e.exit("atxHeadingText"),i(n)):(e.consume(n),t)}(n))}}},42:xk,45:[xH,xk],60:{concrete:!0,name:"htmlFlow",resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););return t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e},tokenize:function(e,t,n){let r,i,o,a,s;let l=this;return function(t){return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),u}(t)};function u(a){return 33===a?(e.consume(a),c):47===a?(e.consume(a),i=!0,h):63===a?(e.consume(a),r=3,l.interrupt?t:P):xn(a)?(e.consume(a),o=String.fromCharCode(a),f):n(a)}function c(i){return 45===i?(e.consume(i),r=2,p):91===i?(e.consume(i),r=5,a=0,d):xn(i)?(e.consume(i),r=4,l.interrupt?t:P):n(i)}function p(r){return 45===r?(e.consume(r),l.interrupt?t:P):n(r)}function d(r){let i="CDATA[";if(r===i.charCodeAt(a++))return(e.consume(r),a===i.length)?l.interrupt?t:O:d;return n(r)}function h(t){return xn(t)?(e.consume(t),o=String.fromCharCode(t),f):n(t)}function f(a){if(null===a||47===a||62===a||xc(a)){let s=47===a,u=o.toLowerCase();if(!s&&!i&&xV.includes(u))return r=1,l.interrupt?t(a):O(a);if(xZ.includes(o.toLowerCase()))return(r=6,s)?(e.consume(a),m):l.interrupt?t(a):O(a);return r=7,l.interrupt&&!l.parser.lazy[l.now().line]?n(a):i?function t(n){return xp(n)?(e.consume(n),t):w(n)}(a):g(a)}return 45===a||xr(a)?(e.consume(a),o+=String.fromCharCode(a),f):n(a)}function m(r){return 62===r?(e.consume(r),l.interrupt?t:O):n(r)}function g(t){return 47===t?(e.consume(t),w):58===t||95===t||xn(t)?(e.consume(t),A):xp(t)?(e.consume(t),g):w(t)}function A(t){return 45===t||46===t||58===t||95===t||xr(t)?(e.consume(t),A):b(t)}function b(t){return 61===t?(e.consume(t),y):xp(t)?(e.consume(t),b):g(t)}function y(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,v):xp(t)?(e.consume(t),y):function t(n){return null===n||34===n||39===n||47===n||60===n||61===n||62===n||96===n||xc(n)?b(n):(e.consume(n),t)}(t)}function v(t){return t===s?(e.consume(t),s=null,S):null===t||xu(t)?n(t):(e.consume(t),v)}function S(e){return 47===e||62===e||xp(e)?g(e):n(e)}function w(t){return 62===t?(e.consume(t),E):n(t)}function E(t){return null===t||xu(t)?O(t):xp(t)?(e.consume(t),E):n(t)}function O(t){return 45===t&&2===r?(e.consume(t),I):60===t&&1===r?(e.consume(t),k):62===t&&4===r?(e.consume(t),N):63===t&&3===r?(e.consume(t),P):93===t&&5===r?(e.consume(t),R):xu(t)&&(6===r||7===r)?(e.exit("htmlFlowData"),e.check(xG,D,T)(t)):null===t||xu(t)?(e.exit("htmlFlowData"),T(t)):(e.consume(t),O)}function T(t){return e.check(xW,C,D)(t)}function C(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),x}function x(t){return null===t||xu(t)?T(t):(e.enter("htmlFlowData"),O(t))}function I(t){return 45===t?(e.consume(t),P):O(t)}function k(t){return 47===t?(e.consume(t),o="",_):O(t)}function _(t){if(62===t){let n=o.toLowerCase();return xV.includes(n)?(e.consume(t),N):O(t)}return xn(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),_):O(t)}function R(t){return 93===t?(e.consume(t),P):O(t)}function P(t){return 62===t?(e.consume(t),N):45===t&&2===r?(e.consume(t),P):O(t)}function N(t){return null===t||xu(t)?(e.exit("htmlFlowData"),D(t)):(e.consume(t),N)}function D(n){return e.exit("htmlFlow"),t(n)}}},61:xH,95:xk,96:xq,126:xq},Ii={38:xX,92:xJ},Io={[-5]:x$,[-4]:x$,[-3]:x$,33:x6,38:xX,42:x8,60:[{name:"autolink",tokenize:function(e,t,n){let r=0;return function(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i};function i(t){return xn(t)?(e.consume(t),o):64===t?n(t):s(t)}function o(t){return 43===t||45===t||46===t||xr(t)?(r=1,function t(n){return 58===n?(e.consume(n),r=0,a):(43===n||45===n||46===n||xr(n))&&r++<32?(e.consume(n),t):(r=0,s(n))}(t)):s(t)}function a(r){return 62===r?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(r),e.exit("autolinkMarker"),e.exit("autolink"),t):null===r||32===r||60===r||xo(r)?n(r):(e.consume(r),a)}function s(t){return 64===t?(e.consume(t),l):xi(t)?(e.consume(t),s):n(t)}function l(e){return xr(e)?u(e):n(e)}function u(i){return 46===i?(e.consume(i),r=0,l):62===i?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(i),e.exit("autolinkMarker"),e.exit("autolink"),t):function t(i){if((45===i||xr(i))&&r++<63){let n=45===i?t:u;return e.consume(i),n}return n(i)}(i)}}},{name:"htmlText",tokenize:function(e,t,n){let r,i,o;let a=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),s};function s(t){return 33===t?(e.consume(t),l):47===t?(e.consume(t),v):63===t?(e.consume(t),b):xn(t)?(e.consume(t),w):n(t)}function l(t){return 45===t?(e.consume(t),u):91===t?(e.consume(t),i=0,h):xn(t)?(e.consume(t),A):n(t)}function u(t){return 45===t?(e.consume(t),d):n(t)}function c(t){return null===t?n(t):45===t?(e.consume(t),p):xu(t)?(o=c,_(t)):(e.consume(t),c)}function p(t){return 45===t?(e.consume(t),d):c(t)}function d(e){return 62===e?k(e):45===e?p(e):c(e)}function h(t){let r="CDATA[";return t===r.charCodeAt(i++)?(e.consume(t),i===r.length?f:h):n(t)}function f(t){return null===t?n(t):93===t?(e.consume(t),m):xu(t)?(o=f,_(t)):(e.consume(t),f)}function m(t){return 93===t?(e.consume(t),g):f(t)}function g(t){return 62===t?k(t):93===t?(e.consume(t),g):f(t)}function A(t){return null===t||62===t?k(t):xu(t)?(o=A,_(t)):(e.consume(t),A)}function b(t){return null===t?n(t):63===t?(e.consume(t),y):xu(t)?(o=b,_(t)):(e.consume(t),b)}function y(e){return 62===e?k(e):b(e)}function v(t){return xn(t)?(e.consume(t),S):n(t)}function S(t){return 45===t||xr(t)?(e.consume(t),S):function t(n){return xu(n)?(o=t,_(n)):xp(n)?(e.consume(n),t):k(n)}(t)}function w(t){return 45===t||xr(t)?(e.consume(t),w):47===t||62===t||xc(t)?E(t):n(t)}function E(t){return 47===t?(e.consume(t),k):58===t||95===t||xn(t)?(e.consume(t),O):xu(t)?(o=E,_(t)):xp(t)?(e.consume(t),E):k(t)}function O(t){return 45===t||46===t||58===t||95===t||xr(t)?(e.consume(t),O):function t(n){return 61===n?(e.consume(n),T):xu(n)?(o=t,_(n)):xp(n)?(e.consume(n),t):E(n)}(t)}function T(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),r=t,C):xu(t)?(o=T,_(t)):xp(t)?(e.consume(t),T):(e.consume(t),x)}function C(t){return t===r?(e.consume(t),r=void 0,I):null===t?n(t):xu(t)?(o=C,_(t)):(e.consume(t),C)}function x(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):47===t||62===t||xc(t)?E(t):(e.consume(t),x)}function I(e){return 47===e||62===e||xc(e)?E(e):n(e)}function k(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}function _(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),R}function R(t){return xp(t)?xm(e,P,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):P(t)}function P(t){return e.enter("htmlTextData"),o(t)}}}],91:x9,92:[{name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.consume(t),r};function r(r){return xu(r)?(e.exit("hardBreakEscape"),t(r)):n(r)}}},xJ],93:x1,95:x8,96:{name:"codeText",previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type},resolve:function(e){let t,n,r=e.length-4,i=3;if(("lineEnding"===e[3][1].type||"space"===e[i][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type)){for(t=i;++t13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(65535&n)==65535||(65535&n)==65534||n>1114111?"�":String.fromCodePoint(n)}let Ip=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Id(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){let e=n.charCodeAt(1),t=120===e||88===e;return Ic(n.slice(t?2:1),t?16:10)}return xY(n)||e}let Ih={}.hasOwnProperty;function If(e){return{line:e.line,column:e.column,offset:e.offset}}function Im(e,t){if(e)throw Error("Cannot close `"+e.type+"` ("+CF({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+CF({start:t.start,end:t.end})+") is open");throw Error("Cannot close document, a token (`"+t.type+"`, "+CF({start:t.start,end:t.end})+") is still open")}function Ig(e){let t=this;t.parser=function(n){var r,i,o;let a,s,l,u;return r=n,i={...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]},"object"==typeof i&&(o=i,i=void 0),(function(e){let t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:r(A),autolinkProtocol:u,autolinkEmail:u,atxHeading:r(f),blockQuote:r(function(){return{type:"blockquote",children:[]}}),characterEscape:u,characterReference:u,codeFenced:r(h),codeFencedFenceInfo:i,codeFencedFenceMeta:i,codeIndented:r(h,i),codeText:r(function(){return{type:"inlineCode",value:""}},i),codeTextData:u,data:u,codeFlowValue:u,definition:r(function(){return{type:"definition",identifier:"",label:null,title:null,url:""}}),definitionDestinationString:i,definitionLabelString:i,definitionTitleString:i,emphasis:r(function(){return{type:"emphasis",children:[]}}),hardBreakEscape:r(m),hardBreakTrailing:r(m),htmlFlow:r(g,i),htmlFlowData:u,htmlText:r(g,i),htmlTextData:u,image:r(function(){return{type:"image",title:null,url:"",alt:null}}),label:i,link:r(A),listItem:r(function(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}),listItemValue:function(e){this.data.expectingFirstListItemValue&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0)},listOrdered:r(b,function(){this.data.expectingFirstListItemValue=!0}),listUnordered:r(b),paragraph:r(function(){return{type:"paragraph",children:[]}}),reference:function(){this.data.referenceType="collapsed"},referenceString:i,resourceDestinationString:i,resourceTitleString:i,setextHeading:r(f),strong:r(function(){return{type:"strong",children:[]}}),thematicBreak:r(function(){return{type:"thematicBreak"}})},exit:{atxHeading:a(),atxHeadingSequence:function(e){let t=this.stack[this.stack.length-1];if(!t.depth){let n=this.sliceSerialize(e).length;t.depth=n}},autolink:a(),autolinkEmail:function(e){c.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)},autolinkProtocol:function(e){c.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)},blockQuote:a(),characterEscapeValue:c,characterReferenceMarkerHexadecimal:d,characterReferenceMarkerNumeric:d,characterReferenceValue:function(e){let t;let n=this.sliceSerialize(e),r=this.data.characterReferenceType;r?(t=Ic(n,"characterReferenceMarkerNumeric"===r?10:16),this.data.characterReferenceType=void 0):t=xY(n);let i=this.stack[this.stack.length-1];i.value+=t},characterReference:function(e){this.stack.pop().position.end=If(e.end)},codeFenced:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}),codeFencedFence:function(){!this.data.flowCodeInside&&(this.buffer(),this.data.flowCodeInside=!0)},codeFencedFenceInfo:function(){let e=this.resume();this.stack[this.stack.length-1].lang=e},codeFencedFenceMeta:function(){let e=this.resume();this.stack[this.stack.length-1].meta=e},codeFlowValue:c,codeIndented:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}),codeText:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),codeTextData:c,data:c,definition:a(),definitionDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},definitionLabelString:function(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=xF(this.sliceSerialize(e)).toLowerCase()},definitionTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},emphasis:a(),hardBreakEscape:a(p),hardBreakTrailing:a(p),htmlFlow:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlFlowData:c,htmlText:a(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlTextData:c,image:a(function(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}),label:function(){let e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];if(this.data.inReference=!0,"link"===n.type){let t=e.children;n.children=t}else n.alt=t},labelText:function(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=t.replace(Ip,Id),n.identifier=xF(t).toLowerCase()},lineEnding:function(e){let n=this.stack[this.stack.length-1];if(this.data.atHardBreak){n.children[n.children.length-1].position.end=If(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(u.call(this,e),c.call(this,e))},link:a(function(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}),listItem:a(),listOrdered:a(),listUnordered:a(),paragraph:a(),referenceString:function(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=xF(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType="full"},resourceDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){this.data.inReference=void 0},setextHeading:a(function(){this.data.setextHeadingSlurpLineEnding=void 0}),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).codePointAt(0)?1:2},setextHeadingText:function(){this.data.setextHeadingSlurpLineEnding=!0},strong:a(),thematicBreak:a()}};(function e(t,n){let r=-1;for(;++r0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||Im).call(a,void 0,e[0])}for(r.position={start:If(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:If(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},c=-1;++c-1){let e=n[0];"string"==typeof e?n[0]=e.slice(i):n.shift()}a>0&&n.push(e[o].slice(0,a))}return n}(a,e)}function d(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:o}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:o}}function h(e){c=c(e)}function f(e,t){t.restore()}function m(e,t){return function(n,i,o){let a,c,p,h;return Array.isArray(n)?f(n):"tokenize"in n?f([n]):function(e){return function(t){let n=null!==t&&e[t],r=null!==t&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}(n);function f(e){return(a=e,c=0,0===e.length)?o:m(e[c])}function m(e){return function(n){return(h=function(){let e=d(),t=u.previous,n=u.currentConstruct,i=u.events.length,o=Array.from(s);return{from:i,restore:function(){r=e,u.previous=t,u.currentConstruct=n,u.events.length=i,s=o,A()}}}(),p=e,!e.partial&&(u.currentConstruct=e),e.name&&u.parser.constructs.disable.null.includes(e.name))?b(n):e.tokenize.call(t?Object.assign(Object.create(u),t):u,l,g,b)(n)}}function g(t){return e(p,h),i}function b(e){return(h.restore(),++c{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw TypeError("unable to deserialize "+e)}return new IA[e](t)},Iy=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[o,a]=t[i];switch(o){case 0:case -1:return n(a,i);case 1:{let e=n([],i);for(let t of a)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of a)e[r(t)]=r(n);return e}case 3:return n(new Date(a),i);case 4:{let{source:e,flags:t}=a;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of a)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of a)e.add(r(t));return e}case 7:{let{name:e,message:t}=a;return n(Ib(e,t),i)}case 8:return n(BigInt(a),i);case"BigInt":return n(Object(BigInt(a)),i);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{let{buffer:e}=new Uint8Array(a);return n(new DataView(e),a)}}return n(Ib(o,a),i)};return r},Iv=e=>Iy(new Map,e)(0),{toString:IS}={},{keys:Iw}=Object,IE=e=>{let t=typeof e;if("object"!==t||!e)return[0,t];let n=IS.call(e).slice(8,-1);switch(n){case"Array":return[1,""];case"Object":return[2,""];case"Date":return[3,""];case"RegExp":return[4,""];case"Map":return[5,""];case"Set":return[6,""];case"DataView":return[1,n]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},IO=([e,t])=>0===e&&("function"===t||"symbol"===t),IT=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},o=r=>{if(n.has(r))return n.get(r);let[a,s]=IE(r);switch(a){case 0:{let t=r;switch(s){case"bigint":a=8,t=r.toString();break;case"function":case"symbol":if(e)throw TypeError("unable to serialize "+s);t=null;break;case"undefined":return i([-1],r)}return i([a,t],r)}case 1:{if(s){let e=r;return"DataView"===s?e=new Uint8Array(r.buffer):"ArrayBuffer"===s&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([a,e],r);for(let t of r)e.push(o(t));return t}case 2:{if(s)switch(s){case"BigInt":return i([s,r.toString()],r);case"Boolean":case"Number":case"String":return i([s,r.valueOf()],r)}if(t&&"toJSON"in r)return o(r.toJSON());let n=[],l=i([a,n],r);for(let t of Iw(r))(e||!IO(IE(r[t])))&&n.push([o(t),o(r[t])]);return l}case 3:return i([a,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([a,{source:e,flags:t}],r)}case 5:{let t=[],n=i([a,t],r);for(let[n,i]of r)(e||!(IO(IE(n))||IO(IE(i))))&&t.push([o(n),o(i)]);return n}case 6:{let t=[],n=i([a,t],r);for(let n of r)(e||!IO(IE(n)))&&t.push(o(n));return n}}let{message:l}=r;return i([a,{name:s,message:l}],r)};return o},IC=(e,{json:t,lossy:n}={})=>{let r=[];return IT(!(t||n),!!t,new Map,r)(e),r},Ix="function"==typeof structuredClone?(e,t)=>t&&("json"in t||"lossy"in t)?Iv(IC(e,t)):structuredClone(e):(e,t)=>Iv(IC(e,t));function II(e){let t=[],n=-1,r=0,i=0;for(;++n55295&&o<57344){let t=e.charCodeAt(n+1);o<56320&&t>56319&&t<57344?(a=String.fromCharCode(o,t),i=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Ik(e,t){let n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function I_(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}let IR=function(e){if(null==e)return IN;if("function"==typeof e)return IP(e);if("object"==typeof e)return Array.isArray(e)?function(e){let t=[],n=-1;for(;++n":"")+")"})}return c;function c(){let u,c,p,d=IM;if((!t||o(i,s,l[l.length-1]||void 0))&&!1===(d=function(e){return Array.isArray(e)?e:"number"==typeof e?[!0,e]:null==e?IM:[e]}(n(i,l)))[0])return d;if("children"in i&&i.children&&i.children&&"skip"!==d[0])for(c=(r?i.children.length:-1)+a,p=l.concat(i);c>-1&&c1:t}function IU(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;9===t||32===t;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;9===t||32===t;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}let Ij={blockquote:function(e,t){let n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){let n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){let n=t.value?t.value+"\n":"",r={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(r.className=["language-"+i[0]]);let o={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o={type:"element",tagName:"pre",properties:{},children:[o=e.applyData(t,o)]},e.patch(t,o),o},delete:function(e,t){let n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){let n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:function(e,t){let n;let r="string"==typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),o=II(i.toLowerCase()),a=e.footnoteOrder.indexOf(i),s=e.footnoteCounts.get(i);void 0===s?(s=0,e.footnoteOrder.push(i),n=e.footnoteOrder.length):n=a+1,s+=1,e.footnoteCounts.set(i,s);let l={type:"element",tagName:"a",properties:{href:"#"+r+"fn-"+o,id:r+"fnref-"+o+(s>1?"-"+s:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(n)}]};e.patch(t,l);let u={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,u),e.applyData(t,u)},heading:function(e,t){let n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.options.allowDangerousHtml){let n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}},imageReference:function(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return IB(e,t);let i={src:II(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(i.title=r.title);let o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)},image:function(e,t){let n={src:II(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);let r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){let n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);let r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return IB(e,t);let i={href:II(r.url||"")};null!==r.title&&void 0!==r.title&&(i.title=r.title);let o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)},link:function(e,t){let n={href:II(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);let r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){let r=e.all(t),i=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r0&&e.children.unshift({type:"text",value:" "}),e.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let s=-1;for(;++s0){let r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},o=CL(t.children[1]),a=CM(t.children[t.children.length-1]);o&&a&&(r.position={start:o,end:a}),i.push(r)}let o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)},tableCell:function(e,t){let n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){let r=n?n.children:void 0,i=0===(r?r.indexOf(t):1)?"th":"td",o=n&&"table"===n.type?n.align:void 0,a=o?o.length:t.children.length,s=-1,l=[];for(;++s0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(IU(t.slice(i),i>0,!1)),o.join("")}(String(t.value))};return e.patch(t,n),e.applyData(t,n)},thematicBreak:function(e,t){let n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)},toml:Iz,yaml:Iz,definition:Iz,footnoteDefinition:Iz};function Iz(){}let IH={}.hasOwnProperty,IZ={};function IV(e,t){e.position&&(t.position=function(e){let t=CL(e),n=CM(e);if(t&&n)return{start:t,end:n}}(e))}function IG(e,t){let n=t;if(e&&e.data){let t=e.data.hName,r=e.data.hChildren,i=e.data.hProperties;"string"==typeof t&&("element"===n.type?n.tagName=t:n={type:"element",tagName:t,properties:{},children:"children"in n?n.children:[n]}),"element"===n.type&&i&&Object.assign(n.properties,Ix(i)),"children"in n&&n.children&&null!=r&&(n.children=r)}return n}function IW(e,t){let n=t.data||{},r="value"in t&&!(IH.call(n,"hProperties")||IH.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function IQ(e,t){let n=[],r=-1;for(t&&n.push({type:"text",value:"\n"});++r0&&n.push({type:"text",value:"\n"}),n}function Iq(e){let t=0,n=e.charCodeAt(t);for(;9===n||32===n;)t++,n=e.charCodeAt(t);return e.slice(t)}function IK(e,t){let n=function(e,t){let n=t||IZ,r=new Map,i=new Map,o=new Map,a={all:function(e){let t=[];if("children"in e){let n=e.children,r=-1;for(;++r0&&p.push({type:"text",value:" "});let e="string"==typeof n?n:n(l,c);"string"==typeof e&&(e={type:"text",value:e}),p.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+u+(c>1?"-"+c:""),dataFootnoteBackref:"",ariaLabel:"string"==typeof r?r:r(l,c),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}let h=o[o.length-1];if(h&&"element"===h.type&&"p"===h.tagName){let e=h.children[h.children.length-1];e&&"text"===e.type?e.value+=" ":h.children.push({type:"text",value:" "}),h.children.push(...p)}else o.push(...p);let f={type:"element",tagName:"li",properties:{id:t+"fn-"+u},children:e.wrap(o,!0)};e.patch(i,f),s.push(f)}if(0!==s.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...Ix(a),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(s,!0)},{type:"text",value:"\n"}]}}(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:"\n"},i),o}function IY(e,t){return e&&"run"in e?async function(n,r){let i=IK(n,{file:r,...t});await e.run(i,r)}:function(n,r){return IK(n,{file:r,...e||t})}}function IX(e){if(e)throw e}var IJ=n("94470");function I$(e){if("object"!=typeof e||null===e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}let I0={basename:function(e,t){let n;if(void 0!==t&&"string"!=typeof t)throw TypeError('"ext" argument must be a string');I1(e);let r=0,i=-1,o=e.length;if(void 0===t||0===t.length||t.length>e.length){for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else i<0&&(n=!0,i=o+1);return i<0?"":e.slice(r,i)}if(t===e)return"";let a=-1,s=t.length-1;for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else a<0&&(n=!0,a=o+1),s>-1&&(e.codePointAt(o)===t.codePointAt(s--)?s<0&&(i=o):(s=-1,i=a));return r===i?i=a:i<0&&(i=e.length),e.slice(r,i)},dirname:function(e){let t;if(I1(e),0===e.length)return".";let n=-1,r=e.length;for(;--r;)if(47===e.codePointAt(r)){if(t){n=r;break}}else!t&&(t=!0);return n<0?47===e.codePointAt(0)?"/":".":1===n&&47===e.codePointAt(0)?"//":e.slice(0,n)},extname:function(e){let t;I1(e);let n=e.length,r=-1,i=0,o=-1,a=0;for(;n--;){let s=e.codePointAt(n);if(47===s){if(t){i=n+1;break}continue}r<0&&(t=!0,r=n+1),46===s?o<0?o=n:1!==a&&(a=1):o>-1&&(a=-1)}return o<0||r<0||0===a||1===a&&o===r-1&&o===i+1?"":e.slice(o,r)},join:function(...e){let t,n=-1;for(;++n2){if((r=i.lastIndexOf("/"))!==i.length-1){r<0?(i="",o=0):o=(i=i.slice(0,r)).length-1-i.lastIndexOf("/"),a=l,s=0;continue}}else if(i.length>0){i="",o=0,a=l,s=0;continue}}t&&(i=i.length>0?i+"/..":"..",o=2)}else i.length>0?i+="/"+e.slice(a+1,l):i=e.slice(a+1,l),o=l-a-1;a=l,s=0}else 46===n&&s>-1?s++:s=-1}return i}(e,!t);return 0===n.length&&!t&&(n="."),n.length>0&&47===e.codePointAt(e.length-1)&&(n+="/"),t?"/"+n:n}(t)},sep:"/"};function I1(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}let I2={cwd:function(){return"/"}};function I4(e){return!!(null!==e&&"object"==typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}let I3=["history","path","basename","stem","extname","dirname"];class I6{constructor(e){let t,n;t=e?I4(e)?{path:e}:"string"==typeof e||function(e){return!!(e&&"object"==typeof e&&"byteLength"in e&&"byteOffset"in e)}(e)?{value:e}:e:{},this.cwd="cwd"in t?"":I2.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++rt.length;a&&t.push(r);try{o=e.apply(this,t)}catch(e){if(a&&n)throw e;return r(e)}!a&&(o&&o.then&&"function"==typeof o.then?o.then(i,r):o instanceof Error?r(o):i(o))};function r(e,...i){!n&&(n=!0,t(e,...i))}function i(e){r(null,e)}})(s,i)(...a):r(null,...a)})(null,...t)},use:function(n){if("function"!=typeof n)throw TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}};return t}()}copy(){let e=new kt,t=-1;for(;++t0){let[r,...o]=t,a=n[i][1];I$(a)&&I$(r)&&(r=IJ(!0,a,r)),n[i]=[e,r,...o]}}}}let kn=new kt().freeze();function kr(e,t){if("function"!=typeof t)throw TypeError("Cannot `"+e+"` without `parser`")}function ki(e,t){if("function"!=typeof t)throw TypeError("Cannot `"+e+"` without `compiler`")}function ko(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function ka(e){if(!I$(e)||"string"!=typeof e.type)throw TypeError("Expected node, got `"+e+"`")}function ks(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function kl(e){return function(e){return!!(e&&"object"==typeof e&&"message"in e&&"messages"in e)}(e)?e:new I6(e)}let ku=[],kc={allowDangerousHtml:!0},kp=/^(https?|ircs?|mailto|xmpp)$/i,kd=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function kh(e){let t=function(e){let t=e.rehypePlugins||ku,n=e.remarkPlugins||ku,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...kc}:kc;return kn().use(Ig).use(n).use(IY,r).use(t)}(e),n=function(e){let t=e.children||"",n=new I6;return"string"==typeof t&&(n.value=t),n}(e);return function(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,a=t.skipHtml,s=t.unwrapDisallowed,l=t.urlTransform||kf;for(let e of kd)Object.hasOwn(t,e.from)&&(e.from,e.to&&e.to,e.id);return n,t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:"root"===e.type?e.children:[e]}),IL(e,function(e,t,i){if("raw"===e.type&&i&&"number"==typeof t)return a?i.children.splice(t,1):i.children[t]={type:"text",value:e.value},t;if("element"===e.type){let t;for(t in C2)if(Object.hasOwn(C2,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=C2[t];(null===r||r.includes(e.tagName))&&(e.properties[t]=l(String(n||""),t,e))}}if("element"===e.type){let a=n?!n.includes(e.tagName):!!o&&o.includes(e.tagName);if(!a&&r&&"number"==typeof t&&(a=!r(e,t,i)),a&&i&&"number"==typeof t)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}),function(e,t){let n;if(!t||void 0===t.Fragment)throw TypeError("Expected `Fragment` in options");let r=t.filePath||void 0;if(t.development){if("function"!=typeof t.jsxDEV)throw TypeError("Expected `jsxDEV` in options when `development: true`");n=function(e,t){return function(n,r,i,o){let a=Array.isArray(i.children),s=CL(n);return t(r,i,o,a,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}(r,t.jsxDEV)}else{if("function"!=typeof t.jsx)throw TypeError("Expected `jsx` in production options");if("function"!=typeof t.jsxs)throw TypeError("Expected `jsxs` in production options");n=function(e,t,n){return function(e,r,i,o){let a=Array.isArray(i.children)?n:t;return o?a(r,i,o):a(r,i)}}(r,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:n,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:r,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:!1!==t.passKeys,passNode:t.passNode||!1,schema:"svg"===t.space?CO:CE,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==t.tableCellAlignToStyle},o=CK(i,e,void 0);return o&&"string"!=typeof o?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}(e,{Fragment:eJ.Fragment,components:i,ignoreInvalidStyle:!0,jsx:eJ.jsx,jsxs:eJ.jsxs,passKeys:!0,passNode:!0})}(t.runSync(t.parse(n),n),e)}function kf(e){let t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return -1===t||-1!==i&&t>i||-1!==n&&t>n||-1!==r&&t>r||kp.test(e.slice(0,t))?e:""}let km=/[#.]/g;function kg(e,t,n){let r=n?function(e){let t=new Map;for(let n of e)t.set(n.toLowerCase(),n);return t}(n):void 0;return function(n,i,...o){let a;if(null==n){a={type:"root",children:[]};o.unshift(i)}else{let s=(a=function(e,t){let n,r;let i=e||"",o={},a=0;for(;a1?n[e.line-2]:0)+e.column-1;if(r-1&&e<=t.length){let r=0;for(;;){let i=n[r];if(void 0===i){let e=kv(t,n[r-1]);i=-1===e?t.length+1:e+1,n[r]=i}if(i>e)return{line:r+1,column:e-(r>0?n[r-1]:0)+1,offset:e};r++}}}}}(t),i=r.toPoint(0),o=r.toPoint(t.length);n.position={start:i,end:o}}return n}case"#documentType":return kC(e,t,n={type:"doctype"}),n;case"#text":return n={type:"text",value:t.value},kC(e,t,n),n;default:return n=function(e,t){let n=e.schema;e.schema=t.namespaceURI===kS.svg?CO:CE;let r=-1,i={};for(;++r=55296&&e<=57343}function kj(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159}function kz(e){return e>=64976&&e<=65007||kB.has(e)}(I=eN||(eN={})).controlCharacterInInputStream="control-character-in-input-stream",I.noncharacterInInputStream="noncharacter-in-input-stream",I.surrogateInInputStream="surrogate-in-input-stream",I.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",I.endTagWithAttributes="end-tag-with-attributes",I.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",I.unexpectedSolidusInTag="unexpected-solidus-in-tag",I.unexpectedNullCharacter="unexpected-null-character",I.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",I.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",I.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",I.missingEndTagName="missing-end-tag-name",I.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",I.unknownNamedCharacterReference="unknown-named-character-reference",I.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",I.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",I.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",I.eofBeforeTagName="eof-before-tag-name",I.eofInTag="eof-in-tag",I.missingAttributeValue="missing-attribute-value",I.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",I.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",I.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",I.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",I.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",I.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",I.missingDoctypePublicIdentifier="missing-doctype-public-identifier",I.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",I.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",I.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",I.cdataInHtmlContent="cdata-in-html-content",I.incorrectlyOpenedComment="incorrectly-opened-comment",I.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",I.eofInDoctype="eof-in-doctype",I.nestedComment="nested-comment",I.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",I.eofInComment="eof-in-comment",I.incorrectlyClosedComment="incorrectly-closed-comment",I.eofInCdata="eof-in-cdata",I.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",I.nullCharacterReference="null-character-reference",I.surrogateCharacterReference="surrogate-character-reference",I.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",I.controlCharacterReference="control-character-reference",I.noncharacterCharacterReference="noncharacter-character-reference",I.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",I.missingDoctypeName="missing-doctype-name",I.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",I.duplicateAttribute="duplicate-attribute",I.nonConformingDoctype="non-conforming-doctype",I.missingDoctype="missing-doctype",I.misplacedDoctype="misplaced-doctype",I.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",I.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",I.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",I.openElementsLeftAfterEof="open-elements-left-after-eof",I.abandonedHeadElementChild="abandoned-head-element-child",I.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",I.nestedNoscriptInHead="nested-noscript-in-head",I.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text";class kH{constructor(e){this.handler=e,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+Number(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(e,t){let{line:n,col:r,offset:i}=this,o=r+t,a=i+t;return{code:e,startLine:n,endLine:n,startCol:o,endCol:o,startOffset:a,endOffset:a}}_err(e){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(e,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(e){if(this.pos!==this.html.length-1){var t;let n=this.html.charCodeAt(this.pos+1);if((t=n)>=56320&&t<=57343)return this.pos++,this._addGap(),(e-55296)*1024+9216+n}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,eP.EOF;return this._err(eN.surrogateInInputStream),e}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(e,t){this.html.length>0?this.html+=e:this.html=e,this.endOfChunkHit=!1,this.lastChunkWritten=t}insertHtmlAtCurrentPos(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(e,t){if(this.pos+e.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(t)return this.html.startsWith(e,this.pos);for(let t=0;t=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,eP.EOF;let n=this.html.charCodeAt(t);return n===eP.CARRIAGE_RETURN?eP.LINE_FEED:n}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,eP.EOF;let e=this.html.charCodeAt(this.pos);return e===eP.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,eP.LINE_FEED):e===eP.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,kU(e)&&(e=this._processSurrogate(e)),!(null===this.handler.onParseError||e>31&&e<127||e===eP.LINE_FEED||e===eP.CARRIAGE_RETURN||e>159&&e<64976)&&this._checkForProblematicCharacters(e),e)}_checkForProblematicCharacters(e){kj(e)?this._err(eN.controlCharacterInInputStream):kz(e)&&this._err(eN.noncharacterInInputStream)}retreat(e){for(this.pos-=e;this.pos=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null}(k=eD||(eD={}))[k.CHARACTER=0]="CHARACTER",k[k.NULL_CHARACTER=1]="NULL_CHARACTER",k[k.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",k[k.START_TAG=3]="START_TAG",k[k.END_TAG=4]="END_TAG",k[k.COMMENT=5]="COMMENT",k[k.DOCTYPE=6]="DOCTYPE",k[k.EOF=7]="EOF",k[k.HIBERNATION=8]="HIBERNATION";let kV=new Uint16Array('ᵁ<\xd5ıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig耻\xc6䃆P耻&䀦cute耻\xc1䃁reve;䄂Āiyx}rc耻\xc2䃂;䐐r;쀀\ud835\udd04rave耻\xc0䃀pha;䎑acr;䄀d;橓Āgp\x9d\xa1on;䄄f;쀀\ud835\udd38plyFunction;恡ing耻\xc5䃅Ācs\xbe\xc3r;쀀\ud835\udc9cign;扔ilde耻\xc3䃃ml耻\xc4䃄Ѐaceforsu\xe5\xfb\xfeėĜĢħĪĀcr\xea\xf2kslash;或Ŷ\xf6\xf8;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀\ud835\udd05pf;쀀\ud835\udd39eve;䋘c\xf2ēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻\xa9䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻\xc7䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷\xf2ſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀\ud835\udc9epĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀\ud835\udd07Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀\ud835\udd3bƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegra\xecȹoɴ͹\0\0ͻ\xbb͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔e\xe5ˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀\ud835\udc9frok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻\xd0䃐cute耻\xc9䃉ƀaiyӒӗӜron;䄚rc耻\xca䃊;䐭ot;䄖r;쀀\ud835\udd08rave耻\xc8䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀\ud835\udd3csilon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻\xcb䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀\ud835\udd09lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀\ud835\udd3dAll;戀riertrf;愱c\xf2׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀\ud835\udd0a;拙pf;쀀\ud835\udd3eeater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀\ud835\udca2;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅ\xf2کrok;䄦mpńېۘownHum\xf0įqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻\xcd䃍Āiyܓܘrc耻\xce䃎;䐘ot;䄰r;愑rave耻\xcc䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lie\xf3ϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀\ud835\udd40a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻\xcf䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀\ud835\udd0dpf;쀀\ud835\udd41ǣ߇\0ߌr;쀀\ud835\udca5rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀\ud835\udd0epf;쀀\ud835\udd42cr;쀀\ud835\udca6րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ight\xe1Μs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀\ud835\udd0fĀ;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊight\xe1οight\xe1ϊf;쀀\ud835\udd43erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂ\xf2ࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀\ud835\udd10nusPlus;戓pf;쀀\ud835\udd44c\xf2੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘\xeb૙eryThi\xee૙tedĀGL૸ଆreaterGreate\xf2ٳessLes\xf3ੈLine;䀊r;쀀\ud835\udd11ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀\ud835\udca9ilde耻\xd1䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻\xd3䃓Āiy෎ීrc耻\xd4䃔;䐞blac;䅐r;쀀\ud835\udd12rave耻\xd2䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀\ud835\udd46enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀\ud835\udcaaash耻\xd8䃘iŬื฼de耻\xd5䃕es;樷ml耻\xd6䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀\ud835\udd13i;䎦;䎠usMinus;䂱Āipຢອncareplan\xe5ڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀\ud835\udcab;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀\ud835\udd14pf;愚cr;쀀\ud835\udcac؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻\xae䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r\xbbཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀\ud835\udd16ortȀDLRUᄪᄴᄾᅉownArrow\xbbОeftArrow\xbb࢚ightArrow\xbb࿝pArrow;憑gma;䎣allCircle;战pf;쀀\ud835\udd4aɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀\ud835\udcaear;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Th\xe1ྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et\xbbሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻\xde䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀\ud835\udd17Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀\ud835\udd4bipleDot;惛Āctዖዛr;쀀\ud835\udcafrok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻\xda䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻\xdb䃛;䐣blac;䅰r;쀀\ud835\udd18rave耻\xd9䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀\ud835\udd4cЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥own\xe1ϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀\ud835\udcb0ilde;䅨ml耻\xdc䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀\ud835\udd19pf;쀀\ud835\udd4dcr;쀀\ud835\udcb1dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀\ud835\udd1apf;쀀\ud835\udd4ecr;쀀\ud835\udcb2Ȁfiosᓋᓐᓒᓘr;쀀\ud835\udd1b;䎞pf;쀀\ud835\udd4fcr;쀀\ud835\udcb3ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻\xdd䃝Āiyᔉᔍrc;䅶;䐫r;쀀\ud835\udd1cpf;쀀\ud835\udd50cr;쀀\ud835\udcb4ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidt\xe8૙a;䎖r;愨pf;愤cr;쀀\ud835\udcb5௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻\xe1䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻\xe2䃢te肻\xb4̆;䐰lig耻\xe6䃦Ā;r\xb2ᖺ;쀀\ud835\udd1erave耻\xe0䃠ĀepᗊᗖĀfpᗏᗔsym;愵\xe8ᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e\xbbᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢\xbb\xb9arr;捼Āgpᙣᙧon;䄅f;쀀\ud835\udd52΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒ\xf1ᚃing耻\xe5䃥ƀctyᚡᚦᚨr;쀀\ud835\udcb6;䀪mpĀ;e዁ᚯ\xf1ʈilde耻\xe3䃣ml耻\xe4䃤Āciᛂᛈonin\xf4ɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e\xbbᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰s\xe9ᜌno\xf5ēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀\ud835\udd1fg΀costuvwឍឝឳេ៕៛៞ƀaiuបពរ\xf0ݠrc;旯p\xbb፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄e\xe5ᑄ\xe5ᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀\ud835\udd53Ā;tᏋᡣom\xbbᏌtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻\xa6䂦Ȁceioᥑᥖᥚᥠr;쀀\ud835\udcb7mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t\xbb᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁\xeeړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻\xe7䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻\xb8ƭptyv;榲t脀\xa2;eᨭᨮ䂢r\xe4Ʋr;쀀\ud835\udd20ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark\xbbᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟\xbbཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it\xbb᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;q\xc7\xc6ɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁\xeeᅠeĀmx᫱᫶ent\xbb᫩e\xf3ɍǧ᫾\0ᬇĀ;dኻᬂot;橭n\xf4Ɇƀfryᬐᬔᬗ;쀀\ud835\udd54o\xe4ɔ脀\xa9;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀\ud835\udcb8Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒre\xe3᭳u\xe3᭵ee;拎edge;拏en耻\xa4䂤earrowĀlrᯮ᯳eft\xbbᮀight\xbbᮽe\xe4ᯝĀciᰁᰇonin\xf4Ƿnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍r\xf2΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸\xf2ᄳhĀ;vᱚᱛ怐\xbbऊūᱡᱧarow;椏a\xe3̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻\xb0䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀\ud835\udd21arĀlrᲳᲵ\xbbࣜ\xbbသʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀\xf7;o᳧ᳰntimes;拇n\xf8᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀\ud835\udd55ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedg\xe5\xfanƀadhᄮᵝᵧownarrow\xf3ᲃarpoonĀlrᵲᵶef\xf4Ჴigh\xf4ᲶŢᵿᶅkaro\xf7གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀\ud835\udcb9;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃r\xf2Щa\xf2ྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴo\xf4ᲉĀcsḎḔute耻\xe9䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻\xea䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀\ud835\udd22ƀ;rsṐṑṗ檚ave耻\xe8䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et\xbbẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀\ud835\udd56ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on\xbbớ;䏵ȀcsuvỪỳἋἣĀioữḱrc\xbbḮɩỹ\0\0ỻ\xedՈantĀglἂἆtr\xbbṝess\xbbṺƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯o\xf4͒ĀahὉὋ;䎷耻\xf0䃰Āmrὓὗl耻\xeb䃫o;悬ƀcipὡὤὧl;䀡s\xf4ծĀeoὬὴctatio\xeeՙnential\xe5չৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotse\xf1Ṅy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀\ud835\udd23lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀\ud835\udd57ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻\xbd䂽;慓耻\xbc䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻\xbe䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀\ud835\udcbbࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lan\xf4٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀\ud835\udd24Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox\xbbℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀\ud835\udd58Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎pro\xf8₞r;楸qĀlqؿ↖les\xf3₈i\xed٫Āen↣↭rtneqq;쀀≩︀\xc5↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽r\xf2ΠȀilmr⇐⇔⇗⇛rs\xf0ᒄf\xbb․il\xf4کĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it\xbb∊lip;怦con;抹r;쀀\ud835\udd25sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀\ud835\udd59bar;怕ƀclt≯≴≸r;쀀\ud835\udcbdas\xe8⇴rok;䄧Ābp⊂⊇ull;恃hen\xbbᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻\xed䃭ƀ;iyݱ⊰⊵rc耻\xee䃮;䐸Ācx⊼⊿y;䐵cl耻\xa1䂡ĀfrΟ⋉;쀀\ud835\udd26rave耻\xec䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓in\xe5ގar\xf4ܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝do\xf4⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙er\xf3ᕣ\xe3⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀\ud835\udd5aa;䎹uest耻\xbf䂿Āci⎊⎏r;쀀\ud835\udcbenʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻\xef䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀\ud835\udd27ath;䈷pf;쀀\ud835\udd5bǣ⏬\0⏱r;쀀\ud835\udcbfrcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀\ud835\udd28reen;䄸cy;䑅cy;䑜pf;쀀\ud835\udd5ccr;쀀\ud835\udcc0஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼r\xf2৆\xf2Εail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴ra\xeeࡌbda;䎻gƀ;dlࢎⓁⓃ;榑\xe5ࢎ;檅uo耻\xab䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝\xeb≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼\xecࢰ\xe2┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□a\xe9⓶arpoonĀdu▯▴own\xbbњp\xbb०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoon\xf3྘quigarro\xf7⇰hreetimes;拋ƀ;qs▋ও◺lan\xf4বʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋ppro\xf8Ⓠot;拖qĀgq♃♅\xf4উgt\xf2⒌\xf4ছi\xedলƀilr♕࣡♚sht;楼;쀀\ud835\udd29Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖r\xf2◁orne\xf2ᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che\xbb⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox\xbb⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽r\xebࣁgƀlmr⛿✍✔eftĀar০✇ight\xe1৲apsto;柼ight\xe1৽parrowĀlr✥✩ef\xf4⓭ight;憬ƀafl✶✹✽r;榅;쀀\ud835\udd5dus;樭imes;樴š❋❏st;戗\xe1ፎƀ;ef❗❘᠀旊nge\xbb❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇r\xf2ࢨorne\xf2ᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀\ud835\udcc1mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹re\xe5◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀\xc5⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻\xaf䂯Āet⡗⡙;時Ā;e⡞⡟朠se\xbb⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻ow\xeeҌef\xf4ए\xf0Ꮡker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle\xbbᘦr;쀀\ud835\udd2ao;愧ƀcdn⢯⢴⣉ro耻\xb5䂵Ȁ;acdᑤ⢽⣀⣄s\xf4ᚧir;櫰ot肻\xb7Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛\xf2−\xf0ઁĀdp⣩⣮els;抧f;쀀\ud835\udd5eĀct⣸⣽r;쀀\ud835\udcc2pos\xbbᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la\xbb˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉ro\xf8඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻\xa0ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸ui\xf6ୣĀei⩊⩎ar;椨\xed஘istĀ;s஠டr;쀀\ud835\udd2bȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lan\xf4௢i\xed௪Ā;rஶ⪁\xbbஷƀAap⪊⪍⪑r\xf2⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹r\xf2⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro\xf7⫁ightarro\xf7⪐ƀ;qs఻⪺⫪lan\xf4ౕĀ;sౕ⫴\xbbశi\xedౝĀ;rవ⫾iĀ;eచథi\xe4ඐĀpt⬌⬑f;쀀\ud835\udd5f膀\xac;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lle\xec୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳u\xe5ಥĀ;cಘ⭸Ā;eಒ⭽\xf1ಘȀAait⮈⮋⮝⮧r\xf2⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow\xbb⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉u\xe5൅;쀀\ud835\udcc3ortɭ⬅\0\0⯖ar\xe1⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭\xe5೸\xe5ഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗ\xf1സȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇ\xecௗlde耻\xf1䃱\xe7ృiangleĀlrⱒⱜeftĀ;eచⱚ\xf1దightĀ;eೋⱥ\xf1೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻\xf3䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻\xf4䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀\ud835\udd2cͯ⵹\0\0⵼\0ⶂn;䋛ave耻\xf2䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨr\xf2᪀Āir⶝ⶠr;榾oss;榻n\xe5๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀\ud835\udd60ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨r\xf2᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f\xbbⷿ耻\xaa䂪耻\xba䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧\xf2⸁ash耻\xf8䃸l;折iŬⸯ⸴de耻\xf5䃵esĀ;aǛ⸺s;樶ml耻\xf6䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀\xb6;l⹭⹮䂶le\xecЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀\ud835\udd2dƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕ma\xf4੶ne;明ƀ;tv⺿⻀⻈䏀chfork\xbb´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎\xf6⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻\xb1ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀\ud835\udd61nd耻\xa3䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷u\xe5໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾ppro\xf8⽃urlye\xf1໙\xf1໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨i\xedໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺\xf0⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴\xef໻rel;抰Āci⿀⿅r;쀀\ud835\udcc5;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀\ud835\udd2epf;쀀\ud835\udd62rime;恗cr;쀀\ud835\udcc6ƀaeo⿸〉〓tĀei⿾々rnion\xf3ڰnt;樖stĀ;e【】䀿\xf1Ἑ\xf4༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがr\xf2Ⴓ\xf2ϝail;検ar\xf2ᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕i\xe3ᅮmptyv;榳gȀ;del࿑らるろ;榒;榥\xe5࿑uo耻\xbb䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞\xeb≝\xf0✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶al\xf3༞ƀabrョリヮr\xf2៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗\xec࿲\xe2ヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜn\xe5Ⴛar\xf4ྩt;断ƀilrㅩဣㅮsht;楽;쀀\ud835\udd2fĀaoㅷㆆrĀduㅽㅿ\xbbѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭa\xe9トarpoonĀduㆻㆿow\xeeㅾp\xbb႒eftĀah㇊㇐rrow\xf3࿪arpoon\xf3Ցightarrows;應quigarro\xf7ニhreetimes;拌g;䋚ingdotse\xf1ἲƀahm㈍㈐㈓r\xf2࿪a\xf2Ց;怏oustĀ;a㈞㈟掱che\xbb㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾r\xebဃƀafl㉇㉊㉎r;榆;쀀\ud835\udd63us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒ar\xf2㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀\ud835\udcc7Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠re\xe5ㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛qu\xef➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡u\xe5ᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓i\xedሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒\xeb∨Ā;oਸ਼਴t耻\xa7䂧i;䀻war;椩mĀin㍩\xf0nu\xf3\xf1t;朶rĀ;o㍶⁕쀀\ud835\udd30Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜i\xe4ᑤara\xec⹯耻\xad䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲ar\xf2ᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetm\xe9㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀\ud835\udd64aĀdr㑍ЂesĀ;u㑔㑕晠it\xbb㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍\xf1ᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝\xf1ᆮƀ;afᅻ㒦ְrť㒫ֱ\xbbᅼar\xf2ᅈȀcemt㒹㒾㓂㓅r;쀀\ud835\udcc8tm\xee\xf1i\xec㐕ar\xe6ᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psilo\xeeỠh\xe9⺯s\xbb⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦ppro\xf8㋺urlye\xf1ᇾ\xf1ᇳƀaes㖂㖈㌛ppro\xf8㌚q\xf1㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻\xb9䂹耻\xb2䂲耻\xb3䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨\xeb∮Ā;oਫ਩war;椪lig耻\xdf䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄r\xeb๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀\ud835\udd31Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮ppro\xf8዁im\xbbኬs\xf0ኞĀas㚺㚮\xf0዁rn耻\xfe䃾Ǭ̟㛆⋧es膀\xd7;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀\xe1⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀\ud835\udd65rk;櫚\xe1㍢rime;怴ƀaip㜏㜒㝤d\xe5ቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own\xbbᶻeftĀ;e⠀㜾\xf1म;扜ightĀ;e㊪㝋\xf1ၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀\ud835\udcc9;䑆cy;䑛rok;䅧Āio㞋㞎x\xf4᝷headĀlr㞗㞠eftarro\xf7ࡏightarrow\xbbཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶r\xf2ϭar;楣Ācr㟜㟢ute耻\xfa䃺\xf2ᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻\xfb䃻;䑃ƀabh㠃㠆㠋r\xf2Ꭽlac;䅱a\xf2ᏃĀir㠓㠘sht;楾;쀀\ud835\udd32rave耻\xf9䃹š㠧㠱rĀlr㠬㠮\xbbॗ\xbbႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r\xbb㡆op;挏ri;旸Āal㡖㡚cr;䅫肻\xa8͉Āgp㡢㡦on;䅳f;쀀\ud835\udd66̀adhlsuᅋ㡸㡽፲㢑㢠own\xe1ᎳarpoonĀlr㢈㢌ef\xf4㠭igh\xf4㠯iƀ;hl㢙㢚㢜䏅\xbbᏺon\xbb㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r\xbb㢽op;挎ng;䅯ri;旹cr;쀀\ud835\udccaƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨\xbb᠓Āam㣯㣲r\xf2㢨l耻\xfc䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠r\xf2ϷarĀ;v㤦㤧櫨;櫩as\xe8ϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖app\xe1␕othin\xe7ẖƀhir㓫⻈㥙op\xf4⾵Ā;hᎷ㥢\xefㆍĀiu㥩㥭gm\xe1㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟et\xe1㚜iangleĀlr㦪㦯eft\xbbथight\xbbၑy;䐲ash\xbbံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨa\xf2ᑩr;쀀\ud835\udd33tr\xe9㦮suĀbp㧯㧱\xbbജ\xbb൙pf;쀀\ud835\udd67ro\xf0໻tr\xe9㦴Ācu㨆㨋r;쀀\ud835\udccbĀbp㨐㨘nĀEe㦀㨖\xbb㥾nĀEe㦒㨞\xbb㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀\ud835\udd34pf;쀀\ud835\udd68Ā;eᑹ㩦at\xe8ᑹcr;쀀\ud835\udcccૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tr\xe9៑r;쀀\ud835\udd35ĀAa㪔㪗r\xf2σr\xf2৶;䎾ĀAa㪡㪤r\xf2θr\xf2৫a\xf0✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀\ud835\udd69im\xe5ឲĀAa㫇㫊r\xf2ώr\xf2ਁĀcq㫒ីr;쀀\ud835\udccdĀpt៖㫜r\xe9។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻\xfd䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻\xa5䂥r;쀀\ud835\udd36cy;䑗pf;쀀\ud835\udd6acr;쀀\ud835\udcceĀcm㬦㬩y;䑎l耻\xff䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡tr\xe6ᕟa;䎶r;쀀\ud835\udd37cy;䐶grarr;懝pf;쀀\ud835\udd6bcr;쀀\ud835\udccfĀjn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),kG=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);eM=String.fromCodePoint;(_=eL||(eL={}))[_.NUM=35]="NUM",_[_.SEMI=59]="SEMI",_[_.EQUALS=61]="EQUALS",_[_.ZERO=48]="ZERO",_[_.NINE=57]="NINE",_[_.LOWER_A=97]="LOWER_A",_[_.LOWER_F=102]="LOWER_F",_[_.LOWER_X=120]="LOWER_X",_[_.LOWER_Z=122]="LOWER_Z",_[_.UPPER_A=65]="UPPER_A",_[_.UPPER_F=70]="UPPER_F",_[_.UPPER_Z=90]="UPPER_Z";function kW(e){return e>=eL.ZERO&&e<=eL.NINE}(R=eB||(eB={}))[R.VALUE_LENGTH=49152]="VALUE_LENGTH",R[R.BRANCH_LENGTH=16256]="BRANCH_LENGTH",R[R.JUMP_TABLE=127]="JUMP_TABLE";(P=eF||(eF={}))[P.EntityStart=0]="EntityStart",P[P.NumericStart=1]="NumericStart",P[P.NumericDecimal=2]="NumericDecimal",P[P.NumericHex=3]="NumericHex",P[P.NamedEntity=4]="NamedEntity",(N=eU||(eU={}))[N.Legacy=0]="Legacy",N[N.Strict=1]="Strict",N[N.Attribute=2]="Attribute";class kQ{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=eF.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=eU.Strict}startEntity(e){this.decodeMode=e,this.state=eF.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(e,t){switch(this.state){case eF.EntityStart:if(e.charCodeAt(t)===eL.NUM)return this.state=eF.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1);return this.state=eF.NamedEntity,this.stateNamedEntity(e,t);case eF.NumericStart:return this.stateNumericStart(e,t);case eF.NumericDecimal:return this.stateNumericDecimal(e,t);case eF.NumericHex:return this.stateNumericHex(e,t);case eF.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===eL.LOWER_X?(this.state=eF.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=eF.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,n,r){if(t!==n){let i=n-t;this.result=this.result*Math.pow(r,i)+Number.parseInt(e.substr(t,i),r),this.consumed+=i}}stateNumericHex(e,t){let n=t;for(;t=eL.UPPER_A)||!(r<=eL.UPPER_F))&&(!(r>=eL.LOWER_A)||!(r<=eL.LOWER_F)))return this.addToNumericResult(e,n,t,16),this.emitNumericEntity(i,3);t+=1}return this.addToNumericResult(e,n,t,16),-1}stateNumericDecimal(e,t){let n=t;for(;t=55296&&r<=57343||r>1114111?65533:null!==(i=kG.get(r))&&void 0!==i?i:r,this.consumed),this.errors&&(e!==eL.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,r=n[this.treeIndex],i=(r&eB.VALUE_LENGTH)>>14;for(;t>7,o=t&eB.JUMP_TABLE;if(0===i)return 0!==o&&r===o?n:-1;if(o){let t=r-o;return t<0||t>=i?-1:e[n+t]-1}let a=n,s=a+i-1;for(;a<=s;){let t=a+s>>>1,n=e[t];if(nr))return e[t+i];s=t-1}}return -1}(n,r,this.treeIndex+Math.max(1,i),o),this.treeIndex<0)return 0===this.result||this.decodeMode===eU.Attribute&&(0===i||function(e){var t;return e===eL.EQUALS||(t=e)>=eL.UPPER_A&&t<=eL.UPPER_Z||t>=eL.LOWER_A&&t<=eL.LOWER_Z||kW(t)}(o))?0:this.emitNotTerminatedNamedEntity();if(0!=(i=((r=n[this.treeIndex])&eB.VALUE_LENGTH)>>14)){if(o===eL.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==eU.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return -1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,r=(n[t]&eB.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:r}=this;return this.emitCodePoint(1===t?r[e]&~eB.VALUE_LENGTH:r[e+1],n),3===t&&this.emitCodePoint(r[e+2],n),n}end(){var e;switch(this.state){case eF.NamedEntity:return 0!==this.result&&(this.decodeMode!==eU.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case eF.NumericDecimal:return this.emitNumericEntity(0,2);case eF.NumericHex:return this.emitNumericEntity(0,3);case eF.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case eF.EntityStart:return 0}}}(D=ej||(ej={})).HTML="http://www.w3.org/1999/xhtml",D.MATHML="http://www.w3.org/1998/Math/MathML",D.SVG="http://www.w3.org/2000/svg",D.XLINK="http://www.w3.org/1999/xlink",D.XML="http://www.w3.org/XML/1998/namespace",D.XMLNS="http://www.w3.org/2000/xmlns/",(M=ez||(ez={})).TYPE="type",M.ACTION="action",M.ENCODING="encoding",M.PROMPT="prompt",M.NAME="name",M.COLOR="color",M.FACE="face",M.SIZE="size",(L=eH||(eH={})).NO_QUIRKS="no-quirks",L.QUIRKS="quirks",L.LIMITED_QUIRKS="limited-quirks",(B=eZ||(eZ={})).A="a",B.ADDRESS="address",B.ANNOTATION_XML="annotation-xml",B.APPLET="applet",B.AREA="area",B.ARTICLE="article",B.ASIDE="aside",B.B="b",B.BASE="base",B.BASEFONT="basefont",B.BGSOUND="bgsound",B.BIG="big",B.BLOCKQUOTE="blockquote",B.BODY="body",B.BR="br",B.BUTTON="button",B.CAPTION="caption",B.CENTER="center",B.CODE="code",B.COL="col",B.COLGROUP="colgroup",B.DD="dd",B.DESC="desc",B.DETAILS="details",B.DIALOG="dialog",B.DIR="dir",B.DIV="div",B.DL="dl",B.DT="dt",B.EM="em",B.EMBED="embed",B.FIELDSET="fieldset",B.FIGCAPTION="figcaption",B.FIGURE="figure",B.FONT="font",B.FOOTER="footer",B.FOREIGN_OBJECT="foreignObject",B.FORM="form",B.FRAME="frame",B.FRAMESET="frameset",B.H1="h1",B.H2="h2",B.H3="h3",B.H4="h4",B.H5="h5",B.H6="h6",B.HEAD="head",B.HEADER="header",B.HGROUP="hgroup",B.HR="hr",B.HTML="html",B.I="i",B.IMG="img",B.IMAGE="image",B.INPUT="input",B.IFRAME="iframe",B.KEYGEN="keygen",B.LABEL="label",B.LI="li",B.LINK="link",B.LISTING="listing",B.MAIN="main",B.MALIGNMARK="malignmark",B.MARQUEE="marquee",B.MATH="math",B.MENU="menu",B.META="meta",B.MGLYPH="mglyph",B.MI="mi",B.MO="mo",B.MN="mn",B.MS="ms",B.MTEXT="mtext",B.NAV="nav",B.NOBR="nobr",B.NOFRAMES="noframes",B.NOEMBED="noembed",B.NOSCRIPT="noscript",B.OBJECT="object",B.OL="ol",B.OPTGROUP="optgroup",B.OPTION="option",B.P="p",B.PARAM="param",B.PLAINTEXT="plaintext",B.PRE="pre",B.RB="rb",B.RP="rp",B.RT="rt",B.RTC="rtc",B.RUBY="ruby",B.S="s",B.SCRIPT="script",B.SEARCH="search",B.SECTION="section",B.SELECT="select",B.SOURCE="source",B.SMALL="small",B.SPAN="span",B.STRIKE="strike",B.STRONG="strong",B.STYLE="style",B.SUB="sub",B.SUMMARY="summary",B.SUP="sup",B.TABLE="table",B.TBODY="tbody",B.TEMPLATE="template",B.TEXTAREA="textarea",B.TFOOT="tfoot",B.TD="td",B.TH="th",B.THEAD="thead",B.TITLE="title",B.TR="tr",B.TRACK="track",B.TT="tt",B.U="u",B.UL="ul",B.SVG="svg",B.VAR="var",B.WBR="wbr",B.XMP="xmp",(F=eV||(eV={}))[F.UNKNOWN=0]="UNKNOWN",F[F.A=1]="A",F[F.ADDRESS=2]="ADDRESS",F[F.ANNOTATION_XML=3]="ANNOTATION_XML",F[F.APPLET=4]="APPLET",F[F.AREA=5]="AREA",F[F.ARTICLE=6]="ARTICLE",F[F.ASIDE=7]="ASIDE",F[F.B=8]="B",F[F.BASE=9]="BASE",F[F.BASEFONT=10]="BASEFONT",F[F.BGSOUND=11]="BGSOUND",F[F.BIG=12]="BIG",F[F.BLOCKQUOTE=13]="BLOCKQUOTE",F[F.BODY=14]="BODY",F[F.BR=15]="BR",F[F.BUTTON=16]="BUTTON",F[F.CAPTION=17]="CAPTION",F[F.CENTER=18]="CENTER",F[F.CODE=19]="CODE",F[F.COL=20]="COL",F[F.COLGROUP=21]="COLGROUP",F[F.DD=22]="DD",F[F.DESC=23]="DESC",F[F.DETAILS=24]="DETAILS",F[F.DIALOG=25]="DIALOG",F[F.DIR=26]="DIR",F[F.DIV=27]="DIV",F[F.DL=28]="DL",F[F.DT=29]="DT",F[F.EM=30]="EM",F[F.EMBED=31]="EMBED",F[F.FIELDSET=32]="FIELDSET",F[F.FIGCAPTION=33]="FIGCAPTION",F[F.FIGURE=34]="FIGURE",F[F.FONT=35]="FONT",F[F.FOOTER=36]="FOOTER",F[F.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",F[F.FORM=38]="FORM",F[F.FRAME=39]="FRAME",F[F.FRAMESET=40]="FRAMESET",F[F.H1=41]="H1",F[F.H2=42]="H2",F[F.H3=43]="H3",F[F.H4=44]="H4",F[F.H5=45]="H5",F[F.H6=46]="H6",F[F.HEAD=47]="HEAD",F[F.HEADER=48]="HEADER",F[F.HGROUP=49]="HGROUP",F[F.HR=50]="HR",F[F.HTML=51]="HTML",F[F.I=52]="I",F[F.IMG=53]="IMG",F[F.IMAGE=54]="IMAGE",F[F.INPUT=55]="INPUT",F[F.IFRAME=56]="IFRAME",F[F.KEYGEN=57]="KEYGEN",F[F.LABEL=58]="LABEL",F[F.LI=59]="LI",F[F.LINK=60]="LINK",F[F.LISTING=61]="LISTING",F[F.MAIN=62]="MAIN",F[F.MALIGNMARK=63]="MALIGNMARK",F[F.MARQUEE=64]="MARQUEE",F[F.MATH=65]="MATH",F[F.MENU=66]="MENU",F[F.META=67]="META",F[F.MGLYPH=68]="MGLYPH",F[F.MI=69]="MI",F[F.MO=70]="MO",F[F.MN=71]="MN",F[F.MS=72]="MS",F[F.MTEXT=73]="MTEXT",F[F.NAV=74]="NAV",F[F.NOBR=75]="NOBR",F[F.NOFRAMES=76]="NOFRAMES",F[F.NOEMBED=77]="NOEMBED",F[F.NOSCRIPT=78]="NOSCRIPT",F[F.OBJECT=79]="OBJECT",F[F.OL=80]="OL",F[F.OPTGROUP=81]="OPTGROUP",F[F.OPTION=82]="OPTION",F[F.P=83]="P",F[F.PARAM=84]="PARAM",F[F.PLAINTEXT=85]="PLAINTEXT",F[F.PRE=86]="PRE",F[F.RB=87]="RB",F[F.RP=88]="RP",F[F.RT=89]="RT",F[F.RTC=90]="RTC",F[F.RUBY=91]="RUBY",F[F.S=92]="S",F[F.SCRIPT=93]="SCRIPT",F[F.SEARCH=94]="SEARCH",F[F.SECTION=95]="SECTION",F[F.SELECT=96]="SELECT",F[F.SOURCE=97]="SOURCE",F[F.SMALL=98]="SMALL",F[F.SPAN=99]="SPAN",F[F.STRIKE=100]="STRIKE",F[F.STRONG=101]="STRONG",F[F.STYLE=102]="STYLE",F[F.SUB=103]="SUB",F[F.SUMMARY=104]="SUMMARY",F[F.SUP=105]="SUP",F[F.TABLE=106]="TABLE",F[F.TBODY=107]="TBODY",F[F.TEMPLATE=108]="TEMPLATE",F[F.TEXTAREA=109]="TEXTAREA",F[F.TFOOT=110]="TFOOT",F[F.TD=111]="TD",F[F.TH=112]="TH",F[F.THEAD=113]="THEAD",F[F.TITLE=114]="TITLE",F[F.TR=115]="TR",F[F.TRACK=116]="TRACK",F[F.TT=117]="TT",F[F.U=118]="U",F[F.UL=119]="UL",F[F.SVG=120]="SVG",F[F.VAR=121]="VAR",F[F.WBR=122]="WBR",F[F.XMP=123]="XMP";let kq=new Map([[eZ.A,eV.A],[eZ.ADDRESS,eV.ADDRESS],[eZ.ANNOTATION_XML,eV.ANNOTATION_XML],[eZ.APPLET,eV.APPLET],[eZ.AREA,eV.AREA],[eZ.ARTICLE,eV.ARTICLE],[eZ.ASIDE,eV.ASIDE],[eZ.B,eV.B],[eZ.BASE,eV.BASE],[eZ.BASEFONT,eV.BASEFONT],[eZ.BGSOUND,eV.BGSOUND],[eZ.BIG,eV.BIG],[eZ.BLOCKQUOTE,eV.BLOCKQUOTE],[eZ.BODY,eV.BODY],[eZ.BR,eV.BR],[eZ.BUTTON,eV.BUTTON],[eZ.CAPTION,eV.CAPTION],[eZ.CENTER,eV.CENTER],[eZ.CODE,eV.CODE],[eZ.COL,eV.COL],[eZ.COLGROUP,eV.COLGROUP],[eZ.DD,eV.DD],[eZ.DESC,eV.DESC],[eZ.DETAILS,eV.DETAILS],[eZ.DIALOG,eV.DIALOG],[eZ.DIR,eV.DIR],[eZ.DIV,eV.DIV],[eZ.DL,eV.DL],[eZ.DT,eV.DT],[eZ.EM,eV.EM],[eZ.EMBED,eV.EMBED],[eZ.FIELDSET,eV.FIELDSET],[eZ.FIGCAPTION,eV.FIGCAPTION],[eZ.FIGURE,eV.FIGURE],[eZ.FONT,eV.FONT],[eZ.FOOTER,eV.FOOTER],[eZ.FOREIGN_OBJECT,eV.FOREIGN_OBJECT],[eZ.FORM,eV.FORM],[eZ.FRAME,eV.FRAME],[eZ.FRAMESET,eV.FRAMESET],[eZ.H1,eV.H1],[eZ.H2,eV.H2],[eZ.H3,eV.H3],[eZ.H4,eV.H4],[eZ.H5,eV.H5],[eZ.H6,eV.H6],[eZ.HEAD,eV.HEAD],[eZ.HEADER,eV.HEADER],[eZ.HGROUP,eV.HGROUP],[eZ.HR,eV.HR],[eZ.HTML,eV.HTML],[eZ.I,eV.I],[eZ.IMG,eV.IMG],[eZ.IMAGE,eV.IMAGE],[eZ.INPUT,eV.INPUT],[eZ.IFRAME,eV.IFRAME],[eZ.KEYGEN,eV.KEYGEN],[eZ.LABEL,eV.LABEL],[eZ.LI,eV.LI],[eZ.LINK,eV.LINK],[eZ.LISTING,eV.LISTING],[eZ.MAIN,eV.MAIN],[eZ.MALIGNMARK,eV.MALIGNMARK],[eZ.MARQUEE,eV.MARQUEE],[eZ.MATH,eV.MATH],[eZ.MENU,eV.MENU],[eZ.META,eV.META],[eZ.MGLYPH,eV.MGLYPH],[eZ.MI,eV.MI],[eZ.MO,eV.MO],[eZ.MN,eV.MN],[eZ.MS,eV.MS],[eZ.MTEXT,eV.MTEXT],[eZ.NAV,eV.NAV],[eZ.NOBR,eV.NOBR],[eZ.NOFRAMES,eV.NOFRAMES],[eZ.NOEMBED,eV.NOEMBED],[eZ.NOSCRIPT,eV.NOSCRIPT],[eZ.OBJECT,eV.OBJECT],[eZ.OL,eV.OL],[eZ.OPTGROUP,eV.OPTGROUP],[eZ.OPTION,eV.OPTION],[eZ.P,eV.P],[eZ.PARAM,eV.PARAM],[eZ.PLAINTEXT,eV.PLAINTEXT],[eZ.PRE,eV.PRE],[eZ.RB,eV.RB],[eZ.RP,eV.RP],[eZ.RT,eV.RT],[eZ.RTC,eV.RTC],[eZ.RUBY,eV.RUBY],[eZ.S,eV.S],[eZ.SCRIPT,eV.SCRIPT],[eZ.SEARCH,eV.SEARCH],[eZ.SECTION,eV.SECTION],[eZ.SELECT,eV.SELECT],[eZ.SOURCE,eV.SOURCE],[eZ.SMALL,eV.SMALL],[eZ.SPAN,eV.SPAN],[eZ.STRIKE,eV.STRIKE],[eZ.STRONG,eV.STRONG],[eZ.STYLE,eV.STYLE],[eZ.SUB,eV.SUB],[eZ.SUMMARY,eV.SUMMARY],[eZ.SUP,eV.SUP],[eZ.TABLE,eV.TABLE],[eZ.TBODY,eV.TBODY],[eZ.TEMPLATE,eV.TEMPLATE],[eZ.TEXTAREA,eV.TEXTAREA],[eZ.TFOOT,eV.TFOOT],[eZ.TD,eV.TD],[eZ.TH,eV.TH],[eZ.THEAD,eV.THEAD],[eZ.TITLE,eV.TITLE],[eZ.TR,eV.TR],[eZ.TRACK,eV.TRACK],[eZ.TT,eV.TT],[eZ.U,eV.U],[eZ.UL,eV.UL],[eZ.SVG,eV.SVG],[eZ.VAR,eV.VAR],[eZ.WBR,eV.WBR],[eZ.XMP,eV.XMP]]);function kK(e){var t;return null!==(t=kq.get(e))&&void 0!==t?t:eV.UNKNOWN}let kY=eV,kX={[ej.HTML]:new Set([kY.ADDRESS,kY.APPLET,kY.AREA,kY.ARTICLE,kY.ASIDE,kY.BASE,kY.BASEFONT,kY.BGSOUND,kY.BLOCKQUOTE,kY.BODY,kY.BR,kY.BUTTON,kY.CAPTION,kY.CENTER,kY.COL,kY.COLGROUP,kY.DD,kY.DETAILS,kY.DIR,kY.DIV,kY.DL,kY.DT,kY.EMBED,kY.FIELDSET,kY.FIGCAPTION,kY.FIGURE,kY.FOOTER,kY.FORM,kY.FRAME,kY.FRAMESET,kY.H1,kY.H2,kY.H3,kY.H4,kY.H5,kY.H6,kY.HEAD,kY.HEADER,kY.HGROUP,kY.HR,kY.HTML,kY.IFRAME,kY.IMG,kY.INPUT,kY.LI,kY.LINK,kY.LISTING,kY.MAIN,kY.MARQUEE,kY.MENU,kY.META,kY.NAV,kY.NOEMBED,kY.NOFRAMES,kY.NOSCRIPT,kY.OBJECT,kY.OL,kY.P,kY.PARAM,kY.PLAINTEXT,kY.PRE,kY.SCRIPT,kY.SECTION,kY.SELECT,kY.SOURCE,kY.STYLE,kY.SUMMARY,kY.TABLE,kY.TBODY,kY.TD,kY.TEMPLATE,kY.TEXTAREA,kY.TFOOT,kY.TH,kY.THEAD,kY.TITLE,kY.TR,kY.TRACK,kY.UL,kY.WBR,kY.XMP]),[ej.MATHML]:new Set([kY.MI,kY.MO,kY.MN,kY.MS,kY.MTEXT,kY.ANNOTATION_XML]),[ej.SVG]:new Set([kY.TITLE,kY.FOREIGN_OBJECT,kY.DESC]),[ej.XLINK]:new Set,[ej.XML]:new Set,[ej.XMLNS]:new Set},kJ=new Set([kY.H1,kY.H2,kY.H3,kY.H4,kY.H5,kY.H6]);eZ.STYLE,eZ.SCRIPT,eZ.XMP,eZ.IFRAME,eZ.NOEMBED,eZ.NOFRAMES,eZ.PLAINTEXT,(U=eG||(eG={}))[U.DATA=0]="DATA",U[U.RCDATA=1]="RCDATA",U[U.RAWTEXT=2]="RAWTEXT",U[U.SCRIPT_DATA=3]="SCRIPT_DATA",U[U.PLAINTEXT=4]="PLAINTEXT",U[U.TAG_OPEN=5]="TAG_OPEN",U[U.END_TAG_OPEN=6]="END_TAG_OPEN",U[U.TAG_NAME=7]="TAG_NAME",U[U.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",U[U.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",U[U.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",U[U.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",U[U.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",U[U.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",U[U.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",U[U.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",U[U.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",U[U.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",U[U.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",U[U.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",U[U.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",U[U.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",U[U.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",U[U.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",U[U.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",U[U.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",U[U.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",U[U.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",U[U.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",U[U.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",U[U.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",U[U.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",U[U.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",U[U.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",U[U.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",U[U.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",U[U.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",U[U.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",U[U.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",U[U.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",U[U.BOGUS_COMMENT=40]="BOGUS_COMMENT",U[U.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",U[U.COMMENT_START=42]="COMMENT_START",U[U.COMMENT_START_DASH=43]="COMMENT_START_DASH",U[U.COMMENT=44]="COMMENT",U[U.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",U[U.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",U[U.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",U[U.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",U[U.COMMENT_END_DASH=49]="COMMENT_END_DASH",U[U.COMMENT_END=50]="COMMENT_END",U[U.COMMENT_END_BANG=51]="COMMENT_END_BANG",U[U.DOCTYPE=52]="DOCTYPE",U[U.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",U[U.DOCTYPE_NAME=54]="DOCTYPE_NAME",U[U.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",U[U.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",U[U.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",U[U.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",U[U.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",U[U.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",U[U.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",U[U.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",U[U.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",U[U.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",U[U.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",U[U.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",U[U.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",U[U.CDATA_SECTION=68]="CDATA_SECTION",U[U.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",U[U.CDATA_SECTION_END=70]="CDATA_SECTION_END",U[U.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",U[U.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND";let k$={DATA:eG.DATA,RCDATA:eG.RCDATA,RAWTEXT:eG.RAWTEXT,SCRIPT_DATA:eG.SCRIPT_DATA,PLAINTEXT:eG.PLAINTEXT,CDATA_SECTION:eG.CDATA_SECTION};function k0(e){return e>=eP.LATIN_CAPITAL_A&&e<=eP.LATIN_CAPITAL_Z}function k1(e){var t;return(t=e)>=eP.LATIN_SMALL_A&&t<=eP.LATIN_SMALL_Z||k0(e)}function k2(e){var t;return k1(e)||(t=e)>=eP.DIGIT_0&&t<=eP.DIGIT_9}function k4(e){return e+32}function k3(e){return e===eP.SPACE||e===eP.LINE_FEED||e===eP.TABULATION||e===eP.FORM_FEED}function k6(e){return k3(e)||e===eP.SOLIDUS||e===eP.GREATER_THAN_SIGN}class k7{constructor(e,t){this.options=e,this.handler=t,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=eG.DATA,this.returnState=eG.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new kH(t),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new kQ(kV,(e,t)=>{this.preprocessor.pos=this.entityStartPos+t-1,this._flushCodePointConsumedAsCharacterReference(e)},t.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(eN.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:e=>{this._err(eN.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+e)},validateNumericCharacterReference:e=>{let t=function(e){if(e===eP.NULL)return eN.nullCharacterReference;if(e>1114111)return eN.characterReferenceOutsideUnicodeRange;if(kU(e))return eN.surrogateCharacterReference;else if(kz(e))return eN.noncharacterCharacterReference;else if(kj(e)||e===eP.CARRIAGE_RETURN)return eN.controlCharacterReference;return null}(e);t&&this._err(t,1)}}:void 0)}_err(e,t=0){var n,r;null===(r=(n=this.handler).onParseError)||void 0===r||r.call(n,this.preprocessor.getError(e,t))}getCurrentLocation(e){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-e,startOffset:this.preprocessor.offset-e,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;let e=this._consume();!this._ensureHibernation()&&this._callState(e)}this.inLoop=!1}}pause(){this.paused=!0}resume(e){if(!this.paused)throw Error("Parser was already resumed");this.paused=!1,!this.inLoop&&(this._runParsingLoop(),!this.paused&&(null==e||e()))}write(e,t,n){this.active=!0,this.preprocessor.write(e,t),this._runParsingLoop(),!this.paused&&(null==n||n())}insertHtmlAtCurrentPos(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e),this._runParsingLoop()}_ensureHibernation(){return!!this.preprocessor.endOfChunkHit&&(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0)}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(e){this.consumedAfterSnapshot+=e;for(let t=0;t0&&this._err(eN.endTagWithAttributes),e.selfClosing&&this._err(eN.endTagWithTrailingSolidus),this.handler.onEndTag(e)),this.preprocessor.dropParsedChunk()}emitCurrentComment(e){this.prepareToken(e),this.handler.onComment(e),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(e){this.prepareToken(e),this.handler.onDoctype(e),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(e){if(this.currentCharacterToken){switch(e&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=e.startLine,this.currentCharacterToken.location.endCol=e.startCol,this.currentCharacterToken.location.endOffset=e.startOffset),this.currentCharacterToken.type){case eD.CHARACTER:this.handler.onCharacter(this.currentCharacterToken);break;case eD.NULL_CHARACTER:this.handler.onNullCharacter(this.currentCharacterToken);break;case eD.WHITESPACE_CHARACTER:this.handler.onWhitespaceCharacter(this.currentCharacterToken)}this.currentCharacterToken=null}}_emitEOFToken(){let e=this.getCurrentLocation(0);e&&(e.endLine=e.startLine,e.endCol=e.startCol,e.endOffset=e.startOffset),this._emitCurrentCharacterToken(e),this.handler.onEof({type:eD.EOF,location:e}),this.active=!1}_appendCharToCurrentCharacterToken(e,t){if(this.currentCharacterToken){if(this.currentCharacterToken.type===e){this.currentCharacterToken.chars+=t;return}this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk()}this._createCharacterToken(e,t)}_emitCodePoint(e){let t=k3(e)?eD.WHITESPACE_CHARACTER:e===eP.NULL?eD.NULL_CHARACTER:eD.CHARACTER;this._appendCharToCurrentCharacterToken(t,String.fromCodePoint(e))}_emitChars(e){this._appendCharToCurrentCharacterToken(eD.CHARACTER,e)}_startCharacterReference(){this.returnState=this.state,this.state=eG.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?eU.Attribute:eU.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===eG.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===eG.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===eG.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(e){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(e):this._emitCodePoint(e)}_callState(e){switch(this.state){case eG.DATA:this._stateData(e);break;case eG.RCDATA:this._stateRcdata(e);break;case eG.RAWTEXT:this._stateRawtext(e);break;case eG.SCRIPT_DATA:this._stateScriptData(e);break;case eG.PLAINTEXT:this._statePlaintext(e);break;case eG.TAG_OPEN:this._stateTagOpen(e);break;case eG.END_TAG_OPEN:this._stateEndTagOpen(e);break;case eG.TAG_NAME:this._stateTagName(e);break;case eG.RCDATA_LESS_THAN_SIGN:this._stateRcdataLessThanSign(e);break;case eG.RCDATA_END_TAG_OPEN:this._stateRcdataEndTagOpen(e);break;case eG.RCDATA_END_TAG_NAME:this._stateRcdataEndTagName(e);break;case eG.RAWTEXT_LESS_THAN_SIGN:this._stateRawtextLessThanSign(e);break;case eG.RAWTEXT_END_TAG_OPEN:this._stateRawtextEndTagOpen(e);break;case eG.RAWTEXT_END_TAG_NAME:this._stateRawtextEndTagName(e);break;case eG.SCRIPT_DATA_LESS_THAN_SIGN:this._stateScriptDataLessThanSign(e);break;case eG.SCRIPT_DATA_END_TAG_OPEN:this._stateScriptDataEndTagOpen(e);break;case eG.SCRIPT_DATA_END_TAG_NAME:this._stateScriptDataEndTagName(e);break;case eG.SCRIPT_DATA_ESCAPE_START:this._stateScriptDataEscapeStart(e);break;case eG.SCRIPT_DATA_ESCAPE_START_DASH:this._stateScriptDataEscapeStartDash(e);break;case eG.SCRIPT_DATA_ESCAPED:this._stateScriptDataEscaped(e);break;case eG.SCRIPT_DATA_ESCAPED_DASH:this._stateScriptDataEscapedDash(e);break;case eG.SCRIPT_DATA_ESCAPED_DASH_DASH:this._stateScriptDataEscapedDashDash(e);break;case eG.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataEscapedLessThanSign(e);break;case eG.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:this._stateScriptDataEscapedEndTagOpen(e);break;case eG.SCRIPT_DATA_ESCAPED_END_TAG_NAME:this._stateScriptDataEscapedEndTagName(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPE_START:this._stateScriptDataDoubleEscapeStart(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPED:this._stateScriptDataDoubleEscaped(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:this._stateScriptDataDoubleEscapedDash(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:this._stateScriptDataDoubleEscapedDashDash(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataDoubleEscapedLessThanSign(e);break;case eG.SCRIPT_DATA_DOUBLE_ESCAPE_END:this._stateScriptDataDoubleEscapeEnd(e);break;case eG.BEFORE_ATTRIBUTE_NAME:this._stateBeforeAttributeName(e);break;case eG.ATTRIBUTE_NAME:this._stateAttributeName(e);break;case eG.AFTER_ATTRIBUTE_NAME:this._stateAfterAttributeName(e);break;case eG.BEFORE_ATTRIBUTE_VALUE:this._stateBeforeAttributeValue(e);break;case eG.ATTRIBUTE_VALUE_DOUBLE_QUOTED:this._stateAttributeValueDoubleQuoted(e);break;case eG.ATTRIBUTE_VALUE_SINGLE_QUOTED:this._stateAttributeValueSingleQuoted(e);break;case eG.ATTRIBUTE_VALUE_UNQUOTED:this._stateAttributeValueUnquoted(e);break;case eG.AFTER_ATTRIBUTE_VALUE_QUOTED:this._stateAfterAttributeValueQuoted(e);break;case eG.SELF_CLOSING_START_TAG:this._stateSelfClosingStartTag(e);break;case eG.BOGUS_COMMENT:this._stateBogusComment(e);break;case eG.MARKUP_DECLARATION_OPEN:this._stateMarkupDeclarationOpen(e);break;case eG.COMMENT_START:this._stateCommentStart(e);break;case eG.COMMENT_START_DASH:this._stateCommentStartDash(e);break;case eG.COMMENT:this._stateComment(e);break;case eG.COMMENT_LESS_THAN_SIGN:this._stateCommentLessThanSign(e);break;case eG.COMMENT_LESS_THAN_SIGN_BANG:this._stateCommentLessThanSignBang(e);break;case eG.COMMENT_LESS_THAN_SIGN_BANG_DASH:this._stateCommentLessThanSignBangDash(e);break;case eG.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:this._stateCommentLessThanSignBangDashDash(e);break;case eG.COMMENT_END_DASH:this._stateCommentEndDash(e);break;case eG.COMMENT_END:this._stateCommentEnd(e);break;case eG.COMMENT_END_BANG:this._stateCommentEndBang(e);break;case eG.DOCTYPE:this._stateDoctype(e);break;case eG.BEFORE_DOCTYPE_NAME:this._stateBeforeDoctypeName(e);break;case eG.DOCTYPE_NAME:this._stateDoctypeName(e);break;case eG.AFTER_DOCTYPE_NAME:this._stateAfterDoctypeName(e);break;case eG.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._stateAfterDoctypePublicKeyword(e);break;case eG.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:this._stateBeforeDoctypePublicIdentifier(e);break;case eG.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypePublicIdentifierDoubleQuoted(e);break;case eG.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypePublicIdentifierSingleQuoted(e);break;case eG.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:this._stateAfterDoctypePublicIdentifier(e);break;case eG.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:this._stateBetweenDoctypePublicAndSystemIdentifiers(e);break;case eG.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._stateAfterDoctypeSystemKeyword(e);break;case eG.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:this._stateBeforeDoctypeSystemIdentifier(e);break;case eG.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypeSystemIdentifierDoubleQuoted(e);break;case eG.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypeSystemIdentifierSingleQuoted(e);break;case eG.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:this._stateAfterDoctypeSystemIdentifier(e);break;case eG.BOGUS_DOCTYPE:this._stateBogusDoctype(e);break;case eG.CDATA_SECTION:this._stateCdataSection(e);break;case eG.CDATA_SECTION_BRACKET:this._stateCdataSectionBracket(e);break;case eG.CDATA_SECTION_END:this._stateCdataSectionEnd(e);break;case eG.CHARACTER_REFERENCE:this._stateCharacterReference();break;case eG.AMBIGUOUS_AMPERSAND:this._stateAmbiguousAmpersand(e);break;default:throw Error("Unknown state")}}_stateData(e){switch(e){case eP.LESS_THAN_SIGN:this.state=eG.TAG_OPEN;break;case eP.AMPERSAND:this._startCharacterReference();break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitCodePoint(e);break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateRcdata(e){switch(e){case eP.AMPERSAND:this._startCharacterReference();break;case eP.LESS_THAN_SIGN:this.state=eG.RCDATA_LESS_THAN_SIGN;break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitChars("�");break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateRawtext(e){switch(e){case eP.LESS_THAN_SIGN:this.state=eG.RAWTEXT_LESS_THAN_SIGN;break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitChars("�");break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateScriptData(e){switch(e){case eP.LESS_THAN_SIGN:this.state=eG.SCRIPT_DATA_LESS_THAN_SIGN;break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitChars("�");break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_statePlaintext(e){switch(e){case eP.NULL:this._err(eN.unexpectedNullCharacter),this._emitChars("�");break;case eP.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateTagOpen(e){if(k1(e))this._createStartTagToken(),this.state=eG.TAG_NAME,this._stateTagName(e);else switch(e){case eP.EXCLAMATION_MARK:this.state=eG.MARKUP_DECLARATION_OPEN;break;case eP.SOLIDUS:this.state=eG.END_TAG_OPEN;break;case eP.QUESTION_MARK:this._err(eN.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=eG.BOGUS_COMMENT,this._stateBogusComment(e);break;case eP.EOF:this._err(eN.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break;default:this._err(eN.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=eG.DATA,this._stateData(e)}}_stateEndTagOpen(e){if(k1(e))this._createEndTagToken(),this.state=eG.TAG_NAME,this._stateTagName(e);else switch(e){case eP.GREATER_THAN_SIGN:this._err(eN.missingEndTagName),this.state=eG.DATA;break;case eP.EOF:this._err(eN.eofBeforeTagName),this._emitChars("");break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this.state=eG.SCRIPT_DATA_ESCAPED,this._emitChars("�");break;case eP.EOF:this._err(eN.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=eG.SCRIPT_DATA_ESCAPED,this._emitCodePoint(e)}}_stateScriptDataEscapedLessThanSign(e){e===eP.SOLIDUS?this.state=eG.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:k1(e)?(this._emitChars("<"),this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(e)):(this._emitChars("<"),this.state=eG.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(e))}_stateScriptDataEscapedEndTagOpen(e){k1(e)?(this.state=eG.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(e)):(this._emitChars("");break;case eP.NULL:this._err(eN.unexpectedNullCharacter),this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars("�");break;case eP.EOF:this._err(eN.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(e)}}_stateScriptDataDoubleEscapedLessThanSign(e){e===eP.SOLIDUS?(this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=eG.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(e))}_stateScriptDataDoubleEscapeEnd(e){if(this.preprocessor.startsWith(kF.SCRIPT,!1)&&k6(this.preprocessor.peek(kF.SCRIPT.length))){this._emitCodePoint(e);for(let e=0;e0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!0)}replace(e,t){let n=this._indexOf(e);this.items[n]=t,n===this.stackTop&&(this.current=t)}insertAfter(e,t,n){let r=this._indexOf(e)+1;this.items.splice(r,0,t),this.tagIDs.splice(r,0,n),this.stackTop++,r===this.stackTop&&this._updateCurrentElement(),this.current&&void 0!==this.currentTagId&&this.handler.onItemPush(this.current,this.currentTagId,r===this.stackTop)}popUntilTagNamePopped(e){let t=this.stackTop+1;do t=this.tagIDs.lastIndexOf(e,t-1);while(t>0&&this.treeAdapter.getNamespaceURI(this.items[t])!==ej.HTML);this.shortenToLength(Math.max(t,0))}shortenToLength(e){for(;this.stackTop>=e;){let t=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,this.stackTop=0;n--)if(e.has(this.tagIDs[n])&&this.treeAdapter.getNamespaceURI(this.items[n])===t)return n;return -1}clearBackTo(e,t){let n=this._indexOfTagNames(e,t);this.shortenToLength(n+1)}clearBackToTableContext(){this.clearBackTo(_a,ej.HTML)}clearBackToTableBodyContext(){this.clearBackTo(_o,ej.HTML)}clearBackToTableRowContext(){this.clearBackTo(_i,ej.HTML)}remove(e){let t=this._indexOf(e);t>=0&&(t===this.stackTop?this.pop():(this.items.splice(t,1),this.tagIDs.splice(t,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===eV.BODY?this.items[1]:null}contains(e){return this._indexOf(e)>-1}getCommonAncestor(e){let t=this._indexOf(e)-1;return t>=0?this.items[t]:null}isRootHtmlElementCurrent(){return 0===this.stackTop&&this.tagIDs[0]===eV.HTML}hasInDynamicScope(e,t){for(let n=this.stackTop;n>=0;n--){let r=this.tagIDs[n];switch(this.treeAdapter.getNamespaceURI(this.items[n])){case ej.HTML:if(r===e)return!0;if(t.has(r))return!1;break;case ej.SVG:if(_r.has(r))return!1;break;case ej.MATHML:if(_n.has(r))return!1}}return!0}hasInScope(e){return this.hasInDynamicScope(e,k9)}hasInListItemScope(e){return this.hasInDynamicScope(e,_e)}hasInButtonScope(e){return this.hasInDynamicScope(e,_t)}hasNumberedHeaderInScope(){for(let e=this.stackTop;e>=0;e--){let t=this.tagIDs[e];switch(this.treeAdapter.getNamespaceURI(this.items[e])){case ej.HTML:if(kJ.has(t))return!0;if(k9.has(t))return!1;break;case ej.SVG:if(_r.has(t))return!1;break;case ej.MATHML:if(_n.has(t))return!1}}return!0}hasInTableScope(e){for(let t=this.stackTop;t>=0;t--){if(this.treeAdapter.getNamespaceURI(this.items[t])===ej.HTML)switch(this.tagIDs[t]){case e:return!0;case eV.TABLE:case eV.HTML:return!1}}return!0}hasTableBodyContextInTableScope(){for(let e=this.stackTop;e>=0;e--){if(this.treeAdapter.getNamespaceURI(this.items[e])===ej.HTML)switch(this.tagIDs[e]){case eV.TBODY:case eV.THEAD:case eV.TFOOT:return!0;case eV.TABLE:case eV.HTML:return!1}}return!0}hasInSelectScope(e){for(let t=this.stackTop;t>=0;t--){if(this.treeAdapter.getNamespaceURI(this.items[t])===ej.HTML)switch(this.tagIDs[t]){case e:return!0;case eV.OPTION:case eV.OPTGROUP:break;default:return!1}}return!0}generateImpliedEndTags(){for(;void 0!==this.currentTagId&&k8.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;void 0!==this.currentTagId&&k5.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(e){for(;void 0!==this.currentTagId&&this.currentTagId!==e&&k5.has(this.currentTagId);)this.pop()}}(j=eW||(eW={}))[j.Marker=0]="Marker",j[j.Element=1]="Element";let _u={type:eW.Marker};class _c{constructor(e){this.treeAdapter=e,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(e,t){let n=[],r=t.length,i=this.treeAdapter.getTagName(e),o=this.treeAdapter.getNamespaceURI(e);for(let e=0;e[e.name,e.value])),i=0;for(let e=0;er.get(e.name)===e.value)&&(i+=1)>=3&&this.entries.splice(t.idx,1)}}insertMarker(){this.entries.unshift(_u)}pushElement(e,t){this._ensureNoahArkCondition(e),this.entries.unshift({type:eW.Element,element:e,token:t})}insertElementAfterBookmark(e,t){let n=this.entries.indexOf(this.bookmark);this.entries.splice(n,0,{type:eW.Element,element:e,token:t})}removeEntry(e){let t=this.entries.indexOf(e);-1!==t&&this.entries.splice(t,1)}clearToLastMarker(){let e=this.entries.indexOf(_u);-1===e?this.entries.length=0:this.entries.splice(0,e+1)}getElementEntryInScopeWithTagName(e){let t=this.entries.find(t=>t.type===eW.Marker||this.treeAdapter.getTagName(t.element)===e);return t&&t.type===eW.Element?t:null}getElementEntry(e){return this.entries.find(t=>t.type===eW.Element&&t.element===e)}}let _p={createDocument:()=>({nodeName:"#document",mode:eH.NO_QUIRKS,childNodes:[]}),createDocumentFragment:()=>({nodeName:"#document-fragment",childNodes:[]}),createElement:(e,t,n)=>({nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}),createCommentNode:e=>({nodeName:"#comment",data:e,parentNode:null}),createTextNode:e=>({nodeName:"#text",value:e,parentNode:null}),appendChild(e,t){e.childNodes.push(t),t.parentNode=e},insertBefore(e,t,n){let r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e},setTemplateContent(e,t){e.content=t},getTemplateContent:e=>e.content,setDocumentType(e,t,n,r){let i=e.childNodes.find(e=>"#documentType"===e.nodeName);i?(i.name=t,i.publicId=n,i.systemId=r):_p.appendChild(e,{nodeName:"#documentType",name:t,publicId:n,systemId:r,parentNode:null})},setDocumentMode(e,t){e.mode=t},getDocumentMode:e=>e.mode,detachNode(e){if(e.parentNode){let t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},insertText(e,t){if(e.childNodes.length>0){let n=e.childNodes[e.childNodes.length-1];if(_p.isTextNode(n)){n.value+=t;return}}_p.appendChild(e,_p.createTextNode(t))},insertTextBefore(e,t,n){let r=e.childNodes[e.childNodes.indexOf(n)-1];r&&_p.isTextNode(r)?r.value+=t:_p.insertBefore(e,_p.createTextNode(t),n)},adoptAttributes(e,t){let n=new Set(e.attrs.map(e=>e.name));for(let r=0;re.childNodes[0],getChildNodes:e=>e.childNodes,getParentNode:e=>e.parentNode,getAttrList:e=>e.attrs,getTagName:e=>e.tagName,getNamespaceURI:e=>e.namespaceURI,getTextNodeContent:e=>e.value,getCommentNodeContent:e=>e.data,getDocumentTypeNodeName:e=>e.name,getDocumentTypeNodePublicId:e=>e.publicId,getDocumentTypeNodeSystemId:e=>e.systemId,isTextNode:e=>"#text"===e.nodeName,isCommentNode:e=>"#comment"===e.nodeName,isDocumentTypeNode:e=>"#documentType"===e.nodeName,isElementNode:e=>Object.prototype.hasOwnProperty.call(e,"tagName"),setNodeSourceCodeLocation(e,t){e.sourceCodeLocation=t},getNodeSourceCodeLocation:e=>e.sourceCodeLocation,updateNodeSourceCodeLocation(e,t){e.sourceCodeLocation={...e.sourceCodeLocation,...t}}},_d="html",_h=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],_f=[..._h,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],_m=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),_g=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],_A=[..._g,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function _b(e,t){return t.some(t=>e.startsWith(t))}let _y={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},_v=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),_S=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:ej.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:ej.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:ej.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:ej.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:ej.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:ej.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:ej.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:ej.XML}],["xml:space",{prefix:"xml",name:"space",namespace:ej.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:ej.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:ej.XMLNS}]]),_w=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),_E=new Set([eV.B,eV.BIG,eV.BLOCKQUOTE,eV.BODY,eV.BR,eV.CENTER,eV.CODE,eV.DD,eV.DIV,eV.DL,eV.DT,eV.EM,eV.EMBED,eV.H1,eV.H2,eV.H3,eV.H4,eV.H5,eV.H6,eV.HEAD,eV.HR,eV.I,eV.IMG,eV.LI,eV.LISTING,eV.MENU,eV.META,eV.NOBR,eV.OL,eV.P,eV.PRE,eV.RUBY,eV.S,eV.SMALL,eV.SPAN,eV.STRONG,eV.STRIKE,eV.SUB,eV.SUP,eV.TABLE,eV.TT,eV.U,eV.UL,eV.VAR]);function _O(e){for(let t=0;t0&&this._setContextModes(e,t)}onItemPop(e,t){var n,r;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(e,this.currentToken),null===(r=(n=this.treeAdapter).onItemPop)||void 0===r||r.call(n,e,this.openElements.current),t){let e,t;0===this.openElements.stackTop&&this.fragmentContext?(e=this.fragmentContext,t=this.fragmentContextID):{current:e,currentTagId:t}=this.openElements,this._setContextModes(e,t)}}_setContextModes(e,t){let n=e===this.document||e&&this.treeAdapter.getNamespaceURI(e)===ej.HTML;this.currentNotInHTML=!n,this.tokenizer.inForeignNode=!n&&void 0!==e&&void 0!==t&&!this._isIntegrationPoint(t,e)}_switchToTextParsing(e,t){this._insertElement(e,ej.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=eQ.TEXT}switchToPlaintextParsing(){this.insertionMode=eQ.TEXT,this.originalInsertionMode=eQ.IN_BODY,this.tokenizer.state=k$.PLAINTEXT}_getAdjustedCurrentElement(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let e=this.fragmentContext;for(;e;){if(this.treeAdapter.getTagName(e)===eZ.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}}_initTokenizerForFragmentParsing(){if(!!this.fragmentContext&&this.treeAdapter.getNamespaceURI(this.fragmentContext)===ej.HTML)switch(this.fragmentContextID){case eV.TITLE:case eV.TEXTAREA:this.tokenizer.state=k$.RCDATA;break;case eV.STYLE:case eV.XMP:case eV.IFRAME:case eV.NOEMBED:case eV.NOFRAMES:case eV.NOSCRIPT:this.tokenizer.state=k$.RAWTEXT;break;case eV.SCRIPT:this.tokenizer.state=k$.SCRIPT_DATA;break;case eV.PLAINTEXT:this.tokenizer.state=k$.PLAINTEXT}}_setDocumentType(e){let t=e.name||"",n=e.publicId||"",r=e.systemId||"";if(this.treeAdapter.setDocumentType(this.document,t,n,r),e.location){let t=this.treeAdapter.getChildNodes(this.document).find(e=>this.treeAdapter.isDocumentTypeNode(e));t&&this.treeAdapter.setNodeSourceCodeLocation(t,e.location)}}_attachElementToTree(e,t){if(this.options.sourceCodeLocationInfo){let n=t&&{...t,startTag:t};this.treeAdapter.setNodeSourceCodeLocation(e,n)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{let t=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(null!=t?t:this.document,e)}}_appendElement(e,t){let n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n,e.location)}_insertElement(e,t){let n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n,e.location),this.openElements.push(n,e.tagID)}_insertFakeElement(e,t){let n=this.treeAdapter.createElement(e,ej.HTML,[]);this._attachElementToTree(n,null),this.openElements.push(n,t)}_insertTemplate(e){let t=this.treeAdapter.createElement(e.tagName,ej.HTML,e.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,n),this._attachElementToTree(t,e.location),this.openElements.push(t,e.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,null)}_insertFakeRootElement(){let e=this.treeAdapter.createElement(eZ.HTML,ej.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(e,null),this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e,eV.HTML)}_appendCommentNode(e,t){let n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,e.location)}_insertCharacters(e){let t,n;if(this._shouldFosterParentOnInsertion()?({parent:t,beforeElement:n}=this._findFosterParentingLocation(),n?this.treeAdapter.insertTextBefore(t,e.chars,n):this.treeAdapter.insertText(t,e.chars)):(t=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(t,e.chars)),!e.location)return;let r=this.treeAdapter.getChildNodes(t),i=n?r.lastIndexOf(n):r.length,o=r[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(o)){let{endLine:t,endCol:n,endOffset:r}=e.location;this.treeAdapter.updateNodeSourceCodeLocation(o,{endLine:t,endCol:n,endOffset:r})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(o,e.location)}_adoptNodes(e,t){for(let n=this.treeAdapter.getFirstChild(e);n;n=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}_setEndLocation(e,t){if(this.treeAdapter.getNodeSourceCodeLocation(e)&&t.location){let n=t.location,r=this.treeAdapter.getTagName(e),i=t.type===eD.END_TAG&&r===t.tagName?{endTag:{...n},endLine:n.endLine,endCol:n.endCol,endOffset:n.endOffset}:{endLine:n.startLine,endCol:n.startCol,endOffset:n.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(e,i)}}shouldProcessStartTagTokenInForeignContent(e){let t,n;return!!this.currentNotInHTML&&(0===this.openElements.stackTop&&this.fragmentContext?(t=this.fragmentContext,n=this.fragmentContextID):{current:t,currentTagId:n}=this.openElements,(e.tagID!==eV.SVG||this.treeAdapter.getTagName(t)!==eZ.ANNOTATION_XML||this.treeAdapter.getNamespaceURI(t)!==ej.MATHML)&&(this.tokenizer.inForeignNode||(e.tagID===eV.MGLYPH||e.tagID===eV.MALIGNMARK)&&void 0!==n&&!this._isIntegrationPoint(n,t,ej.HTML)))}_processToken(e){switch(e.type){case eD.CHARACTER:this.onCharacter(e);break;case eD.NULL_CHARACTER:this.onNullCharacter(e);break;case eD.COMMENT:this.onComment(e);break;case eD.DOCTYPE:this.onDoctype(e);break;case eD.START_TAG:this._processStartTag(e);break;case eD.END_TAG:this.onEndTag(e);break;case eD.EOF:this.onEof(e);break;case eD.WHITESPACE_CHARACTER:this.onWhitespaceCharacter(e)}}_isIntegrationPoint(e,t,n){var r,i,o,a,s;let l=this.treeAdapter.getNamespaceURI(t),u=this.treeAdapter.getAttrList(t);return r=e,i=l,o=u,(!(a=n)||a===ej.HTML)&&function(e,t,n){if(t===ej.MATHML&&e===eV.ANNOTATION_XML){for(let e=0;ee.type===eW.Marker||this.openElements.contains(e.element)),n=-1===t?e-1:t-1;for(let e=n;e>=0;e--){let t=this.activeFormattingElements.entries[e];this._insertElement(t.token,this.treeAdapter.getNamespaceURI(t.element)),t.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=eQ.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(eV.P),this.openElements.popUntilTagNamePopped(eV.P)}_resetInsertionMode(){for(let e=this.openElements.stackTop;e>=0;e--)switch(0===e&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[e]){case eV.TR:this.insertionMode=eQ.IN_ROW;return;case eV.TBODY:case eV.THEAD:case eV.TFOOT:this.insertionMode=eQ.IN_TABLE_BODY;return;case eV.CAPTION:this.insertionMode=eQ.IN_CAPTION;return;case eV.COLGROUP:this.insertionMode=eQ.IN_COLUMN_GROUP;return;case eV.TABLE:this.insertionMode=eQ.IN_TABLE;return;case eV.BODY:this.insertionMode=eQ.IN_BODY;return;case eV.FRAMESET:this.insertionMode=eQ.IN_FRAMESET;return;case eV.SELECT:this._resetInsertionModeForSelect(e);return;case eV.TEMPLATE:this.insertionMode=this.tmplInsertionModeStack[0];return;case eV.HTML:this.insertionMode=this.headElement?eQ.AFTER_HEAD:eQ.BEFORE_HEAD;return;case eV.TD:case eV.TH:if(e>0){this.insertionMode=eQ.IN_CELL;return}break;case eV.HEAD:if(e>0){this.insertionMode=eQ.IN_HEAD;return}}this.insertionMode=eQ.IN_BODY}_resetInsertionModeForSelect(e){if(e>0)for(let t=e-1;t>0;t--){let e=this.openElements.tagIDs[t];if(e===eV.TEMPLATE)break;if(e===eV.TABLE){this.insertionMode=eQ.IN_SELECT_IN_TABLE;return}}this.insertionMode=eQ.IN_SELECT}_isElementCausesFosterParenting(e){return _I.has(e)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&void 0!==this.openElements.currentTagId&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let e=this.openElements.stackTop;e>=0;e--){let t=this.openElements.items[e];switch(this.openElements.tagIDs[e]){case eV.TEMPLATE:if(this.treeAdapter.getNamespaceURI(t)===ej.HTML)return{parent:this.treeAdapter.getTemplateContent(t),beforeElement:null};break;case eV.TABLE:{let n=this.treeAdapter.getParentNode(t);if(n)return{parent:n,beforeElement:t};return{parent:this.openElements.items[e-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(e){let t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)}_isSpecialElement(e,t){return kX[this.treeAdapter.getNamespaceURI(e)].has(t)}onCharacter(e){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){(function(e,t){e._insertCharacters(t),e.framesetOk=!1})(this,e);return}switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:_M(this,e);break;case eQ.BEFORE_HEAD:_L(this,e);break;case eQ.IN_HEAD:_U(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:_j(this,e);break;case eQ.AFTER_HEAD:_z(this,e);break;case eQ.IN_BODY:case eQ.IN_CAPTION:case eQ.IN_CELL:case eQ.IN_TEMPLATE:_V(this,e);break;case eQ.TEXT:case eQ.IN_SELECT:case eQ.IN_SELECT_IN_TABLE:this._insertCharacters(e);break;case eQ.IN_TABLE:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:_$(this,e);break;case eQ.IN_TABLE_TEXT:_3(this,e);break;case eQ.IN_COLUMN_GROUP:_5(this,e);break;case eQ.AFTER_BODY:Rs(this,e);break;case eQ.AFTER_AFTER_BODY:Rl(this,e)}}onNullCharacter(e){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){(function(e,t){t.chars="�",e._insertCharacters(t)})(this,e);return}switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:_M(this,e);break;case eQ.BEFORE_HEAD:_L(this,e);break;case eQ.IN_HEAD:_U(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:_j(this,e);break;case eQ.AFTER_HEAD:_z(this,e);break;case eQ.TEXT:this._insertCharacters(e);break;case eQ.IN_TABLE:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:_$(this,e);break;case eQ.IN_COLUMN_GROUP:_5(this,e);break;case eQ.AFTER_BODY:Rs(this,e);break;case eQ.AFTER_AFTER_BODY:Rl(this,e)}}onComment(e){if(this.skipNextNewLine=!1,this.currentNotInHTML){_P(this,e);return}switch(this.insertionMode){case eQ.INITIAL:case eQ.BEFORE_HTML:case eQ.BEFORE_HEAD:case eQ.IN_HEAD:case eQ.IN_HEAD_NO_SCRIPT:case eQ.AFTER_HEAD:case eQ.IN_BODY:case eQ.IN_TABLE:case eQ.IN_CAPTION:case eQ.IN_COLUMN_GROUP:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:case eQ.IN_CELL:case eQ.IN_SELECT:case eQ.IN_SELECT_IN_TABLE:case eQ.IN_TEMPLATE:case eQ.IN_FRAMESET:case eQ.AFTER_FRAMESET:_P(this,e);break;case eQ.IN_TABLE_TEXT:_6(this,e);break;case eQ.AFTER_BODY:(function(e,t){e._appendCommentNode(t,e.openElements.items[0])})(this,e);break;case eQ.AFTER_AFTER_BODY:case eQ.AFTER_AFTER_FRAMESET:(function(e,t){e._appendCommentNode(t,e.document)})(this,e)}}onDoctype(e){switch(this.skipNextNewLine=!1,this.insertionMode){case eQ.INITIAL:(function(e,t){var n;e._setDocumentType(t);let r=t.forceQuirks?eH.QUIRKS:function(e){if(e.name!==_d)return eH.QUIRKS;let{systemId:t}=e;if(t&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===t.toLowerCase())return eH.QUIRKS;let{publicId:n}=e;if(null!==n){if(n=n.toLowerCase(),_m.has(n))return eH.QUIRKS;let e=null===t?_f:_h;if(_b(n,e))return eH.QUIRKS;if(_b(n,e=null===t?_g:_A))return eH.LIMITED_QUIRKS}return eH.NO_QUIRKS}(t);if(!((n=t).name===_d&&null===n.publicId&&(null===n.systemId||"about:legacy-compat"===n.systemId)))e._err(t,eN.nonConformingDoctype);e.treeAdapter.setDocumentMode(e.document,r),e.insertionMode=eQ.BEFORE_HTML})(this,e);break;case eQ.BEFORE_HEAD:case eQ.IN_HEAD:case eQ.IN_HEAD_NO_SCRIPT:case eQ.AFTER_HEAD:this._err(e,eN.misplacedDoctype);break;case eQ.IN_TABLE_TEXT:_6(this,e)}}onStartTag(e){this.skipNextNewLine=!1,this.currentToken=e,this._processStartTag(e),e.selfClosing&&!e.ackSelfClosing&&this._err(e,eN.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(e){this.shouldProcessStartTagTokenInForeignContent(e)?function(e,t){if(function(e){let t=e.tagID;return t===eV.FONT&&e.attrs.some(({name:e})=>e===ez.COLOR||e===ez.SIZE||e===ez.FACE)||_E.has(t)}(t))Ru(e),e._startTagOutsideForeignContent(t);else{let n=e._getAdjustedCurrentElement(),r=e.treeAdapter.getNamespaceURI(n);r===ej.MATHML?_O(t):r===ej.SVG&&(!function(e){let t=_w.get(e.tagName);null!=t&&(e.tagName=t,e.tagID=kK(e.tagName))}(t),_T(t)),_C(t),t.selfClosing?e._appendElement(t,r):e._insertElement(t,r),t.ackSelfClosing=!0}}(this,e):this._startTagOutsideForeignContent(e)}_startTagOutsideForeignContent(e){switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:(function(e,t){t.tagID===eV.HTML?(e._insertElement(t,ej.HTML),e.insertionMode=eQ.BEFORE_HEAD):_M(e,t)})(this,e);break;case eQ.BEFORE_HEAD:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.HEAD:e._insertElement(t,ej.HTML),e.headElement=e.openElements.current,e.insertionMode=eQ.IN_HEAD;break;default:_L(e,t)}})(this,e);break;case eQ.IN_HEAD:_B(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.BASEFONT:case eV.BGSOUND:case eV.HEAD:case eV.LINK:case eV.META:case eV.NOFRAMES:case eV.STYLE:_B(e,t);break;case eV.NOSCRIPT:e._err(t,eN.nestedNoscriptInHead);break;default:_j(e,t)}})(this,e);break;case eQ.AFTER_HEAD:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.BODY:e._insertElement(t,ej.HTML),e.framesetOk=!1,e.insertionMode=eQ.IN_BODY;break;case eV.FRAMESET:e._insertElement(t,ej.HTML),e.insertionMode=eQ.IN_FRAMESET;break;case eV.BASE:case eV.BASEFONT:case eV.BGSOUND:case eV.LINK:case eV.META:case eV.NOFRAMES:case eV.SCRIPT:case eV.STYLE:case eV.TEMPLATE:case eV.TITLE:e._err(t,eN.abandonedHeadElementChild),e.openElements.push(e.headElement,eV.HEAD),_B(e,t),e.openElements.remove(e.headElement);break;case eV.HEAD:e._err(t,eN.misplacedStartTagForHeadElement);break;default:_z(e,t)}})(this,e);break;case eQ.IN_BODY:_K(this,e);break;case eQ.IN_TABLE:_0(this,e);break;case eQ.IN_TABLE_TEXT:_6(this,e);break;case eQ.IN_CAPTION:(function(e,t){let n=t.tagID;_7.has(n)?e.openElements.hasInTableScope(eV.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(eV.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=eQ.IN_TABLE,_0(e,t)):_K(e,t)})(this,e);break;case eQ.IN_COLUMN_GROUP:_8(this,e);break;case eQ.IN_TABLE_BODY:_9(this,e);break;case eQ.IN_ROW:Rt(this,e);break;case eQ.IN_CELL:(function(e,t){let n=t.tagID;_7.has(n)?(e.openElements.hasInTableScope(eV.TD)||e.openElements.hasInTableScope(eV.TH))&&(e._closeTableCell(),Rt(e,t)):_K(e,t)})(this,e);break;case eQ.IN_SELECT:Rr(this,e);break;case eQ.IN_SELECT_IN_TABLE:(function(e,t){let n=t.tagID;n===eV.CAPTION||n===eV.TABLE||n===eV.TBODY||n===eV.TFOOT||n===eV.THEAD||n===eV.TR||n===eV.TD||n===eV.TH?(e.openElements.popUntilTagNamePopped(eV.SELECT),e._resetInsertionMode(),e._processStartTag(t)):Rr(e,t)})(this,e);break;case eQ.IN_TEMPLATE:(function(e,t){switch(t.tagID){case eV.BASE:case eV.BASEFONT:case eV.BGSOUND:case eV.LINK:case eV.META:case eV.NOFRAMES:case eV.SCRIPT:case eV.STYLE:case eV.TEMPLATE:case eV.TITLE:_B(e,t);break;case eV.CAPTION:case eV.COLGROUP:case eV.TBODY:case eV.TFOOT:case eV.THEAD:e.tmplInsertionModeStack[0]=eQ.IN_TABLE,e.insertionMode=eQ.IN_TABLE,_0(e,t);break;case eV.COL:e.tmplInsertionModeStack[0]=eQ.IN_COLUMN_GROUP,e.insertionMode=eQ.IN_COLUMN_GROUP,_8(e,t);break;case eV.TR:e.tmplInsertionModeStack[0]=eQ.IN_TABLE_BODY,e.insertionMode=eQ.IN_TABLE_BODY,_9(e,t);break;case eV.TD:case eV.TH:e.tmplInsertionModeStack[0]=eQ.IN_ROW,e.insertionMode=eQ.IN_ROW,Rt(e,t);break;default:e.tmplInsertionModeStack[0]=eQ.IN_BODY,e.insertionMode=eQ.IN_BODY,_K(e,t)}})(this,e);break;case eQ.AFTER_BODY:(function(e,t){t.tagID===eV.HTML?_K(e,t):Rs(e,t)})(this,e);break;case eQ.IN_FRAMESET:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.FRAMESET:e._insertElement(t,ej.HTML);break;case eV.FRAME:e._appendElement(t,ej.HTML),t.ackSelfClosing=!0;break;case eV.NOFRAMES:_B(e,t)}})(this,e);break;case eQ.AFTER_FRAMESET:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.NOFRAMES:_B(e,t)}})(this,e);break;case eQ.AFTER_AFTER_BODY:(function(e,t){t.tagID===eV.HTML?_K(e,t):Rl(e,t)})(this,e);break;case eQ.AFTER_AFTER_FRAMESET:(function(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.NOFRAMES:_B(e,t)}})(this,e)}}onEndTag(e){this.skipNextNewLine=!1,this.currentToken=e,this.currentNotInHTML?function(e,t){if(t.tagID===eV.P||t.tagID===eV.BR){Ru(e),e._endTagOutsideForeignContent(t);return}for(let n=e.openElements.stackTop;n>0;n--){let r=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(r)===ej.HTML){e._endTagOutsideForeignContent(t);break}let i=e.treeAdapter.getTagName(r);if(i.toLowerCase()===t.tagName){t.tagName=i,e.openElements.shortenToLength(n);break}}}(this,e):this._endTagOutsideForeignContent(e)}_endTagOutsideForeignContent(e){switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:(function(e,t){let n=t.tagID;(n===eV.HTML||n===eV.HEAD||n===eV.BODY||n===eV.BR)&&_M(e,t)})(this,e);break;case eQ.BEFORE_HEAD:(function(e,t){let n=t.tagID;n===eV.HEAD||n===eV.BODY||n===eV.HTML||n===eV.BR?_L(e,t):e._err(t,eN.endTagWithoutMatchingOpenElement)})(this,e);break;case eQ.IN_HEAD:(function(e,t){switch(t.tagID){case eV.HEAD:e.openElements.pop(),e.insertionMode=eQ.AFTER_HEAD;break;case eV.BODY:case eV.BR:case eV.HTML:_U(e,t);break;case eV.TEMPLATE:_F(e,t);break;default:e._err(t,eN.endTagWithoutMatchingOpenElement)}})(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:(function(e,t){switch(t.tagID){case eV.NOSCRIPT:e.openElements.pop(),e.insertionMode=eQ.IN_HEAD;break;case eV.BR:_j(e,t);break;default:e._err(t,eN.endTagWithoutMatchingOpenElement)}})(this,e);break;case eQ.AFTER_HEAD:(function(e,t){switch(t.tagID){case eV.BODY:case eV.HTML:case eV.BR:_z(e,t);break;case eV.TEMPLATE:_F(e,t);break;default:e._err(t,eN.endTagWithoutMatchingOpenElement)}})(this,e);break;case eQ.IN_BODY:_X(this,e);break;case eQ.TEXT:(function(e,t){var n;t.tagID===eV.SCRIPT&&(null===(n=e.scriptHandler)||void 0===n||n.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode})(this,e);break;case eQ.IN_TABLE:_1(this,e);break;case eQ.IN_TABLE_TEXT:_6(this,e);break;case eQ.IN_CAPTION:(function(e,t){let n=t.tagID;switch(n){case eV.CAPTION:case eV.TABLE:e.openElements.hasInTableScope(eV.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(eV.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=eQ.IN_TABLE,n===eV.TABLE&&_1(e,t));break;case eV.BODY:case eV.COL:case eV.COLGROUP:case eV.HTML:case eV.TBODY:case eV.TD:case eV.TFOOT:case eV.TH:case eV.THEAD:case eV.TR:break;default:_X(e,t)}})(this,e);break;case eQ.IN_COLUMN_GROUP:(function(e,t){switch(t.tagID){case eV.COLGROUP:e.openElements.currentTagId===eV.COLGROUP&&(e.openElements.pop(),e.insertionMode=eQ.IN_TABLE);break;case eV.TEMPLATE:_F(e,t);break;case eV.COL:break;default:_5(e,t)}})(this,e);break;case eQ.IN_TABLE_BODY:Re(this,e);break;case eQ.IN_ROW:Rn(this,e);break;case eQ.IN_CELL:(function(e,t){let n=t.tagID;switch(n){case eV.TD:case eV.TH:e.openElements.hasInTableScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=eQ.IN_ROW);break;case eV.TABLE:case eV.TBODY:case eV.TFOOT:case eV.THEAD:case eV.TR:e.openElements.hasInTableScope(n)&&(e._closeTableCell(),Rn(e,t));break;case eV.BODY:case eV.CAPTION:case eV.COL:case eV.COLGROUP:case eV.HTML:break;default:_X(e,t)}})(this,e);break;case eQ.IN_SELECT:Ri(this,e);break;case eQ.IN_SELECT_IN_TABLE:(function(e,t){let n=t.tagID;n===eV.CAPTION||n===eV.TABLE||n===eV.TBODY||n===eV.TFOOT||n===eV.THEAD||n===eV.TR||n===eV.TD||n===eV.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(eV.SELECT),e._resetInsertionMode(),e.onEndTag(t)):Ri(e,t)})(this,e);break;case eQ.IN_TEMPLATE:(function(e,t){t.tagID===eV.TEMPLATE&&_F(e,t)})(this,e);break;case eQ.AFTER_BODY:Ra(this,e);break;case eQ.IN_FRAMESET:(function(e,t){t.tagID===eV.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==eV.FRAMESET&&(e.insertionMode=eQ.AFTER_FRAMESET))})(this,e);break;case eQ.AFTER_FRAMESET:(function(e,t){t.tagID===eV.HTML&&(e.insertionMode=eQ.AFTER_AFTER_FRAMESET)})(this,e);break;case eQ.AFTER_AFTER_BODY:Rl(this,e)}}onEof(e){switch(this.insertionMode){case eQ.INITIAL:_D(this,e);break;case eQ.BEFORE_HTML:_M(this,e);break;case eQ.BEFORE_HEAD:_L(this,e);break;case eQ.IN_HEAD:_U(this,e);break;case eQ.IN_HEAD_NO_SCRIPT:_j(this,e);break;case eQ.AFTER_HEAD:_z(this,e);break;case eQ.IN_BODY:case eQ.IN_TABLE:case eQ.IN_CAPTION:case eQ.IN_COLUMN_GROUP:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:case eQ.IN_CELL:case eQ.IN_SELECT:case eQ.IN_SELECT_IN_TABLE:_J(this,e);break;case eQ.TEXT:(function(e,t){e._err(t,eN.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t)})(this,e);break;case eQ.IN_TABLE_TEXT:_6(this,e);break;case eQ.IN_TEMPLATE:Ro(this,e);break;case eQ.AFTER_BODY:case eQ.IN_FRAMESET:case eQ.AFTER_FRAMESET:case eQ.AFTER_AFTER_BODY:case eQ.AFTER_AFTER_FRAMESET:_N(this,e)}}onWhitespaceCharacter(e){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,e.chars.charCodeAt(0)===eP.LINE_FEED)){if(1===e.chars.length)return;e.chars=e.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(e);return}switch(this.insertionMode){case eQ.IN_HEAD:case eQ.IN_HEAD_NO_SCRIPT:case eQ.AFTER_HEAD:case eQ.TEXT:case eQ.IN_COLUMN_GROUP:case eQ.IN_SELECT:case eQ.IN_SELECT_IN_TABLE:case eQ.IN_FRAMESET:case eQ.AFTER_FRAMESET:this._insertCharacters(e);break;case eQ.IN_BODY:case eQ.IN_CAPTION:case eQ.IN_CELL:case eQ.IN_TEMPLATE:case eQ.AFTER_BODY:case eQ.AFTER_AFTER_BODY:case eQ.AFTER_AFTER_FRAMESET:_Z(this,e);break;case eQ.IN_TABLE:case eQ.IN_TABLE_BODY:case eQ.IN_ROW:_$(this,e);break;case eQ.IN_TABLE_TEXT:_4(this,e)}}}function _R(e,t){for(let n=0;n<8;n++){let n=function(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?!e.openElements.hasInScope(t.tagID)&&(n=null):(e.activeFormattingElements.removeEntry(n),n=null):_Y(e,t),n}(e,t);if(!n)break;let r=function(e,t){let n=null,r=e.openElements.stackTop;for(;r>=0;r--){let i=e.openElements.items[r];if(i===t.element)break;e._isSpecialElement(i,e.openElements.tagIDs[r])&&(n=i)}return!n&&(e.openElements.shortenToLength(Math.max(r,0)),e.activeFormattingElements.removeEntry(t)),n}(e,n);if(!r)break;e.activeFormattingElements.bookmark=n;let i=function(e,t,n){let r=t,i=e.openElements.getCommonAncestor(t);for(let o=0,a=i;a!==n;o++,a=i){i=e.openElements.getCommonAncestor(a);let n=e.activeFormattingElements.getElementEntry(a),s=n&&o>=3;!n||s?(s&&e.activeFormattingElements.removeEntry(n),e.openElements.remove(a)):(a=function(e,t){let n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}(e,n),r===t&&(e.activeFormattingElements.bookmark=n),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(a,r),r=a)}return r}(e,r,n.element),o=e.openElements.getCommonAncestor(n.element);e.treeAdapter.detachNode(i),o&&!function(e,t,n){let r=kK(e.treeAdapter.getTagName(t));if(e._isElementCausesFosterParenting(r))e._fosterParentElement(n);else{let i=e.treeAdapter.getNamespaceURI(t);r===eV.TEMPLATE&&i===ej.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}(e,o,i),!function(e,t,n){let r=e.treeAdapter.getNamespaceURI(n.element),{token:i}=n,o=e.treeAdapter.createElement(i.tagName,r,i.attrs);e._adoptNodes(t,o),e.treeAdapter.appendChild(t,o),e.activeFormattingElements.insertElementAfterBookmark(o,i),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,o,i.tagID)}(e,r,n)}}function _P(e,t){e._appendCommentNode(t,e.openElements.currentTmplContentOrNode)}function _N(e,t){if(e.stopped=!0,t.location){let n=e.fragmentContext?0:2;for(let r=e.openElements.stackTop;r>=n;r--)e._setEndLocation(e.openElements.items[r],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){let n=e.openElements.items[0],r=e.treeAdapter.getNodeSourceCodeLocation(n);if(r&&!r.endTag&&(e._setEndLocation(n,t),e.openElements.stackTop>=1)){let n=e.openElements.items[1],r=e.treeAdapter.getNodeSourceCodeLocation(n);r&&!r.endTag&&e._setEndLocation(n,t)}}}}function _D(e,t){e._err(t,eN.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,eH.QUIRKS),e.insertionMode=eQ.BEFORE_HTML,e._processToken(t)}function _M(e,t){e._insertFakeRootElement(),e.insertionMode=eQ.BEFORE_HEAD,e._processToken(t)}function _L(e,t){e._insertFakeElement(eZ.HEAD,eV.HEAD),e.headElement=e.openElements.current,e.insertionMode=eQ.IN_HEAD,e._processToken(t)}function _B(e,t){switch(t.tagID){case eV.HTML:_K(e,t);break;case eV.BASE:case eV.BASEFONT:case eV.BGSOUND:case eV.LINK:case eV.META:e._appendElement(t,ej.HTML),t.ackSelfClosing=!0;break;case eV.TITLE:e._switchToTextParsing(t,k$.RCDATA);break;case eV.NOSCRIPT:e.options.scriptingEnabled?e._switchToTextParsing(t,k$.RAWTEXT):(e._insertElement(t,ej.HTML),e.insertionMode=eQ.IN_HEAD_NO_SCRIPT);break;case eV.NOFRAMES:case eV.STYLE:e._switchToTextParsing(t,k$.RAWTEXT);break;case eV.SCRIPT:e._switchToTextParsing(t,k$.SCRIPT_DATA);break;case eV.TEMPLATE:e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=eQ.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(eQ.IN_TEMPLATE);break;case eV.HEAD:e._err(t,eN.misplacedStartTagForHeadElement);break;default:_U(e,t)}}function _F(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==eV.TEMPLATE&&e._err(t,eN.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(eV.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,eN.endTagWithoutMatchingOpenElement)}function _U(e,t){e.openElements.pop(),e.insertionMode=eQ.AFTER_HEAD,e._processToken(t)}function _j(e,t){let n=t.type===eD.EOF?eN.openElementsLeftAfterEof:eN.disallowedContentInNoscriptInHead;e._err(t,n),e.openElements.pop(),e.insertionMode=eQ.IN_HEAD,e._processToken(t)}function _z(e,t){e._insertFakeElement(eZ.BODY,eV.BODY),e.insertionMode=eQ.IN_BODY,_H(e,t)}function _H(e,t){switch(t.type){case eD.CHARACTER:_V(e,t);break;case eD.WHITESPACE_CHARACTER:_Z(e,t);break;case eD.COMMENT:_P(e,t);break;case eD.START_TAG:_K(e,t);break;case eD.END_TAG:_X(e,t);break;case eD.EOF:_J(e,t)}}function _Z(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function _V(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function _G(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,ej.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function _W(e){let t=kZ(e,ez.TYPE);return null!=t&&"hidden"===t.toLowerCase()}function _Q(e,t){e._switchToTextParsing(t,k$.RAWTEXT)}function _q(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ej.HTML)}function _K(e,t){var n,r,i,o,a,s,l,u,c,p,d,h,f,m,g,A,b,y,v,S,w,E,O,T,C,x,I,k,_,R,P,N,D,M,L,B,F,U,j,z,H,Z,V,G,W,Q;switch(t.tagID){case eV.I:case eV.S:case eV.B:case eV.U:case eV.EM:case eV.TT:case eV.BIG:case eV.CODE:case eV.FONT:case eV.SMALL:case eV.STRIKE:case eV.STRONG:;n=e,r=t,n._reconstructActiveFormattingElements(),n._insertElement(r,ej.HTML),n.activeFormattingElements.pushElement(n.openElements.current,r);break;case eV.A:!function(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(eZ.A);n&&(_R(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,ej.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}(e,t);break;case eV.H1:case eV.H2:case eV.H3:case eV.H4:case eV.H5:case eV.H6:;i=e,o=t,i.openElements.hasInButtonScope(eV.P)&&i._closePElement(),void 0!==i.openElements.currentTagId&&kJ.has(i.openElements.currentTagId)&&i.openElements.pop(),i._insertElement(o,ej.HTML);break;case eV.P:case eV.DL:case eV.OL:case eV.UL:case eV.DIV:case eV.DIR:case eV.NAV:case eV.MAIN:case eV.MENU:case eV.ASIDE:case eV.CENTER:case eV.FIGURE:case eV.FOOTER:case eV.HEADER:case eV.HGROUP:case eV.DIALOG:case eV.DETAILS:case eV.ADDRESS:case eV.ARTICLE:case eV.SEARCH:case eV.SECTION:case eV.SUMMARY:case eV.FIELDSET:case eV.BLOCKQUOTE:case eV.FIGCAPTION:;a=e,s=t,a.openElements.hasInButtonScope(eV.P)&&a._closePElement(),a._insertElement(s,ej.HTML);break;case eV.LI:case eV.DD:case eV.DT:!function(e,t){e.framesetOk=!1;let n=t.tagID;for(let t=e.openElements.stackTop;t>=0;t--){let r=e.openElements.tagIDs[t];if(n===eV.LI&&r===eV.LI||(n===eV.DD||n===eV.DT)&&(r===eV.DD||r===eV.DT)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilTagNamePopped(r);break}if(r!==eV.ADDRESS&&r!==eV.DIV&&r!==eV.P&&e._isSpecialElement(e.openElements.items[t],r))break}e.openElements.hasInButtonScope(eV.P)&&e._closePElement(),e._insertElement(t,ej.HTML)}(e,t);break;case eV.BR:case eV.IMG:case eV.WBR:case eV.AREA:case eV.EMBED:case eV.KEYGEN:_G(e,t);break;case eV.HR:;l=e,u=t,l.openElements.hasInButtonScope(eV.P)&&l._closePElement(),l._appendElement(u,ej.HTML),l.framesetOk=!1,u.ackSelfClosing=!0;break;case eV.RB:case eV.RTC:;c=e,p=t,c.openElements.hasInScope(eV.RUBY)&&c.openElements.generateImpliedEndTags(),c._insertElement(p,ej.HTML);break;case eV.RT:case eV.RP:;d=e,h=t,d.openElements.hasInScope(eV.RUBY)&&d.openElements.generateImpliedEndTagsWithExclusion(eV.RTC),d._insertElement(h,ej.HTML);break;case eV.PRE:case eV.LISTING:;f=e,m=t,f.openElements.hasInButtonScope(eV.P)&&f._closePElement(),f._insertElement(m,ej.HTML),f.skipNextNewLine=!0,f.framesetOk=!1;break;case eV.XMP:;g=e,A=t,g.openElements.hasInButtonScope(eV.P)&&g._closePElement(),g._reconstructActiveFormattingElements(),g.framesetOk=!1,g._switchToTextParsing(A,k$.RAWTEXT);break;case eV.SVG:;b=e,y=t,b._reconstructActiveFormattingElements(),_T(y),_C(y),y.selfClosing?b._appendElement(y,ej.SVG):b._insertElement(y,ej.SVG),y.ackSelfClosing=!0;break;case eV.HTML:;v=e,S=t,0===v.openElements.tmplCount&&v.treeAdapter.adoptAttributes(v.openElements.items[0],S.attrs);break;case eV.BASE:case eV.LINK:case eV.META:case eV.STYLE:case eV.TITLE:case eV.SCRIPT:case eV.BGSOUND:case eV.BASEFONT:case eV.TEMPLATE:_B(e,t);break;case eV.BODY:!function(e,t){let n=e.openElements.tryPeekProperlyNestedBodyElement();n&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}(e,t);break;case eV.FORM:!function(e,t){let n=e.openElements.tmplCount>0;(!e.formElement||n)&&(e.openElements.hasInButtonScope(eV.P)&&e._closePElement(),e._insertElement(t,ej.HTML),!n&&(e.formElement=e.openElements.current))}(e,t);break;case eV.NOBR:;w=e,E=t,w._reconstructActiveFormattingElements(),w.openElements.hasInScope(eV.NOBR)&&(_R(w,E),w._reconstructActiveFormattingElements()),w._insertElement(E,ej.HTML),w.activeFormattingElements.pushElement(w.openElements.current,E);break;case eV.MATH:;O=e,T=t,O._reconstructActiveFormattingElements(),_O(T),_C(T),T.selfClosing?O._appendElement(T,ej.MATHML):O._insertElement(T,ej.MATHML),T.ackSelfClosing=!0;break;case eV.TABLE:;C=e,x=t,C.treeAdapter.getDocumentMode(C.document)!==eH.QUIRKS&&C.openElements.hasInButtonScope(eV.P)&&C._closePElement(),C._insertElement(x,ej.HTML),C.framesetOk=!1,C.insertionMode=eQ.IN_TABLE;break;case eV.INPUT:;I=e,k=t,I._reconstructActiveFormattingElements(),I._appendElement(k,ej.HTML),_W(k)||(I.framesetOk=!1),k.ackSelfClosing=!0;break;case eV.PARAM:case eV.TRACK:case eV.SOURCE:;_=e,R=t,_._appendElement(R,ej.HTML),R.ackSelfClosing=!0;break;case eV.IMAGE:;P=e,(N=t).tagName=eZ.IMG,N.tagID=eV.IMG,_G(P,N);break;case eV.BUTTON:;D=e,M=t,D.openElements.hasInScope(eV.BUTTON)&&(D.openElements.generateImpliedEndTags(),D.openElements.popUntilTagNamePopped(eV.BUTTON)),D._reconstructActiveFormattingElements(),D._insertElement(M,ej.HTML),D.framesetOk=!1;break;case eV.APPLET:case eV.OBJECT:case eV.MARQUEE:;L=e,B=t,L._reconstructActiveFormattingElements(),L._insertElement(B,ej.HTML),L.activeFormattingElements.insertMarker(),L.framesetOk=!1;break;case eV.IFRAME:;F=e,U=t,F.framesetOk=!1,F._switchToTextParsing(U,k$.RAWTEXT);break;case eV.SELECT:;j=e,z=t,j._reconstructActiveFormattingElements(),j._insertElement(z,ej.HTML),j.framesetOk=!1,j.insertionMode=j.insertionMode===eQ.IN_TABLE||j.insertionMode===eQ.IN_CAPTION||j.insertionMode===eQ.IN_TABLE_BODY||j.insertionMode===eQ.IN_ROW||j.insertionMode===eQ.IN_CELL?eQ.IN_SELECT_IN_TABLE:eQ.IN_SELECT;break;case eV.OPTION:case eV.OPTGROUP:;H=e,Z=t,H.openElements.currentTagId===eV.OPTION&&H.openElements.pop(),H._reconstructActiveFormattingElements(),H._insertElement(Z,ej.HTML);break;case eV.NOEMBED:case eV.NOFRAMES:_Q(e,t);break;case eV.FRAMESET:!function(e,t){let n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,ej.HTML),e.insertionMode=eQ.IN_FRAMESET)}(e,t);break;case eV.TEXTAREA:;V=e,G=t,V._insertElement(G,ej.HTML),V.skipNextNewLine=!0,V.tokenizer.state=k$.RCDATA,V.originalInsertionMode=V.insertionMode,V.framesetOk=!1,V.insertionMode=eQ.TEXT;break;case eV.NOSCRIPT:e.options.scriptingEnabled?_Q(e,t):_q(e,t);break;case eV.PLAINTEXT:;W=e,Q=t,W.openElements.hasInButtonScope(eV.P)&&W._closePElement(),W._insertElement(Q,ej.HTML),W.tokenizer.state=k$.PLAINTEXT;break;case eV.COL:case eV.TH:case eV.TD:case eV.TR:case eV.HEAD:case eV.FRAME:case eV.TBODY:case eV.TFOOT:case eV.THEAD:case eV.CAPTION:case eV.COLGROUP:break;default:_q(e,t)}}function _Y(e,t){let n=t.tagName,r=t.tagID;for(let t=e.openElements.stackTop;t>0;t--){let i=e.openElements.items[t],o=e.openElements.tagIDs[t];if(r===o&&(r!==eV.UNKNOWN||e.treeAdapter.getTagName(i)===n)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.stackTop>=t&&e.openElements.shortenToLength(t);break}if(e._isSpecialElement(i,o))break}}function _X(e,t){var n,r,i,o,a,s;switch(t.tagID){case eV.A:case eV.B:case eV.I:case eV.S:case eV.U:case eV.EM:case eV.TT:case eV.BIG:case eV.CODE:case eV.FONT:case eV.NOBR:case eV.SMALL:case eV.STRIKE:case eV.STRONG:_R(e,t);break;case eV.P:;(n=e).openElements.hasInButtonScope(eV.P)||n._insertFakeElement(eZ.P,eV.P),n._closePElement();break;case eV.DL:case eV.UL:case eV.OL:case eV.DIR:case eV.DIV:case eV.NAV:case eV.PRE:case eV.MAIN:case eV.MENU:case eV.ASIDE:case eV.BUTTON:case eV.CENTER:case eV.FIGURE:case eV.FOOTER:case eV.HEADER:case eV.HGROUP:case eV.DIALOG:case eV.ADDRESS:case eV.ARTICLE:case eV.DETAILS:case eV.SEARCH:case eV.SECTION:case eV.SUMMARY:case eV.LISTING:case eV.FIELDSET:case eV.BLOCKQUOTE:case eV.FIGCAPTION:!function(e,t){let n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}(e,t);break;case eV.LI:;(r=e).openElements.hasInListItemScope(eV.LI)&&(r.openElements.generateImpliedEndTagsWithExclusion(eV.LI),r.openElements.popUntilTagNamePopped(eV.LI));break;case eV.DD:case eV.DT:!function(e,t){let n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}(e,t);break;case eV.H1:case eV.H2:case eV.H3:case eV.H4:case eV.H5:case eV.H6:;(i=e).openElements.hasNumberedHeaderInScope()&&(i.openElements.generateImpliedEndTags(),i.openElements.popUntilNumberedHeaderPopped());break;case eV.BR:;(o=e)._reconstructActiveFormattingElements(),o._insertFakeElement(eZ.BR,eV.BR),o.openElements.pop(),o.framesetOk=!1;break;case eV.BODY:!function(e,t){if(e.openElements.hasInScope(eV.BODY)&&(e.insertionMode=eQ.AFTER_BODY,e.options.sourceCodeLocationInfo)){let n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e._setEndLocation(n,t)}}(e,t);break;case eV.HTML:;a=e,s=t,a.openElements.hasInScope(eV.BODY)&&(a.insertionMode=eQ.AFTER_BODY,Ra(a,s));break;case eV.FORM:!function(e){let t=e.openElements.tmplCount>0,{formElement:n}=e;!t&&(e.formElement=null),(n||t)&&e.openElements.hasInScope(eV.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(eV.FORM):n&&e.openElements.remove(n))}(e);break;case eV.APPLET:case eV.OBJECT:case eV.MARQUEE:!function(e,t){let n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}(e,t);break;case eV.TEMPLATE:_F(e,t);break;default:_Y(e,t)}}function _J(e,t){e.tmplInsertionModeStack.length>0?Ro(e,t):_N(e,t)}function _$(e,t){if(void 0!==e.openElements.currentTagId&&_I.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=eQ.IN_TABLE_TEXT,t.type){case eD.CHARACTER:_3(e,t);break;case eD.WHITESPACE_CHARACTER:_4(e,t)}else _2(e,t)}function _0(e,t){var n,r,i,o,a,s,l,u,c,p,d,h,f,m,g,A;switch(t.tagID){case eV.TD:case eV.TH:case eV.TR:;n=e,r=t,n.openElements.clearBackToTableContext(),n._insertFakeElement(eZ.TBODY,eV.TBODY),n.insertionMode=eQ.IN_TABLE_BODY,_9(n,r);break;case eV.STYLE:case eV.SCRIPT:case eV.TEMPLATE:_B(e,t);break;case eV.COL:;i=e,o=t,i.openElements.clearBackToTableContext(),i._insertFakeElement(eZ.COLGROUP,eV.COLGROUP),i.insertionMode=eQ.IN_COLUMN_GROUP,_8(i,o);break;case eV.FORM:;a=e,s=t,a.formElement||0!==a.openElements.tmplCount||(a._insertElement(s,ej.HTML),a.formElement=a.openElements.current,a.openElements.pop());break;case eV.TABLE:;l=e,u=t,l.openElements.hasInTableScope(eV.TABLE)&&(l.openElements.popUntilTagNamePopped(eV.TABLE),l._resetInsertionMode(),l._processStartTag(u));break;case eV.TBODY:case eV.TFOOT:case eV.THEAD:;c=e,p=t,c.openElements.clearBackToTableContext(),c._insertElement(p,ej.HTML),c.insertionMode=eQ.IN_TABLE_BODY;break;case eV.INPUT:;d=e,_W(h=t)?d._appendElement(h,ej.HTML):_2(d,h),h.ackSelfClosing=!0;break;case eV.CAPTION:;f=e,m=t,f.openElements.clearBackToTableContext(),f.activeFormattingElements.insertMarker(),f._insertElement(m,ej.HTML),f.insertionMode=eQ.IN_CAPTION;break;case eV.COLGROUP:;g=e,A=t,g.openElements.clearBackToTableContext(),g._insertElement(A,ej.HTML),g.insertionMode=eQ.IN_COLUMN_GROUP;break;default:_2(e,t)}}function _1(e,t){switch(t.tagID){case eV.TABLE:e.openElements.hasInTableScope(eV.TABLE)&&(e.openElements.popUntilTagNamePopped(eV.TABLE),e._resetInsertionMode());break;case eV.TEMPLATE:_F(e,t);break;case eV.BODY:case eV.CAPTION:case eV.COL:case eV.COLGROUP:case eV.HTML:case eV.TBODY:case eV.TD:case eV.TFOOT:case eV.TH:case eV.THEAD:case eV.TR:break;default:_2(e,t)}}function _2(e,t){let n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,_H(e,t),e.fosterParentingEnabled=n}function _4(e,t){e.pendingCharacterTokens.push(t)}function _3(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function _6(e,t){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n0&&e.openElements.currentTagId===eV.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===eV.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===eV.OPTGROUP&&e.openElements.pop();break;case eV.OPTION:e.openElements.currentTagId===eV.OPTION&&e.openElements.pop();break;case eV.SELECT:e.openElements.hasInSelectScope(eV.SELECT)&&(e.openElements.popUntilTagNamePopped(eV.SELECT),e._resetInsertionMode());break;case eV.TEMPLATE:_F(e,t)}}function Ro(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(eV.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):_N(e,t)}function Ra(e,t){var n;if(t.tagID===eV.HTML){if(!e.fragmentContext&&(e.insertionMode=eQ.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===eV.HTML){e._setEndLocation(e.openElements.items[0],t);let r=e.openElements.items[1];r&&!(null===(n=e.treeAdapter.getNodeSourceCodeLocation(r))||void 0===n?void 0:n.endTag)&&e._setEndLocation(r,t)}}else Rs(e,t)}function Rs(e,t){e.insertionMode=eQ.IN_BODY,_H(e,t)}function Rl(e,t){e.insertionMode=eQ.IN_BODY,_H(e,t)}function Ru(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==ej.HTML&&void 0!==e.openElements.currentTagId&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}null==String.prototype.codePointAt||((e,t)=>e.codePointAt(t));eZ.AREA,eZ.BASE,eZ.BASEFONT,eZ.BGSOUND,eZ.BR,eZ.COL,eZ.EMBED,eZ.FRAME,eZ.HR,eZ.IMG,eZ.INPUT,eZ.KEYGEN,eZ.LINK,eZ.META,eZ.PARAM,eZ.SOURCE,eZ.TRACK,eZ.WBR;let Rc=/<(\/?)(iframe|noembed|noframes|plaintext|script|style|textarea|title|xmp)(?=[\t\n\f\r />])/gi,Rp=new Set(["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"]),Rd={sourceCodeLocationInfo:!0,scriptingEnabled:!1};function Rh(e,t){let n=function(e){let t="root"===e.type?e.children[0]:e;return!!(t&&("doctype"===t.type||"element"===t.type&&"html"===t.tagName.toLowerCase()))}(e),r=k_("type",{handlers:{root:Rm,element:Rg,text:RA,comment:Ry,doctype:Rb,raw:Rv},unknown:RS}),i={parser:n?new __(Rd):__.getFragmentParser(void 0,Rd),handle(e){r(e,i)},stitches:!1,options:t||{}};r(e,i),Rw(i,CL());let o=function(e,t){let n=t||{};return kO({file:n.file||void 0,location:!1,schema:"svg"===n.space?CO:CE,verbose:n.verbose||!1},e)}(n?i.parser.document:i.parser.getFragment(),{file:i.options.file});return(i.stitches&&IL(o,"comment",function(e,t,n){if(e.value.stitch&&n&&void 0!==t)return n.children[t]=e.value.stitch,t}),"root"===o.type&&1===o.children.length&&o.children[0].type===e.type)?o.children[0]:o}function Rf(e,t){let n=-1;if(e)for(;++n4&&(t.parser.tokenizer.state=0);let n={type:eD.CHARACTER,chars:e.value,location:RO(e)};Rw(t,CL(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function Rb(e,t){let n={type:eD.DOCTYPE,name:"html",forceQuirks:!1,publicId:"",systemId:"",location:RO(e)};Rw(t,CL(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function Ry(e,t){let n=e.value,r={type:eD.COMMENT,data:n,location:RO(e)};Rw(t,CL(e)),t.parser.currentToken=r,t.parser._processToken(t.parser.currentToken)}function Rv(e,t){if(t.parser.tokenizer.preprocessor.html="",t.parser.tokenizer.preprocessor.pos=-1,t.parser.tokenizer.preprocessor.lastGapPos=-2,t.parser.tokenizer.preprocessor.gapStack=[],t.parser.tokenizer.preprocessor.skipNextNewLine=!1,t.parser.tokenizer.preprocessor.lastChunkWritten=!1,t.parser.tokenizer.preprocessor.endOfChunkHit=!1,t.parser.tokenizer.preprocessor.isEol=!1,RE(t,CL(e)),t.parser.tokenizer.write(t.options.tagfilter?e.value.replace(Rc,"<$1$2"):e.value,!1),t.parser.tokenizer._runParsingLoop(),72===t.parser.tokenizer.state||78===t.parser.tokenizer.state){t.parser.tokenizer.preprocessor.lastChunkWritten=!0;let e=t.parser.tokenizer._consume();t.parser.tokenizer._callState(e)}}function RS(e,t){if(t.options.passThrough&&t.options.passThrough.includes(e.type))!function(e,t){t.stitches=!0;let n=function(e){return"children"in e?Ix({...e,children:[]}):Ix(e)}(e);if("children"in e&&"children"in n){let r=Rh({type:"root",children:e.children},t.options);n.children=r.children}Ry({type:"comment",value:{stitch:n}},t)}(e,t);else{let t="";throw Rp.has(e.type)&&(t=". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax"),Error("Cannot compile `"+e.type+"` node"+t)}}function Rw(e,t){RE(e,t);let n=e.parser.tokenizer.currentCharacterToken;n&&n.location&&(n.location.endLine=e.parser.tokenizer.preprocessor.line,n.location.endCol=e.parser.tokenizer.preprocessor.col+1,n.location.endOffset=e.parser.tokenizer.preprocessor.offset+1,e.parser.currentToken=n,e.parser._processToken(e.parser.currentToken)),e.parser.tokenizer.paused=!1,e.parser.tokenizer.inLoop=!1,e.parser.tokenizer.active=!1,e.parser.tokenizer.returnState=k$.DATA,e.parser.tokenizer.charRefCode=-1,e.parser.tokenizer.consumedAfterSnapshot=-1,e.parser.tokenizer.currentLocation=null,e.parser.tokenizer.currentCharacterToken=null,e.parser.tokenizer.currentToken=null,e.parser.tokenizer.currentAttr={name:"",value:""}}function RE(e,t){if(t&&void 0!==t.offset){let n={startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:-1,endCol:-1,endOffset:-1};e.parser.tokenizer.preprocessor.lineStartPos=-t.column+1,e.parser.tokenizer.preprocessor.droppedBufferSize=t.offset,e.parser.tokenizer.preprocessor.line=t.line,e.parser.tokenizer.currentLocation=n}}function RO(e){let t=CL(e)||{line:void 0,column:void 0,offset:void 0},n=CM(e)||{line:void 0,column:void 0,offset:void 0};return{startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:n.line,endCol:n.column,endOffset:n.offset}}function RT(e){return function(t,n){return Rh(t,{...e,file:n})}}var RC={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Rx=e0.createContext&&e0.createContext(RC),RI=["attr","size","title"];function Rk(){return(Rk=Object.assign?Object.assign.bind():function(e){for(var t=1;te0.createElement(RN,Rk({attr:RR({},e.attr)},t),function e(t){return t&&t.map((t,n)=>e0.createElement(t.tag,RR({key:n},t.attr),e(t.child)))}(e.child))}function RN(e){var t=t=>{var n,{attr:r,size:i,title:o}=e,a=function(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;rt(e)):t(RC)}function RD(e){return RP({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"},child:[]}]})(e)}function RM(e){return RP({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z"},child:[]}]})(e)}function RL(e){return RP({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24"},child:[]}]})(e)}function RB(e){return RP({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"},child:[]}]})(e)}function RF(e){return RP({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"},child:[]}]})(e)}function RU(e){return(0,rA.ZP)("MuiIconButton",e)}let Rj=(0,rl.Z)("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),Rz=["edge","children","className","color","disabled","disableFocusRipple","size"],RH=e=>{let{classes:t,disabled:n,color:r,edge:i,size:o}=e,a={root:["root",n&&"disabled","default"!==r&&`color${(0,rN.Z)(r)}`,i&&`edge${(0,rN.Z)(i)}`,`size${(0,rN.Z)(o)}`]};return(0,rd.Z)(a,RU,t)},RZ=(0,rh.ZP)(ip,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,"default"!==n.color&&t[`color${(0,rN.Z)(n.color)}`],n.edge&&t[`edge${(0,rN.Z)(n.edge)}`],t[`size${(0,rN.Z)(n.size)}`]]}})(({theme:e,ownerState:t})=>(0,n4.Z)({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest})},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,rm.alpha)(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"start"===t.edge&&{marginLeft:"small"===t.size?-3:-12},"end"===t.edge&&{marginRight:"small"===t.size?-3:-12}),({theme:e,ownerState:t})=>{var n;let r=null==(n=(e.vars||e).palette)?void 0:n[t.color];return(0,n4.Z)({},"inherit"===t.color&&{color:"inherit"},"inherit"!==t.color&&"default"!==t.color&&(0,n4.Z)({color:null==r?void 0:r.main},!t.disableRipple&&{"&:hover":(0,n4.Z)({},r&&{backgroundColor:e.vars?`rgba(${r.mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,rm.alpha)(r.main,e.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),"small"===t.size&&{padding:5,fontSize:e.typography.pxToRem(18)},"large"===t.size&&{padding:12,fontSize:e.typography.pxToRem(28)},{[`&.${Rj.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled}})}),RV=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiIconButton"}),{edge:r=!1,children:i,className:o,color:a="default",disabled:s=!1,disableFocusRipple:l=!1,size:u="medium"}=n,c=(0,n3.Z)(n,Rz),p=(0,n4.Z)({},n,{edge:r,color:a,disabled:s,disableFocusRipple:l,size:u}),d=RH(p);return(0,eJ.jsx)(RZ,(0,n4.Z)({className:(0,n6.Z)(d.root,o),centerRipple:!0,focusRipple:!l,disabled:s,ref:t},c,{ownerState:p,children:i}))});var RG=n("23508");function RW(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0)&&(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}}return i}(e,["expand"]);return(0,eJ.jsx)(RV,function(e){for(var t=1;t{let i=e.bucket,o=e.fullPath,s=wr("/b/"+a(i)+"/o/"+a(o),n,r);return s+wi({alt:"media",token:t})})[0]}(n,t,r.host,r._protocol)}),a);return s.errorHandler=wg(t),s}(e.storage,e._location,wd());return e.storage.makeRequestWithTokens(t,wy).then(e=>{if(null===e)throw new S4(ew.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}(p=dS(p=i))];case 3:return a=l.sent(),(s=document.createElement("a")).href=a,s.download=n.name,document.body.appendChild(s),s.click(),document.body.removeChild(s),[3,5];case 4:return console.error("Error downloading file:",l.sent()),[3,5];case 5:return[2]}})}),function(e,n,r){return t.apply(this,arguments)});if(i.prerelease&&!a)return null;var l=(n=(0,e0.useState)(0==o),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(n,2)||function(e,t){if(e){if("string"==typeof e)return RW(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return RW(e,t)}}(n,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=l[0],c=l[1],p="https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/".concat(i.tag_name);return i.name,(0,eJ.jsxs)(rx,{children:[(0,eJ.jsx)(Tc,{title:i.name,titleTypographyProps:{color:i.prerelease?"orange":"green",variant:"h3"},subheader:"Published ".concat(new Date(i.published_at).toISOString().split("T")[0]),action:(0,eJ.jsx)(RJ,{expand:u,onClick:function(){c(!u)},"aria-expanded":u,"aria-label":"show more",children:(0,eJ.jsx)(RG.default,{})})}),u&&(0,eJ.jsxs)(rP,{children:[(0,eJ.jsx)(kh,{rehypePlugins:[RT],children:i.body}),(0,eJ.jsx)(Tg,{}),(0,eJ.jsx)(rz,{variant:"h4",gutterBottom:!0,children:"Assets:"}),(0,eJ.jsx)(l8,{children:i.assets.map(function(e){var t;return(0,eJ.jsxs)(T_,{children:["mac"==(t=RY(e.name))?(0,eJ.jsx)(Tt,{children:(0,eJ.jsx)(RF,{color:"black",size:"1.2em"})}):"windows"==t?(0,eJ.jsx)(Tt,{children:(0,eJ.jsx)(RD,{color:"#08a1f7",size:"1.2em"})}):"linux"==t?(0,eJ.jsx)(Tt,{children:(0,eJ.jsx)(RM,{color:"#E95420",size:"1.2em"})}):"almalinux"==t?(0,eJ.jsx)(Tt,{children:(0,eJ.jsx)(RL,{color:"#EE0000",size:"1.2em"})}):void 0,(0,eJ.jsx)(TL,{children:(0,eJ.jsx)(TW,{href:"#",target:"_blank",rel:"noopener",onClick:function(t){return s(t,i,e)},children:e.name})})]},e.name)})})]}),(0,eJ.jsx)(TX,{disableSpacing:!0,children:(0,eJ.jsx)(RV,{component:TW,href:p,target:"_blank",rel:"noopener",title:"View on Github",children:(0,eJ.jsx)(RB,{})})})]})};let R0=["ownerState"],R1=["variants"],R2=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function R4(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}function R3(e,t){return t&&e&&"object"==typeof e&&e.styles&&!e.styles.startsWith("@layer")&&(e.styles=`@layer ${t}{${String(e.styles)}}`),e}let R6=(0,n9.Z)(),R7=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function R8({defaultTheme:e,theme:t,themeId:n}){return 0===Object.keys(t).length?e:t[n]||t}function R5(e,t,n){let{ownerState:r}=t,i=(0,n3.Z)(t,R0),o="function"==typeof e?e((0,n4.Z)({ownerState:r},i)):e;if(Array.isArray(o))return o.flatMap(e=>R5(e,(0,n4.Z)({ownerState:r},i),n));if(o&&"object"==typeof o&&Array.isArray(o.variants)){let{variants:e=[]}=o,t=(0,n3.Z)(o,R1);return e.forEach(e=>{let o=!0;if("function"==typeof e.props?o=e.props((0,n4.Z)({ownerState:r},i,r)):Object.keys(e.props).forEach(t=>{(null==r?void 0:r[t])!==e.props[t]&&i[t]!==e.props[t]&&(o=!1)}),o){!Array.isArray(t)&&(t=[t]);let o="function"==typeof e.style?e.style((0,n4.Z)({ownerState:r},i,r)):e.style;t.push(n?R3((0,n7.internal_serializeStyles)(o),n):o)}}),t}return n?R3((0,n7.internal_serializeStyles)(o),n):o}let R9=function(e={}){let{themeId:t,defaultTheme:n=R6,rootShouldForwardProp:r=R4,slotShouldForwardProp:i=R4}=e,o=e=>(0,n8.Z)((0,n4.Z)({},e,{theme:R8((0,n4.Z)({},e,{defaultTheme:n,themeId:t}))}));return o.__mui_systemSx=!0,(e,a={})=>{var s,l;let u;(0,n7.internal_processStyles)(e,e=>e.filter(e=>!(null!=e&&e.__mui_systemSx)));let{name:c,slot:p,skipVariantsResolver:d,skipSx:h,overridesResolver:f=(s=R7(p))?(e,t)=>t[s]:null}=a,m=(0,n3.Z)(a,R2),g=c&&c.startsWith("Mui")||p?"components":"custom",A=void 0!==d?d:p&&"Root"!==p&&"root"!==p||!1,b=h||!1,y=R4;if("Root"===p||"root"===p)y=r;else if(p)y=i;else{;if("string"==typeof(l=e)&&l.charCodeAt(0)>96)y=void 0}let v=(0,n7.default)(e,(0,n4.Z)({shouldForwardProp:y,label:u},m)),S=e=>"function"==typeof e&&e.__emotion_real!==e||(0,sC.P)(e)?r=>{let i=R8({theme:r.theme,defaultTheme:n,themeId:t});return R5(e,(0,n4.Z)({},r,{theme:i}),i.modularCssLayers?g:void 0)}:e,w=(r,...i)=>{let a=S(r),s=i?i.map(S):[];c&&f&&s.push(e=>{let r=R8((0,n4.Z)({},e,{defaultTheme:n,themeId:t}));if(!r.components||!r.components[c]||!r.components[c].styleOverrides)return null;let i=r.components[c].styleOverrides,o={};return Object.entries(i).forEach(([t,n])=>{o[t]=R5(n,(0,n4.Z)({},e,{theme:r}),r.modularCssLayers?"theme":void 0)}),f(e,o)}),c&&!A&&s.push(e=>{var r;let i=R8((0,n4.Z)({},e,{defaultTheme:n,themeId:t}));return R5({variants:null==i||null==(r=i.components)||null==(r=r[c])?void 0:r.variants},(0,n4.Z)({},e,{theme:i}),i.modularCssLayers?"theme":void 0)}),!b&&s.push(o);let l=s.length-i.length;if(Array.isArray(r)&&l>0){let e=Array(l).fill("");(a=[...r,...e]).raw=[...r.raw,...e]}let u=v(a,...s);return e.muiName&&(u.muiName=e.muiName),u};return v.withConfig&&(w.withConfig=v.withConfig),w}}();function Pe({props:e,name:t,defaultTheme:n,themeId:r}){let i=rr(n);return r&&(i=i[r]||i),function(e){let{theme:t,name:n,props:r}=e;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?(0,rH.Z)(t.components[n].defaultProps,r):r}({theme:i,name:t,props:e})}var Pt=n("95408"),Pn=n("57042");let Pr=["component","direction","spacing","divider","children","className","useFlexGap"],Pi=(0,n9.Z)(),Po=R9("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root});function Pa(e){return Pe({props:e,name:"MuiStack",defaultTheme:Pi})}let Ps=e=>({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[e],Pl=({ownerState:e,theme:t})=>{let n=(0,n4.Z)({display:"flex",flexDirection:"column"},(0,Pt.k9)({theme:t},(0,Pt.P$)({values:e.direction,breakpoints:t.breakpoints.values}),e=>({flexDirection:e})));if(e.spacing){let r=(0,Pn.hB)(t),i=Object.keys(t.breakpoints.values).reduce((t,n)=>(("object"==typeof e.spacing&&null!=e.spacing[n]||"object"==typeof e.direction&&null!=e.direction[n])&&(t[n]=!0),t),{}),o=(0,Pt.P$)({values:e.direction,base:i}),a=(0,Pt.P$)({values:e.spacing,base:i});"object"==typeof o&&Object.keys(o).forEach((e,t,n)=>{if(!o[e]){let r=t>0?o[n[t-1]]:"column";o[e]=r}});n=(0,sC.Z)(n,(0,Pt.k9)({theme:t},a,(t,n)=>e.useFlexGap?{gap:(0,Pn.NA)(r,t)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${Ps(n?o[n]:e.direction)}`]:(0,Pn.NA)(r,t)}}))}return n=(0,Pt.dt)(t.breakpoints,n)},Pu=function(e={}){let{createStyledComponent:t=Po,useThemeProps:n=Pa,componentName:r="MuiStack"}=e,i=()=>(0,rd.Z)({root:["root"]},e=>(0,rA.ZP)(r,e),{}),o=t(Pl);return e0.forwardRef(function(e,t){let r=n(e),a=(0,n5.Z)(r),{component:s="div",direction:l="column",spacing:u=0,divider:c,children:p,className:d,useFlexGap:h=!1}=a,f=(0,n3.Z)(a,Pr),m=i();return(0,eJ.jsx)(o,(0,n4.Z)({as:s,ownerState:{direction:l,spacing:u,useFlexGap:h},ref:t,className:(0,n6.Z)(m.root,d)},f,{children:c?function(e,t){let n=e0.Children.toArray(e).filter(Boolean);return n.reduce((e,r,i)=>(e.push(r),it.root}),useThemeProps:e=>(0,rf.i)({props:e,name:"MuiStack"})});function Pc(e){return(0,rA.ZP)("MuiFormControlLabel",e)}let Pp=(0,rl.Z)("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),Pd=["checked","className","componentsProps","control","disabled","disableTypography","inputRef","label","labelPlacement","name","onChange","required","slotProps","value"],Ph=e=>{let{classes:t,disabled:n,labelPlacement:r,error:i,required:o}=e,a={root:["root",n&&"disabled",`labelPlacement${(0,rN.Z)(r)}`,i&&"error",o&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",i&&"error"]};return(0,rd.Z)(a,Pc,t)},Pf=(0,rh.ZP)("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${Pp.label}`]:t.label},t.root,t[`labelPlacement${(0,rN.Z)(n.labelPlacement)}`]]}})(({theme:e,ownerState:t})=>(0,n4.Z)({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${Pp.disabled}`]:{cursor:"default"}},"start"===t.labelPlacement&&{flexDirection:"row-reverse",marginLeft:16,marginRight:-11},"top"===t.labelPlacement&&{flexDirection:"column-reverse",marginLeft:16},"bottom"===t.labelPlacement&&{flexDirection:"column",marginLeft:16},{[`& .${Pp.label}`]:{[`&.${Pp.disabled}`]:{color:(e.vars||e).palette.text.disabled}}})),Pm=(0,rh.ZP)("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})(({theme:e})=>({[`&.${Pp.error}`]:{color:(e.vars||e).palette.error.main}})),Pg=e0.forwardRef(function(e,t){var n,r;let i=(0,rf.i)({props:e,name:"MuiFormControlLabel"}),{className:o,componentsProps:a={},control:s,disabled:l,disableTypography:u,label:c,labelPlacement:p="end",required:d,slotProps:h={}}=i,f=(0,n3.Z)(i,Pd),m=sz(),g=null!=(n=null!=l?l:s.props.disabled)?n:null==m?void 0:m.disabled,A=null!=d?d:s.props.required,b={disabled:g,required:A};["checked","name","onChange","value","inputRef"].forEach(e=>{void 0===s.props[e]&&void 0!==i[e]&&(b[e]=i[e])});let y=sU({props:i,muiFormControl:m,states:["error"]}),v=(0,n4.Z)({},i,{disabled:g,labelPlacement:p,required:A,error:y.error}),S=Ph(v),w=null!=(r=h.typography)?r:a.typography,E=c;return null!=E&&E.type!==rz&&!u&&(E=(0,eJ.jsx)(rz,(0,n4.Z)({component:"span"},w,{className:(0,n6.Z)(S.label,null==w?void 0:w.className),children:E}))),(0,eJ.jsxs)(Pf,(0,n4.Z)({className:(0,n6.Z)(S.root,o),ownerState:v,ref:t},f,{children:[e0.cloneElement(s,b),A?(0,eJ.jsxs)(Pu,{display:"block",children:[E,(0,eJ.jsxs)(Pm,{ownerState:v,"aria-hidden":!0,className:S.asterisk,children:[" ","*"]})]}):E]}))});function PA(e){return(0,rA.ZP)("PrivateSwitchBase",e)}(0,rl.Z)("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);let Pb=["autoFocus","checked","checkedIcon","className","defaultChecked","disabled","disableFocusRipple","edge","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"],Py=e=>{let{classes:t,checked:n,disabled:r,edge:i}=e,o={root:["root",n&&"checked",r&&"disabled",i&&`edge${(0,rN.Z)(i)}`],input:["input"]};return(0,rd.Z)(o,PA,t)},Pv=(0,rh.ZP)(ip,{name:"MuiSwitchBase"})(({ownerState:e})=>(0,n4.Z)({padding:9,borderRadius:"50%"},"start"===e.edge&&{marginLeft:"small"===e.size?-3:-12},"end"===e.edge&&{marginRight:"small"===e.size?-3:-12})),PS=(0,rh.ZP)("input",{name:"MuiSwitchBase",shouldForwardProp:rZ.Z})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),Pw=e0.forwardRef(function(e,t){let{autoFocus:n,checked:r,checkedIcon:i,className:o,defaultChecked:a,disabled:s,disableFocusRipple:l=!1,edge:u=!1,icon:c,id:p,inputProps:d,inputRef:h,name:f,onBlur:m,onChange:g,onFocus:A,readOnly:b,required:y=!1,tabIndex:v,type:S,value:w}=e,E=(0,n3.Z)(e,Pb),[O,T]=(0,cb.Z)({controlled:r,default:!!a,name:"SwitchBase",state:"checked"}),C=sz(),x=s;C&&void 0===x&&(x=C.disabled);let I="checkbox"===S||"radio"===S,k=(0,n4.Z)({},e,{checked:O,disabled:x,disableFocusRipple:l,edge:u}),_=Py(k);return(0,eJ.jsxs)(Pv,(0,n4.Z)({component:"span",className:(0,n6.Z)(_.root,o),centerRipple:!0,focusRipple:!l,disabled:x,tabIndex:null,role:void 0,onFocus:e=>{A&&A(e),C&&C.onFocus&&C.onFocus(e)},onBlur:e=>{m&&m(e),C&&C.onBlur&&C.onBlur(e)},ownerState:k,ref:t},E,{children:[(0,eJ.jsx)(PS,(0,n4.Z)({autoFocus:n,checked:r,defaultChecked:a,className:_.input,disabled:x,id:I?p:void 0,name:f,onChange:e=>{if(e.nativeEvent.defaultPrevented)return;let t=e.target.checked;T(t),g&&g(e,t)},readOnly:b,ref:h,required:y,ownerState:k,tabIndex:v,type:S},"checkbox"===S&&void 0===w?{}:{value:w},d)),O?i:c]}))}),PE=(0,cI.Z)((0,eJ.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),PO=(0,cI.Z)((0,eJ.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),PT=(0,cI.Z)((0,eJ.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function PC(e){return(0,rA.ZP)("MuiCheckbox",e)}let Px=(0,rl.Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),PI=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size","className"],Pk=e=>{let{classes:t,indeterminate:n,color:r,size:i}=e,o={root:["root",n&&"indeterminate",`color${(0,rN.Z)(r)}`,`size${(0,rN.Z)(i)}`]},a=(0,rd.Z)(o,PC,t);return(0,n4.Z)({},t,a)},P_=(0,rh.ZP)(Pw,{shouldForwardProp:e=>(0,rZ.Z)(e)||"classes"===e,name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${(0,rN.Z)(n.size)}`],"default"!==n.color&&t[`color${(0,rN.Z)(n.color)}`]]}})(({theme:e,ownerState:t})=>(0,n4.Z)({color:(e.vars||e).palette.text.secondary},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${"default"===t.color?e.vars.palette.action.activeChannel:e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,rm.alpha)("default"===t.color?e.palette.action.active:e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==t.color&&{[`&.${Px.checked}, &.${Px.indeterminate}`]:{color:(e.vars||e).palette[t.color].main},[`&.${Px.disabled}`]:{color:(e.vars||e).palette.action.disabled}})),PR=(0,eJ.jsx)(PO,{}),PP=(0,eJ.jsx)(PE,{}),PN=(0,eJ.jsx)(PT,{}),PD=e0.forwardRef(function(e,t){var n,r;let i=(0,rf.i)({props:e,name:"MuiCheckbox"}),{checkedIcon:o=PR,color:a="primary",icon:s=PP,indeterminate:l=!1,indeterminateIcon:u=PN,inputProps:c,size:p="medium",className:d}=i,h=(0,n3.Z)(i,PI),f=l?u:s,m=l?u:o,g=(0,n4.Z)({},i,{color:a,indeterminate:l,size:p}),A=Pk(g);return(0,eJ.jsx)(P_,(0,n4.Z)({type:"checkbox",inputProps:(0,n4.Z)({"data-indeterminate":l},c),icon:e0.cloneElement(f,{fontSize:null!=(n=f.props.fontSize)?n:p}),checkedIcon:e0.cloneElement(m,{fontSize:null!=(r=m.props.fontSize)?r:p}),ownerState:g,ref:t,className:(0,n6.Z)(A.root,d)},h,{classes:A}))});var PM=n("14142");let PL=["className","component","disableGutters","fixed","maxWidth","classes"],PB=(0,n9.Z)(),PF=R9("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${(0,PM.Z)(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),PU=e=>Pe({props:e,name:"MuiContainer",defaultTheme:PB}),Pj=(e,t)=>{let{classes:n,fixed:r,disableGutters:i,maxWidth:o}=e,a={root:["root",o&&`maxWidth${(0,PM.Z)(String(o))}`,r&&"fixed",i&&"disableGutters"]};return(0,rd.Z)(a,e=>(0,rA.ZP)(t,e),n)},Pz=function(e={}){let{createStyledComponent:t=PF,useThemeProps:n=PU,componentName:r="MuiContainer"}=e,i=t(({theme:e,ownerState:t})=>(0,n4.Z)({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}),({theme:e,ownerState:t})=>t.fixed&&Object.keys(e.breakpoints.values).reduce((t,n)=>{let r=e.breakpoints.values[n];return 0!==r&&(t[e.breakpoints.up(n)]={maxWidth:`${r}${e.breakpoints.unit}`}),t},{}),({theme:e,ownerState:t})=>(0,n4.Z)({},"xs"===t.maxWidth&&{[e.breakpoints.up("xs")]:{maxWidth:Math.max(e.breakpoints.values.xs,444)}},t.maxWidth&&"xs"!==t.maxWidth&&{[e.breakpoints.up(t.maxWidth)]:{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`}}));return e0.forwardRef(function(e,t){let o=n(e),{className:a,component:s="div",disableGutters:l=!1,fixed:u=!1,maxWidth:c="lg"}=o,p=(0,n3.Z)(o,PL),d=(0,n4.Z)({},o,{component:s,disableGutters:l,fixed:u,maxWidth:c}),h=Pj(d,r);return(0,eJ.jsx)(i,(0,n4.Z)({as:s,ownerState:d,className:(0,n6.Z)(h.root,a),ref:t},p))})}({createStyledComponent:(0,rh.ZP)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${(0,rN.Z)(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>(0,rf.i)({props:e,name:"MuiContainer"})});function PH(e){return(0,rA.ZP)("MuiAppBar",e)}(0,rl.Z)("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]);let PZ=["className","color","enableColorOnDark","position"],PV=e=>{let{color:t,position:n,classes:r}=e,i={root:["root",`color${(0,rN.Z)(t)}`,`position${(0,rN.Z)(n)}`]};return(0,rd.Z)(i,PH,r)},PG=(e,t)=>e?`${null==e?void 0:e.replace(")","")}, ${t})`:t,PW=(0,rh.ZP)(rw,{name:"MuiAppBar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`position${(0,rN.Z)(n.position)}`],t[`color${(0,rN.Z)(n.color)}`]]}})(({theme:e,ownerState:t})=>{let n="light"===e.palette.mode?e.palette.grey[100]:e.palette.grey[900];return(0,n4.Z)({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0},"fixed"===t.position&&{position:"fixed",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}},"absolute"===t.position&&{position:"absolute",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0},"sticky"===t.position&&{position:"sticky",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0},"static"===t.position&&{position:"static"},"relative"===t.position&&{position:"relative"},!e.vars&&(0,n4.Z)({},"default"===t.color&&{backgroundColor:n,color:e.palette.getContrastText(n)},t.color&&"default"!==t.color&&"inherit"!==t.color&&"transparent"!==t.color&&{backgroundColor:e.palette[t.color].main,color:e.palette[t.color].contrastText},"inherit"===t.color&&{color:"inherit"},"dark"===e.palette.mode&&!t.enableColorOnDark&&{backgroundColor:null,color:null},"transparent"===t.color&&(0,n4.Z)({backgroundColor:"transparent",color:"inherit"},"dark"===e.palette.mode&&{backgroundImage:"none"})),e.vars&&(0,n4.Z)({},"default"===t.color&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette.AppBar.defaultBg:PG(e.vars.palette.AppBar.darkBg,e.vars.palette.AppBar.defaultBg),"--AppBar-color":t.enableColorOnDark?e.vars.palette.text.primary:PG(e.vars.palette.AppBar.darkColor,e.vars.palette.text.primary)},t.color&&!t.color.match(/^(default|inherit|transparent)$/)&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette[t.color].main:PG(e.vars.palette.AppBar.darkBg,e.vars.palette[t.color].main),"--AppBar-color":t.enableColorOnDark?e.vars.palette[t.color].contrastText:PG(e.vars.palette.AppBar.darkColor,e.vars.palette[t.color].contrastText)},!["inherit","transparent"].includes(t.color)&&{backgroundColor:"var(--AppBar-background)"},{color:"inherit"===t.color?"inherit":"var(--AppBar-color)"},"transparent"===t.color&&{backgroundImage:"none",backgroundColor:"transparent",color:"inherit"}))}),PQ=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiAppBar"}),{className:r,color:i="primary",enableColorOnDark:o=!1,position:a="fixed"}=n,s=(0,n3.Z)(n,PZ),l=(0,n4.Z)({},n,{color:i,position:a,enableColorOnDark:o}),u=PV(l);return(0,eJ.jsx)(PW,(0,n4.Z)({square:!0,component:"header",ownerState:l,elevation:4,className:(0,n6.Z)(u.root,r,"fixed"===a&&"mui-fixed"),ref:t},s))});function Pq(e){return(0,rA.ZP)("MuiToolbar",e)}(0,rl.Z)("MuiToolbar",["root","gutters","regular","dense"]);let PK=["className","component","disableGutters","variant"],PY=e=>{let{classes:t,disableGutters:n,variant:r}=e;return(0,rd.Z)({root:["root",!n&&"gutters",r]},Pq,t)},PX=(0,rh.ZP)("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(({theme:e,ownerState:t})=>(0,n4.Z)({position:"relative",display:"flex",alignItems:"center"},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}},"dense"===t.variant&&{minHeight:48}),({theme:e,ownerState:t})=>"regular"===t.variant&&e.mixins.toolbar),PJ=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiToolbar"}),{className:r,component:i="div",disableGutters:o=!1,variant:a="regular"}=n,s=(0,n3.Z)(n,PK),l=(0,n4.Z)({},n,{component:i,disableGutters:o,variant:a}),u=PY(l);return(0,eJ.jsx)(PX,(0,n4.Z)({as:i,className:(0,n6.Z)(u.root,r),ref:t,ownerState:l},s))});function P$(e,t,n,r,i,o,a){try{var s=e[o](a),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,i)}var P0=function(){var e,t,n=nS();var r=(t=(e=function(){return function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n{let t=e0.useRef({});return e0.useEffect(()=>{t.current=e}),t.current};function P6(e){return void 0!==e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function P7(e,t){for(let n=0;n{let u=a?s.trim():s;n&&(u=u.toLowerCase()),t&&(u=P6(u));let c=u?e.filter(e=>{let r=(o||l)(e);return n&&(r=r.toLowerCase()),t&&(r=P6(r)),"start"===i?0===r.indexOf(u):r.indexOf(u)>-1}):e;return"number"==typeof r?c.slice(0,r):c}}(),P5=e=>{var t;return null!==e.current&&(null==(t=e.current.parentElement)?void 0:t.contains(document.activeElement))},P9=[],Ne=function(e){let{unstable_isActiveElementInListbox:t=P5,unstable_classNamePrefix:n="Mui",autoComplete:r=!1,autoHighlight:i=!1,autoSelect:o=!1,blurOnSelect:a=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:l=!1,componentName:u="useAutocomplete",defaultValue:c=e.multiple?P9:null,disableClearable:p=!1,disableCloseOnSelect:d=!1,disabled:h,disabledItemsFocusable:f=!1,disableListWrap:m=!1,filterOptions:g=P8,filterSelectedOptions:A=!1,freeSolo:b=!1,getOptionDisabled:y,getOptionKey:v,getOptionLabel:S=e=>{var t;return null!=(t=e.label)?t:e},groupBy:w,handleHomeEndKeys:E=!e.freeSolo,id:O,includeInputInList:T=!1,inputValue:C,isOptionEqualToValue:x=(e,t)=>e===t,multiple:I=!1,onChange:k,onClose:_,onHighlightChange:R,onInputChange:P,onOpen:N,open:D,openOnFocus:M=!1,options:L,readOnly:B=!1,selectOnFocus:F=!e.freeSolo,value:U}=e,j=(0,sT.Z)(O),z=S;z=e=>{let t=S(e);return"string"!=typeof t?String(t):t};let H=e0.useRef(!1),Z=e0.useRef(!0),V=e0.useRef(null),G=e0.useRef(null),[W,Q]=e0.useState(null),[q,K]=e0.useState(-1),Y=i?0:-1,X=e0.useRef(Y),[J,$]=(0,P4.Z)({controlled:U,default:c,name:u}),[ee,et]=(0,P4.Z)({controlled:C,default:"",name:u,state:"inputValue"}),[en,er]=e0.useState(!1),ei=e0.useCallback((e,t)=>{let n;if(!(I?J.length!(A&&(I?J:[J]).some(t=>null!==t&&x(e,t)))&&!0),{inputValue:eu&&es?"":ee,getOptionLabel:z}):[],ed=P3({filteredOptions:ep,value:J,inputValue:ee});e0.useEffect(()=>{let e=J!==ed.value;if((!en||!!e)&&(!b||!!e))ei(null,J)},[J,ei,en,ed.value,b]);let eh=eo&&ep.length>0&&!B,ef=(0,sR.Z)(e=>{-1===e?V.current.focus():W.querySelector(`[data-tag-index="${e}"]`).focus()});e0.useEffect(()=>{I&&q>J.length-1&&(K(-1),ef(-1))},[J,I,q,ef]);let em=(0,sR.Z)(({event:e,index:t,reason:r="auto"})=>{if(X.current=t,-1===t?V.current.removeAttribute("aria-activedescendant"):V.current.setAttribute("aria-activedescendant",`${j}-option-${t}`),R&&R(e,-1===t?null:ep[t],r),!G.current)return;let i=G.current.querySelector(`[role="option"].${n}-focused`);i&&(i.classList.remove(`${n}-focused`),i.classList.remove(`${n}-focusVisible`));let o=G.current;if("listbox"!==G.current.getAttribute("role")&&(o=G.current.parentElement.querySelector('[role="listbox"]')),!o)return;if(-1===t){o.scrollTop=0;return}let a=G.current.querySelector(`[data-option-index="${t}"]`);if(!!a){if(a.classList.add(`${n}-focused`),"keyboard"===r&&a.classList.add(`${n}-focusVisible`),o.scrollHeight>o.clientHeight&&"mouse"!==r&&"touch"!==r){let e=o.clientHeight+o.scrollTop,t=a.offsetTop+a.offsetHeight;t>e?o.scrollTop=t-o.clientHeight:a.offsetTop-a.offsetHeight*(w?1.3:0){if(!ec)return;let o=function(e,t){if(!G.current||e<0||e>=ep.length)return -1;let n=e;for(;;){let r=G.current.querySelector(`[data-option-index="${n}"]`),i=!f&&(!r||r.disabled||"true"===r.getAttribute("aria-disabled"));if(r&&r.hasAttribute("tabindex")&&!i)return n;if((n="next"===t?(n+1)%ep.length:(n-1+ep.length)%ep.length)===e)return -1}}((()=>{let e=ep.length-1;if("reset"===t)return Y;if("start"===t)return 0;if("end"===t)return e;let n=X.current+t;if(n<0)return -1===n&&T?-1:m&&-1!==X.current||Math.abs(t)>1?0:e;if(n>e)return n===e+1&&T?-1:m||Math.abs(t)>1?e:0;return n})(),n);if(em({index:o,reason:i,event:e}),r&&"reset"!==t){if(-1===o)V.current.value=ee;else{let e=z(ep[o]);V.current.value=e,0===e.toLowerCase().indexOf(ee.toLowerCase())&&ee.length>0&&V.current.setSelectionRange(ee.length,e.length)}}}),eA=()=>{if(-1!==X.current&&ed.filteredOptions&&ed.filteredOptions.length!==ep.length&&ed.inputValue===ee&&(I?J.length===ed.value.length&&ed.value.every((e,t)=>z(J[t])===z(e)):((e,t)=>{let n=e?z(e):"";return n===(t?z(t):"")})(ed.value,J))){let e=ed.filteredOptions[X.current];if(e)return P7(ep,t=>z(t)===z(e))}return -1},eb=e0.useCallback(()=>{if(!ec)return;let e=eA();if(-1!==e){X.current=e;return}let t=I?J[0]:J;if(0===ep.length||null==t){eg({diff:"reset"});return}if(!!G.current){if(null!=t){let e=ep[X.current];if(I&&e&&-1!==P7(J,t=>x(e,t)))return;let n=P7(ep,e=>x(e,t));-1===n?eg({diff:"reset"}):em({index:n});return}if(X.current>=ep.length-1){em({index:ep.length-1});return}em({index:X.current})}},[ep.length,!I&&J,A,eg,em,ec,ee,I]),ey=(0,sR.Z)(e=>{if((0,ux.Z)(G,e),!!e)eb()});e0.useEffect(()=>{eb()},[eb]);let ev=e=>{if(!eo)ea(!0),el(!0),N&&N(e)},eS=(e,t)=>{if(!!eo)ea(!1),_&&_(e,t)},ew=(e,t,n,r)=>{if(I){if(J.length===t.length&&J.every((e,n)=>e===t[n]))return}else if(J===t)return;k&&k(e,t,n,r),$(t)},eE=e0.useRef(!1),eO=(e,t,n="selectOption",r="options")=>{let i=n,o=t;if(I){o=Array.isArray(J)?J.slice():[];let e=P7(o,e=>x(t,e));-1===e?o.push(t):"freeSolo"!==r&&(o.splice(e,1),i="removeOption")}ei(e,o),ew(e,o,i,{option:t}),!d&&(!e||!e.ctrlKey&&!e.metaKey)&&eS(e,i),(!0===a||"touch"===a&&eE.current||"mouse"===a&&!eE.current)&&V.current.blur()},eT=(e,t)=>{if(!I)return;""===ee&&eS(e,"toggleInput");let n=q;-1===q?""===ee&&"previous"===t&&(n=J.length-1):((n+="next"===t?1:-1)<0&&(n=0),n===J.length&&(n=-1)),K(n=function(e,t){if(-1===e)return -1;let n=e;for(;;){if("next"===t&&n===J.length||"previous"===t&&-1===n)return -1;let e=W.querySelector(`[data-tag-index="${n}"]`);if(e&&e.hasAttribute("tabindex")&&!e.disabled&&"true"!==e.getAttribute("aria-disabled"))return n;n+="next"===t?1:-1}}(n,t)),ef(n)},eC=e=>{H.current=!0,et(""),P&&P(e,"","clear"),ew(e,I?[]:null,"clear")},ex=e=>t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented){if(-1!==q&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(K(-1),ef(-1)),229!==t.which)switch(t.key){case"Home":ec&&E&&(t.preventDefault(),eg({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":ec&&E&&(t.preventDefault(),eg({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),eg({diff:-5,direction:"previous",reason:"keyboard",event:t}),ev(t);break;case"PageDown":t.preventDefault(),eg({diff:5,direction:"next",reason:"keyboard",event:t}),ev(t);break;case"ArrowDown":t.preventDefault(),eg({diff:1,direction:"next",reason:"keyboard",event:t}),ev(t);break;case"ArrowUp":t.preventDefault(),eg({diff:-1,direction:"previous",reason:"keyboard",event:t}),ev(t);break;case"ArrowLeft":eT(t,"previous");break;case"ArrowRight":eT(t,"next");break;case"Enter":if(-1!==X.current&&ec){let e=ep[X.current],n=!!y&&y(e);if(t.preventDefault(),n)return;eO(t,e,"selectOption"),r&&V.current.setSelectionRange(V.current.value.length,V.current.value.length)}else b&&""!==ee&&!1===eu&&(I&&t.preventDefault(),eO(t,ee,"createOption","freeSolo"));break;case"Escape":ec?(t.preventDefault(),t.stopPropagation(),eS(t,"escape")):l&&(""!==ee||I&&J.length>0)&&(t.preventDefault(),t.stopPropagation(),eC(t));break;case"Backspace":if(I&&!B&&""===ee&&J.length>0){let e=-1===q?J.length-1:q,n=J.slice();n.splice(e,1),ew(t,n,"removeOption",{option:J[e]})}break;case"Delete":if(I&&!B&&""===ee&&J.length>0&&-1!==q){let e=J.slice();e.splice(q,1),ew(t,e,"removeOption",{option:J[q]})}}}},eI=e=>{er(!0),M&&!H.current&&ev(e)},ek=e=>{if(t(G)){V.current.focus();return}er(!1),Z.current=!0,H.current=!1,o&&-1!==X.current&&ec?eO(e,ep[X.current],"blur"):o&&b&&""!==ee?eO(e,ee,"blur","freeSolo"):s&&ei(e,J),eS(e,"blur")},e_=e=>{let t=e.target.value;ee!==t&&(et(t),el(!1),P&&P(e,t,"input")),""===t?!p&&!I&&ew(e,null,"clear"):ev(e)},eR=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));X.current!==t&&em({event:e,index:t,reason:"mouse"})},eP=e=>{em({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),eE.current=!0},eN=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));eO(e,ep[t],"selectOption"),eE.current=!1},eD=e=>t=>{let n=J.slice();n.splice(e,1),ew(t,n,"removeOption",{option:J[e]})},eM=e=>{eo?eS(e,"toggleInput"):ev(e)},eL=e=>{if(!!e.currentTarget.contains(e.target))e.target.getAttribute("id")!==j&&e.preventDefault()},eB=e=>{if(!!e.currentTarget.contains(e.target))V.current.focus(),F&&Z.current&&V.current.selectionEnd-V.current.selectionStart==0&&V.current.select(),Z.current=!1},eF=e=>{!h&&(""===ee||!eo)&&eM(e)},eU=b&&ee.length>0;eU=eU||(I?J.length>0:null!==J);let ej=ep;return w&&(ej=ep.reduce((e,t,n)=>{let r=w(t);return e.length>0&&e[e.length-1].group===r?e[e.length-1].options.push(t):e.push({key:n,index:n,group:r,options:[t]}),e},[])),h&&en&&ek(),{getRootProps:(e={})=>(0,n4.Z)({"aria-owns":eh?`${j}-listbox`:null},e,{onKeyDown:ex(e),onMouseDown:eL,onClick:eB}),getInputLabelProps:()=>({id:`${j}-label`,htmlFor:j}),getInputProps:()=>({id:j,value:ee,onBlur:ek,onFocus:eI,onChange:e_,onMouseDown:eF,"aria-activedescendant":ec?"":null,"aria-autocomplete":r?"both":"list","aria-controls":eh?`${j}-listbox`:void 0,"aria-expanded":eh,autoComplete:"off",ref:V,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:h}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:eC}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:eM}),getTagProps:({index:e})=>(0,n4.Z)({key:e,"data-tag-index":e,tabIndex:-1},!B&&{onDelete:eD(e)}),getListboxProps:()=>({role:"listbox",id:`${j}-listbox`,"aria-labelledby":`${j}-label`,ref:ey,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:({index:e,option:t})=>{var n;let r=(I?J:[J]).some(e=>null!=e&&x(t,e)),i=!!y&&y(t);return{key:null!=(n=null==v?void 0:v(t))?n:z(t),tabIndex:-1,role:"option",id:`${j}-option-${e}`,onMouseMove:eR,onClick:eN,onTouchStart:eP,"data-option-index":e,"aria-disabled":i,"aria-selected":r}},id:j,inputValue:ee,value:J,dirty:eU,expanded:ec&&W,popupOpen:ec,focused:en||-1!==q,anchorEl:W,setAnchorEl:Q,focusedTag:q,groupedOptions:ej}};var Nt=n("91070");function Nn(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Nr(e){var t=Nn(e).Element;return e instanceof t||e instanceof Element}function Ni(e){var t=Nn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function No(e){if("undefined"==typeof ShadowRoot)return!1;var t=Nn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var Na=Math.max,Ns=Math.min,Nl=Math.round;function Nu(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Nc(){return!/^((?!chrome|android).)*safari/i.test(Nu())}function Np(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&Ni(e)&&(i=e.offsetWidth>0&&Nl(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Nl(r.height)/e.offsetHeight||1);var a=(Nr(e)?Nn(e):window).visualViewport,s=!Nc()&&n,l=(r.left+(s&&a?a.offsetLeft:0))/i,u=(r.top+(s&&a?a.offsetTop:0))/o,c=r.width/i,p=r.height/o;return{width:c,height:p,top:u,right:l+c,bottom:u+p,left:l,x:l,y:u}}function Nd(e){var t=Nn(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Nh(e){return e?(e.nodeName||"").toLowerCase():null}function Nf(e){return((Nr(e)?e.ownerDocument:e.document)||window.document).documentElement}function Nm(e){return Np(Nf(e)).left+Nd(e).scrollLeft}function Ng(e){return Nn(e).getComputedStyle(e)}function NA(e){var t=Ng(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Nb(e){var t=Np(e),n=e.offsetWidth,r=e.offsetHeight;return 1>=Math.abs(t.width-n)&&(n=t.width),1>=Math.abs(t.height-r)&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Ny(e){return"html"===Nh(e)?e:e.assignedSlot||e.parentNode||(No(e)?e.host:null)||Nf(e)}function Nv(e,t){void 0===t&&(t=[]);var n,r=function e(t){return["html","body","#document"].indexOf(Nh(t))>=0?t.ownerDocument.body:Ni(t)&&NA(t)?t:e(Ny(t))}(e),i=r===(null==(n=e.ownerDocument)?void 0:n.body),o=Nn(r),a=i?[o].concat(o.visualViewport||[],NA(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(Nv(Ny(a)))}function NS(e){return Ni(e)&&"fixed"!==Ng(e).position?e.offsetParent:null}function Nw(e){for(var t=Nn(e),n=NS(e);n&&["table","td","th"].indexOf(Nh(n))>=0&&"static"===Ng(n).position;)n=NS(n);return n&&("html"===Nh(n)||"body"===Nh(n)&&"static"===Ng(n).position)?t:n||function(e){var t=/firefox/i.test(Nu());if(/Trident/i.test(Nu())&&Ni(e)&&"fixed"===Ng(e).position)return null;var n=Ny(e);for(No(n)&&(n=n.host);Ni(n)&&0>["html","body"].indexOf(Nh(n));){var r=Ng(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}var NE="bottom",NO="right",NT="left",NC="auto",Nx=["top",NE,NO,NT],NI="start",Nk="viewport",N_="popper",NR=Nx.reduce(function(e,t){return e.concat([t+"-"+NI,t+"-end"])},[]),NP=[].concat(Nx,[NC]).reduce(function(e,t){return e.concat([t,t+"-"+NI,t+"-end"])},[]),NN=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"],ND={placement:"bottom",modifiers:[],strategy:"absolute"};function NM(){for(var e=arguments.length,t=Array(e),n=0;n=0?"x":"y"}function Nj(e){var t,n=e.reference,r=e.element,i=e.placement,o=i?NB(i):null,a=i?NF(i):null,s=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(o){case"top":t={x:s,y:n.y-r.height};break;case NE:t={x:s,y:n.y+n.height};break;case NO:t={x:n.x+n.width,y:l};break;case NT:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var u=o?NU(o):null;if(null!=u){var c="y"===u?"height":"width";switch(a){case NI:t[u]=t[u]-(n[c]/2-r[c]/2);break;case"end":t[u]=t[u]+(n[c]/2-r[c]/2)}}return t}var Nz={top:"auto",right:"auto",bottom:"auto",left:"auto"};function NH(e){var t,n,r,i,o,a,s,l=e.popper,u=e.popperRect,c=e.placement,p=e.variation,d=e.offsets,h=e.position,f=e.gpuAcceleration,m=e.adaptive,g=e.roundOffsets,A=e.isFixed,b=d.x,y=void 0===b?0:b,v=d.y,S=void 0===v?0:v,w="function"==typeof g?g({x:y,y:S}):{x:y,y:S};y=w.x,S=w.y;var E=d.hasOwnProperty("x"),O=d.hasOwnProperty("y"),T=NT,C="top",x=window;if(m){var I=Nw(l),k="clientHeight",_="clientWidth";I===Nn(l)&&"static"!==Ng(I=Nf(l)).position&&"absolute"===h&&(k="scrollHeight",_="scrollWidth");("top"===c||(c===NT||c===NO)&&"end"===p)&&(C=NE,S-=(A&&I===x&&x.visualViewport?x.visualViewport.height:I[k])-u.height,S*=f?1:-1),(c===NT||("top"===c||c===NE)&&"end"===p)&&(T=NO,y-=(A&&I===x&&x.visualViewport?x.visualViewport.width:I[_])-u.width,y*=f?1:-1)}var R=Object.assign({position:h},m&&Nz);var P=!0===g?(t={x:y,y:S},n=Nn(l),r=t.x,i=t.y,{x:Nl(r*(o=n.devicePixelRatio||1))/o||0,y:Nl(i*o)/o||0}):{x:y,y:S};return(y=P.x,S=P.y,f)?Object.assign({},R,((s={})[C]=O?"0":"",s[T]=E?"0":"",s.transform=1>=(x.devicePixelRatio||1)?"translate("+y+"px, "+S+"px)":"translate3d("+y+"px, "+S+"px, 0)",s)):Object.assign({},R,((a={})[C]=O?S+"px":"",a[T]=E?y+"px":"",a.transform="",a))}var NZ={left:"right",right:"left",bottom:"top",top:"bottom"};function NV(e){return e.replace(/left|right|bottom|top/g,function(e){return NZ[e]})}var NG={start:"end",end:"start"};function NW(e){return e.replace(/start|end/g,function(e){return NG[e]})}function NQ(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&No(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Nq(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function NK(e,t,n){var r,i,o,a,s,l,u,c,p,d,h;return t===Nk?Nq(function(e,t){var n=Nn(e),r=Nf(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;var u=Nc();(u||!u&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s+Nm(e),y:l}}(e,n)):Nr(t)?((i=Np(r=t,!1,"fixed"===n)).top=i.top+r.clientTop,i.left=i.left+r.clientLeft,i.bottom=i.top+r.clientHeight,i.right=i.left+r.clientWidth,i.width=r.clientWidth,i.height=r.clientHeight,i.x=i.left,i.y=i.top,i):Nq((o=Nf(e),s=Nf(o),l=Nd(o),u=null==(a=o.ownerDocument)?void 0:a.body,c=Na(s.scrollWidth,s.clientWidth,u?u.scrollWidth:0,u?u.clientWidth:0),p=Na(s.scrollHeight,s.clientHeight,u?u.scrollHeight:0,u?u.clientHeight:0),d=-l.scrollLeft+Nm(o),h=-l.scrollTop,"rtl"===Ng(u||s).direction&&(d+=Na(s.clientWidth,u?u.clientWidth:0)-c),{width:c,height:p,x:d,y:h}))}function NY(){return{top:0,right:0,bottom:0,left:0}}function NX(e){return Object.assign({},NY(),e)}function NJ(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}function N$(e,t){void 0===t&&(t={});var n,r,i,o,a,s,l,u,c,p,d=t,h=d.placement,f=void 0===h?e.placement:h,m=d.strategy,g=void 0===m?e.strategy:m,A=d.boundary,b=d.rootBoundary,y=d.elementContext,v=void 0===y?N_:y,S=d.altBoundary,w=d.padding,E=void 0===w?0:w,O=NX("number"!=typeof E?E:NJ(E,Nx)),T=e.rects.popper,C=e.elements[void 0!==S&&S?v===N_?"reference":N_:v];var x=(n=Nr(C)?C:C.contextElement||Nf(e.elements.popper),r=void 0===A?"clippingParents":A,i=void 0===b?Nk:b,o=g,c=(u=[].concat("clippingParents"===r?(s=Nv(Ny(a=n)),Nr(l=["absolute","fixed"].indexOf(Ng(a).position)>=0&&Ni(a)?Nw(a):a)?s.filter(function(e){return Nr(e)&&NQ(e,l)&&"body"!==Nh(e)}):[]):[].concat(r),[i]))[0],(p=u.reduce(function(e,t){var r=NK(n,t,o);return e.top=Na(r.top,e.top),e.right=Ns(r.right,e.right),e.bottom=Ns(r.bottom,e.bottom),e.left=Na(r.left,e.left),e},NK(n,c,o))).width=p.right-p.left,p.height=p.bottom-p.top,p.x=p.left,p.y=p.top,p),I=Np(e.elements.reference),k=Nj({reference:I,element:T,strategy:"absolute",placement:f}),_=Nq(Object.assign({},T,k)),R=v===N_?_:I,P={top:x.top-R.top+O.top,bottom:R.bottom-x.bottom+O.bottom,left:x.left-R.left+O.left,right:R.right-x.right+O.right},N=e.modifiersData.offset;if(v===N_&&N){var D=N[f];Object.keys(P).forEach(function(e){var t=[NO,NE].indexOf(e)>=0?1:-1,n=["top",NE].indexOf(e)>=0?"y":"x";P[e]+=D[n]*t})}return P}function N0(e,t,n){return Na(e,Ns(t,n))}function N1(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function N2(e){return["top",NO,NE,NT].some(function(t){return e[t]>=0})}var N4=(Z={defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=void 0===i||i,a=r.resize,s=void 0===a||a,l=Nn(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(e){e.addEventListener("scroll",n.update,NL)}),s&&l.addEventListener("resize",n.update,NL),function(){o&&u.forEach(function(e){e.removeEventListener("scroll",n.update,NL)}),s&&l.removeEventListener("resize",n.update,NL)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=Nj({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=n.adaptive,o=n.roundOffsets,a=void 0===o||o,s={placement:NB(t.placement),variation:NF(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:void 0===r||r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,NH(Object.assign({},s,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:void 0===i||i,roundOffsets:a})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,NH(Object.assign({},s,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];if(!!Ni(i)&&!!Nh(i))Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});if(!!Ni(r)&&!!Nh(r))Object.assign(r.style,o),Object.keys(i).forEach(function(e){r.removeAttribute(e)})})}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=void 0===i?[0,0]:i,a=NP.reduce(function(e,n){var r,i,a,s,l,u,c,p;return e[n]=(r=n,i=t.rects,a=o,l=[NT,"top"].indexOf(s=NB(r))>=0?-1:1,c=(u="function"==typeof a?a(Object.assign({},i,{placement:r})):a)[0],p=u[1],c=c||0,p=(p||0)*l,[NT,NO].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}),e},{}),s=a[t.placement],l=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=void 0===i||i,a=n.altAxis,s=void 0===a||a,l=n.fallbackPlacements,u=n.padding,c=n.boundary,p=n.rootBoundary,d=n.altBoundary,h=n.flipVariations,f=void 0===h||h,m=n.allowedAutoPlacements,g=t.options.placement,A=NB(g)===g,b=l||(A||!f?[NV(g)]:function(e){if(NB(e)===NC)return[];var t=NV(e);return[NW(e),t,NW(t)]}(g)),y=[g].concat(b).reduce(function(e,n){var r,i,o,a,s,l,d,h,g,A,b,y,v,S;return e.concat(NB(n)===NC?(r=t,i={placement:n,boundary:c,rootBoundary:p,padding:u,flipVariations:f,allowedAutoPlacements:m},a=(o=i).placement,s=o.boundary,l=o.rootBoundary,d=o.padding,h=o.flipVariations,A=void 0===(g=o.allowedAutoPlacements)?NP:g,0===(v=(y=(b=NF(a))?h?NR:NR.filter(function(e){return NF(e)===b}):Nx).filter(function(e){return A.indexOf(e)>=0})).length&&(v=y),Object.keys(S=v.reduce(function(e,t){return e[t]=N$(r,{placement:t,boundary:s,rootBoundary:l,padding:d})[NB(t)],e},{})).sort(function(e,t){return S[e]-S[t]})):n)},[]),v=t.rects.reference,S=t.rects.popper,w=new Map,E=!0,O=y[0],T=0;T=0,_=k?"width":"height",R=N$(t,{placement:C,boundary:c,rootBoundary:p,altBoundary:d,padding:u}),P=k?I?NO:NT:I?NE:"top";v[_]>S[_]&&(P=NV(P));var N=NV(P),D=[];if(o&&D.push(R[x]<=0),s&&D.push(R[P]<=0,R[N]<=0),D.every(function(e){return e})){O=C,E=!1;break}w.set(C,D)}if(E){for(var M=f?3:1,L=function(e){var t=y.find(function(t){var n=w.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return O=t,"break"},B=M;B>0&&"break"!==L(B);B--);}t.placement!==O&&(t.modifiersData[r]._skip=!0,t.placement=O,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=n.altAxis,a=n.boundary,s=n.rootBoundary,l=n.altBoundary,u=n.padding,c=n.tether,p=void 0===c||c,d=n.tetherOffset,h=void 0===d?0:d,f=N$(t,{boundary:a,rootBoundary:s,padding:u,altBoundary:l}),m=NB(t.placement),g=NF(t.placement),A=!g,b=NU(m),y="x"===b?"y":"x",v=t.modifiersData.popperOffsets,S=t.rects.reference,w=t.rects.popper,E="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,O="number"==typeof E?{mainAxis:E,altAxis:E}:Object.assign({mainAxis:0,altAxis:0},E),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,C={x:0,y:0};if(!!v){if(void 0===i||i){var x,I="y"===b?"top":NT,k="y"===b?NE:NO,_="y"===b?"height":"width",R=v[b],P=R+f[I],N=R-f[k],D=p?-w[_]/2:0,M=g===NI?S[_]:w[_],L=g===NI?-w[_]:-S[_],B=t.elements.arrow,F=p&&B?Nb(B):{width:0,height:0},U=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:NY(),j=U[I],z=U[k],H=N0(0,S[_],F[_]),Z=A?S[_]/2-D-H-j-O.mainAxis:M-H-j-O.mainAxis,V=A?-S[_]/2+D+H+z+O.mainAxis:L+H+z+O.mainAxis,G=t.elements.arrow&&Nw(t.elements.arrow),W=G?"y"===b?G.clientTop||0:G.clientLeft||0:0,Q=null!=(x=null==T?void 0:T[b])?x:0,q=N0(p?Ns(P,R+Z-Q-W):P,R,p?Na(N,R+V-Q):N);v[b]=q,C[b]=q-R}if(void 0!==o&&o){var K,Y,X,J="x"===b?"top":NT,$="x"===b?NE:NO,ee=v[y],et="y"===y?"height":"width",en=ee+f[J],er=ee-f[$],ei=-1!==["top",NT].indexOf(m),eo=null!=(X=null==T?void 0:T[y])?X:0,ea=ei?en:ee-S[et]-w[et]-eo+O.altAxis,es=ei?ee+S[et]+w[et]-eo-O.altAxis:er;var el=p&&ei?(Y=N0(ea,ee,K=es))>K?K:Y:N0(p?ea:en,ee,p?es:er);v[y]=el,C[y]=el-ee}t.modifiersData[r]=C}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n,r,i=e.state,o=e.name,a=e.options,s=i.elements.arrow,l=i.modifiersData.popperOffsets,u=NB(i.placement),c=NU(u),p=[NT,NO].indexOf(u)>=0?"height":"width";if(!!s&&!!l){var d=(t=a.padding,n=i,NX("number"!=typeof(t="function"==typeof t?t(Object.assign({},n.rects,{placement:n.placement})):t)?t:NJ(t,Nx))),h=Nb(s),f="y"===c?"top":NT,m="y"===c?NE:NO,g=i.rects.reference[p]+i.rects.reference[c]-l[c]-i.rects.popper[p],A=l[c]-i.rects.reference[c],b=Nw(s),y=b?"y"===c?b.clientHeight||0:b.clientWidth||0:0,v=d[f],S=y-h[p]-d[m],w=y/2-h[p]/2+(g/2-A/2),E=N0(v,w,S);i.modifiersData[o]=((r={})[c]=E,r.centerOffset=E-w,r)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;if(null!=r&&("string"!=typeof r||!!(r=t.elements.popper.querySelector(r)))&&!!NQ(t.elements.popper,r))t.elements.arrow=r},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=N$(t,{elementContext:"reference"}),s=N$(t,{altBoundary:!0}),l=N1(a,r),u=N1(s,i,o),c=N2(l),p=N2(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":p})}}]},W=void 0===(G=(V=Z).defaultModifiers)?[]:G,q=void 0===(Q=V.defaultOptions)?ND:Q,function(e,t,n){void 0===n&&(n=q);var r,i,o={placement:"bottom",orderedModifiers:[],options:Object.assign({},ND,q),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},a=[],s=!1;var l={state:o,setOptions:function(n){var r,i,s,c,p,d,h="function"==typeof n?n(o.options):n;u(),o.options=Object.assign({},q,o.options,h),o.scrollParents={reference:Nr(e)?Nv(e):e.contextElement?Nv(e.contextElement):[],popper:Nv(t)};var f=(d=(i=Object.keys(r=[].concat(W,o.options.modifiers).reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{})).map(function(e){return r[e]}),s=new Map,c=new Set,p=[],i.forEach(function(e){s.set(e.name,e)}),i.forEach(function(e){!c.has(e.name)&&!function e(t){c.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach(function(t){if(!c.has(t)){var n=s.get(t);n&&e(n)}}),p.push(t)}(e)}),p),NN.reduce(function(e,t){return e.concat(d.filter(function(e){return e.phase===t}))},[]));return o.orderedModifiers=f.filter(function(e){return e.enabled}),function(){o.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=e.effect;if("function"==typeof r){var i=r({state:o,name:t,instance:l,options:void 0===n?{}:n});a.push(i||function(){})}})}(),l.update()},forceUpdate:function(){if(s)return;var e,t,n,r,i,a,u,c,p,d,h,f,m,g=o.elements,A=g.reference,b=g.popper;if(!!NM(A,b)){o.rects={reference:(e=A,t=Nw(b),n="fixed"===o.options.strategy,r=Ni(t),p=Ni(t)&&(u=Nl((a=(i=t).getBoundingClientRect()).width)/i.offsetWidth||1,c=Nl(a.height)/i.offsetHeight||1,1!==u||1!==c),d=Nf(t),h=Np(e,p,n),f={scrollLeft:0,scrollTop:0},m={x:0,y:0},(r||!r&&!n)&&(("body"!==Nh(t)||NA(d))&&(f=function(e){var t;if(e===Nn(e)||!Ni(e))return Nd(e);return{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}}(t)),Ni(t)?(m=Np(t,!0),m.x+=t.clientLeft,m.y+=t.clientTop):d&&(m.x=Nm(d))),{x:h.left+f.scrollLeft-m.x,y:h.top+f.scrollTop-m.y,width:h.width,height:h.height}),popper:Nb(b)},o.reset=!1,o.placement=o.options.placement,o.orderedModifiers.forEach(function(e){return o.modifiersData[e.name]=Object.assign({},e.data)});for(var y=0;y{let{classes:t}=e;return(0,rd.Z)({root:["root"]},N3,t)},N9={},De=e0.forwardRef(function(e,t){var n;let{anchorEl:r,children:i,direction:o,disablePortal:a,modifiers:s,open:l,placement:u,popperOptions:c,popperRef:p,slotProps:d={},slots:h={},TransitionProps:f}=e,m=(0,n3.Z)(e,N6),g=e0.useRef(null),A=(0,sk.Z)(g,t),b=e0.useRef(null),y=(0,sk.Z)(b,p),v=e0.useRef(y);(0,sP.Z)(()=>{v.current=y},[y]),e0.useImperativeHandle(p,()=>b.current,[]);let S=function(e,t){if("ltr"===t)return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(u,o),[w,E]=e0.useState(S),[O,T]=e0.useState(N8(r));e0.useEffect(()=>{b.current&&b.current.forceUpdate()}),e0.useEffect(()=>{r&&T(N8(r))},[r]),(0,sP.Z)(()=>{if(!O||!l)return;let e=e=>{E(e.placement)},t=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:t})=>{e(t)}}];null!=s&&(t=t.concat(s)),c&&null!=c.modifiers&&(t=t.concat(c.modifiers));let n=N4(O,g.current,(0,n4.Z)({placement:S},c,{modifiers:t}));return v.current(n),()=>{n.destroy(),v.current(null)}},[O,a,s,l,c,S]);let C={placement:w};null!==f&&(C.TransitionProps=f);let x=N5(e),I=null!=(n=h.root)?n:"div",k=l1({elementType:I,externalSlotProps:d.root,externalForwardedProps:m,additionalProps:{role:"tooltip",ref:A},ownerState:e,className:x.root});return(0,eJ.jsx)(I,(0,n4.Z)({},k,{children:"function"==typeof i?i(C):i}))}),Dt=e0.forwardRef(function(e,t){let n;let{anchorEl:r,children:i,container:o,direction:a="ltr",disablePortal:s=!1,keepMounted:l=!1,modifiers:u,open:c,placement:p="bottom",popperOptions:d=N9,popperRef:h,style:f,transition:m=!1,slotProps:g={},slots:A={}}=e,b=(0,n3.Z)(e,N7),[y,v]=e0.useState(!0);if(!l&&!c&&(!m||y))return null;if(o)n=o;else if(r){let e=N8(r);n=e&&void 0!==e.nodeType?(0,uE.Z)(e).body:(0,uE.Z)(null).body}let S=!c&&l&&(!m||y)?"none":void 0,w=m?{in:c,onEnter:()=>{v(!1)},onExited:()=>{v(!0)}}:void 0;return(0,eJ.jsx)(uI,{disablePortal:s,container:n,children:(0,eJ.jsx)(De,(0,n4.Z)({anchorEl:r,direction:a,disablePortal:s,modifiers:u,ref:t,open:m?!y:c,placement:p,popperOptions:d,popperRef:h,slotProps:g,slots:A},b,{style:(0,n4.Z)({position:"fixed",top:0,left:0,display:S},f),TransitionProps:w,children:i}))})}),Dn=["anchorEl","component","components","componentsProps","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","transition","slots","slotProps"],Dr=(0,rh.ZP)(Dt,{name:"MuiPopper",slot:"Root",overridesResolver:(e,t)=>t.root})({}),Di=e0.forwardRef(function(e,t){var n;let r=(0,Nt.default)(),i=(0,rf.i)({props:e,name:"MuiPopper"}),{anchorEl:o,component:a,components:s,componentsProps:l,container:u,disablePortal:c,keepMounted:p,modifiers:d,open:h,placement:f,popperOptions:m,popperRef:g,transition:A,slots:b,slotProps:y}=i,v=(0,n3.Z)(i,Dn),S=null!=(n=null==b?void 0:b.root)?n:null==s?void 0:s.Root,w=(0,n4.Z)({anchorEl:o,container:u,disablePortal:c,keepMounted:p,modifiers:d,open:h,placement:f,popperOptions:m,popperRef:g,transition:A},v);return(0,eJ.jsx)(Dr,(0,n4.Z)({as:a,direction:null==r?void 0:r.direction,slots:{root:S},slotProps:null!=y?y:l},w,{ref:t}))});function Do(e){return(0,rA.ZP)("MuiListSubheader",e)}(0,rl.Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);let Da=["className","color","component","disableGutters","disableSticky","inset"],Ds=e=>{let{classes:t,color:n,disableGutters:r,inset:i,disableSticky:o}=e,a={root:["root","default"!==n&&`color${(0,rN.Z)(n)}`,!r&&"gutters",i&&"inset",!o&&"sticky"]};return(0,rd.Z)(a,Do,t)},Dl=(0,rh.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,"default"!==n.color&&t[`color${(0,rN.Z)(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})(({theme:e,ownerState:t})=>(0,n4.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},"primary"===t.color&&{color:(e.vars||e).palette.primary.main},"inherit"===t.color&&{color:"inherit"},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.inset&&{paddingLeft:72},!t.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper})),Du=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiListSubheader"}),{className:r,color:i="default",component:o="li",disableGutters:a=!1,disableSticky:s=!1,inset:l=!1}=n,u=(0,n3.Z)(n,Da),c=(0,n4.Z)({},n,{color:i,component:o,disableGutters:a,disableSticky:s,inset:l}),p=Ds(c);return(0,eJ.jsx)(Dl,(0,n4.Z)({as:o,className:(0,n6.Z)(p.root,r),ref:t,ownerState:c},u))});Du.muiSkipListHighlight=!0;let Dc=(0,cI.Z)((0,eJ.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Dp(e){return(0,rA.ZP)("MuiChip",e)}let Dd=(0,rl.Z)("MuiChip",["root","sizeSmall","sizeMedium","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),Dh=["avatar","className","clickable","color","component","deleteIcon","disabled","icon","label","onClick","onDelete","onKeyDown","onKeyUp","size","variant","tabIndex","skipFocusWhenDisabled"],Df=e=>{let{classes:t,disabled:n,size:r,color:i,iconColor:o,onDelete:a,clickable:s,variant:l}=e,u={root:["root",l,n&&"disabled",`size${(0,rN.Z)(r)}`,`color${(0,rN.Z)(i)}`,s&&"clickable",s&&`clickableColor${(0,rN.Z)(i)}`,a&&"deletable",a&&`deletableColor${(0,rN.Z)(i)}`,`${l}${(0,rN.Z)(i)}`],label:["label",`label${(0,rN.Z)(r)}`],avatar:["avatar",`avatar${(0,rN.Z)(r)}`,`avatarColor${(0,rN.Z)(i)}`],icon:["icon",`icon${(0,rN.Z)(r)}`,`iconColor${(0,rN.Z)(o)}`],deleteIcon:["deleteIcon",`deleteIcon${(0,rN.Z)(r)}`,`deleteIconColor${(0,rN.Z)(i)}`,`deleteIcon${(0,rN.Z)(l)}Color${(0,rN.Z)(i)}`]};return(0,rd.Z)(u,Dp,t)},Dm=(0,rh.ZP)("div",{name:"MuiChip",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e,{color:r,iconColor:i,clickable:o,onDelete:a,size:s,variant:l}=n;return[{[`& .${Dd.avatar}`]:t.avatar},{[`& .${Dd.avatar}`]:t[`avatar${(0,rN.Z)(s)}`]},{[`& .${Dd.avatar}`]:t[`avatarColor${(0,rN.Z)(r)}`]},{[`& .${Dd.icon}`]:t.icon},{[`& .${Dd.icon}`]:t[`icon${(0,rN.Z)(s)}`]},{[`& .${Dd.icon}`]:t[`iconColor${(0,rN.Z)(i)}`]},{[`& .${Dd.deleteIcon}`]:t.deleteIcon},{[`& .${Dd.deleteIcon}`]:t[`deleteIcon${(0,rN.Z)(s)}`]},{[`& .${Dd.deleteIcon}`]:t[`deleteIconColor${(0,rN.Z)(r)}`]},{[`& .${Dd.deleteIcon}`]:t[`deleteIcon${(0,rN.Z)(l)}Color${(0,rN.Z)(r)}`]},t.root,t[`size${(0,rN.Z)(s)}`],t[`color${(0,rN.Z)(r)}`],o&&t.clickable,o&&"default"!==r&&t[`clickableColor${(0,rN.Z)(r)})`],a&&t.deletable,a&&"default"!==r&&t[`deletableColor${(0,rN.Z)(r)}`],t[l],t[`${l}${(0,rN.Z)(r)}`]]}})(({theme:e,ownerState:t})=>{let n="light"===e.palette.mode?e.palette.grey[700]:e.palette.grey[300];return(0,n4.Z)({maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:16,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Dd.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Dd.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:n,fontSize:e.typography.pxToRem(12)},[`& .${Dd.avatarColorPrimary}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark},[`& .${Dd.avatarColorSecondary}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark},[`& .${Dd.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${Dd.icon}`]:(0,n4.Z)({marginLeft:5,marginRight:-6},"small"===t.size&&{fontSize:18,marginLeft:4,marginRight:-4},t.iconColor===t.color&&(0,n4.Z)({color:e.vars?e.vars.palette.Chip.defaultIconColor:n},"default"!==t.color&&{color:"inherit"})),[`& .${Dd.deleteIcon}`]:(0,n4.Z)({WebkitTapHighlightColor:"transparent",color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.26)`:(0,rm.alpha)(e.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.4)`:(0,rm.alpha)(e.palette.text.primary,.4)}},"small"===t.size&&{fontSize:16,marginRight:4,marginLeft:-4},"default"!==t.color&&{color:e.vars?`rgba(${e.vars.palette[t.color].contrastTextChannel} / 0.7)`:(0,rm.alpha)(e.palette[t.color].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[t.color].contrastText}})},"small"===t.size&&{height:24},"default"!==t.color&&{backgroundColor:(e.vars||e).palette[t.color].main,color:(e.vars||e).palette[t.color].contrastText},t.onDelete&&{[`&.${Dd.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,rm.alpha)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},t.onDelete&&"default"!==t.color&&{[`&.${Dd.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t.color].dark}})},({theme:e,ownerState:t})=>(0,n4.Z)({},t.clickable&&{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,rm.alpha)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)},[`&.${Dd.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,rm.alpha)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},"&:active":{boxShadow:(e.vars||e).shadows[1]}},t.clickable&&"default"!==t.color&&{[`&:hover, &.${Dd.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t.color].dark}}),({theme:e,ownerState:t})=>(0,n4.Z)({},"outlined"===t.variant&&{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${"light"===e.palette.mode?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${Dd.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Dd.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${Dd.avatar}`]:{marginLeft:4},[`& .${Dd.avatarSmall}`]:{marginLeft:2},[`& .${Dd.icon}`]:{marginLeft:4},[`& .${Dd.iconSmall}`]:{marginLeft:2},[`& .${Dd.deleteIcon}`]:{marginRight:5},[`& .${Dd.deleteIconSmall}`]:{marginRight:3}},"outlined"===t.variant&&"default"!==t.color&&{color:(e.vars||e).palette[t.color].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / 0.7)`:(0,rm.alpha)(e.palette[t.color].main,.7)}`,[`&.${Dd.clickable}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,rm.alpha)(e.palette[t.color].main,e.palette.action.hoverOpacity)},[`&.${Dd.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.focusOpacity})`:(0,rm.alpha)(e.palette[t.color].main,e.palette.action.focusOpacity)},[`& .${Dd.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / 0.7)`:(0,rm.alpha)(e.palette[t.color].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[t.color].main}}})),Dg=(0,rh.ZP)("span",{name:"MuiChip",slot:"Label",overridesResolver:(e,t)=>{let{ownerState:n}=e,{size:r}=n;return[t.label,t[`label${(0,rN.Z)(r)}`]]}})(({ownerState:e})=>(0,n4.Z)({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap"},"outlined"===e.variant&&{paddingLeft:11,paddingRight:11},"small"===e.size&&{paddingLeft:8,paddingRight:8},"small"===e.size&&"outlined"===e.variant&&{paddingLeft:7,paddingRight:7}));function DA(e){return"Backspace"===e.key||"Delete"===e.key}let Db=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiChip"}),{avatar:r,className:i,clickable:o,color:a="default",component:s,deleteIcon:l,disabled:u=!1,icon:c,label:p,onClick:d,onDelete:h,onKeyDown:f,onKeyUp:m,size:g="medium",variant:A="filled",tabIndex:b,skipFocusWhenDisabled:y=!1}=n,v=(0,n3.Z)(n,Dh),S=e0.useRef(null),w=(0,rV.Z)(S,t),E=e=>{e.stopPropagation(),h&&h(e)},O=!1!==o&&!!d||o,T=O||h?ip:s||"div",C=(0,n4.Z)({},n,{component:T,disabled:u,size:g,color:a,iconColor:e0.isValidElement(c)&&c.props.color||a,onDelete:!!h,clickable:O,variant:A}),x=Df(C),I=T===ip?(0,n4.Z)({component:s||"div",focusVisibleClassName:x.focusVisible},h&&{disableRipple:!0}):{},k=null;h&&(k=l&&e0.isValidElement(l)?e0.cloneElement(l,{className:(0,n6.Z)(l.props.className,x.deleteIcon),onClick:E}):(0,eJ.jsx)(Dc,{className:(0,n6.Z)(x.deleteIcon),onClick:E}));let _=null;r&&e0.isValidElement(r)&&(_=e0.cloneElement(r,{className:(0,n6.Z)(x.avatar,r.props.className)}));let R=null;return c&&e0.isValidElement(c)&&(R=e0.cloneElement(c,{className:(0,n6.Z)(x.icon,c.props.className)})),(0,eJ.jsxs)(Dm,(0,n4.Z)({as:T,className:(0,n6.Z)(x.root,i),disabled:!!O&&!!u||void 0,onClick:d,onKeyDown:e=>{e.currentTarget===e.target&&DA(e)&&e.preventDefault(),f&&f(e)},onKeyUp:e=>{e.currentTarget===e.target&&(h&&DA(e)?h(e):"Escape"===e.key&&S.current&&S.current.blur()),m&&m(e)},ref:w,tabIndex:y&&u?-1:b,ownerState:C},I,v,{children:[_||R,(0,eJ.jsx)(Dg,{className:(0,n6.Z)(x.label),ownerState:C,children:p}),k]}))}),Dy=(0,cI.Z)((0,eJ.jsx)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");function Dv(e){return(0,rA.ZP)("MuiAutocomplete",e)}let DS=(0,rl.Z)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]),Dw=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionKey","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","slotProps","value"],DE=["ref"],DO=["key"],DT=["key"],DC=e=>{let{classes:t,disablePortal:n,expanded:r,focused:i,fullWidth:o,hasClearIcon:a,hasPopupIcon:s,inputFocused:l,popupOpen:u,size:c}=e,p={root:["root",r&&"expanded",i&&"focused",o&&"fullWidth",a&&"hasClearIcon",s&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${(0,rN.Z)(c)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",u&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,rd.Z)(p,Dv,t)},Dx=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e,{fullWidth:r,hasClearIcon:i,hasPopupIcon:o,inputFocused:a,size:s}=n;return[{[`& .${DS.tag}`]:t.tag},{[`& .${DS.tag}`]:t[`tagSize${(0,rN.Z)(s)}`]},{[`& .${DS.inputRoot}`]:t.inputRoot},{[`& .${DS.input}`]:t.input},{[`& .${DS.input}`]:a&&t.inputFocused},t.root,r&&t.fullWidth,o&&t.hasPopupIcon,i&&t.hasClearIcon]}})({[`&.${DS.focused} .${DS.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${DS.clearIndicator}`]:{visibility:"visible"}},[`& .${DS.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${DS.inputRoot}`]:{[`.${DS.hasPopupIcon}&, .${DS.hasClearIcon}&`]:{paddingRight:30},[`.${DS.hasPopupIcon}.${DS.hasClearIcon}&`]:{paddingRight:56},[`& .${DS.input}`]:{width:0,minWidth:30}},[`& .${s8.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${s8.root}.${sX.sizeSmall}`]:{[`& .${s8.input}`]:{padding:"2px 4px 3px 0"}},[`& .${lf.root}`]:{padding:9,[`.${DS.hasPopupIcon}&, .${DS.hasClearIcon}&`]:{paddingRight:39},[`.${DS.hasPopupIcon}.${DS.hasClearIcon}&`]:{paddingRight:65},[`& .${DS.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${DS.endAdornment}`]:{right:9}},[`& .${lf.root}.${sX.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${DS.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${li.root}`]:{paddingTop:19,paddingLeft:8,[`.${DS.hasPopupIcon}&, .${DS.hasClearIcon}&`]:{paddingRight:39},[`.${DS.hasPopupIcon}.${DS.hasClearIcon}&`]:{paddingRight:65},[`& .${li.input}`]:{padding:"7px 4px"},[`& .${DS.endAdornment}`]:{right:9}},[`& .${li.root}.${sX.sizeSmall}`]:{paddingBottom:1,[`& .${li.input}`]:{padding:"2.5px 4px"}},[`& .${sX.hiddenLabel}`]:{paddingTop:8},[`& .${li.root}.${sX.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${DS.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${li.root}.${sX.hiddenLabel}.${sX.sizeSmall}`]:{[`& .${DS.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${DS.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${DS.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${DS.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${DS.inputRoot}`]:{flexWrap:"wrap"}}}]}),DI=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),Dk=(0,rh.ZP)(RV,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),D_=(0,rh.ZP)(RV,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>(0,n4.Z)({},t.popupIndicator,e.popupOpen&&t.popupIndicatorOpen)})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),DR=(0,rh.ZP)(Di,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${DS.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]})),DP=(0,rh.ZP)(rw,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})(({theme:e})=>(0,n4.Z)({},e.typography.body1,{overflow:"auto"})),DN=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),DD=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),DM=(0,rh.ZP)("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${DS.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${DS.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${DS.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${DS.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${DS.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,rm.alpha)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}})),DL=(0,rh.ZP)(Du,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8})),DB=(0,rh.ZP)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${DS.option}`]:{paddingLeft:24}}),DF=e0.forwardRef(function(e,t){var n,r,i,o;let a;let s=(0,rf.i)({props:e,name:"MuiAutocomplete"}),{autoComplete:l=!1,autoHighlight:u=!1,autoSelect:c=!1,blurOnSelect:p=!1,ChipProps:d,className:h,clearIcon:f=eq||(eq=(0,eJ.jsx)(Dy,{fontSize:"small"})),clearOnBlur:m=!s.freeSolo,clearOnEscape:g=!1,clearText:A="Clear",closeText:b="Close",componentsProps:y={},defaultValue:v=s.multiple?[]:null,disableClearable:S=!1,disableCloseOnSelect:w=!1,disabled:E=!1,disabledItemsFocusable:O=!1,disableListWrap:T=!1,disablePortal:C=!1,filterSelectedOptions:x=!1,forcePopupIcon:I="auto",freeSolo:k=!1,fullWidth:_=!1,getLimitTagsText:R=e=>`+${e}`,getOptionLabel:P,groupBy:N,handleHomeEndKeys:D=!s.freeSolo,includeInputInList:M=!1,limitTags:L=-1,ListboxComponent:B="ul",ListboxProps:F,loading:U=!1,loadingText:j="Loading…",multiple:z=!1,noOptionsText:H="No options",openOnFocus:Z=!1,openText:V="Open",PaperComponent:G=rw,PopperComponent:W=Di,popupIcon:Q=eK||(eK=(0,eJ.jsx)(ck,{})),readOnly:q=!1,renderGroup:K,renderInput:Y,renderOption:X,renderTags:J,selectOnFocus:$=!s.freeSolo,size:ee="medium",slotProps:et={}}=s,en=(0,n3.Z)(s,Dw),{getRootProps:er,getInputProps:ei,getInputLabelProps:eo,getPopupIndicatorProps:ea,getClearProps:es,getTagProps:el,getListboxProps:eu,getOptionProps:ec,value:ep,dirty:ed,expanded:eh,id:ef,popupOpen:em,focused:eg,focusedTag:eA,anchorEl:eb,setAnchorEl:ey,inputValue:ev,groupedOptions:eS}=Ne((0,n4.Z)({},s,{componentName:"Autocomplete"})),ew=!S&&!E&&ed&&!q,eE=(!k||!0===I)&&!1!==I,{onMouseDown:eO}=ei(),{ref:eT}=null!=F?F:{},eC=eu(),{ref:ex}=eC,eI=(0,n3.Z)(eC,DE),ek=(0,rV.Z)(ex,eT),e_=P||(e=>{var t;return null!=(t=e.label)?t:e}),eR=(0,n4.Z)({},s,{disablePortal:C,expanded:eh,focused:eg,fullWidth:_,getOptionLabel:e_,hasClearIcon:ew,hasPopupIcon:eE,inputFocused:-1===eA,popupOpen:em,size:ee}),eP=DC(eR);if(z&&ep.length>0){let e=e=>(0,n4.Z)({className:eP.tag,disabled:E},el(e));a=J?J(ep,e,eR):ep.map((t,n)=>{let r=e({index:n}),{key:i}=r,o=(0,n3.Z)(r,DO);return(0,eJ.jsx)(Db,(0,n4.Z)({label:e_(t),size:ee},o,d),i)})}if(L>-1&&Array.isArray(a)){let e=a.length-L;!eg&&e>0&&(a=a.splice(0,L)).push((0,eJ.jsx)("span",{className:eP.tag,children:R(e)},a.length))}let eN=K||(e=>(0,eJ.jsxs)("li",{children:[(0,eJ.jsx)(DL,{className:eP.groupLabel,ownerState:eR,component:"div",children:e.group}),(0,eJ.jsx)(DB,{className:eP.groupUl,ownerState:eR,children:e.children})]},e.key)),eD=X||((e,t)=>{let{key:n}=e,r=(0,n3.Z)(e,DT);return(0,eJ.jsx)("li",(0,n4.Z)({},r,{children:e_(t)}),n)}),eM=(e,t)=>{let n=ec({option:e,index:t});return eD((0,n4.Z)({},n,{className:eP.option}),e,{selected:n["aria-selected"],index:t,inputValue:ev},eR)},eL=null!=(n=et.clearIndicator)?n:y.clearIndicator,eB=null!=(r=et.paper)?r:y.paper,eF=null!=(i=et.popper)?i:y.popper,eU=null!=(o=et.popupIndicator)?o:y.popupIndicator;return(0,eJ.jsxs)(e0.Fragment,{children:[(0,eJ.jsx)(Dx,(0,n4.Z)({ref:t,className:(0,n6.Z)(eP.root,h),ownerState:eR},er(en),{children:Y({id:ef,disabled:E,fullWidth:!0,size:"small"===ee?"small":void 0,InputLabelProps:eo(),InputProps:(0,n4.Z)({ref:ey,className:eP.inputRoot,startAdornment:a,onClick:e=>{e.target===e.currentTarget&&eO(e)}},(ew||eE)&&{endAdornment:(0,eJ.jsxs)(DI,{className:eP.endAdornment,ownerState:eR,children:[ew?(0,eJ.jsx)(Dk,(0,n4.Z)({},es(),{"aria-label":A,title:A,ownerState:eR},eL,{className:(0,n6.Z)(eP.clearIndicator,null==eL?void 0:eL.className),children:f})):null,eE?(0,eJ.jsx)(D_,(0,n4.Z)({},ea(),{disabled:E,"aria-label":em?b:V,title:em?b:V,ownerState:eR},eU,{className:(0,n6.Z)(eP.popupIndicator,null==eU?void 0:eU.className),children:Q})):null]})}),inputProps:(0,n4.Z)({className:eP.input,disabled:E,readOnly:q},ei())})})),eb?(0,eJ.jsx)(DR,(0,n4.Z)({as:W,disablePortal:C,style:{width:eb?eb.clientWidth:null},ownerState:eR,role:"presentation",anchorEl:eb,open:em},eF,{className:(0,n6.Z)(eP.popper,null==eF?void 0:eF.className),children:(0,eJ.jsxs)(DP,(0,n4.Z)({ownerState:eR,as:G},eB,{className:(0,n6.Z)(eP.paper,null==eB?void 0:eB.className),children:[U&&0===eS.length?(0,eJ.jsx)(DN,{className:eP.loading,ownerState:eR,children:j}):null,0!==eS.length||k||U?null:(0,eJ.jsx)(DD,{className:eP.noOptions,ownerState:eR,role:"presentation",onMouseDown:e=>{e.preventDefault()},children:H}),eS.length>0?(0,eJ.jsx)(DM,(0,n4.Z)({as:B,className:eP.listbox,ownerState:eR},eI,F,{ref:ek,children:eS.map((e,t)=>N?eN({key:e.key,group:e.group,children:e.options.map((t,n)=>eM(t,e.index+n))}):eM(e,t))})):null]}))})):null]})});function DU(e){for(var t=1;t=0)&&(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}}return i}(e,["key"]);return(0,eJ.jsxs)(rp,Dj(DU({component:"li",sx:{"& > img":{mr:2,flexShrink:0}}},r),{children:[(0,eJ.jsx)("img",{loading:"lazy",width:"20",srcSet:"https://flagcdn.com/w40/".concat(t.code.toLowerCase(),".png 2x"),src:"https://flagcdn.com/w20/".concat(t.code.toLowerCase(),".png"),alt:""}),t.label," (",t.code,") +",t.phone]}),n)},renderInput:function(e){return(0,eJ.jsx)(cZ,Dj(DU({},e),{label:r,inputProps:Dj(DU({},e.inputProps),{autoComplete:"off"}),error:i,helperText:o}))}})},DH=function(e){var t;return null!==(t=DZ.find(function(t){return t.label==e}))&&void 0!==t?t:{code:"",label:"",phone:""}},DZ=[{code:"AD",label:"Andorra",phone:"376"},{code:"AE",label:"United Arab Emirates",phone:"971"},{code:"AF",label:"Afghanistan",phone:"93"},{code:"AG",label:"Antigua and Barbuda",phone:"1-268"},{code:"AI",label:"Anguilla",phone:"1-264"},{code:"AL",label:"Albania",phone:"355"},{code:"AM",label:"Armenia",phone:"374"},{code:"AO",label:"Angola",phone:"244"},{code:"AQ",label:"Antarctica",phone:"672"},{code:"AR",label:"Argentina",phone:"54"},{code:"AS",label:"American Samoa",phone:"1-684"},{code:"AT",label:"Austria",phone:"43"},{code:"AU",label:"Australia",phone:"61",suggested:!0},{code:"AW",label:"Aruba",phone:"297"},{code:"AX",label:"Alland Islands",phone:"358"},{code:"AZ",label:"Azerbaijan",phone:"994"},{code:"BA",label:"Bosnia and Herzegovina",phone:"387"},{code:"BB",label:"Barbados",phone:"1-246"},{code:"BD",label:"Bangladesh",phone:"880"},{code:"BE",label:"Belgium",phone:"32"},{code:"BF",label:"Burkina Faso",phone:"226"},{code:"BG",label:"Bulgaria",phone:"359"},{code:"BH",label:"Bahrain",phone:"973"},{code:"BI",label:"Burundi",phone:"257"},{code:"BJ",label:"Benin",phone:"229"},{code:"BL",label:"Saint Barthelemy",phone:"590"},{code:"BM",label:"Bermuda",phone:"1-441"},{code:"BN",label:"Brunei Darussalam",phone:"673"},{code:"BO",label:"Bolivia",phone:"591"},{code:"BR",label:"Brazil",phone:"55"},{code:"BS",label:"Bahamas",phone:"1-242"},{code:"BT",label:"Bhutan",phone:"975"},{code:"BV",label:"Bouvet Island",phone:"47"},{code:"BW",label:"Botswana",phone:"267"},{code:"BY",label:"Belarus",phone:"375"},{code:"BZ",label:"Belize",phone:"501"},{code:"CA",label:"Canada",phone:"1",suggested:!0},{code:"CC",label:"Cocos (Keeling) Islands",phone:"61"},{code:"CD",label:"Congo, Democratic Republic of the",phone:"243"},{code:"CF",label:"Central African Republic",phone:"236"},{code:"CG",label:"Congo, Republic of the",phone:"242"},{code:"CH",label:"Switzerland",phone:"41"},{code:"CI",label:"Cote d'Ivoire",phone:"225"},{code:"CK",label:"Cook Islands",phone:"682"},{code:"CL",label:"Chile",phone:"56"},{code:"CM",label:"Cameroon",phone:"237"},{code:"CN",label:"China",phone:"86"},{code:"CO",label:"Colombia",phone:"57"},{code:"CR",label:"Costa Rica",phone:"506"},{code:"CU",label:"Cuba",phone:"53"},{code:"CV",label:"Cape Verde",phone:"238"},{code:"CW",label:"Curacao",phone:"599"},{code:"CX",label:"Christmas Island",phone:"61"},{code:"CY",label:"Cyprus",phone:"357"},{code:"CZ",label:"Czech Republic",phone:"420"},{code:"DE",label:"Germany",phone:"49",suggested:!0},{code:"DJ",label:"Djibouti",phone:"253"},{code:"DK",label:"Denmark",phone:"45"},{code:"DM",label:"Dominica",phone:"1-767"},{code:"DO",label:"Dominican Republic",phone:"1-809"},{code:"DZ",label:"Algeria",phone:"213"},{code:"EC",label:"Ecuador",phone:"593"},{code:"EE",label:"Estonia",phone:"372"},{code:"EG",label:"Egypt",phone:"20"},{code:"EH",label:"Western Sahara",phone:"212"},{code:"ER",label:"Eritrea",phone:"291"},{code:"ES",label:"Spain",phone:"34"},{code:"ET",label:"Ethiopia",phone:"251"},{code:"FI",label:"Finland",phone:"358"},{code:"FJ",label:"Fiji",phone:"679"},{code:"FK",label:"Falkland Islands (Malvinas)",phone:"500"},{code:"FM",label:"Micronesia, Federated States of",phone:"691"},{code:"FO",label:"Faroe Islands",phone:"298"},{code:"FR",label:"France",phone:"33",suggested:!0},{code:"GA",label:"Gabon",phone:"241"},{code:"GB",label:"United Kingdom",phone:"44"},{code:"GD",label:"Grenada",phone:"1-473"},{code:"GE",label:"Georgia",phone:"995"},{code:"GF",label:"French Guiana",phone:"594"},{code:"GG",label:"Guernsey",phone:"44"},{code:"GH",label:"Ghana",phone:"233"},{code:"GI",label:"Gibraltar",phone:"350"},{code:"GL",label:"Greenland",phone:"299"},{code:"GM",label:"Gambia",phone:"220"},{code:"GN",label:"Guinea",phone:"224"},{code:"GP",label:"Guadeloupe",phone:"590"},{code:"GQ",label:"Equatorial Guinea",phone:"240"},{code:"GR",label:"Greece",phone:"30"},{code:"GS",label:"South Georgia and the South Sandwich Islands",phone:"500"},{code:"GT",label:"Guatemala",phone:"502"},{code:"GU",label:"Guam",phone:"1-671"},{code:"GW",label:"Guinea-Bissau",phone:"245"},{code:"GY",label:"Guyana",phone:"592"},{code:"HK",label:"Hong Kong",phone:"852"},{code:"HM",label:"Heard Island and McDonald Islands",phone:"672"},{code:"HN",label:"Honduras",phone:"504"},{code:"HR",label:"Croatia",phone:"385"},{code:"HT",label:"Haiti",phone:"509"},{code:"HU",label:"Hungary",phone:"36"},{code:"ID",label:"Indonesia",phone:"62"},{code:"IE",label:"Ireland",phone:"353"},{code:"IL",label:"Israel",phone:"972"},{code:"IM",label:"Isle of Man",phone:"44"},{code:"IN",label:"India",phone:"91"},{code:"IO",label:"British Indian Ocean Territory",phone:"246"},{code:"IQ",label:"Iraq",phone:"964"},{code:"IR",label:"Iran, Islamic Republic of",phone:"98"},{code:"IS",label:"Iceland",phone:"354"},{code:"IT",label:"Italy",phone:"39"},{code:"JE",label:"Jersey",phone:"44"},{code:"JM",label:"Jamaica",phone:"1-876"},{code:"JO",label:"Jordan",phone:"962"},{code:"JP",label:"Japan",phone:"81",suggested:!0},{code:"KE",label:"Kenya",phone:"254"},{code:"KG",label:"Kyrgyzstan",phone:"996"},{code:"KH",label:"Cambodia",phone:"855"},{code:"KI",label:"Kiribati",phone:"686"},{code:"KM",label:"Comoros",phone:"269"},{code:"KN",label:"Saint Kitts and Nevis",phone:"1-869"},{code:"KP",label:"Korea, Democratic People's Republic of",phone:"850"},{code:"KR",label:"Korea, Republic of",phone:"82"},{code:"KW",label:"Kuwait",phone:"965"},{code:"KY",label:"Cayman Islands",phone:"1-345"},{code:"KZ",label:"Kazakhstan",phone:"7"},{code:"LA",label:"Lao People's Democratic Republic",phone:"856"},{code:"LB",label:"Lebanon",phone:"961"},{code:"LC",label:"Saint Lucia",phone:"1-758"},{code:"LI",label:"Liechtenstein",phone:"423"},{code:"LK",label:"Sri Lanka",phone:"94"},{code:"LR",label:"Liberia",phone:"231"},{code:"LS",label:"Lesotho",phone:"266"},{code:"LT",label:"Lithuania",phone:"370"},{code:"LU",label:"Luxembourg",phone:"352"},{code:"LV",label:"Latvia",phone:"371"},{code:"LY",label:"Libya",phone:"218"},{code:"MA",label:"Morocco",phone:"212"},{code:"MC",label:"Monaco",phone:"377"},{code:"MD",label:"Moldova, Republic of",phone:"373"},{code:"ME",label:"Montenegro",phone:"382"},{code:"MF",label:"Saint Martin (French part)",phone:"590"},{code:"MG",label:"Madagascar",phone:"261"},{code:"MH",label:"Marshall Islands",phone:"692"},{code:"MK",label:"Macedonia, the Former Yugoslav Republic of",phone:"389"},{code:"ML",label:"Mali",phone:"223"},{code:"MM",label:"Myanmar",phone:"95"},{code:"MN",label:"Mongolia",phone:"976"},{code:"MO",label:"Macao",phone:"853"},{code:"MP",label:"Northern Mariana Islands",phone:"1-670"},{code:"MQ",label:"Martinique",phone:"596"},{code:"MR",label:"Mauritania",phone:"222"},{code:"MS",label:"Montserrat",phone:"1-664"},{code:"MT",label:"Malta",phone:"356"},{code:"MU",label:"Mauritius",phone:"230"},{code:"MV",label:"Maldives",phone:"960"},{code:"MW",label:"Malawi",phone:"265"},{code:"MX",label:"Mexico",phone:"52"},{code:"MY",label:"Malaysia",phone:"60"},{code:"MZ",label:"Mozambique",phone:"258"},{code:"NA",label:"Namibia",phone:"264"},{code:"NC",label:"New Caledonia",phone:"687"},{code:"NE",label:"Niger",phone:"227"},{code:"NF",label:"Norfolk Island",phone:"672"},{code:"NG",label:"Nigeria",phone:"234"},{code:"NI",label:"Nicaragua",phone:"505"},{code:"NL",label:"Netherlands",phone:"31"},{code:"NO",label:"Norway",phone:"47"},{code:"NP",label:"Nepal",phone:"977"},{code:"NR",label:"Nauru",phone:"674"},{code:"NU",label:"Niue",phone:"683"},{code:"NZ",label:"New Zealand",phone:"64"},{code:"OM",label:"Oman",phone:"968"},{code:"PA",label:"Panama",phone:"507"},{code:"PE",label:"Peru",phone:"51"},{code:"PF",label:"French Polynesia",phone:"689"},{code:"PG",label:"Papua New Guinea",phone:"675"},{code:"PH",label:"Philippines",phone:"63"},{code:"PK",label:"Pakistan",phone:"92"},{code:"PL",label:"Poland",phone:"48"},{code:"PM",label:"Saint Pierre and Miquelon",phone:"508"},{code:"PN",label:"Pitcairn",phone:"870"},{code:"PR",label:"Puerto Rico",phone:"1"},{code:"PS",label:"Palestine, State of",phone:"970"},{code:"PT",label:"Portugal",phone:"351"},{code:"PW",label:"Palau",phone:"680"},{code:"PY",label:"Paraguay",phone:"595"},{code:"QA",label:"Qatar",phone:"974"},{code:"RE",label:"Reunion",phone:"262"},{code:"RO",label:"Romania",phone:"40"},{code:"RS",label:"Serbia",phone:"381"},{code:"RU",label:"Russian Federation",phone:"7"},{code:"RW",label:"Rwanda",phone:"250"},{code:"SA",label:"Saudi Arabia",phone:"966"},{code:"SB",label:"Solomon Islands",phone:"677"},{code:"SC",label:"Seychelles",phone:"248"},{code:"SD",label:"Sudan",phone:"249"},{code:"SE",label:"Sweden",phone:"46"},{code:"SG",label:"Singapore",phone:"65"},{code:"SH",label:"Saint Helena",phone:"290"},{code:"SI",label:"Slovenia",phone:"386"},{code:"SJ",label:"Svalbard and Jan Mayen",phone:"47"},{code:"SK",label:"Slovakia",phone:"421"},{code:"SL",label:"Sierra Leone",phone:"232"},{code:"SM",label:"San Marino",phone:"378"},{code:"SN",label:"Senegal",phone:"221"},{code:"SO",label:"Somalia",phone:"252"},{code:"SR",label:"Suriname",phone:"597"},{code:"SS",label:"South Sudan",phone:"211"},{code:"ST",label:"Sao Tome and Principe",phone:"239"},{code:"SV",label:"El Salvador",phone:"503"},{code:"SX",label:"Sint Maarten (Dutch part)",phone:"1-721"},{code:"SY",label:"Syrian Arab Republic",phone:"963"},{code:"SZ",label:"Swaziland",phone:"268"},{code:"TC",label:"Turks and Caicos Islands",phone:"1-649"},{code:"TD",label:"Chad",phone:"235"},{code:"TF",label:"French Southern Territories",phone:"262"},{code:"TG",label:"Togo",phone:"228"},{code:"TH",label:"Thailand",phone:"66"},{code:"TJ",label:"Tajikistan",phone:"992"},{code:"TK",label:"Tokelau",phone:"690"},{code:"TL",label:"Timor-Leste",phone:"670"},{code:"TM",label:"Turkmenistan",phone:"993"},{code:"TN",label:"Tunisia",phone:"216"},{code:"TO",label:"Tonga",phone:"676"},{code:"TR",label:"Turkey",phone:"90"},{code:"TT",label:"Trinidad and Tobago",phone:"1-868"},{code:"TV",label:"Tuvalu",phone:"688"},{code:"TW",label:"Taiwan",phone:"886"},{code:"TZ",label:"United Republic of Tanzania",phone:"255"},{code:"UA",label:"Ukraine",phone:"380"},{code:"UG",label:"Uganda",phone:"256"},{code:"US",label:"United States",phone:"1",suggested:!0},{code:"UY",label:"Uruguay",phone:"598"},{code:"UZ",label:"Uzbekistan",phone:"998"},{code:"VA",label:"Holy See (Vatican City State)",phone:"379"},{code:"VC",label:"Saint Vincent and the Grenadines",phone:"1-784"},{code:"VE",label:"Venezuela",phone:"58"},{code:"VG",label:"British Virgin Islands",phone:"1-284"},{code:"VI",label:"US Virgin Islands",phone:"1-340"},{code:"VN",label:"Vietnam",phone:"84"},{code:"VU",label:"Vanuatu",phone:"678"},{code:"WF",label:"Wallis and Futuna",phone:"681"},{code:"WS",label:"Samoa",phone:"685"},{code:"XK",label:"Kosovo",phone:"383"},{code:"YE",label:"Yemen",phone:"967"},{code:"YT",label:"Mayotte",phone:"262"},{code:"ZA",label:"South Africa",phone:"27"},{code:"ZM",label:"Zambia",phone:"260"},{code:"ZW",label:"Zimbabwe",phone:"263"}];function DV(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}}return i}(e,["label"]);var s=(t=sb(a),n=3,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(t,3)||function(e,t){if(e){if("string"==typeof e)return DV(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return DV(e,t)}}(t,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=s[0],u=s[1],c=s[2],p=u.error&&u.touched?u.error:"";return(0,eJ.jsx)(Dz,(r=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0))Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}}return i}(e,["label"]);var s=(t=sb(a),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(t,2)||function(e,t){if(e){if("string"==typeof e)return DW(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return DW(e,t)}}(t,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=s[0],u=s[1];return u.error&&u.touched&&u.error,(0,eJ.jsx)(Pg,{control:(0,eJ.jsx)(PD,(r=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]t.backdrop})({zIndex:-1}),D5=e=>{let{classes:t,scroll:n,maxWidth:r,fullWidth:i,fullScreen:o}=e,a={root:["root"],container:["container",`scroll${(0,rN.Z)(n)}`],paper:["paper",`paperScroll${(0,rN.Z)(n)}`,`paperWidth${(0,rN.Z)(String(r))}`,i&&"paperFullWidth",o&&"paperFullScreen"]};return(0,rd.Z)(a,D4,t)},D9=(0,rh.ZP)(uK,{name:"MuiDialog",slot:"Root",overridesResolver:(e,t)=>t.root})({"@media print":{position:"absolute !important"}}),Me=(0,rh.ZP)("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.container,t[`scroll${(0,rN.Z)(n.scroll)}`]]}})(({ownerState:e})=>(0,n4.Z)({height:"100%","@media print":{height:"auto"},outline:0},"paper"===e.scroll&&{display:"flex",justifyContent:"center",alignItems:"center"},"body"===e.scroll&&{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}})),Mt=(0,rh.ZP)(rw,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.paper,t[`scrollPaper${(0,rN.Z)(n.scroll)}`],t[`paperWidth${(0,rN.Z)(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(({theme:e,ownerState:t})=>(0,n4.Z)({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},"paper"===t.scroll&&{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},"body"===t.scroll&&{display:"inline-block",verticalAlign:"middle",textAlign:"left"},!t.maxWidth&&{maxWidth:"calc(100% - 64px)"},"xs"===t.maxWidth&&{maxWidth:"px"===e.breakpoints.unit?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${D3.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}},t.maxWidth&&"xs"!==t.maxWidth&&{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`,[`&.${D3.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[t.maxWidth]+64)]:{maxWidth:"calc(100% - 64px)"}}},t.fullWidth&&{width:"calc(100% - 64px)"},t.fullScreen&&{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${D3.paperScrollBody}`]:{margin:0,maxWidth:"100%"}})),Mn=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialog"}),r=um(),i={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{"aria-describedby":o,"aria-labelledby":a,BackdropComponent:s,BackdropProps:l,children:u,className:c,disableEscapeKeyDown:p=!1,fullScreen:d=!1,fullWidth:h=!1,maxWidth:f="sm",onBackdropClick:m,onClick:g,onClose:A,open:b,PaperComponent:y=rw,PaperProps:v={},scroll:S="paper",TransitionComponent:w=uR,transitionDuration:E=i,TransitionProps:O}=n,T=(0,n3.Z)(n,D7),C=(0,n4.Z)({},n,{disableEscapeKeyDown:p,fullScreen:d,fullWidth:h,maxWidth:f,scroll:S}),x=D5(C),I=e0.useRef(),k=(0,sT.Z)(a),_=e0.useMemo(()=>({titleId:k}),[k]);return(0,eJ.jsx)(D9,(0,n4.Z)({className:(0,n6.Z)(x.root,c),closeAfterTransition:!0,components:{Backdrop:D8},componentsProps:{backdrop:(0,n4.Z)({transitionDuration:E,as:s},l)},disableEscapeKeyDown:p,onClose:A,open:b,ref:t,onClick:e=>{if(g&&g(e),!!I.current)I.current=null,m&&m(e),A&&A(e,"backdropClick")},ownerState:C},T,{children:(0,eJ.jsx)(w,(0,n4.Z)({appear:!0,in:b,timeout:E,role:"presentation"},O,{children:(0,eJ.jsx)(Me,{className:(0,n6.Z)(x.container),onMouseDown:e=>{I.current=e.target===e.currentTarget},ownerState:C,children:(0,eJ.jsx)(Mt,(0,n4.Z)({as:y,elevation:24,role:"dialog","aria-describedby":o,"aria-labelledby":k},v,{className:(0,n6.Z)(x.paper,v.className),ownerState:C,children:(0,eJ.jsx)(D6.Provider,{value:_,children:u})}))})}))}))});function Mr(e){return(0,rA.ZP)("MuiDialogTitle",e)}let Mi=(0,rl.Z)("MuiDialogTitle",["root"]),Mo=["className","id"],Ma=e=>{let{classes:t}=e;return(0,rd.Z)({root:["root"]},Mr,t)},Ms=(0,rh.ZP)(rz,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:"16px 24px",flex:"0 0 auto"}),Ml=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialogTitle"}),{className:r,id:i}=n,o=(0,n3.Z)(n,Mo),a=Ma(n),{titleId:s=i}=e0.useContext(D6);return(0,eJ.jsx)(Ms,(0,n4.Z)({component:"h2",className:(0,n6.Z)(a.root,r),ownerState:n,ref:t,variant:"h6",id:null!=i?i:s},o))});function Mu(e){return(0,rA.ZP)("MuiDialogContent",e)}(0,rl.Z)("MuiDialogContent",["root","dividers"]);let Mc=["className","dividers"],Mp=e=>{let{classes:t,dividers:n}=e;return(0,rd.Z)({root:["root",n&&"dividers"]},Mu,t)},Md=(0,rh.ZP)("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(({theme:e,ownerState:t})=>(0,n4.Z)({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px"},t.dividers?{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}:{[`.${Mi.root} + &`]:{paddingTop:0}})),Mh=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialogContent"}),{className:r,dividers:i=!1}=n,o=(0,n3.Z)(n,Mc),a=(0,n4.Z)({},n,{dividers:i}),s=Mp(a);return(0,eJ.jsx)(Md,(0,n4.Z)({className:(0,n6.Z)(s.root,r),ownerState:a,ref:t},o))});function Mf(e){return(0,rA.ZP)("MuiDialogContentText",e)}(0,rl.Z)("MuiDialogContentText",["root"]);let Mm=["children","className"],Mg=e=>{let{classes:t}=e,n=(0,rd.Z)({root:["root"]},Mf,t);return(0,n4.Z)({},t,n)},MA=(0,rh.ZP)(rz,{shouldForwardProp:e=>(0,rZ.Z)(e)||"classes"===e,name:"MuiDialogContentText",slot:"Root",overridesResolver:(e,t)=>t.root})({}),Mb=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialogContentText"}),{className:r}=n,i=(0,n3.Z)(n,Mm),o=Mg(i);return(0,eJ.jsx)(MA,(0,n4.Z)({component:"p",variant:"body1",color:"text.secondary",ref:t,ownerState:i,className:(0,n6.Z)(o.root,r)},n,{classes:o}))});function My(e){return(0,rA.ZP)("MuiDialogActions",e)}(0,rl.Z)("MuiDialogActions",["root","spacing"]);let Mv=["className","disableSpacing"],MS=e=>{let{classes:t,disableSpacing:n}=e;return(0,rd.Z)({root:["root",!n&&"spacing"]},My,t)},Mw=(0,rh.ZP)("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})(({ownerState:e})=>(0,n4.Z)({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),ME=e0.forwardRef(function(e,t){let n=(0,rf.i)({props:e,name:"MuiDialogActions"}),{className:r,disableSpacing:i=!1}=n,o=(0,n3.Z)(n,Mv),a=(0,n4.Z)({},n,{disableSpacing:i}),s=MS(a);return(0,eJ.jsx)(Mw,(0,n4.Z)({className:(0,n6.Z)(s.root,r),ownerState:a,ref:t},o))});function MO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1](function(e,t,n,r,i){let o=new Sn({next:s=>{o.Za(),t.enqueueAndForget(()=>vR(e,a));let l=s.docs.has(n);!l&&s.fromCache?i.reject(new gE(gw.UNAVAILABLE,"Failed to get document because the client is offline.")):l&&s.fromCache&&r&&"server"===r.source?i.reject(new gE(gw.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):i.resolve(s)},error:e=>i.reject(e)}),a=new vM(new AK(n.path),o,{includeMetadataChanges:!0,_a:!0});return v_(e,a)})(await Sl(e),e.asyncQueue,t,n,r)),r.promise})(Sw(t),e._key).then(n=>(function(e,t,n){let r=n.docs.get(t._key),i=new SJ(e);return new SY(e,i,t._key,r,new SK(n.hasPendingWrites,n.fromCache),t.converter)})(t,e,n))})(Sy(ED,"users",e)).then(function(e){return e.exists()?function(e){for(var t=1;tu(JSON.parse(c),{replace:n,state:r,relative:i}),[u,c,i,n,r]),null},{to:M_})},{path:"".concat(M_,"/login"),element:(0,eJ.jsx)(function(){OJ();var e,t,n,r=nS();var i=(e=(0,e0.useState)(),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(e,2)||function(e,t){if(e){if("string"==typeof e)return O1(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O1(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=i[0],a=i[1];(0,e0.useEffect)(function(){var e=mt(EN,function(e){e&&r("".concat(M_,"/releases"))});return function(){return e()}},[]),O4(function(){var e;return O3(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,mR(EN,EB)];case 1:return O$(t.sent().user.uid),r("".concat(M_,"/releases")),[3,3];case 2:if(console.log(e=t.sent()),"auth/account-exists-with-different-credential"===e.code)return a(fQ.credentialFromError(e)),e_("You already login using email and password, login with email and password to link github login"),r("".concat(M_,"/login")),[2];return e_("Error registering user"),[3,3];case 3:return[2]}})});var s=(n=O4(function(e){var t;return O3(this,function(n){switch(n.label){case 0:var i,a,s;return n.trys.push([0,4,,5]),[4,(i=EN,a=e.email,s=e.password,d3(i.app)?Promise.reject(hy(i)):f3(dS(i),fH.credential(a,s)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&f7(i),e}))];case 1:if(O$((t=n.sent()).user.uid),!o)return[3,3];return[4,f6(t.user,o)];case 2:n.sent(),n.label=3;case 3:return r("".concat(M_,"/releases")),[3,5];case 4:return console.log(n.sent()),e_("Invalid email or password"),[3,5];case 5:return[2]}})}),function(e){return n.apply(this,arguments)}),l=sf({initialValues:{email:"",password:""},validationSchema:pG().shape({email:p_().required(),password:p_().required()}),validateOnMount:!0,onSubmit:s}),u=l.handleSubmit;return(0,eJ.jsx)(sn,{value:l,children:(0,eJ.jsx)(rp,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"100vh"},children:(0,eJ.jsx)(rx,{sx:{minWidth:275,maxWidth:400,padding:2},children:(0,eJ.jsxs)(rP,{children:[(0,eJ.jsx)(rz,{variant:"h5",component:"div",gutterBottom:!0,children:"Login"}),(0,eJ.jsx)(cG,{name:"email",label:"Email",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"password",label:"Password",variant:"outlined",type:"password",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(iE,{variant:"contained",color:"primary",sx:{marginTop:2,display:"block",width:"100%"},onClick:u,children:"Sign In"}),(0,eJ.jsxs)(rz,{variant:"body2",align:"center",sx:{marginTop:2},children:["Forget your password?"," ",(0,eJ.jsx)(n$,{to:"".concat(M_,"/reset-password"),children:"Reset Password"})]}),(0,eJ.jsxs)(rz,{variant:"body2",align:"center",sx:{marginTop:2},children:["Don't have an account?"," ",(0,eJ.jsx)(n$,{to:"".concat(M_,"/register"),children:"Register"})]})]})})})})},{})},{path:"".concat(M_,"/register"),element:(0,eJ.jsx)(function(){OJ();var e,t,n=nS(),r=D$((0,e0.useState)(),2),i=(r[0],r[1]),o=D$((0,e0.useState)(),2),a=(o[0],o[1]),s=D$((0,e0.useState)(null),2),l=s[0],u=s[1];var c=(e=DJ(function(e){var t,r,i,o,a,s,l,u,c,p,d,h;return D0(this,function(f){switch(f.label){case 0:return f.trys.push([0,4,,5]),t=e.firstName,r=e.lastName,i=e.country,o=e.company,a=e.occupation,s=e.email,l=e.password,u=e.signMailingList,c=e.joinBetaTester,[4,f5(EN,s,l)];case 1:return O$((p=f.sent()).user.uid),[4,me(d=p.user,{displayName:"".concat(t," ").concat(r)})];case 2:return f.sent(),[4,S$(Sy(ED,"users",d.uid),{firstName:t,lastName:r,email:s,company:o,country:i,occupation:a,signMailingList:u,joinBetaTester:c})];case 3:return f.sent(),e_("User sucessfully created",{variant:"success"}),n("".concat(M_,"/releases")),[3,5];case 4:var m,g;if(m=h=f.sent(),null!=(g=dc)&&"undefined"!=typeof Symbol&&g[Symbol.hasInstance]?!!g[Symbol.hasInstance](m):m instanceof g)console.log("".concat(h.name,": ").concat(h.message)),"auth/email-already-in-use"===h.code?DK("Email is already in use!"):DK("Error registering user: ".concat(h.name,": ").concat(h.message));else console.log(h),DK("Error registering user: ".concat(h));return[3,5];case 5:return[2]}})}),function(t){return e.apply(this,arguments)});var p=sf({initialValues:P2,validationSchema:pG().shape({email:p_().required(),password:p_().required(),passwordConfirmation:p_().oneOf([new pl("password",void 0),null],"Passwords must match"),firstName:p_().required(),lastName:p_().required(),country:p_().required(),company:p_(),occupation:p_(),signMailingList:py(),joinBetaTester:py()}),validateOnMount:!0,onSubmit:c}),d=p.handleSubmit;return p.setFieldValue,DJ(function(){var e,t,r,o,s,l,u;return D0(this,function(c){switch(c.label){case 0:return c.trys.push([0,3,,4]),[4,mR(EN,EB)];case 1:return e=c.sent(),t=fQ.credentialFromResult(e),a(e.user),i(t),o=(r=e.user.displayName.split(" "))[0]||"",s=r.slice(1).join(" ")||"",l=e.user.email||"",[4,S$(Sy(ED,"users",e.user.uid),{firstName:o,lastName:s,email:l})];case 2:return c.sent(),n("".concat(M_,"/releases")),[3,4];case 3:if(console.log(u=c.sent()),"auth/account-exists-with-different-credential"===u.code)return i(fQ.credentialFromError(u)),e_("You already login using email and password, login with email and password to link github login"),n("".concat(M_,"/login")),[2];return e_("Error registering user"),[3,4];case 4:return[2]}})}),(0,eJ.jsx)(sn,{value:p,children:(0,eJ.jsx)(rp,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"100vh"},children:(0,eJ.jsx)(rx,{sx:{minWidth:275,maxWidth:400,padding:2},children:(0,eJ.jsxs)(rP,{children:[(0,eJ.jsx)(rz,{variant:"h5",component:"div",gutterBottom:!0,children:"Register"}),(0,eJ.jsx)(cG,{name:"firstName",label:"First Name",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"lastName",label:"Last Name",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(DG,{name:"country",label:"Country",variant:"outlined",fullWidth:!0,margin:"normal",initCountryLabelState:l,setInitCountryLabelState:u}),(0,eJ.jsx)(cG,{name:"occupation",label:"Occupation",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"company",label:"Company",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"email",label:"Email",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"password",label:"Password",variant:"outlined",type:"password",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"passwordConfirmation",label:"Confirm Password",variant:"outlined",type:"password",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(DQ,{name:"signMailingList",label:"Sign up for the OSC Mailing list",margin:"normal"}),(0,eJ.jsx)(DQ,{name:"joinBetaTester",label:"Accept to be contacted for beta testing Release Candidates and New Features",margin:"normal"}),(0,eJ.jsx)(iE,{variant:"contained",color:"primary",sx:{marginTop:2,display:"block",width:"100%"},onClick:d,children:"Register"}),(0,eJ.jsxs)(rz,{variant:"body2",align:"center",sx:{marginTop:2},children:["Have an account? ",(0,eJ.jsx)(n$,{to:"".concat(M_,"/login"),children:"Login"})]})]})})})})},{})},{path:"".concat(M_,"/reset-password"),element:(0,eJ.jsx)(function(){OJ();var e,t,n=nS();(0,e0.useEffect)(function(){var e=mt(EN,function(e){e&&n("".concat(M_,"/releases"))});return function(){return e()}},[]);var r=(t=(e=function(e){var t,n;return function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;--e)if(!SV(u,s[e])){let t=s[e],n=l[e];n=dS(n);let r=a.Nu(t);if(n instanceof SM)u.push(t);else{let e=SL(n,r);null!=e&&(u.push(t),c.set(t,e))}}return new S_(c,new g6(u),a.fieldTransforms)}(o,"updateDoc",e._key,t,void 0,r):function(e,t,n,r){let i=e.Qu(1,t,n);SU("Data must be an object, but it was:",i,r);let o=[],a=AO.empty();return gJ(r,(e,r)=>{let s=SH(t,e,n);r=dS(r);let l=i.Nu(s);if(r instanceof SM)o.push(s);else{let e=SL(r,l);null!=e&&(o.push(s),a.set(s,e))}}),new S_(a,new g6(o),i.fieldTransforms)}(o,"updateDoc",e._key,t)).toMutation(e._key,bw.exists(!0))])}(Sy(ED,"users",r.uid),{firstName:t,lastName:n,email:s,company:o,country:i,occupation:a,signMailingList:l,joinBetaTester:u})];case 2:return p.sent(),e_("User Profile Updated",{variant:"success"}),[3,4];case 3:return console.log(c=p.sent()),DK("Error Updating user profile: ".concat(c)),[3,4];case 4:return[2]}})}),function(t){return e.apply(this,arguments)}),d=Mx((0,e0.useState)(!1),2),h=d[0],f=d[1],m=function(){f(!1)};var g=(t=MC(function(){var e;return MI(this,function(t){switch(t.label){case 0:var i;if(e=!1,null!=r.metadata.lastSignInTime&&Date.now()-Date.parse(r.metadata.lastSignInTime)<=12e4&&(e=!0),!e)return DK("Cannot delete user profile because last sign in is too old. Sign out and in again please"),[2];return[4,S0(Sh((i=Sy(ED,"users",r.uid)).firestore,SS),[new bN(i._key,bw.none())])];case 1:return t.sent(),e_("User Information Deleted",{variant:"success"}),r.delete().then(function(){e_("User Deleted",{variant:"success"}),n(M_)}).catch(function(e){DK("Error Deleting user profile: ".concat(e))}),[2]}})}),function(){return t.apply(this,arguments)}),A=sf({initialValues:o,validationSchema:pG().shape({firstName:p_().required(),lastName:p_().required(),country:p_().required(),company:p_(),occupation:p_(),signMailingList:py(),joinBetaTester:py()}),validateOnMount:!0,onSubmit:p,enableReinitialize:!0}),b=A.handleSubmit;return A.setFieldValue,(0,eJ.jsxs)(eJ.Fragment,{children:[(0,eJ.jsx)(P0,{}),(0,eJ.jsx)(sn,{value:A,children:(0,eJ.jsx)(rp,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"100vh"},children:(0,eJ.jsx)(rx,{sx:{minWidth:275,maxWidth:400,padding:2},children:(0,eJ.jsxs)(rP,{children:[(0,eJ.jsx)(rz,{variant:"h5",component:"div",gutterBottom:!0,children:"Profile Information"}),(0,eJ.jsx)(cG,{name:"firstName",label:"First Name",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"lastName",label:"Last Name",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(DG,{name:"country",label:"Country",variant:"outlined",fullWidth:!0,margin:"normal",initCountryLabelState:l,setInitCountryLabelState:u}),(0,eJ.jsx)(cG,{name:"occupation",label:"Occupation",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"company",label:"Company",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(cG,{name:"email",disabled:!0,label:"Email",variant:"outlined",fullWidth:!0,margin:"normal"}),(0,eJ.jsx)(DQ,{name:"signMailingList",label:"Sign up for the OSC Mailing list",margin:"normal"}),(0,eJ.jsx)(DQ,{name:"joinBetaTester",label:"Accept to be contacted for beta testing Release Candidates and New Features",margin:"normal"}),(0,eJ.jsx)(iE,{variant:"contained",color:"primary",sx:{marginTop:2,display:"block",width:"100%"},onClick:b,children:"Update Profile"}),(0,eJ.jsx)(iE,{variant:"contained",color:"error",sx:{marginTop:2,display:"block",width:"100%"},onClick:function(){f(!0)},children:"Delete My Account"}),(0,eJ.jsxs)(Mn,{open:h,onClose:m,"aria-labelledby":"delete-account-dialog-title","aria-describedby":"delete-account-dialog-description",children:[(0,eJ.jsx)(Ml,{id:"delete-account-dialog-title",children:"Delete your account?"}),(0,eJ.jsx)(Mh,{children:(0,eJ.jsx)(Mb,{id:"delete-account-dialog-description",children:"This is a destructive action, your account will not be recoverable."})}),(0,eJ.jsxs)(ME,{children:[(0,eJ.jsx)(iE,{onClick:m,autoFocus:!0,children:"Abort"}),(0,eJ.jsx)(iE,{onClick:g,color:"error",children:"Delete"})]})]})]})})})})]})},{})},{path:"".concat(M_),element:(0,eJ.jsx)(function(){OJ();var e,t,n=(e=(0,e0.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(e,2)||function(e,t){if(e){if("string"==typeof e)return O6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O6(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=n[0],i=n[1],o=nS();return((0,e0.useEffect)(function(){var e=mt(EN,function(e){e?(i(e),o("".concat(M_,"/releases"))):(i(null),o("".concat(M_,"/login")))});return function(){return e()}},[]),r)?(0,eJ.jsx)(eJ.Fragment,{children:(0,eJ.jsx)(nP,{})}):null},{}),children:[{path:"".concat(M_,"/releases"),element:(0,eJ.jsx)(function(){var e,t,n=(e=(0,e0.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(e);!(a=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{!a&&null!=i.return&&i.return()}finally{if(s)throw r}}return o}}(e,2)||function(e,t){if(e){if("string"==typeof e)return P1(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P1(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=n[0],i=n[1];return(0,eJ.jsxs)(eJ.Fragment,{children:[(0,eJ.jsx)(P0,{}),(0,eJ.jsx)(Pg,{label:"Display Pre-releases",control:(0,eJ.jsx)(PD,{checked:r,onChange:function(){i(!r)},inputProps:{"aria-label":"controlled"}})}),(0,eJ.jsx)(rp,{sx:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",minHeight:"100vh",p:5},children:(0,eJ.jsx)(Pz,{maxWidth:"md",children:(0,eJ.jsx)(Pu,{spacing:2,children:O7.map(function(e,t){return(0,eJ.jsx)(R$,{release:e,index:t,displayPreReleases:r},e.name)})})})})]})},{})}]}],(function(e){let t,n,r,i,o,a;let s=e.window?e.window:"undefined"!=typeof window?window:void 0,l=void 0!==s&&void 0!==s.document&&void 0!==s.document.createElement,u=!l;if(e7(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)t=e.mapRouteProperties;else if(e.detectErrorBoundary){let n=e.detectErrorBoundary;t=e=>({hasErrorBoundary:n(e)})}else t=tN;let c={},p=tr(e.routes,t,void 0,c),d=e.basename||"/",h=e.dataStrategy||tV,f=e.patchRoutesOnNavigation,m=e3({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),g=null,A=new Set,b=null,y=null,v=null,S=null!=e.hydrationData,w=ti(p,e.history.location,d),E=!1,O=null;if(null==w&&!f){let t=t4(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=t2(p);w=n,O={[r.id]:t}}if(w&&!e.hydrationData&&eS(w,p,e.history.location.pathname).active&&(w=null),w){if(w.some(e=>e.route.lazy))r=!1;else if(w.some(e=>e.route.loader)){if(m.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null;if(n){let e=w.findIndex(e=>void 0!==n[e.route.id]);r=w.slice(0,e+1).every(e=>!tU(e.route,t,n))}else r=w.every(e=>!tU(e.route,t,n))}else r=null!=e.hydrationData}else r=!0}else if(r=!1,w=[],m.v7_partialHydration){let t=eS(null,p,e.history.location.pathname);t.active&&t.matches&&(E=!0,w=t.matches)}let T={historyAction:e.history.action,location:e.history.location,matches:w,initialized:r,navigation:tk,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||O,fetchers:new Map,blockers:new Map},C=$.Pop,x=!1,I=!1,k=new Map,_=null,R=!1,P=!1,N=[],D=new Set,M=new Map,L=0,B=-1,F=new Map,U=new Set,j=new Map,z=new Map,H=new Set,Z=new Map,V=new Map;function G(e,t){void 0===t&&(t={}),T=e3({},T,e);let n=[],r=[];m.v7_fetcherPersist&&T.fetchers.forEach((e,t)=>{"idle"===e.state&&(H.has(t)?r.push(t):n.push(t))}),H.forEach(e=>{!T.fetchers.has(e)&&!M.has(e)&&r.push(e)}),[...A].forEach(e=>e(T,{deletedFetchers:r,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),m.v7_fetcherPersist?(n.forEach(e=>T.fetchers.delete(e)),r.forEach(e=>eu(e))):r.forEach(e=>H.delete(e))}function W(t,r,i){var o,a;let s,l;let{flushSync:u}=void 0===i?{}:i,c=null!=T.actionData&&null!=T.navigation.formMethod&&nt(T.navigation.formMethod)&&"loading"===T.navigation.state&&(null==(o=t.state)?void 0:o._isRedirect)!==!0;s=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:c?T.actionData:null;let d=r.loaderData?t$(T.loaderData,r.loaderData,r.matches||[],r.errors):T.loaderData,h=T.blockers;h.size>0&&(h=new Map(h)).forEach((e,t)=>h.set(t,tR));let f=!0===x||null!=T.navigation.formMethod&&nt(T.navigation.formMethod)&&(null==(a=t.state)?void 0:a._isRedirect)!==!0;if(n&&(p=n,n=void 0),R||C===$.Pop||(C===$.Push?e.history.push(t,t.state):C===$.Replace&&e.history.replace(t,t.state)),C===$.Pop){let e=k.get(T.location.pathname);e&&e.has(t.pathname)?l={currentLocation:T.location,nextLocation:t}:k.has(t.pathname)&&(l={currentLocation:t,nextLocation:T.location})}else if(I){let e=k.get(T.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),k.set(T.location.pathname,e)),l={currentLocation:T.location,nextLocation:t}}G(e3({},r,{actionData:s,loaderData:d,historyAction:C,location:t,initialized:!0,navigation:tk,revalidation:"idle",restoreScrollPosition:ev(t,r.matches||T.matches),preventScrollReset:f,blockers:h}),{viewTransitionOpts:l,flushSync:!0===u}),C=$.Pop,x=!1,I=!1,R=!1,P=!1,N=[]}async function Q(t,n){if("number"==typeof t){e.history.go(t);return}let r=tM(T.location,T.matches,d,m.v7_prependBasename,t,m.v7_relativeSplatPath,null==n?void 0:n.fromRouteId,null==n?void 0:n.relative),{path:i,submission:o,error:a}=tL(m.v7_normalizeFormMethod,!1,r,n),s=T.location,l=e9(T.location,i,n&&n.state);l=e3({},l,e.history.encodeLocation(l));let u=n&&null!=n.replace?n.replace:void 0,c=$.Push;!0===u?c=$.Replace:!1===u||null!=o&&nt(o.formMethod)&&o.formAction===T.location.pathname+T.location.search&&(c=$.Replace);let p=n&&"preventScrollReset"in n?!0===n.preventScrollReset:void 0,h=!0===(n&&n.flushSync),f=eg({currentLocation:s,nextLocation:l,historyAction:c});if(f){em(f,{state:"blocked",location:l,proceed(){em(f,{state:"proceeding",proceed:void 0,reset:void 0,location:l}),Q(t,n)},reset(){let e=new Map(T.blockers);e.set(f,tR),G({blockers:e})}});return}return await q(c,l,{submission:o,pendingError:a,preventScrollReset:p,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:h})}async function q(t,r,i){let a;o&&o.abort(),o=null,C=t,R=!0===(i&&i.startUninterruptedRevalidation),function(e,t){b&&v&&(b[ey(e,t)]=v())}(T.location,T.matches),x=!0===(i&&i.preventScrollReset),I=!0===(i&&i.enableViewTransition);let s=n||p,l=i&&i.overrideNavigation,u=null!=i&&i.initialHydration&&T.matches&&T.matches.length>0&&!E?T.matches:ti(s,r,d),c=!0===(i&&i.flushSync);if(u&&T.initialized&&!P&&function(e,t){if(e.pathname!==t.pathname||e.search!==t.search)return!1;if(""===e.hash)return""!==t.hash;if(e.hash===t.hash)return!0;if(""!==t.hash)return!0;return!1}(T.location,r)&&!(i&&i.submission&&nt(i.submission.formMethod))){W(r,{matches:u},{flushSync:c});return}let h=eS(u,s,r.pathname);if(h.active&&h.matches&&(u=h.matches),!u){let{error:e,notFoundMatches:t,route:n}=eA(r.pathname);W(r,{matches:t,loaderData:{},errors:{[n.id]:e}},{flushSync:c});return}o=new AbortController;let f=tK(e.history,r,o.signal,i&&i.submission);if(i&&i.pendingError)a=[t1(u).route.id,{type:ee.error,error:i.pendingError}];else if(i&&i.submission&&nt(i.submission.formMethod)){let t=await K(f,r,i.submission,u,h.active,{replace:i.replace,flushSync:c});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,n]=t.pendingActionResult;if(t8(n)&&tE(n.error)&&404===n.error.status){o=null,W(r,{matches:t.matches,loaderData:{},errors:{[e]:n.error}});return}}u=t.matches||u,a=t.pendingActionResult,l=nl(r,i.submission),c=!1,h.active=!1,f=tK(e.history,f.url,f.signal)}let{shortCircuited:m,matches:g,loaderData:A,errors:y}=await Y(f,r,u,h.active,l,i&&i.submission,i&&i.fetcherSubmission,i&&i.replace,i&&!0===i.initialHydration,c,a);if(!m)o=null,W(r,e3({matches:g||u},t0(a),{loaderData:A,errors:y}))}async function K(t,n,r,i,o,a){let s;if(void 0===a&&(a={}),eo(),G({navigation:function(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}(n,r)},{flushSync:!0===a.flushSync}),o){let e=await ew(i,n.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=t1(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:ee.error,error:e.error}]}}else if(e.matches)i=e.matches;else{let{notFoundMatches:e,error:t,route:r}=eA(n.pathname);return{matches:e,pendingActionResult:[r.id,{type:ee.error,error:t}]}}}let l=na(i,n);if(l.route.action||l.route.lazy){if(s=(await er("action",T,t,[l],i,null))[l.route.id],t.signal.aborted)return{shortCircuited:!0}}else s={type:ee.error,error:t4(405,{method:t.method,pathname:n.pathname,routeId:l.route.id})};if(t5(s)){let n;return n=a&&null!=a.replace?a.replace:tq(s.response.headers.get("Location"),new URL(t.url),d,e.history)===T.location.pathname+T.location.search,await en(t,s,!0,{submission:r,replace:n}),{shortCircuited:!0}}if(t7(s))throw t4(400,{type:"defer-action"});if(t8(s)){let e=t1(i,l.route.id);return!0!==(a&&a.replace)&&(C=$.Push),{matches:i,pendingActionResult:[e.route.id,s]}}return{matches:i,pendingActionResult:[l.route.id,s]}}async function Y(t,r,i,a,s,l,u,c,h,f,g){let A=s||nl(r,l),b=l||u||ns(A),y=!R&&(!m.v7_partialHydration||!h);if(a){if(y){let e=X(g);G(e3({navigation:A},void 0!==e?{actionData:e}:{}),{flushSync:f})}let e=await ew(i,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=t1(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}else if(e.matches)i=e.matches;else{let{error:e,notFoundMatches:t,route:n}=eA(r.pathname);return{matches:t,loaderData:{},errors:{[n.id]:e}}}}let v=n||p,[S,w]=tF(e.history,T,i,b,r,m.v7_partialHydration&&!0===h,m.v7_skipActionErrorRevalidation,P,N,D,H,j,U,v,d,g);if(eb(e=>!(i&&i.some(t=>t.route.id===e))||S&&S.some(t=>t.route.id===e)),B=++L,0===S.length&&0===w.length){let e=ed();return W(r,e3({matches:i,loaderData:{},errors:g&&t8(g[1])?{[g[0]]:g[1].error}:null},t0(g),e?{fetchers:new Map(T.fetchers)}:{}),{flushSync:f}),{shortCircuited:!0}}if(y){let e={};if(!a){e.navigation=A;let t=X(g);void 0!==t&&(e.actionData=t)}w.length>0&&(e.fetchers=function(e){return e.forEach(e=>{let t=T.fetchers.get(e.key),n=nu(void 0,t?t.data:void 0);T.fetchers.set(e.key,n)}),new Map(T.fetchers)}(w)),G(e,{flushSync:f})}w.forEach(e=>{ec(e.key),e.controller&&M.set(e.key,e.controller)});let E=()=>w.forEach(e=>ec(e.key));o&&o.signal.addEventListener("abort",E);let{loaderResults:O,fetcherResults:C}=await ei(T,i,S,w,t);if(t.signal.aborted)return{shortCircuited:!0};o&&o.signal.removeEventListener("abort",E),w.forEach(e=>M.delete(e.key));let x=t3(O);if(x)return await en(t,x.result,!0,{replace:c}),{shortCircuited:!0};if(x=t3(C))return U.add(x.key),await en(t,x.result,!0,{replace:c}),{shortCircuited:!0};let{loaderData:I,errors:k}=tJ(T,i,O,g,w,C,Z);Z.forEach((e,t)=>{e.subscribe(n=>{(n||e.done)&&Z.delete(t)})}),m.v7_partialHydration&&h&&T.errors&&(k=e3({},T.errors,k));let _=ed(),F=eh(B),z=_||F||w.length>0;return e3({matches:i,loaderData:I,errors:k},z?{fetchers:new Map(T.fetchers)}:{})}function X(e){if(e&&!t8(e[1]))return{[e[0]]:e[1].data};if(T.actionData)return 0===Object.keys(T.actionData).length?null:T.actionData}async function J(t,r,i,a,s,l,u,c,h){function f(e){if(!e.route.action&&!e.route.lazy){let e=t4(405,{method:h.formMethod,pathname:i,routeId:r});return es(t,r,e,{flushSync:u}),!0}return!1}if(eo(),j.delete(t),!l&&f(a))return;let g=T.fetchers.get(t);ea(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(h,g),{flushSync:u});let A=new AbortController,b=tK(e.history,i,A.signal,h);if(l){let e=await ew(s,new URL(b.url).pathname,b.signal,t);if("aborted"===e.type)return;if("error"===e.type){es(t,r,e.error,{flushSync:u});return}else if(e.matches){if(f(a=na(s=e.matches,i)))return}else{es(t,r,t4(404,{pathname:i}),{flushSync:u});return}}M.set(t,A);let y=L,v=(await er("action",T,b,[a],s,t))[a.route.id];if(b.signal.aborted){M.get(t)===A&&M.delete(t);return}if(m.v7_fetcherPersist&&H.has(t)){if(t5(v)||t8(v)){ea(t,nc(void 0));return}}else{if(t5(v)){if(M.delete(t),!(B>y))return U.add(t),ea(t,nu(h)),en(b,v,!1,{fetcherSubmission:h,preventScrollReset:c});ea(t,nc(void 0));return}if(t8(v)){es(t,r,v.error);return}}if(t7(v))throw t4(400,{type:"defer-action"});let S=T.navigation.location||T.location,w=tK(e.history,S,A.signal),E=n||p,O="idle"!==T.navigation.state?ti(E,T.navigation.location,d):T.matches;e7(O,"Didn't find any matches after fetcher action");let x=++L;F.set(t,x);let I=nu(h,v.data);T.fetchers.set(t,I);let[k,_]=tF(e.history,T,O,h,S,!1,m.v7_skipActionErrorRevalidation,P,N,D,H,j,U,E,d,[a.route.id,v]);_.filter(e=>e.key!==t).forEach(e=>{let t=e.key,n=T.fetchers.get(t),r=nu(void 0,n?n.data:void 0);T.fetchers.set(t,r),ec(t),e.controller&&M.set(t,e.controller)}),G({fetchers:new Map(T.fetchers)});let R=()=>_.forEach(e=>ec(e.key));A.signal.addEventListener("abort",R);let{loaderResults:z,fetcherResults:V}=await ei(T,O,k,_,w);if(A.signal.aborted)return;A.signal.removeEventListener("abort",R),F.delete(t),M.delete(t),_.forEach(e=>M.delete(e.key));let Q=t3(z);if(Q)return en(w,Q.result,!1,{preventScrollReset:c});if(Q=t3(V))return U.add(Q.key),en(w,Q.result,!1,{preventScrollReset:c});let{loaderData:q,errors:K}=tJ(T,O,z,void 0,_,V,Z);if(T.fetchers.has(t)){let e=nc(v.data);T.fetchers.set(t,e)}eh(x),"loading"===T.navigation.state&&x>B?(e7(C,"Expected pending action"),o&&o.abort(),W(T.navigation.location,{matches:O,loaderData:q,errors:K,fetchers:new Map(T.fetchers)})):(G({errors:K,loaderData:t$(T.loaderData,q,O,K),fetchers:new Map(T.fetchers)}),P=!1)}async function et(t,n,r,i,o,a,s,l,u){let c=T.fetchers.get(t);ea(t,nu(u,c?c.data:void 0),{flushSync:s});let p=new AbortController,d=tK(e.history,r,p.signal);if(a){let e=await ew(o,new URL(d.url).pathname,d.signal,t);if("aborted"===e.type)return;if("error"===e.type){es(t,n,e.error,{flushSync:s});return}else if(e.matches)i=na(o=e.matches,r);else{es(t,n,t4(404,{pathname:r}),{flushSync:s});return}}M.set(t,p);let h=L,f=(await er("loader",T,d,[i],o,t))[i.route.id];if(t7(f)&&(f=await ni(f,d.signal,!0)||f),M.get(t)===p&&M.delete(t),!d.signal.aborted){if(H.has(t)){ea(t,nc(void 0));return}if(t5(f)){if(B>h){ea(t,nc(void 0));return}U.add(t),await en(d,f,!1,{preventScrollReset:l});return}if(t8(f)){es(t,n,f.error);return}e7(!t7(f),"Unhandled fetcher deferred data"),ea(t,nc(f.data))}}async function en(t,n,r,i){let{submission:a,fetcherSubmission:u,preventScrollReset:c,replace:p}=void 0===i?{}:i;n.response.headers.has("X-Remix-Revalidate")&&(P=!0);let h=n.response.headers.get("Location");e7(h,"Expected a Location header on the redirect Response"),h=tq(h,new URL(t.url),d,e.history);let f=e9(T.location,h,{_isRedirect:!0});if(l){let t=!1;if(n.response.headers.has("X-Remix-Reload-Document"))t=!0;else if(tP.test(h)){let n=e.history.createURL(h);t=n.origin!==s.location.origin||null==tu(n.pathname,d)}if(t){p?s.location.replace(h):s.location.assign(h);return}}o=null;let m=!0===p||n.response.headers.has("X-Remix-Replace")?$.Replace:$.Push,{formMethod:g,formAction:A,formEncType:b}=T.navigation;!a&&!u&&g&&A&&b&&(a=ns(T.navigation));let y=a||u;if(tI.has(n.response.status)&&y&&nt(y.formMethod))await q(m,f,{submission:e3({},y,{formAction:h}),preventScrollReset:c||x,enableViewTransition:r?I:void 0});else{let e=nl(f,a);await q(m,f,{overrideNavigation:e,fetcherSubmission:u,preventScrollReset:c||x,enableViewTransition:r?I:void 0})}}async function er(e,n,r,i,o,a){let s;let l={};try{s=await tG(h,e,n,r,i,o,a,c,t)}catch(e){return i.forEach(t=>{l[t.route.id]={type:ee.error,error:e}}),l}for(let[e,t]of Object.entries(s))if(function(e){return ne(e.result)&&tx.has(e.result.status)}(t)){let n=t.result;l[e]={type:ee.redirect,response:function(e,t,n,r,i,o){let a=e.headers.get("Location");if(e7(a,"Redirects returned/thrown from loaders/actions must have a Location header"),!tP.test(a)){let s=r.slice(0,r.findIndex(e=>e.route.id===n)+1);a=tM(new URL(t.url),s,i,!0,a,o),e.headers.set("Location",a)}return e}(n,r,e,o,d,m.v7_relativeSplatPath)}}else l[e]=await tQ(t);return l}async function ei(t,n,r,i,o){let a=t.matches,s=er("loader",t,o,r,n,null),l=Promise.all(i.map(async n=>{if(!n.matches||!n.match||!n.controller)return Promise.resolve({[n.key]:{type:ee.error,error:t4(404,{pathname:n.path})}});{let r=(await er("loader",t,tK(e.history,n.path,n.controller.signal),[n.match],n.matches,n.key))[n.match.route.id];return{[n.key]:r}}})),u=await s,c=(await l).reduce((e,t)=>Object.assign(e,t),{});return await Promise.all([nn(n,u,o.signal,a,t.loaderData),nr(n,c,i)]),{loaderResults:u,fetcherResults:c}}function eo(){P=!0,N.push(...eb()),j.forEach((e,t)=>{M.has(t)&&D.add(t),ec(t)})}function ea(e,t,n){void 0===n&&(n={}),T.fetchers.set(e,t),G({fetchers:new Map(T.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function es(e,t,n,r){void 0===r&&(r={});let i=t1(T.matches,t);eu(e),G({errors:{[i.route.id]:n},fetchers:new Map(T.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function el(e){return z.set(e,(z.get(e)||0)+1),H.has(e)&&H.delete(e),T.fetchers.get(e)||t_}function eu(e){let t=T.fetchers.get(e);M.has(e)&&!(t&&"loading"===t.state&&F.has(e))&&ec(e),j.delete(e),F.delete(e),U.delete(e),m.v7_fetcherPersist&&H.delete(e),D.delete(e),T.fetchers.delete(e)}function ec(e){let t=M.get(e);t&&(t.abort(),M.delete(e))}function ep(e){for(let t of e){let e=nc(el(t).data);T.fetchers.set(t,e)}}function ed(){let e=[],t=!1;for(let n of U){let r=T.fetchers.get(n);e7(r,"Expected fetcher: "+n),"loading"===r.state&&(U.delete(n),e.push(n),t=!0)}return ep(e),t}function eh(e){let t=[];for(let[n,r]of F)if(r0}function ef(e){T.blockers.delete(e),V.delete(e)}function em(e,t){let n=T.blockers.get(e)||tR;e7("unblocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"proceeding"===t.state||"blocked"===n.state&&"unblocked"===t.state||"proceeding"===n.state&&"unblocked"===t.state,"Invalid blocker state transition: "+n.state+" -> "+t.state);let r=new Map(T.blockers);r.set(e,t),G({blockers:r})}function eg(e){let{currentLocation:t,nextLocation:n,historyAction:r}=e;if(0===V.size)return;V.size>1&&e8(!1,"A router only supports one blocker at a time");let i=Array.from(V.entries()),[o,a]=i[i.length-1],s=T.blockers.get(o);if(!s||"proceeding"!==s.state){if(a({currentLocation:t,nextLocation:n,historyAction:r}))return o}}function eA(e){let t=t4(404,{pathname:e}),{matches:r,route:i}=t2(n||p);return eb(),{notFoundMatches:r,route:i,error:t}}function eb(e){let t=[];return Z.forEach((n,r)=>{(!e||e(r))&&(n.cancel(),t.push(r),Z.delete(r))}),t}function ey(e,t){return y&&y(e,t.map(e=>(function(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],handle:n.handle}})(e,T.loaderData)))||e.key}function ev(e,t){if(b){let n=b[ey(e,t)];if("number"==typeof n)return n}return null}function eS(e,t,n){if(f){if(!e)return{active:!0,matches:to(t,n,d,!0)||[]};if(Object.keys(e[0].params).length>0)return{active:!0,matches:to(t,n,d,!0)}}return{active:!1,matches:null}}async function ew(e,r,i,o){if(!f)return{type:"success",matches:e};let a=e;for(;;){let e=null==n,s=n||p,l=c;try{await f({signal:i,path:r,matches:a,fetcherKey:o,patch:(e,n)=>{!i.aborted&&tH(e,n,s,l,t)}})}catch(e){return{type:"error",error:e,partialMatches:a}}finally{e&&!i.aborted&&(p=[...p])}if(i.aborted)return{type:"aborted"};let u=ti(s,r,d);if(u)return{type:"success",matches:u};let h=to(s,r,d,!0);if(!h||a.length===h.length&&a.every((e,t)=>e.route.id===h[t].route.id))return{type:"success",matches:null};a=h}}return i={get basename(){return d},get future(){return m},get state(){return T},get routes(){return p},get window(){return s},initialize:function(){if(g=e.history.listen(t=>{let{action:n,location:r,delta:i}=t;if(a){a(),a=void 0;return}e8(0===V.size||null!=i,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let o=eg({currentLocation:T.location,nextLocation:r,historyAction:n});if(o&&null!=i){let t=new Promise(e=>{a=e});e.history.go(-1*i),em(o,{state:"blocked",location:r,proceed(){em(o,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),t.then(()=>e.history.go(i))},reset(){let e=new Map(T.blockers);e.set(o,tR),G({blockers:e})}});return}return q(n,r)}),l){(function(e,t){try{let n=e.sessionStorage.getItem(tD);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch(e){}})(s,k);let e=()=>(function(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(tD,JSON.stringify(n))}catch(e){e8(!1,"Failed to save applied view transitions in sessionStorage ("+e+").")}}})(s,k);s.addEventListener("pagehide",e),_=()=>s.removeEventListener("pagehide",e)}return!T.initialized&&q($.Pop,T.location,{initialHydration:!0}),i},subscribe:function(e){return A.add(e),()=>A.delete(e)},enableScrollRestoration:function(e,t,n){if(b=e,v=t,y=n||null,!S&&T.navigation===tk){S=!0;let e=ev(T.location,T.matches);null!=e&&G({restoreScrollPosition:e})}return()=>{b=null,v=null,y=null}},navigate:Q,fetch:function(e,t,r,i){if(u)throw Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");ec(e);let o=!0===(i&&i.flushSync),a=n||p,s=tM(T.location,T.matches,d,m.v7_prependBasename,r,m.v7_relativeSplatPath,t,null==i?void 0:i.relative),l=ti(a,s,d),c=eS(l,a,s);if(c.active&&c.matches&&(l=c.matches),!l){es(e,t,t4(404,{pathname:s}),{flushSync:o});return}let{path:h,submission:f,error:g}=tL(m.v7_normalizeFormMethod,!0,s,i);if(g){es(e,t,g,{flushSync:o});return}let A=na(l,h),b=!0===(i&&i.preventScrollReset);if(f&&nt(f.formMethod)){J(e,t,h,A,l,c.active,o,b,f);return}j.set(e,{routeId:t,path:h}),et(e,t,h,A,l,c.active,o,b,f)},revalidate:function(){if(eo(),G({revalidation:"loading"}),"submitting"!==T.navigation.state){if("idle"===T.navigation.state){q(T.historyAction,T.location,{startUninterruptedRevalidation:!0});return}q(C||T.historyAction,T.navigation.location,{overrideNavigation:T.navigation,enableViewTransition:!0===I})}},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:el,deleteFetcher:function(e){let t=(z.get(e)||0)-1;t<=0?(z.delete(e),H.add(e),!m.v7_fetcherPersist&&eu(e)):z.set(e,t),G({fetchers:new Map(T.fetchers)})},dispose:function(){g&&g(),_&&_(),A.clear(),o&&o.abort(),T.fetchers.forEach((e,t)=>eu(t)),T.blockers.forEach((e,t)=>ef(t))},getBlocker:function(e,t){let n=T.blockers.get(e)||tR;return V.get(e)!==t&&V.set(e,t),n},deleteBlocker:ef,patchRoutes:function(e,r){let i=null==n;tH(e,r,n||p,c,t),i&&(p=[...p],G({}))},_internalFetchControllers:M,_internalActiveDeferreds:Z,_internalSetRoutes:function(e){n=tr(e,t,void 0,c={})}}})({basename:void 0,future:nL({},null==X?void 0:X.future,{v7_prependBasename:!0}),history:(J={window:null==X?void 0:X.window},function(e,t,n,r){void 0===r&&(r={});let{window:i=document.defaultView,v5Compat:o=!1}=r,a=i.history,s=$.Pop,l=null,u=c();function c(){return(a.state||{idx:null}).idx}function p(){s=$.Pop;let e=c(),t=null==e?null:e-u;u=e,l&&l({action:s,location:h.location,delta:t})}null==u&&(u=0,a.replaceState(e3({},a.state,{idx:u}),""));function d(e){let t="null"!==i.location.origin?i.location.origin:i.location.href,n="string"==typeof e?e:te(e);return e7(t,"No window.location.(origin|href) available to create URL for href: "+(n=n.replace(/ $/,"%20"))),new URL(n,t)}let h={get action(){return s},get location(){return e(i,a)},listen(e){if(l)throw Error("A history only accepts one active listener");return i.addEventListener(e6,p),l=e,()=>{i.removeEventListener(e6,p),l=null}},createHref:e=>t(i,e),createURL:d,encodeLocation(e){let t=d(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s=$.Push;let r=e9(h.location,e,t);n&&n(r,e);let p=e5(r,u=c()+1),d=h.createHref(r);try{a.pushState(p,"",d)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;i.location.assign(d)}o&&l&&l({action:s,location:h.location,delta:1})},replace:function(e,t){s=$.Replace;let r=e9(h.location,e,t);n&&n(r,e);let i=e5(r,u=c()),p=h.createHref(r);a.replaceState(i,"",p),o&&l&&l({action:s,location:h.location,delta:0})},go:e=>a.go(e)};return h}(function(e,t){let{pathname:n="/",search:r="",hash:i=""}=tt(e.location.hash.substr(1));return!n.startsWith("/")&&!n.startsWith(".")&&(n="/"+n),e9("",{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let n=e.document.querySelector("base"),r="";if(n&&n.getAttribute("href")){let t=e.location.href,n=t.indexOf("#");r=-1===n?t:t.slice(0,n)}return r+"#"+("string"==typeof t?t:te(t))},function(e,t){e8("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")},J)),hydrationData:(null==X?void 0:X.hydrationData)||function(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=nL({},t,{errors:function(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)n[e]=new tw(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let i=new t(r.message);i.stack="",n[e]=i}catch(e){}}if(null==n[e]){let t=Error(r.message);t.stack="",n[e]=t}}else n[e]=r;return n}(t.errors)})),t}(),routes:Y,mapRouteProperties:nM,dataStrategy:null==X?void 0:X.dataStrategy,patchRoutesOnNavigation:null==X?void 0:X.patchRoutesOnNavigation,window:null==X?void 0:X.window}).initialize());let MP=(e,t)=>(0,n4.Z)({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},t&&!e.vars&&{colorScheme:e.palette.mode}),MN=e=>(0,n4.Z)({color:(e.vars||e).palette.text.primary},e.typography.body1,{backgroundColor:(e.vars||e).palette.background.default,"@media print":{backgroundColor:(e.vars||e).palette.common.white}}),MD=(e,t=!1)=>{var n;let r={};t&&e.colorSchemes&&Object.entries(e.colorSchemes).forEach(([t,n])=>{var i;r[e.getColorSchemeSelector(t).replace(/\s*&/,"")]={colorScheme:null==(i=n.palette)?void 0:i.mode}});let i=(0,n4.Z)({html:MP(e,t),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:e.typography.fontWeightBold},body:(0,n4.Z)({margin:0},MN(e),{"&::backdrop":{backgroundColor:(e.vars||e).palette.background.default}})},r),o=null==(n=e.components)||null==(n=n.MuiCssBaseline)?void 0:n.styleOverrides;return o&&(i=[i,o]),i},MM=function(e){let{children:t,enableColorScheme:n=!1}=(0,rf.i)({props:e,name:"MuiCssBaseline"});return(0,eJ.jsxs)(e0.Fragment,{children:[(0,eJ.jsx)(sQ,{styles:e=>MD(e,n)}),t]})},ML=e0.createContext(null);function MB(){let e=e0.useContext(ML);return e}let MF="function"==typeof Symbol&&Symbol.for?Symbol.for("mui.nested"):"__THEME_NESTED__",MU=function(e){let{children:t,theme:n}=e,r=MB(),i=e0.useMemo(()=>{let e=null===r?n:function(e,t){if("function"==typeof t){let n=t(e);return n}return(0,n4.Z)({},e,t)}(r,n);return null!=e&&(e[MF]=null!==r),e},[n,r]);return(0,eJ.jsx)(ML.Provider,{value:i,children:t})};var Mj=n("32842");let Mz={};function MH(e,t,n,r=!1){return e0.useMemo(()=>{let i=e&&t[e]||t;if("function"==typeof n){let o=n(i),a=e?(0,n4.Z)({},t,{[e]:o}):o;return r?()=>a:a}return e?(0,n4.Z)({},t,{[e]:n}):(0,n4.Z)({},t,n)},[e,t,n,r])}let MZ=function(e){let{children:t,theme:n,themeId:r}=e,i=rt(Mz),o=MB()||Mz,a=MH(r,i,n),s=MH(r,o,n,!0),l="rtl"===a.direction,u=function(e){let t=rt(),n=(0,sT.Z)()||"",{modularCssLayers:r}=e,i="mui.global, mui.components, mui.theme, mui.custom, mui.sx";return(i=r&&null===t?"string"==typeof r?r.replace(/mui(?!\.)/g,i):`@layer ${i};`:"",(0,sP.Z)(()=>{var e,t;let r=document.querySelector("head");if(!r)return;let o=r.firstChild;if(i){if(o&&null!=(e=o.hasAttribute)&&e.call(o,"data-mui-layer-order")&&o.getAttribute("data-mui-layer-order")===n)return;let t=document.createElement("style");t.setAttribute("data-mui-layer-order",n),t.textContent=i,r.prepend(t)}else null==(t=r.querySelector(`style[data-mui-layer-order="${n}"]`))||t.remove()},[i,n]),i)?(0,eJ.jsx)(sG,{styles:i}):null}(a);return(0,eJ.jsx)(MU,{theme:s,children:(0,eJ.jsx)(re.T.Provider,{value:a,children:(0,eJ.jsx)(lY,{value:l,children:(0,eJ.jsxs)(Mj.Z,{value:null==a?void 0:a.components,children:[u,t]})})})})},MV=["theme"];function MG(e){let{theme:t}=e,n=(0,n3.Z)(e,MV),r=t[rs.Z],i=r||t;return"function"!=typeof t&&(r&&!r.vars?i=(0,n4.Z)({},r,{vars:null}):t&&!t.vars&&(i=(0,n4.Z)({},t,{vars:null}))),(0,eJ.jsx)(MZ,(0,n4.Z)({},n,{themeId:r?rs.Z:void 0,theme:i}))}var MW=(0,ra.Z)(),MQ={GA_ID:void 0};MQ.GA_ID&&OY.default.initialize(MQ.GA_ID);var Mq=document.getElementById("root"),MK=(0,e$.createRoot)(Mq);MK&&MK.render((0,eJ.jsx)(function(e){var t=e.children;return(0,eJ.jsxs)(MG,{theme:MW,children:[(0,eJ.jsx)(MM,{}),(0,eJ.jsx)(OK,{children:t})]})},{children:(0,eJ.jsx)(function(){return(0,eJ.jsx)(eJ.Fragment,{children:(0,eJ.jsx)(nK,{router:MR})})},{})}))},95297:function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t=o&&(!n||g))r=b(e,0,o);else{var A=n&&!g&&v?{maxByteLength:f(o,v(e))}:void 0;r=new d(o,A);for(var E=new h(e),O=new h(r),T=m(o,i),C=0;C>8&255]},q=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},K=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Y=function(e){return V(m(e),23,4)},X=function(e){return V(e,52,8)},J=function(e,t,n){u(e[k],t,{configurable:!0,get:function(){return n(this)[t]}})},$=function(e,t,n,r){var i=P(e),o=f(n);if(o+t>i.byteLength)throw new z(_);var a=i.bytes,s=o+i.byteOffset,l=v(a,s,s+t);return r?l:Z(l)},ee=function(e,t,n,r,i,o){var a=P(e),s=f(n),l=r(+i),u=!!o;if(s+t>a.byteLength)throw new z(_);for(var c=a.bytes,p=s+a.byteOffset,d=0;d>24)},setUint8:function(e,t){er(this,e,t<<24>>24)}},{unsafe:!0})}else L=(M=function(e){d(this,L);var t=f(e);N(this,{type:x,bytes:H(j(t),0),byteLength:t}),!o&&(this.byteLength=t,this.detached=!1)})[k],F=(B=function(e,t,n){d(this,F),d(e,L);var r=R(e),i=r.byteLength,a=h(t);if(a<0||a>i)throw new z("Wrong offset");if(n=void 0===n?i-a:f(n),a+n>i)throw new z("Wrong length");N(this,{type:I,buffer:e,byteLength:n,byteOffset:a,bytes:r.bytes}),!o&&(this.buffer=e,this.byteLength=n,this.byteOffset=a)})[k],o&&(J(M,"byteLength",R),J(B,"buffer",P),J(B,"byteLength",P),J(B,"byteOffset",P)),c(F,{getInt8:function(e){return $(this,1,e)[0]<<24>>24},getUint8:function(e){return $(this,1,e)[0]},getInt16:function(e){var t=$(this,2,e,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=$(this,2,e,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return K($(this,4,e,arguments.length>1&&arguments[1]))},getUint32:function(e){return K($(this,4,e,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(e){return G($(this,4,e,arguments.length>1&&arguments[1]),23)},getFloat64:function(e){return G($(this,8,e,arguments.length>1&&arguments[1]),52)},setInt8:function(e,t){ee(this,1,e,W,t)},setUint8:function(e,t){ee(this,1,e,W,t)},setInt16:function(e,t){ee(this,2,e,Q,t,arguments.length>2&&arguments[2])},setUint16:function(e,t){ee(this,2,e,Q,t,arguments.length>2&&arguments[2])},setInt32:function(e,t){ee(this,4,e,q,t,arguments.length>2&&arguments[2])},setUint32:function(e,t){ee(this,4,e,q,t,arguments.length>2&&arguments[2])},setFloat32:function(e,t){ee(this,4,e,Y,t,arguments.length>2&&arguments[2])},setFloat64:function(e,t){ee(this,8,e,X,t,arguments.length>2&&arguments[2])}});E(M,x),E(B,I),e.exports={ArrayBuffer:M,DataView:B}},16220:function(e,t,n){"use strict";var r=n(87670),i=n(77732),o=n(80555),a=n(90533),s=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),l=o(n),u=i(e,l),c=i(t,l),p=arguments.length>2?arguments[2]:void 0,d=s((void 0===p?l:i(p,l))-c,l-u),h=1;for(c0;)c in n?n[u]=n[c]:a(n,u),u+=h,c+=h;return n}},12298:function(e,t,n){"use strict";var r=n(87670),i=n(77732),o=n(80555);e.exports=function(e){for(var t=r(this),n=o(t),a=arguments.length,s=i(a>1?arguments[1]:void 0,n),l=a>2?arguments[2]:void 0,u=void 0===l?n:i(l,n);u>s;)t[s++]=e;return t}},36751:function(e,t,n){"use strict";var r=n(15368).forEach,i=n(88486)("forEach");e.exports=i?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},76093:function(e,t,n){"use strict";var r=n(37722),i=n(12814),o=n(62219),a=n(60328),s=n(70269),l=n(24894),u=n(4311),c=n(36780),p=n(76451),d=n(19813),h=n(78583),f=n(23203),m=n(54662).toArray,g=h("asyncIterator"),A=i(d("Array","values")),b=i(A([]).next),y=function(){return new v(this)},v=function(e){this.iterator=A(e)};v.prototype.next=function(){return b(this.iterator)},e.exports=function(e){var t=this,n=arguments.length,i=n>1?arguments[1]:void 0,d=n>2?arguments[2]:void 0;return new(p("Promise"))(function(n){void 0!==i&&(i=r(i,d));var p=c(e,g),h=p?void 0:u(e)||y,A=o(t)?new t:[];n(m(p?a(e,p):new f(l(s(e,h))),i,A))})}},6270:function(e,t,n){"use strict";var r=n(80555);e.exports=function(e,t,n){for(var i=0,o=arguments.length>2?n:r(t),a=new e(o);o>i;)a[i]=t[i++];return a}},55782:function(e,t,n){"use strict";var r=n(37722),i=n(87494),o=n(87670),a=n(20892),s=n(23497),l=n(62219),u=n(80555),c=n(82250),p=n(82919),d=n(70269),h=n(4311),f=n(64043),m=Array;e.exports=function(e){var t,n,g,A,b,y,v=l(this),S=arguments.length,w=S>1?arguments[1]:void 0,E=void 0!==w;E&&(w=r(w,S>2?arguments[2]:void 0));var O=o(e),T=h(O),C=0;if(T&&!(this===m&&s(T)))for(n=v?new this:[],b=(A=d(O,T)).next;!(g=i(b,A)).done;C++){y=E?a(A,w,[g.value,C],!0):g.value;try{c(n,C,y)}catch(e){f(A,"throw",e)}}else for(t=u(O),n=v?new this(t):m(t);t>C;C++)y=E?w(O[C],C):O[C],c(n,C,y);return p(n,C),n}},83355:function(e,t,n){"use strict";var r=n(60621),i=n(77732),o=n(80555),a=function(e){return function(t,n,a){var s,l=r(t),u=o(l);if(0===u)return!e&&-1;var c=i(a,u);if(e&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},70225:function(e,t,n){"use strict";var r=n(37722),i=n(34677),o=n(87670),a=n(80555),s=function(e){var t=1===e;return function(n,s,l){for(var u,c=o(n),p=i(c),d=a(p),h=r(s,l);d-- >0;)if(h(u=p[d],d,c))switch(e){case 0:return u;case 1:return d}return t?-1:void 0}};e.exports={findLast:s(0),findLastIndex:s(1)}},15368:function(e,t,n){"use strict";var r=n(37722),i=n(34677),o=n(87670),a=n(80555),s=n(85016),l=n(82250),u=function(e){var t=1===e,n=2===e,u=3===e,c=4===e,p=6===e,d=7===e,h=5===e||p;return function(f,m,g){for(var A,b,y=o(f),v=i(y),S=a(v),w=r(m,g),E=0,O=0,T=t?s(f,S):n||d?s(f,0):void 0;S>E;E++)if((h||E in v)&&(b=w(A=v[E],E,y),e)){if(t)l(T,E,b);else if(b)switch(e){case 3:return!0;case 5:return A;case 6:return E;case 2:l(T,O++,A)}else switch(e){case 4:return!1;case 7:l(T,O++,A)}}return p?-1:u||c?c:T}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},58014:function(e,t,n){"use strict";var r=n(37626),i=n(60621),o=n(11573),a=n(80555),s=n(88486),l=Math.min,u=[].lastIndexOf,c=!!u&&1/[1].lastIndexOf(1,-0)<0,p=s("lastIndexOf");e.exports=c||!p?function(e){if(c)return r(u,this,arguments)||0;var t=i(this),n=a(t);if(0===n)return -1;var s=n-1;for(arguments.length>1&&(s=l(s,o(arguments[1]))),s<0&&(s=n+s);s>=0;s--)if(s in t&&t[s]===e)return s||0;return -1}:u},18471:function(e,t,n){"use strict";var r=n(81455),i=n(78583),o=n(21033),a=i("species");e.exports=function(e){return o>=51||!r(function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo})}},88486:function(e,t,n){"use strict";var r=n(81455);e.exports=function(e,t){var n=[][e];return!!n&&r(function(){n.call(null,t||function(){return 1},1)})}},39845:function(e,t,n){"use strict";var r=n(65085),i=n(87670),o=n(34677),a=n(80555),s=TypeError,l="Reduce of empty array with no initial value",u=function(e){return function(t,n,u,c){var p=i(t),d=o(p),h=a(p);if(r(n),0===h&&u<2)throw new s(l);var f=e?h-1:0,m=e?-1:1;if(u<2)for(;;){if(f in d){c=d[f],f+=m;break}if(f+=m,e?f<0:h<=f)throw new s(l)}for(;e?f>=0:h>f;f+=m)f in d&&(c=n(c,d[f],f,p));return c}};e.exports={left:u(!1),right:u(!0)}},82919:function(e,t,n){"use strict";var r=n(61360),i=n(61748),o=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=s?function(e,t){if(i(e)&&!a(e,"length").writable)throw new o("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},47441:function(e,t,n){"use strict";var r=n(12814);e.exports=r([].slice)},17322:function(e,t,n){"use strict";var r=n(47441),i=Math.floor,o=function(e,t){var n=e.length;if(n<8){for(var a,s,l=1;l0;)e[s]=e[--s];s!==l++&&(e[s]=a)}}else{for(var u=i(n/2),c=o(r(e,0,u),t),p=o(r(e,u),t),d=c.length,h=p.length,f=0,m=0;f=t(c[f],p[m])?c[f++]:p[m++]:f0,n=t?arguments[0]:void 0;return new h(function(o,a){A(i(t?r(e.next,e.iterator,n):r(e.next,e.iterator)),o,a,e.iterator,!0)})},return:function(){var e=g(this).iterator,t=arguments.length>0,n=t?arguments[0]:void 0;return new h(function(o,s){var l=a(e,"return");if(void 0===l)return o(d(n,!0));A(i(t?r(l,e,n):r(l,e)),o,s,e)})},throw:function(){var e=g(this).iterator,t=arguments.length>0,n=t?arguments[0]:void 0;return new h(function(o,s){var l=a(e,"throw");if(void 0===l){try{u(e,"normal")}catch(e){return s(e)}return s(TypeError("The iterator does not provide a throw method"))}A(i(t?r(l,e,n):r(l,e)),o,s,e,!0)})}}),e.exports=b},21564:function(e,t,n){"use strict";var r=n(87494),i=n(36539),o=n(76451),a=n(36780);e.exports=function(e,t,n,s){try{var l=a(e,"return");if(l)return o("Promise").resolve(r(l,e)).then(function(e){try{t!==s&&i(e)}catch(e){s(e);return}t(n)},function(e){t===s?t(n):s(e)})}catch(e){return t===s?s(n):s(e)}t(n)}},54662:function(e,t,n){"use strict";var r=n(87494),i=n(65085),o=n(36539),a=n(86840),s=n(56182),l=n(76451),u=n(82250),c=n(82919),p=n(24894),d=n(21564),h=function(e){var t=0===e,n=1===e,h=2===e,f=3===e;return function(e,m,g){o(e);var A=void 0!==m;(A||!t)&&i(m);var b=p(e),y=l("Promise"),v=b.iterator,S=b.next,w=0;return new y(function(e,i){var l=function(e){d(v,i,e,i)},p=function(){try{try{s(w)}catch(e){return l(e)}y.resolve(o(r(S,v))).then(function(r){try{if(o(r).done)t?(c(g,w),e(g)):e(!f&&(h||void 0));else{var s=r.value;try{if(A){var b=w++,S=m(s,b),E=function(r){if(n)p();else if(h)r?p():d(v,e,!1,i);else if(t)try{u(g,b,r),p()}catch(e){l(e)}else r?d(v,e,f||s,i):p()};a(S)?y.resolve(S).then(E,l):E(S)}else u(g,w++,s),p()}catch(e){l(e)}}}catch(e){i(e)}},i)}catch(e){i(e)}};p()})}};e.exports={toArray:h(0),forEach:h(1),every:h(2),some:h(3),find:h(4)}},50972:function(e,t,n){"use strict";var r,i,o=n(30456),a=n(72223),s=n(99821),l=n(31153),u=n(43424),c=n(40453),p=n(78583),d=n(83294),h="USE_FUNCTION_CONSTRUCTOR",f=p("asyncIterator"),m=o.AsyncIterator,g=a.AsyncIteratorPrototype;if(g)r=g;else if(s(m))r=m.prototype;else if(a[h]||o[h])try{i=u(u(u(Function("return async function*(){}()")()))),u(i)===Object.prototype&&(r=i)}catch(e){}r?d&&(r=l(r)):r={},!s(r[f])&&c(r,f,function(){return this}),e.exports=r},50135:function(e){"use strict";var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=t+"+/",r=t+"-_",i=function(e){for(var t={},n=0;n<64;n++)t[e.charAt(n)]=n;return t};e.exports={i2c:n,c2i:i(n),i2cUrl:r,c2iUrl:i(r)}},20892:function(e,t,n){"use strict";var r=n(36539),i=n(64043);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){i(e,"throw",t)}}},23277:function(e,t,n){"use strict";var r=n(78583)("iterator"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[r]=function(){return this},Array.from(a,function(){throw 2})}catch(e){}e.exports=function(e,t){try{if(!t&&!i)return!1}catch(e){return!1}var n=!1;try{var o={};o[r]=function(){return{next:function(){return{done:n=!0}}}},e(o)}catch(e){}return n}},32185:function(e,t,n){"use strict";var r=n(12814),i=r({}.toString),o=r("".slice);e.exports=function(e){return o(i(e),8,-1)}},34074:function(e,t,n){"use strict";var r=n(28149),i=n(99821),o=n(32185),a=n(78583)("toStringTag"),s=Object,l="Arguments"===o(function(){return arguments}()),u=function(e,t){try{return e[t]}catch(e){}};e.exports=r?o:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=u(t=s(e),a))?n:l?o(t):"Object"===(r=o(t))&&i(t.callee)?"Arguments":r}},13962:function(e,t,n){"use strict";var r=n(31153),i=n(42749),o=n(26252),a=n(37722),s=n(70591),l=n(59700),u=n(45249),c=n(55852),p=n(37056),d=n(29483),h=n(61360),f=n(6586).fastKey,m=n(89904),g=m.set,A=m.getterFor;e.exports={getConstructor:function(e,t,n,c){var p=e(function(e,i){s(e,d),g(e,{type:t,index:r(null),first:null,last:null,size:0}),!h&&(e.size=0),!l(i)&&u(i,e[c],{that:e,AS_ENTRIES:n})}),d=p.prototype,m=A(t),b=function(e,t,n){var r,i,o=m(e),a=y(e,t);return a?a.value=n:(o.last=a={index:i=f(t,!0),key:t,value:n,previous:r=o.last,next:null,removed:!1},!o.first&&(o.first=a),r&&(r.next=a),h?o.size++:e.size++,"F"!==i&&(o.index[i]=a)),e},y=function(e,t){var n,r=m(e),i=f(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key===t)return n};return o(d,{clear:function(){for(var e=m(this),t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=null),t=t.next;e.first=e.last=null,e.index=r(null),h?e.size=0:this.size=0},delete:function(e){var t=m(this),n=y(this,e);if(n){var r=n.next,i=n.previous;delete t.index[n.index],n.removed=!0,i&&(i.next=r),r&&(r.previous=i),t.first===n&&(t.first=r),t.last===n&&(t.last=i),h?t.size--:this.size--}return!!n},forEach:function(e){for(var t,n=m(this),r=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!y(this,e)}}),o(d,n?{get:function(e){var t=y(this,e);return t&&t.value},set:function(e,t){return b(this,0===e?0:e,t)}}:{add:function(e){return b(this,e=0===e?0:e,e)}}),h&&i(d,"size",{configurable:!0,get:function(){return m(this).size}}),p},setStrong:function(e,t,n){var r=t+" Iterator",i=A(t),o=A(r);c(e,t,function(e,t){g(this,{type:r,target:e,state:i(e),kind:t,last:null})},function(){for(var e=o(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"===t?p(n.key,!1):"values"===t?p(n.value,!1):p([n.key,n.value],!1):(e.target=null,p(void 0,!0))},n?"entries":"values",!n,!0),d(t)}}},34412:function(e,t,n){"use strict";var r=n(12814),i=n(26252),o=n(6586).getWeakData,a=n(70591),s=n(36539),l=n(59700),u=n(86840),c=n(45249),p=n(15368),d=n(85848),h=n(89904),f=h.set,m=h.getterFor,g=p.find,A=p.findIndex,b=r([].splice),y=0,v=function(e){return e.frozen||(e.frozen=new S)},S=function(){this.entries=[]},w=function(e,t){return g(e.entries,function(e){return e[0]===t})};S.prototype={get:function(e){var t=w(this,e);if(t)return t[1]},has:function(e){return!!w(this,e)},set:function(e,t){var n=w(this,e);n?n[1]=t:this.entries.push([e,t])},delete:function(e){var t=A(this.entries,function(t){return t[0]===e});return~t&&b(this.entries,t,1),!!~t}},e.exports={getConstructor:function(e,t,n,r){var p=e(function(e,i){a(e,h),f(e,{type:t,id:y++,frozen:null}),!l(i)&&c(i,e[r],{that:e,AS_ENTRIES:n})}),h=p.prototype,g=m(t),A=function(e,t,n){var r=g(e),i=o(s(t),!0);return!0===i?v(r).set(t,n):i[r.id]=n,e};return i(h,{delete:function(e){var t=g(this);if(!u(e))return!1;var n=o(e);return!0===n?v(t).delete(e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=g(this);if(!u(e))return!1;var n=o(e);return!0===n?v(t).has(e):n&&d(n,t.id)}}),i(h,n?{get:function(e){var t=g(this);if(u(e)){var n=o(e);if(!0===n)return v(t).get(e);if(n)return n[t.id]}},set:function(e,t){return A(this,e,t)}}:{add:function(e){return A(this,e,!0)}}),p}}},54096:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(12814),a=n(37653),s=n(40453),l=n(6586),u=n(45249),c=n(70591),p=n(99821),d=n(59700),h=n(86840),f=n(81455),m=n(23277),g=n(78711),A=n(35724);e.exports=function(e,t,n){var b=-1!==e.indexOf("Map"),y=-1!==e.indexOf("Weak"),v=b?"set":"add",S=i[e],w=S&&S.prototype,E=S,O={},T=function(e){var t=o(w[e]);s(w,e,"add"===e?function(e){return t(this,0===e?0:e),this}:"delete"===e?function(e){return(!y||!!h(e))&&t(this,0===e?0:e)}:"get"===e?function(e){return y&&!h(e)?void 0:t(this,0===e?0:e)}:"has"===e?function(e){return(!y||!!h(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(a(e,!p(S)||!(y||w.forEach&&!f(function(){new S().entries().next()}))))E=n.getConstructor(t,e,b,v),l.enable();else if(a(e,!0)){var C=new E,x=C[v](y?{}:-0,1)!==C,I=f(function(){C.has(1)}),k=m(function(e){new S(e)}),_=!y&&f(function(){for(var e=new S,t=5;t--;)e[v](t,t);return!e.has(-0)});!k&&((E=t(function(e,t){c(e,w);var n=A(new S,e,E);return!d(t)&&u(t,n[v],{that:n,AS_ENTRIES:b}),n})).prototype=w,w.constructor=E),(I||_)&&(T("delete"),T("has"),b&&T("get")),(_||x)&&T(v),y&&w.clear&&delete w.clear}return O[e]=E,r({global:!0,constructor:!0,forced:E!==S},O),g(E,e),!y&&n.setStrong(E,e,b),E}},27130:function(e,t,n){"use strict";var r=n(85848),i=n(27040),o=n(13895),a=n(68235);e.exports=function(e,t,n){for(var s=i(t),l=a.f,u=o.f,c=0;c"+l+""}},37056:function(e){"use strict";e.exports=function(e,t){return{value:e,done:t}}},92444:function(e,t,n){"use strict";var r=n(61360),i=n(68235),o=n(98590);e.exports=r?function(e,t,n){return i.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},98590:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},82250:function(e,t,n){"use strict";var r=n(61360),i=n(68235),o=n(98590);e.exports=function(e,t,n){r?i.f(e,t,o(0,n)):e[t]=n}},61305:function(e,t,n){"use strict";var r=n(12814),i=n(81455),o=n(82498).start,a=RangeError,s=isFinite,l=Math.abs,u=Date.prototype,c=u.toISOString,p=r(u.getTime),d=r(u.getUTCDate),h=r(u.getUTCFullYear),f=r(u.getUTCHours),m=r(u.getUTCMilliseconds),g=r(u.getUTCMinutes),A=r(u.getUTCMonth),b=r(u.getUTCSeconds);e.exports=i(function(){return"0385-07-25T07:06:39.999Z"!==c.call(new Date(-5e13-1))})||!i(function(){c.call(new Date(NaN))})?function(){if(!s(p(this)))throw new a("Invalid time value");var e=h(this),t=m(this),n=e<0?"-":e>9999?"+":"";return n+o(l(e),n?6:4,0)+"-"+o(A(this)+1,2,0)+"-"+o(d(this),2,0)+"T"+o(f(this),2,0)+":"+o(g(this),2,0)+":"+o(b(this),2,0)+"."+o(t,3,0)+"Z"}:c},87789:function(e,t,n){"use strict";var r=n(36539),i=n(626),o=TypeError;e.exports=function(e){if(r(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw new o("Incorrect hint");return i(this,e)}},42749:function(e,t,n){"use strict";var r=n(75470),i=n(68235);e.exports=function(e,t,n){return n.get&&r(n.get,t,{getter:!0}),n.set&&r(n.set,t,{setter:!0}),i.f(e,t,n)}},40453:function(e,t,n){"use strict";var r=n(99821),i=n(68235),o=n(75470),a=n(38711);e.exports=function(e,t,n,s){!s&&(s={});var l=s.enumerable,u=void 0!==s.name?s.name:t;if(r(n)&&o(n,u,s),s.global)l?e[t]=n:a(t,n);else{try{s.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}l?e[t]=n:i.f(e,t,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}},26252:function(e,t,n){"use strict";var r=n(40453);e.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n);return e}},38711:function(e,t,n){"use strict";var r=n(30456),i=Object.defineProperty;e.exports=function(e,t){try{i(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},90533:function(e,t,n){"use strict";var r=n(74263),i=TypeError;e.exports=function(e,t){if(!delete e[t])throw new i("Cannot delete property "+r(t)+" of "+r(e))}},61360:function(e,t,n){"use strict";var r=n(81455);e.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},61589:function(e,t,n){"use strict";var r,i,o,a,s=n(30456),l=n(95766),u=n(47113),c=s.structuredClone,p=s.ArrayBuffer,d=s.MessageChannel,h=!1;if(u)h=function(e){c(e,{transfer:[e]})};else if(p)try{!d&&(r=l("worker_threads"))&&(d=r.MessageChannel),d&&(i=new d,o=new p(2),a=function(e){i.port1.postMessage(null,[e])},2===o.byteLength&&(a(o),0===o.byteLength&&(h=a)))}catch(e){}e.exports=h},93837:function(e,t,n){"use strict";var r=n(30456),i=n(86840),o=r.document,a=i(o)&&i(o.createElement);e.exports=function(e){return a?o.createElement(e):{}}},56182:function(e){"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw new t("Maximum allowed index exceeded");return e}},82415:function(e){"use strict";e.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},22685:function(e){"use strict";e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},27703:function(e,t,n){"use strict";var r=n(93837)("span").classList,i=r&&r.constructor&&r.constructor.prototype;e.exports=i===Object.prototype?void 0:i},86064:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},61392:function(e,t,n){"use strict";var r=n(37579).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},71949:function(e,t,n){"use strict";var r=n(37579);e.exports=/MSIE|Trident/.test(r)},11266:function(e,t,n){"use strict";var r=n(37579);e.exports=/ipad|iphone|ipod/i.test(r)&&"undefined"!=typeof Pebble},92350:function(e,t,n){"use strict";var r=n(37579);e.exports=/ipad|iphone|ipod/i.test(r)&&/applewebkit/i.test(r)},18050:function(e,t,n){"use strict";var r=n(38433);e.exports="NODE"===r},47553:function(e,t,n){"use strict";var r=n(37579);e.exports=/web0s(?!.*chrome)/i.test(r)},37579:function(e,t,n){"use strict";var r=n(30456).navigator,i=r&&r.userAgent;e.exports=i?String(i):""},21033:function(e,t,n){"use strict";var r,i,o=n(30456),a=n(37579),s=o.process,l=o.Deno,u=s&&s.versions||l&&l.version,c=u&&u.v8;c&&(i=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(i=+r[1]),e.exports=i},53047:function(e,t,n){"use strict";var r=n(37579).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},38433:function(e,t,n){"use strict";var r=n(30456),i=n(37579),o=n(32185),a=function(e){return i.slice(0,e.length)===e};e.exports=a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":r.Bun&&"string"==typeof Bun.version?"BUN":r.Deno&&"object"==typeof Deno.version?"DENO":"process"===o(r.process)?"NODE":r.window&&r.document?"BROWSER":"REST"},3101:function(e,t,n){"use strict";var r=n(12814),i=Error,o=r("".replace),a=String(new i("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,l=s.test(a);e.exports=function(e,t){if(l&&"string"==typeof e&&!i.prepareStackTrace)for(;t--;)e=o(e,s,"");return e}},50807:function(e,t,n){"use strict";var r=n(92444),i=n(3101),o=n(24859),a=Error.captureStackTrace;e.exports=function(e,t,n,s){o&&(a?a(e,t):r(e,"stack",i(n,s)))}},24859:function(e,t,n){"use strict";var r=n(81455),i=n(98590);e.exports=!r(function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",i(1,7)),7!==e.stack)})},60708:function(e,t,n){"use strict";var r=n(61360),i=n(81455),o=n(36539),a=n(74735),s=Error.prototype.toString,l=i(function(){if(r){var e=Object.create(Object.defineProperty({},"name",{get:function(){return this===e}}));if("true"!==s.call(e))return!0}return"2: 1"!==s.call({message:1,name:2})||"Error"!==s.call({})});e.exports=l?function(){var e=o(this),t=a(e.name,"Error"),n=a(e.message);return t?n?t+": "+n:t:n}:s},77341:function(e,t,n){"use strict";var r=n(30456),i=n(13895).f,o=n(92444),a=n(40453),s=n(38711),l=n(27130),u=n(37653);e.exports=function(e,t){var n,c,p,d,h,f=e.target,m=e.global,g=e.stat;if(n=m?r:g?r[f]||s(f,{}):r[f]&&r[f].prototype)for(c in t){if(d=t[c],p=e.dontCallGetSet?(h=i(n,c))&&h.value:n[c],!u(m?c:f+(g?".":"#")+c,e.forced)&&void 0!==p){if(typeof d==typeof p)continue;l(d,p)}(e.sham||p&&p.sham)&&o(d,"sham",!0),a(n,c,d,e)}}},81455:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},87432:function(e,t,n){"use strict";n(64455);var r=n(87494),i=n(40453),o=n(20625),a=n(81455),s=n(78583),l=n(92444),u=s("species"),c=RegExp.prototype;e.exports=function(e,t,n,p){var d=s(e),h=!a(function(){var t={};return t[d]=function(){return 7},7!==""[e](t)}),f=h&&!a(function(){var t=!1,n=/a/;if("split"===e){var r={};r[u]=function(){return n},(n={constructor:r,flags:""})[d]=/./[d]}return n.exec=function(){return t=!0,null},n[d](""),!t});if(!h||!f||n){var m=/./[d],g=t(d,""[e],function(e,t,n,i,a){var s=t.exec;if(s===o||s===c.exec)return h&&!a?{done:!0,value:r(m,t,n,i)}:{done:!0,value:r(e,n,t,i)};return{done:!1}});i(String.prototype,e,g[0]),i(c,d,g[1])}p&&l(c[d],"sham",!0)}},46381:function(e,t,n){"use strict";var r=n(61748),i=n(80555),o=n(56182),a=n(37722),s=n(82250),l=function(e,t,n,u,c,p,d,h){for(var f,m,g=c,A=0,b=!!d&&a(d,h);A0&&r(f)?(m=i(f),g=l(e,t,f,m,g,p-1)-1):(o(g+1),s(e,g,f)),g++),A++;return g};e.exports=l},63058:function(e,t,n){"use strict";var r=n(81455);e.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},37626:function(e,t,n){"use strict";var r=n(85707),i=Function.prototype,o=i.apply,a=i.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(o):function(){return a.apply(o,arguments)})},37722:function(e,t,n){"use strict";var r=n(91609),i=n(65085),o=n(85707),a=r(r.bind);e.exports=function(e,t){return i(e),void 0===t?e:o?a(e,t):function(){return e.apply(t,arguments)}}},85707:function(e,t,n){"use strict";var r=n(81455);e.exports=!r(function(){var e=(function(){}).bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})},67697:function(e,t,n){"use strict";var r=n(12814),i=n(65085),o=n(86840),a=n(85848),s=n(47441),l=n(85707),u=Function,c=r([].concat),p=r([].join),d={},h=function(e,t,n){if(!a(d,t)){for(var r=[],i=0;i]*>)/g,c=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,p,d){var h=n+e.length,f=r.length,m=c;return void 0!==p&&(p=i(p),m=u),s(d,m,function(i,s){var u;switch(a(s,0)){case"$":return"$";case"&":return e;case"`":return l(t,0,n);case"'":return l(t,h);case"<":u=p[l(s,1,-1)];break;default:var c=+s;if(0===c)return i;if(c>f){var d=o(c/10);if(0===d)return i;if(d<=f)return void 0===r[d-1]?a(s,1):r[d-1]+a(s,1);return i}u=r[c-1]}return void 0===u?"":u})}},30456:function(e,t,n){"use strict";var r=function(e){return e&&e.Math===Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()},85848:function(e,t,n){"use strict";var r=n(12814),i=n(87670),o=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return o(i(e),t)}},82793:function(e){"use strict";e.exports={}},87861:function(e){"use strict";e.exports=function(e,t){try{1==arguments.length?console.error(e):console.error(e,t)}catch(e){}}},13322:function(e,t,n){"use strict";var r=n(76451);e.exports=r("document","documentElement")},48980:function(e,t,n){"use strict";var r=n(61360),i=n(81455),o=n(93837);e.exports=!r&&!i(function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a})},86033:function(e){"use strict";var t=Array,n=Math.abs,r=Math.pow,i=Math.floor,o=Math.log,a=Math.LN2;e.exports={pack:function(e,s,l){var u,c,p,d=t(l),h=8*l-s-1,f=(1<>1,g=23===s?r(2,-24)-r(2,-77):0,A=e<0||0===e&&1/e<0?1:0,b=0;for((e=n(e))!=e||e===1/0?(c=e!=e?1:0,u=f):(p=r(2,-(u=i(o(e)/a))),e*p<1&&(u--,p*=2),u+m>=1?e+=g/p:e+=g*r(2,1-m),e*p>=2&&(u++,p/=2),u+m>=f?(c=0,u=f):u+m>=1?(c=(e*p-1)*r(2,s),u+=m):(c=e*r(2,m-1)*r(2,s),u=0));s>=8;)d[b++]=255&c,c/=256,s-=8;for(u=u<0;)d[b++]=255&u,u/=256,h-=8;return d[b-1]|=128*A,d},unpack:function(e,t){var n,i=e.length,o=8*i-t-1,a=(1<>1,l=o-7,u=i-1,c=e[u--],p=127&c;for(c>>=7;l>0;)p=256*p+e[u--],l-=8;for(n=p&(1<<-l)-1,p>>=-l,l+=t;l>0;)n=256*n+e[u--],l-=8;if(0===p)p=1-s;else{if(p===a)return n?NaN:c?-1/0:1/0;n+=r(2,t),p-=s}return(c?-1:1)*n*r(2,p-t)}}},34677:function(e,t,n){"use strict";var r=n(12814),i=n(81455),o=n(32185),a=Object,s=r("".split);e.exports=i(function(){return!a("z").propertyIsEnumerable(0)})?function(e){return"String"===o(e)?s(e,""):a(e)}:a},35724:function(e,t,n){"use strict";var r=n(99821),i=n(86840),o=n(46682);e.exports=function(e,t,n){var a,s;return o&&r(a=t.constructor)&&a!==n&&i(s=a.prototype)&&s!==n.prototype&&o(e,s),e}},85566:function(e,t,n){"use strict";var r=n(12814),i=n(99821),o=n(72223),a=r(Function.toString);!i(o.inspectSource)&&(o.inspectSource=function(e){return a(e)}),e.exports=o.inspectSource},64504:function(e,t,n){"use strict";var r=n(86840),i=n(92444);e.exports=function(e,t){r(t)&&"cause"in t&&i(e,"cause",t.cause)}},6586:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(82793),a=n(86840),s=n(85848),l=n(68235).f,u=n(25487),c=n(73361),p=n(25549),d=n(18508),h=n(63058),f=!1,m=d("meta"),g=0,A=function(e){l(e,m,{value:{objectID:"O"+g++,weakData:{}}})},b=e.exports={enable:function(){b.enable=function(){},f=!0;var e=u.f,t=i([].splice),n={};n[m]=1,e(n).length&&(u.f=function(n){for(var r=e(n),i=0,o=r.length;ib;b++)if((v=_(e[b]))&&u(m,v))return v;return new f(!1)}g=c(e,A)}for(S=T?e.next:g.next;!(w=i(S,g)).done;){var R=w.value;try{v=_(R)}catch(e){if(g)d(g,"throw",e);else throw e}if("object"==typeof v&&v&&u(m,v))return v}return new f(!1)}},81401:function(e,t,n){"use strict";var r=n(64043);e.exports=function(e,t,n){for(var i=e.length-1;i>=0;i--)if(void 0!==e[i])try{n=r(e[i].iterator,t,n)}catch(e){t="throw",n=e}if("throw"===t)throw n;return n}},64043:function(e,t,n){"use strict";var r=n(87494),i=n(36539),o=n(36780);e.exports=function(e,t,n){var a,s;i(e);try{if(!(a=o(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(e){s=!0,a=e}if("throw"===t)throw n;if(s)throw a;return i(a),n}},40052:function(e,t,n){"use strict";var r=n(23865).IteratorPrototype,i=n(31153),o=n(98590),a=n(78711),s=n(90649),l=function(){return this};e.exports=function(e,t,n,u){var c=t+" Iterator";return e.prototype=i(r,{next:o(+!u,n)}),a(e,c,!1,!0),s[c]=l,e}},41878:function(e,t,n){"use strict";var r=n(87494),i=n(31153),o=n(92444),a=n(26252),s=n(78583),l=n(89904),u=n(36780),c=n(23865).IteratorPrototype,p=n(37056),d=n(64043),h=n(81401),f=s("toStringTag"),m="IteratorHelper",g="WrapForValidIterator",A="normal",b="throw",y=l.set,v=function(e){var t=l.getterFor(e?g:m);return a(i(c),{next:function(){var n=t(this);if(e)return n.nextHandler();if(n.done)return p(void 0,!0);try{var r=n.nextHandler();return n.returnHandlerResult?r:p(r,n.done)}catch(e){throw n.done=!0,e}},return:function(){var n=t(this),i=n.iterator,o=n.done;if(n.done=!0,e){var a=u(i,"return");return a?r(a,i):p(void 0,!0)}if(o)return p(void 0,!0);if(n.inner)try{d(n.inner.iterator,A)}catch(e){return d(i,b,e)}if(n.openIters)try{h(n.openIters,A)}catch(e){if(i)return d(i,b,e);throw e}return i&&d(i,A),p(void 0,!0)}})},S=v(!0),w=v(!1);o(w,f,"Iterator Helper"),e.exports=function(e,t,n){var r=function(r,i){i?(i.iterator=r.iterator,i.next=r.next):i=r,i.type=t?g:m,i.returnHandlerResult=!!n,i.nextHandler=e,i.counter=0,i.done=!1,y(this,i)};return r.prototype=t?S:w,r}},55852:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(83294),a=n(50360),s=n(99821),l=n(40052),u=n(43424),c=n(46682),p=n(78711),d=n(92444),h=n(40453),f=n(78583),m=n(90649),g=n(23865),A=a.PROPER,b=a.CONFIGURABLE,y=g.IteratorPrototype,v=g.BUGGY_SAFARI_ITERATORS,S=f("iterator"),w="keys",E="values",O="entries",T=function(){return this};e.exports=function(e,t,n,a,f,g,C){l(n,t,a);var x,I,k,_=function(e){if(e===f&&M)return M;if(!v&&e&&e in N)return N[e];switch(e){case w:return function(){return new n(this,e)};case E:case O:return function(){return new n(this,e)}}return function(){return new n(this)}},R=t+" Iterator",P=!1,N=e.prototype,D=N[S]||N["@@iterator"]||f&&N[f],M=!v&&D||_(f),L="Array"===t&&N.entries||D;if(L&&(x=u(L.call(new e)))!==Object.prototype&&x.next&&(!o&&u(x)!==y&&(c?c(x,y):!s(x[S])&&h(x,S,T)),p(x,R,!0,!0),o&&(m[R]=T)),A&&f===E&&D&&D.name!==E&&(!o&&b?d(N,"name",E):(P=!0,M=function(){return i(D,this)})),f){if(I={values:_(E),keys:g?M:_(w),entries:_(O)},C)for(k in I)(v||P||!(k in N))&&h(N,k,I[k]);else r({target:t,proto:!0,forced:v||P},I)}return(!o||C)&&N[S]!==M&&h(N,S,M,{name:f}),m[t]=M,I}},36582:function(e){"use strict";e.exports=function(e,t){var n="function"==typeof Iterator&&Iterator.prototype[e];if(n)try{n.call({next:null},t).next()}catch(e){return!0}}},41402:function(e,t,n){"use strict";var r=n(30456);e.exports=function(e,t){var n=r.Iterator,i=n&&n.prototype,o=i&&i[e],a=!1;if(o)try{o.call({next:function(){return{done:!0}},return:function(){a=!0}},-1)}catch(e){!(e instanceof t)&&(a=!1)}if(!a)return o}},23865:function(e,t,n){"use strict";var r,i,o,a=n(81455),s=n(99821),l=n(86840),u=n(31153),c=n(43424),p=n(40453),d=n(78583),h=n(83294),f=d("iterator"),m=!1;[].keys&&("next"in(o=[].keys())?(i=c(c(o)))!==Object.prototype&&(r=i):m=!0),!l(r)||a(function(){var e={};return r[f].call(e)!==e})?r={}:h&&(r=u(r)),!s(r[f])&&p(r,f,function(){return this}),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:m}},90649:function(e){"use strict";e.exports={}},80555:function(e,t,n){"use strict";var r=n(63663);e.exports=function(e){return r(e.length)}},75470:function(e,t,n){"use strict";var r=n(12814),i=n(81455),o=n(99821),a=n(85848),s=n(61360),l=n(50360).CONFIGURABLE,u=n(85566),c=n(89904),p=c.enforce,d=c.get,h=String,f=Object.defineProperty,m=r("".slice),g=r("".replace),A=r([].join),b=s&&!i(function(){return 8!==f(function(){},"length",{value:8}).length}),y=String(String).split("String"),v=e.exports=function(e,t,n){"Symbol("===m(h(t),0,7)&&(t="["+g(h(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!a(e,"name")||l&&e.name!==t)&&(s?f(e,"name",{value:t,configurable:!0}):e.name=t),b&&n&&a(n,"arity")&&e.length!==n.arity&&f(e,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&f(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=p(e);return!a(r,"source")&&(r.source=A(y,"string"==typeof t?t:"")),e};Function.prototype.toString=v(function(){return o(this)&&d(this).source||u(this)},"toString")},74692:function(e,t,n){"use strict";var r=n(12814),i=Map.prototype;e.exports={Map:Map,set:r(i.set),get:r(i.get),has:r(i.has),remove:r(i.delete),proto:i}},1523:function(e){"use strict";var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||22025.465794806718>t(10)||-.00000000000000002!==t(-.00000000000000002)?function(e){var t=+e;return 0===t?t:t>-.000001&&t<1e-6?t+t*t/2:n(t)-1}:t},20338:function(e,t,n){"use strict";var r=n(86503),i=n(46808),o=Math.abs;e.exports=function(e,t,n,a){var s=+e,l=o(s),u=r(s);if(ln||p!=p?1/0*u:u*p}},10382:function(e,t,n){"use strict";var r=n(20338);e.exports=Math.fround||function(e){return r(e,11920928955078125e-23,34028234663852886e22,11754943508222875e-54)}},4957:function(e){"use strict";var t=Math.log,n=Math.LOG10E;e.exports=Math.log10||function(e){return t(e)*n}},21638:function(e){"use strict";var t=Math.log;e.exports=Math.log1p||function(e){var n=+e;return n>-.00000001&&n<1e-8?n-n*n/2:t(1+n)}},1289:function(e){"use strict";var t=Math.log,n=Math.LN2;e.exports=Math.log2||function(e){return t(e)/n}},46808:function(e){"use strict";var t=4503599627370496;e.exports=function(e){return e+t-t}},86503:function(e){"use strict";e.exports=Math.sign||function(e){var t=+e;return 0===t||t!=t?t:t<0?-1:1}},6083:function(e){"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},88018:function(e,t,n){"use strict";var r,i,o,a,s,l=n(30456),u=n(38666),c=n(37722),p=n(16414).set,d=n(17714),h=n(92350),f=n(11266),m=n(47553),g=n(18050),A=l.MutationObserver||l.WebKitMutationObserver,b=l.document,y=l.process,v=l.Promise,S=u("queueMicrotask");if(!S){var w=new d,E=function(){var e,t;for(g&&(e=y.domain)&&e.exit();t=w.get();)try{t()}catch(e){throw w.head&&r(),e}e&&e.enter()};h||g||m||!A||!b?!f&&v&&v.resolve?((a=v.resolve(void 0)).constructor=v,s=c(a.then,a),r=function(){s(E)}):g?r=function(){y.nextTick(E)}:(p=c(p,l),r=function(){p(E)}):(i=!0,o=b.createTextNode(""),new A(E).observe(o,{characterData:!0}),r=function(){o.data=i=!i}),S=function(e){!w.head&&r(),w.add(e)}}e.exports=S},88097:function(e,t,n){"use strict";var r=n(81455);e.exports=!r(function(){var e="9007199254740993",t=JSON.rawJSON(e);return!JSON.isRawJSON(t)||JSON.stringify(t)!==e})},33803:function(e,t,n){"use strict";var r=n(65085),i=TypeError,o=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw new i("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},74735:function(e,t,n){"use strict";var r=n(43576);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},51395:function(e){"use strict";var t=RangeError;e.exports=function(e){if(e==e)return e;throw new t("NaN is not allowed")}},279:function(e,t,n){"use strict";var r=n(85013),i=TypeError;e.exports=function(e){if(r(e))throw new i("The method doesn't accept regular expressions");return e}},8942:function(e,t,n){"use strict";var r=n(30456).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},85133:function(e,t,n){"use strict";var r=n(30456),i=n(81455),o=n(12814),a=n(43576),s=n(27169).trim,l=n(76959),u=o("".charAt),c=r.parseFloat,p=r.Symbol,d=p&&p.iterator,h=1/c(l+"-0")!=-1/0||d&&!i(function(){c(Object(d))});e.exports=h?function(e){var t=s(a(e)),n=c(t);return 0===n&&"-"===u(t,0)?-0:n}:c},92781:function(e,t,n){"use strict";var r=n(30456),i=n(81455),o=n(12814),a=n(43576),s=n(27169).trim,l=n(76959),u=r.parseInt,c=r.Symbol,p=c&&c.iterator,d=/^[+-]?0x/i,h=o(d.exec),f=8!==u(l+"08")||22!==u(l+"0x16")||p&&!i(function(){u(Object(p))});e.exports=f?function(e,t){var n=s(a(e));return u(n,t>>>0||(h(d,n)?16:10))}:u},60372:function(e,t,n){"use strict";var r=n(61360),i=n(12814),o=n(87494),a=n(81455),s=n(35387),l=n(74713),u=n(322),c=n(87670),p=n(34677),d=Object.assign,h=Object.defineProperty,f=i([].concat);e.exports=!d||a(function(){if(r&&1!==d({b:1},d(h({},"a",{enumerable:!0,get:function(){h(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol("assign detection"),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach(function(e){t[e]=e}),7!==d({},e)[n]||s(d({},t)).join("")!==i})?function(e,t){for(var n=c(e),i=arguments.length,a=1,d=l.f,h=u.f;i>a;){for(var m,g=p(arguments[a++]),A=d?f(s(g),d(g)):s(g),b=A.length,y=0;b>y;)m=A[y++],(!r||o(h,g,m))&&(n[m]=g[m])}return n}:d},31153:function(e,t,n){"use strict";var r,i=n(36539),o=n(15242),a=n(86064),s=n(82793),l=n(13322),u=n(93837),c=n(72566),p="prototype",d="script",h=c("IE_PROTO"),f=function(){},m=function(e){return"<"+d+">"+e+""},g=function(e){e.write(m("")),e.close();var t=e.parentWindow.Object;return e=null,t},A=function(){var e,t=u("iframe");return t.style.display="none",l.appendChild(t),t.src=String("java"+d+":"),(e=t.contentWindow.document).open(),e.write(m("document.F=Object")),e.close(),e.F},b=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}b="undefined"!=typeof document?document.domain&&r?g(r):A():g(r);for(var e=a.length;e--;)delete b[p][a[e]];return b()};s[h]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(f[p]=i(e),n=new f,f[p]=null,n[h]=e):n=b(),void 0===t?n:o.f(n,t)}},15242:function(e,t,n){"use strict";var r=n(61360),i=n(77174),o=n(68235),a=n(36539),s=n(60621),l=n(35387);t.f=r&&!i?Object.defineProperties:function(e,t){a(e);for(var n,r=s(t),i=l(t),u=i.length,c=0;u>c;)o.f(e,n=i[c++],r[n]);return e}},68235:function(e,t,n){"use strict";var r=n(61360),i=n(48980),o=n(77174),a=n(36539),s=n(91051),l=TypeError,u=Object.defineProperty,c=Object.getOwnPropertyDescriptor,p="enumerable",d="configurable",h="writable";t.f=r?o?function(e,t,n){if(a(e),t=s(t),a(n),"function"==typeof e&&"prototype"===t&&"value"in n&&h in n&&!n[h]){var r=c(e,t);r&&r[h]&&(e[t]=n.value,n={configurable:d in n?n[d]:r[d],enumerable:p in n?n[p]:r[p],writable:!1})}return u(e,t,n)}:u:function(e,t,n){if(a(e),t=s(t),a(n),i)try{return u(e,t,n)}catch(e){}if("get"in n||"set"in n)throw new l("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},13895:function(e,t,n){"use strict";var r=n(61360),i=n(87494),o=n(322),a=n(98590),s=n(60621),l=n(91051),u=n(85848),c=n(48980),p=Object.getOwnPropertyDescriptor;t.f=r?p:function(e,t){if(e=s(e),t=l(t),c)try{return p(e,t)}catch(e){}if(u(e,t))return a(!i(o.f,e,t),e[t])}},73361:function(e,t,n){"use strict";var r=n(32185),i=n(60621),o=n(25487).f,a=n(47441),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(e){try{return o(e)}catch(e){return a(s)}};e.exports.f=function(e){return s&&"Window"===r(e)?l(e):o(i(e))}},25487:function(e,t,n){"use strict";var r=n(34372),i=n(86064).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},74713:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},43424:function(e,t,n){"use strict";var r=n(85848),i=n(99821),o=n(87670),a=n(72566),s=n(64276),l=a("IE_PROTO"),u=Object,c=u.prototype;e.exports=s?u.getPrototypeOf:function(e){var t=o(e);if(r(t,l))return t[l];var n=t.constructor;return i(n)&&t instanceof n?n.prototype:t instanceof u?c:null}},25549:function(e,t,n){"use strict";var r=n(81455),i=n(86840),o=n(32185),a=n(30426),s=Object.isExtensible,l=r(function(){s(1)});e.exports=l||a?function(e){return!!i(e)&&(!a||"ArrayBuffer"!==o(e))&&(!s||s(e))}:s},86711:function(e,t,n){"use strict";var r=n(12814);e.exports=r({}.isPrototypeOf)},34372:function(e,t,n){"use strict";var r=n(12814),i=n(85848),o=n(60621),a=n(83355).indexOf,s=n(82793),l=r([].push);e.exports=function(e,t){var n,r=o(e),u=0,c=[];for(n in r)!i(s,n)&&i(r,n)&&l(c,n);for(;t.length>u;)i(r,n=t[u++])&&(~a(c,n)||l(c,n));return c}},35387:function(e,t,n){"use strict";var r=n(34372),i=n(86064);e.exports=Object.keys||function(e){return r(e,i)}},322:function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},28920:function(e,t,n){"use strict";var r=n(83294),i=n(30456),o=n(81455),a=n(53047);e.exports=r||!o(function(){if(!a||!(a<535)){var e=Math.random();__defineSetter__.call(null,e,function(){}),delete i[e]}})},46682:function(e,t,n){"use strict";var r=n(2756),i=n(86840),o=n(80456),a=n(91526);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=r(Object.prototype,"__proto__","set"))(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return(o(n),a(r),i(n))?(t?e(n,r):n.__proto__=r,n):n}}():void 0)},99717:function(e,t,n){"use strict";var r=n(61360),i=n(81455),o=n(12814),a=n(43424),s=n(35387),l=n(60621),u=o(n(322).f),c=o([].push),p=r&&i(function(){var e=Object.create(null);return e[2]=2,!u(e,2)}),d=function(e){return function(t){for(var n,i=l(t),o=s(i),d=p&&null===a(i),h=o.length,f=0,m=[];h>f;)n=o[f++],(!r||(d?n in i:u(i,n)))&&c(m,e?[n,i[n]]:i[n]);return m}};e.exports={entries:d(!0),values:d(!1)}},9483:function(e,t,n){"use strict";var r=n(28149),i=n(34074);e.exports=r?({}).toString:function(){return"[object "+i(this)+"]"}},626:function(e,t,n){"use strict";var r=n(87494),i=n(99821),o=n(86840),a=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&i(n=e.toString)&&!o(s=r(n,e))||i(n=e.valueOf)&&!o(s=r(n,e))||"string"!==t&&i(n=e.toString)&&!o(s=r(n,e)))return s;throw new a("Can't convert object to primitive value")}},27040:function(e,t,n){"use strict";var r=n(76451),i=n(12814),o=n(25487),a=n(74713),s=n(36539),l=i([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=o.f(s(e)),n=a.f;return n?l(t,n(e)):t}},62346:function(e,t,n){"use strict";var r=n(12814),i=n(85848),o=SyntaxError,a=parseInt,s=String.fromCharCode,l=r("".charAt),u=r("".slice),c=r(/./.exec),p={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":"\n","\\r":"\r","\\t":" "},d=/^[\da-f]{4}$/i,h=/^[\u0000-\u001F]$/;e.exports=function(e,t){for(var n=!0,r="";t0&&b(a,this.lastIndex-1);this.lastIndex>0&&(!this.multiline||this.multiline&&"\n"!==I&&"\r"!==I&&"\u2028"!==I&&"\u2029"!==I)&&(f="(?: (?:"+f+"))",x=" "+x,C++),n=RegExp("^(?:"+f+")",h)}O&&(n=RegExp("^"+f+"$(?!\\s)",h)),w&&(r=this.lastIndex);var k=o(g,p?n:this,x);return p?k?(k.input=a,k[0]=S(k[0],C),k.index=this.lastIndex,this.lastIndex+=k[0].length):this.lastIndex=0:w&&k&&(this.lastIndex=this.global?k.index+k[0].length:r),O&&k&&k.length>1&&o(m,k[0],n,function(){for(var e=1;eb)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$
c")})},80456:function(e,t,n){"use strict";var r=n(59700),i=TypeError;e.exports=function(e){if(r(e))throw new i("Can't call method on "+e);return e}},38666:function(e,t,n){"use strict";var r=n(30456),i=n(61360),o=Object.getOwnPropertyDescriptor;e.exports=function(e){if(!i)return r[e];var t=o(r,e);return t&&t.value}},46149:function(e){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},41696:function(e,t,n){"use strict";var r,i=n(30456),o=n(37626),a=n(99821),s=n(38433),l=n(37579),u=n(47441),c=n(60968),p=i.Function;var d=/MSIE .\./.test(l)||"BUN"===s&&((r=i.Bun.version.split(".")).length<3||"0"===r[0]&&(r[1]<3||"3"===r[1]&&"0"===r[2]));e.exports=function(e,t){var n=t?2:1;return d?function(r,i){var s=c(arguments.length,1)>n,l=a(r)?r:p(r),d=s?u(arguments,n):[],h=s?function(){o(l,this,d)}:l;return t?e(h,i):e(h)}:e}},98507:function(e,t,n){"use strict";var r=n(51718),i=n(16137),o=r.Set,a=r.add;e.exports=function(e){var t=new o;return i(e,function(e){a(t,e)}),t}},90794:function(e,t,n){"use strict";var r=n(27791),i=n(51718),o=n(98507),a=n(89698),s=n(87786),l=n(16137),u=n(4180),c=i.has,p=i.remove;e.exports=function(e){var t=r(this),n=s(e),i=o(t);return a(i)<=n.size?l(i,function(e){n.includes(e)&&p(i,e)}):u(n.getIterator(),function(e){c(i,e)&&p(i,e)}),i}},51718:function(e,t,n){"use strict";var r=n(12814),i=Set.prototype;e.exports={Set:Set,add:r(i.add),has:r(i.has),remove:r(i.delete),proto:i}},88583:function(e,t,n){"use strict";var r=n(27791),i=n(51718),o=n(89698),a=n(87786),s=n(16137),l=n(4180),u=i.Set,c=i.add,p=i.has;e.exports=function(e){var t=r(this),n=a(e),i=new u;return o(t)>n.size?l(n.getIterator(),function(e){p(t,e)&&c(i,e)}):s(t,function(e){n.includes(e)&&c(i,e)}),i}},2932:function(e,t,n){"use strict";var r=n(27791),i=n(51718).has,o=n(89698),a=n(87786),s=n(16137),l=n(4180),u=n(64043);e.exports=function(e){var t=r(this),n=a(e);if(o(t)<=n.size)return!1!==s(t,function(e){if(n.includes(e))return!1},!0);var c=n.getIterator();return!1!==l(c,function(e){if(i(t,e))return u(c.iterator,"normal",!1)})}},5970:function(e,t,n){"use strict";var r=n(27791),i=n(89698),o=n(16137),a=n(87786);e.exports=function(e){var t=r(this),n=a(e);return!(i(t)>n.size)&&!1!==o(t,function(e){if(!n.includes(e))return!1},!0)}},25267:function(e,t,n){"use strict";var r=n(27791),i=n(51718).has,o=n(89698),a=n(87786),s=n(4180),l=n(64043);e.exports=function(e){var t=r(this),n=a(e);if(o(t)3})}},68047:function(e,t,n){"use strict";var r=n(12814),i=n(11573),o=n(43576),a=n(80456),s=r("".charAt),l=r("".charCodeAt),u=r("".slice),c=function(e){return function(t,n){var r,c,p=o(a(t)),d=i(n),h=p.length;return d<0||d>=h?e?"":void 0:(r=l(p,d))<55296||r>56319||d+1===h||(c=l(p,d+1))<56320||c>57343?e?s(p,d):r:e?u(p,d,d+2):(r-55296<<10)+(c-56320)+65536}};e.exports={codeAt:c(!1),charAt:c(!0)}},35726:function(e,t,n){"use strict";var r=n(37579);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},82498:function(e,t,n){"use strict";var r=n(12814),i=n(63663),o=n(43576),a=n(84838),s=n(80456),l=r(a),u=r("".slice),c=Math.ceil,p=function(e){return function(t,n,r){var a,p,d=o(s(t)),h=i(n),f=d.length;if(h<=f)return d;var m=void 0===r?" ":o(r);return""===m?d:((p=l(m,c((a=h-f)/m.length))).length>a&&(p=u(p,0,a)),e?d+p:p+d)}};e.exports={start:p(!1),end:p(!0)}},87733:function(e,t,n){"use strict";var r=n(12814),i=/[^\0-\u007E]/,o=/[.\u3002\uFF0E\uFF61]/g,a="Overflow: input needs wider integers to process",s=35,l=RangeError,u=r(o.exec),c=Math.floor,p=String.fromCharCode,d=r("".charCodeAt),h=r([].join),f=r([].push),m=r("".replace),g=r("".split),A=r("".toLowerCase),b=function(e){for(var t=[],n=0,r=e.length;n=55296&&i<=56319&&n>1,e+=c(e/t);e>26*s>>1;)e=c(e/s),r+=36;return c(r+(s+1)*e/(e+38))},S=function(e){var t,n,r=[],i=(e=b(e)).length,o=128,s=0,u=72;for(t=0;t=o&&nc((2147483647-s)/A))throw new l(a);for(s+=(g-o)*A,o=g,t=0;t2147483647)throw new l(a);if(n===o){for(var S=s,w=36;;){var E=w<=u?1:w>=u+26?26:w-u;if(S0;(l=s(l/2))&&(t+=t))l%2&&(n+=t);return n}},35398:function(e,t,n){"use strict";var r=n(27169).end,i=n(39353);e.exports=i("trimEnd")?function(){return r(this)}:"".trimEnd},39353:function(e,t,n){"use strict";var r=n(50360).PROPER,i=n(81455),o=n(76959),a="​\x85᠎";e.exports=function(e){return i(function(){return!!o[e]()||a[e]()!==a||r&&o[e].name!==e})}},4915:function(e,t,n){"use strict";var r=n(27169).start,i=n(39353);e.exports=i("trimStart")?function(){return r(this)}:"".trimStart},27169:function(e,t,n){"use strict";var r=n(12814),i=n(80456),o=n(43576),a=n(76959),s=r("".replace),l=RegExp("^["+a+"]+"),u=RegExp("(^|[^"+a+"])["+a+"]+$"),c=function(e){return function(t){var n=o(i(t));return 1&e&&(n=s(n,l,"")),2&e&&(n=s(n,u,"$1")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},47113:function(e,t,n){"use strict";var r=n(30456),i=n(81455),o=n(21033),a=n(38433),s=r.structuredClone;e.exports=!!s&&!i(function(){if("DENO"===a&&o>92||"NODE"===a&&o>94||"BROWSER"===a&&o>97)return!1;var e=new ArrayBuffer(8),t=s(e,{transfer:[e]});return 0!==e.byteLength||8!==t.byteLength})},45946:function(e,t,n){"use strict";var r=n(21033),i=n(81455),o=n(30456).String;e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e) instanceof Symbol)||!Symbol.sham&&r&&r<41})},63920:function(e,t,n){"use strict";var r=n(87494),i=n(76451),o=n(78583),a=n(40453);e.exports=function(){var e=i("Symbol"),t=e&&e.prototype,n=t&&t.valueOf,s=o("toPrimitive");t&&!t[s]&&a(t,s,function(e){return r(n,this)},{arity:1})}},81982:function(e,t,n){"use strict";var r=n(45946);e.exports=r&&!!Symbol.for&&!!Symbol.keyFor},16414:function(e,t,n){"use strict";var r,i,o,a,s=n(30456),l=n(37626),u=n(37722),c=n(99821),p=n(85848),d=n(81455),h=n(13322),f=n(47441),m=n(93837),g=n(60968),A=n(92350),b=n(18050),y=s.setImmediate,v=s.clearImmediate,S=s.process,w=s.Dispatch,E=s.Function,O=s.MessageChannel,T=s.String,C=0,x={},I="onreadystatechange";d(function(){r=s.location});var k=function(e){if(p(x,e)){var t=x[e];delete x[e],t()}},_=function(e){return function(){k(e)}},R=function(e){k(e.data)},P=function(e){s.postMessage(T(e),r.protocol+"//"+r.host)};(!y||!v)&&(y=function(e){g(arguments.length,1);var t=c(e)?e:E(e),n=f(arguments,1);return x[++C]=function(){l(t,void 0,n)},i(C),C},v=function(e){delete x[e]},b?i=function(e){S.nextTick(_(e))}:w&&w.now?i=function(e){w.now(_(e))}:O&&!A?(a=(o=new O).port2,o.port1.onmessage=R,i=u(a.postMessage,a)):s.addEventListener&&c(s.postMessage)&&!s.importScripts&&r&&"file:"!==r.protocol&&!d(P)?(i=P,s.addEventListener("message",R,!1)):i=I in m("script")?function(e){h.appendChild(m("script"))[I]=function(){h.removeChild(this),k(e)}}:function(e){setTimeout(_(e),0)}),e.exports={set:y,clear:v}},74121:function(e,t,n){"use strict";var r=n(12814);e.exports=r(1.1.valueOf)},77732:function(e,t,n){"use strict";var r=n(11573),i=Math.max,o=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):o(n,t)}},29499:function(e,t,n){"use strict";var r=n(67967),i=TypeError;e.exports=function(e){var t=r(e,"number");if("number"==typeof t)throw new i("Can't convert number to bigint");return BigInt(t)}},60821:function(e,t,n){"use strict";var r=n(11573),i=n(63663),o=RangeError;e.exports=function(e){if(void 0===e)return 0;var t=r(e),n=i(t);if(t!==n)throw new o("Wrong length or index");return n}},60621:function(e,t,n){"use strict";var r=n(34677),i=n(80456);e.exports=function(e){return r(i(e))}},11573:function(e,t,n){"use strict";var r=n(6083);e.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}},63663:function(e,t,n){"use strict";var r=n(11573),i=Math.min;e.exports=function(e){var t=r(e);return t>0?i(t,9007199254740991):0}},87670:function(e,t,n){"use strict";var r=n(80456),i=Object;e.exports=function(e){return i(r(e))}},26817:function(e,t,n){"use strict";var r=n(1285),i=RangeError;e.exports=function(e,t){var n=r(e);if(n%t)throw new i("Wrong offset");return n}},1285:function(e,t,n){"use strict";var r=n(11573),i=RangeError;e.exports=function(e){var t=r(e);if(t<0)throw new i("The argument can't be less than 0");return t}},67967:function(e,t,n){"use strict";var r=n(87494),i=n(86840),o=n(83139),a=n(36780),s=n(626),l=n(78583),u=TypeError,c=l("toPrimitive");e.exports=function(e,t){if(!i(e)||o(e))return e;var n,l=a(e,c);if(l){if(void 0===t&&(t="default"),!i(n=r(l,e,t))||o(n))return n;throw new u("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},91051:function(e,t,n){"use strict";var r=n(67967),i=n(83139);e.exports=function(e){var t=r(e,"string");return i(t)?t:t+""}},28149:function(e,t,n){"use strict";var r=n(78583)("toStringTag"),i={};i[r]="z",e.exports="[object z]"===String(i)},43576:function(e,t,n){"use strict";var r=n(34074),i=String;e.exports=function(e){if("Symbol"===r(e))throw TypeError("Cannot convert a Symbol value to a string");return i(e)}},27670:function(e){"use strict";var t=Math.floor;e.exports=function(e){var n=+e;if(n!=n||n<=0)return 0;if(n>=255)return 255;var r=t(n);return r+.5=0},ee=function(e,t){return $(e,t=A(t))?p(2,e[t]):U(e,t)},et=function(e,t,n){return $(e,t=A(t))&&v(n)&&b(n,"value")&&!b(n,"get")&&!b(n,"set")&&!n.configurable&&(!b(n,"writable")||n.writable)&&(!b(n,"enumerable")||n.enumerable)?(e[t]=n.value,e):F(e,t,n)};a?(!V&&(R.f=ee,_.f=et,X(Q,"buffer"),X(Q,"byteOffset"),X(Q,"byteLength"),X(Q,"length")),r({target:"Object",stat:!0,forced:!V},{getOwnPropertyDescriptor:ee,defineProperty:et}),e.exports=function(e,t,n){var a=e.match(/\d+/)[0]/8,l=e+(n?"Clamped":"")+"Array",u="get"+e,p="set"+e,h=i[l],A=h,b=A&&A.prototype,y={},S=function(e,t){var n=M(e);return n.view[u](t*a+n.byteOffset,!0)},E=function(e,t,r){var i=M(e);i.view[p](t*a+i.byteOffset,n?g(r):r,!0)},k=function(e,t){F(e,t,{get:function(){return S(this,t)},set:function(e){return E(this,t,e)},enumerable:!0})};V?s&&(A=t(function(e,t,n,r){return c(e,b),D(v(t)?J(t)?void 0!==r?new h(t,m(n,a),r):void 0!==n?new h(t,m(n,a)):new h(t):q(t)?P(A,t):o(C,A,t):new h(f(t)),e,A)}),O&&O(A,W),x(T(h),function(e){!(e in A)&&d(A,e,h[e])}),A.prototype=b):(A=t(function(e,t,n,r){c(e,b);var i,s,l,u=0,p=0;if(v(t)){if(J(t)){i=t,p=m(n,a);var d=t.byteLength;if(void 0===r){if(d%a||(s=d-p)<0)throw new j(Y)}else if((s=f(r)*a)+p>d)throw new j(Y);l=s/a}else if(q(t))return P(A,t);else return o(C,A,t)}else i=new z(s=(l=f(t))*a);for(L(e,{buffer:i,byteOffset:p,byteLength:s,length:l,view:new Z(i)});u1?arguments[1]:void 0,O=void 0!==E;O&&o(E);var T=s(e),C=c(T);if(C&&!p(C))for(v=(y=u(T,C)).next,T=[];!(b=i(v,y)).done;)T.push(b.value);for(O&&w>2&&(E=r(E,arguments[2])),n=l(T),g=d(m=new(h(S))(n)),t=0;n>t;t++)A=O?E(T[t],t):T[t],m[t]=g?f(A):+A;return m}},18508:function(e,t,n){"use strict";var r=n(12814),i=0,o=Math.random(),a=r(1.1.toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++i+o,36)}},47026:function(e,t,n){"use strict";var r=n(30456),i=n(12814),o=n(61257),a=n(74420),s=n(85848),l=n(50135),u=n(67521),c=n(87556),p=l.c2i,d=l.c2iUrl,h=r.SyntaxError,f=r.TypeError,m=i("".charAt),g=function(e,t){for(var n=e.length;t>16&255,i>>8&255,255&i];if(2===r){if(n&&0!==o[1])throw new h("Extra bits");return[o[0]]}if(3===r){if(n&&0!==o[2])throw new h("Extra bits");return[o[0],o[1]]}return o},b=function(e,t,n){for(var r=t.length,i=0;i0){if("stop-before-partial"===l)break;if("loose"===l){if(1===E.length)throw new h("Malformed padding: exactly one additional character");S=b(v,A(E,i,!1),S)}else throw new h("Missing padding")}w=y;break}var T=m(e,O);if(++O,"="===T){if(E.length<2)throw new h("Padding is too early");if(O=g(e,O),2===E.length){if(O===y){if("stop-before-partial"===l)break;throw new h("Malformed padding: only one =")}"="===m(e,O)&&(O=g(e,++O))}if(O>4}return{bytes:i,read:c<<1}}},1110:function(e,t,n){"use strict";var r=n(81455),i=n(78583),o=n(61360),a=n(83294),s=i("iterator");e.exports=!r(function(){var e=new URL("b?a=1&b=2&c=3","https://a"),t=e.searchParams,n=new URLSearchParams("a=1&a=2&b=3"),r="";return e.pathname="c%20d",t.forEach(function(e,n){t.delete("b"),r+=n+e}),n.delete("a",2),n.delete("b",void 0),a&&(!e.toJSON||!n.has("a",1)||n.has("a",2)||!n.has("a",void 0)||n.has("b"))||!t.size&&(a||!o)||!t.sort||"https://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==r||"x"!==new URL("https://x",void 0).host})},56254:function(e,t,n){"use strict";var r=n(45946);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},77174:function(e,t,n){"use strict";var r=n(61360),i=n(81455);e.exports=r&&i(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},60968:function(e){"use strict";var t=TypeError;e.exports=function(e,n){if(eb&&d(r,arguments[b]),r});if(O.prototype=w,"Error"!==v?s?s(O,E):l(O,E,{name:!0}):f&&A in S&&(u(O,S,A),u(O,S,"prepareStackTrace")),l(O,S),!m)try{w.name!==v&&o(w,"name",v),w.constructor=O}catch(e){}return O}}},87671:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(37626),a=n(81455),s=n(43150),l="AggregateError",u=i(l),c=!a(function(){return 1!==u([1]).errors[0]})&&a(function(){return 7!==u([1],l,{cause:7}).cause});r({global:!0,constructor:!0,arity:2,forced:c},{AggregateError:s(l,function(e){return function(t,n){return o(e,this,arguments)}},c,!0)})},50355:function(e,t,n){"use strict";var r=n(77341),i=n(86711),o=n(43424),a=n(46682),s=n(27130),l=n(31153),u=n(92444),c=n(98590),p=n(64504),d=n(50807),h=n(45249),f=n(74735),m=n(78583)("toStringTag"),g=Error,A=[].push,b=function(e,t){var n,r=i(y,this);a?n=a(new g,r?o(this):y):u(n=r?this:l(y),m,"Error"),void 0!==t&&u(n,"message",f(t)),d(n,b,n.stack,1),arguments.length>2&&p(n,arguments[2]);var s=[];return h(e,A,{that:s}),u(n,"errors",s),n};a?a(b,g):s(b,g,{name:!0});var y=b.prototype=l(g.prototype,{constructor:c(1,b),message:c(1,""),name:c(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:b})},446:function(e,t,n){"use strict";n(50355)},78136:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(87479),a=n(29483),s="ArrayBuffer",l=o[s];r({global:!0,constructor:!0,forced:i[s]!==l},{ArrayBuffer:l}),a(s)},97810:function(e,t,n){"use strict";var r=n(61360),i=n(42749),o=n(61851),a=ArrayBuffer.prototype;r&&!("detached"in a)&&i(a,"detached",{configurable:!0,get:function(){return o(this)}})},85696:function(e,t,n){"use strict";var r=n(77341),i=n(40163);r({target:"ArrayBuffer",stat:!0,forced:!i.NATIVE_ARRAY_BUFFER_VIEWS},{isView:i.isView})},73350:function(e,t,n){"use strict";var r=n(77341),i=n(91609),o=n(81455),a=n(87479),s=n(36539),l=n(77732),u=n(63663),c=a.ArrayBuffer,p=a.DataView,d=p.prototype,h=i(c.prototype.slice),f=i(d.getUint8),m=i(d.setUint8);r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o(function(){return!new c(2).slice(1,void 0).byteLength})},{slice:function(e,t){if(h&&void 0===t)return h(s(this),e);for(var n=s(this).byteLength,r=l(e,n),i=l(void 0===t?n:t,n),o=new c(u(i-r)),a=new p(this),d=new p(o),g=0;r=0?r:n+r;return s<0||s>=n?void 0:t[s]}}),s("at")},12212:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(61748),a=n(86840),s=n(87670),l=n(80555),u=n(56182),c=n(82250),p=n(82919),d=n(85016),h=n(18471),f=n(78583),m=n(21033),g=f("isConcatSpreadable"),A=m>=51||!i(function(){var e=[];return e[g]=!1,e.concat()[0]!==e}),b=function(e){if(!a(e))return!1;var t=e[g];return void 0!==t?!!t:o(e)};r({target:"Array",proto:!0,arity:1,forced:!A||!h("concat")},{concat:function(e){var t,n,r,i,o,a=s(this),h=d(a,0),f=0;for(t=-1,r=arguments.length;t1?arguments[1]:void 0)}})},63430:function(e,t,n){"use strict";var r=n(77341),i=n(12298),o=n(84950);r({target:"Array",proto:!0},{fill:i}),o("fill")},25518:function(e,t,n){"use strict";var r=n(77341),i=n(15368).filter;r({target:"Array",proto:!0,forced:!n(18471)("filter")},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},14487:function(e,t,n){"use strict";var r=n(77341),i=n(15368).findIndex,o=n(84950),a="findIndex",s=!0;a in[]&&[,][a](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o(a)},91298:function(e,t,n){"use strict";var r=n(77341),i=n(70225).findLastIndex,o=n(84950);r({target:"Array",proto:!0},{findLastIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o("findLastIndex")},86782:function(e,t,n){"use strict";var r=n(77341),i=n(70225).findLast,o=n(84950);r({target:"Array",proto:!0},{findLast:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o("findLast")},70021:function(e,t,n){"use strict";var r=n(77341),i=n(15368).find,o=n(84950),a="find",s=!0;a in[]&&[,][a](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o(a)},81315:function(e,t,n){"use strict";var r=n(77341),i=n(46381),o=n(65085),a=n(87670),s=n(80555),l=n(85016);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),r=s(n);return o(e),i(t=l(n,0),n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},24674:function(e,t,n){"use strict";var r=n(77341),i=n(46381),o=n(87670),a=n(80555),s=n(11573),l=n(85016);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=o(this),n=a(t),r=void 0===e?1:s(e),u=l(t,0);return i(u,t,t,n,0,r),u}})},49193:function(e,t,n){"use strict";var r=n(77341),i=n(36751);r({target:"Array",proto:!0,forced:[].forEach!==i},{forEach:i})},16995:function(e,t,n){"use strict";var r=n(77341),i=n(76093),o=n(81455),a=Array.fromAsync;r({target:"Array",stat:!0,forced:!a||o(function(){var e=0;return a.call(function(){return e++,[]},{length:0}),1!==e})},{fromAsync:i})},55204:function(e,t,n){"use strict";var r=n(77341),i=n(55782);r({target:"Array",stat:!0,forced:!n(23277)(function(e){Array.from(e)})},{from:i})},39710:function(e,t,n){"use strict";var r=n(77341),i=n(83355).includes,o=n(81455),a=n(84950),s=o(function(){return![,].includes()}),l=o(function(){return[,1].includes(void 0,1)});r({target:"Array",proto:!0,forced:s||l},{includes:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("includes")},87622:function(e,t,n){"use strict";var r=n(77341),i=n(91609),o=n(83355).indexOf,a=n(88486),s=i([].indexOf),l=!!s&&1/s([1],1,-0)<0;r({target:"Array",proto:!0,forced:l||!a("indexOf")},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return l?s(this,e,t)||0:o(this,e,t)}})},21868:function(e,t,n){"use strict";n(77341)({target:"Array",stat:!0},{isArray:n(61748)})},26847:function(e,t,n){"use strict";var r=n(60621),i=n(84950),o=n(90649),a=n(89904),s=n(68235).f,l=n(55852),u=n(37056),c=n(83294),p=n(61360),d="Array Iterator",h=a.set,f=a.getterFor(d);e.exports=l(Array,"Array",function(e,t){h(this,{type:d,target:r(e),index:0,kind:t})},function(){var e=f(this),t=e.target,n=e.index++;if(!t||n>=t.length)return e.target=null,u(void 0,!0);switch(e.kind){case"keys":return u(n,!1);case"values":return u(t[n],!1)}return u([n,t[n]],!1)},"values");var m=o.Arguments=o.Array;if(i("keys"),i("values"),i("entries"),!c&&p&&"values"!==m.name)try{s(m,"name",{value:"values"})}catch(e){}},38997:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(34677),a=n(60621),s=n(88486),l=i([].join);r({target:"Array",proto:!0,forced:o!==Object||!s("join",",")},{join:function(e){return l(a(this),void 0===e?",":e)}})},66778:function(e,t,n){"use strict";var r=n(77341),i=n(58014);r({target:"Array",proto:!0,forced:i!==[].lastIndexOf},{lastIndexOf:i})},24819:function(e,t,n){"use strict";var r=n(77341),i=n(15368).map;r({target:"Array",proto:!0,forced:!n(18471)("map")},{map:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},89674:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(62219),a=n(82250),s=n(82919),l=Array;r({target:"Array",stat:!0,forced:i(function(){function e(){}return!(l.of.call(e) instanceof e)})},{of:function(){for(var e=0,t=arguments.length,n=new(o(this)?this:l)(t);t>e;)a(n,e,arguments[e++]);return s(n,t),n}})},2394:function(e,t,n){"use strict";var r=n(77341),i=n(87670),o=n(80555),a=n(82919),s=n(56182),l=n(81455)(function(){return 4294967297!==[].push.call({length:4294967296},1)});r({target:"Array",proto:!0,arity:1,forced:l||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var t=i(this),n=o(t),r=arguments.length;s(n+r);for(var l=0;l79&&a<83||!o("reduceRight")},{reduceRight:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},44438:function(e,t,n){"use strict";var r=n(77341),i=n(39845).left,o=n(88486),a=n(21033),s=n(18050);r({target:"Array",proto:!0,forced:!s&&a>79&&a<83||!o("reduce")},{reduce:function(e){var t=arguments.length;return i(this,e,t,t>1?arguments[1]:void 0)}})},6988:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(61748),a=i([].reverse),s=[1,2];r({target:"Array",proto:!0,forced:String(s)===String(s.reverse())},{reverse:function(){return o(this)&&(this.length=this.length),a(this)}})},69643:function(e,t,n){"use strict";var r=n(77341),i=n(61748),o=n(62219),a=n(86840),s=n(77732),l=n(80555),u=n(60621),c=n(82250),p=n(82919),d=n(78583),h=n(18471),f=n(47441),m=h("slice"),g=d("species"),A=Array,b=Math.max;r({target:"Array",proto:!0,forced:!m},{slice:function(e,t){var n,r,d,h=u(this),m=l(h),y=s(e,m),v=s(void 0===t?m:t,m);if(i(h)&&(o(n=h.constructor)&&(n===A||i(n.prototype))?n=void 0:a(n)&&null===(n=n[g])&&(n=void 0),n===A||void 0===n))return f(h,y,v);for(d=0,r=new(void 0===n?A:n)(b(v-y,0));y1?arguments[1]:void 0)}})},18574:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(65085),a=n(87670),s=n(80555),l=n(90533),u=n(43576),c=n(81455),p=n(17322),d=n(88486),h=n(61392),f=n(71949),m=n(21033),g=n(53047),A=[],b=i(A.sort),y=i(A.push),v=c(function(){A.sort(void 0)}),S=c(function(){A.sort(null)}),w=d("sort"),E=!c(function(){if(m)return m<70;if(!h||!(h>3)){if(f)return!0;if(g)return g<603;var e,t,n,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)A.push({k:t+r,v:n})}for(A.sort(function(e,t){return t.v-e.v}),r=0;ri?1:-1})),n=s(c),r=0;rv-r+n;g--)d(y,g-1)}else if(n>r)for(g=v-r;g>S;g--)A=g+r-1,b=g+n-1,A in y?y[b]=y[A]:d(y,b);for(g=0;g=r||p<0)throw new u("Incorrect index");for(var d=new l(r),h=0;h>>15,n=e>>>10&31,r=1023&e;return 31===n?0===r?0===t?1/0:-1/0:NaN:0===n?r*(0===t?a:-a):o(2,n-15)*(0===t?1+9765625e-10*r:-1-9765625e-10*r)},l=i(DataView.prototype.getUint16);r({target:"DataView",proto:!0},{getFloat16:function(e){return s(l(this,e,arguments.length>1&&arguments[1]))}})},7324:function(e,t,n){"use strict";n(11568)},46209:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(99930),a=n(60821),s=n(1289),l=n(46808),u=Math.floor,c=Math.pow,p=function(e){if(e!=e)return 32256;if(0===e)return(1/e==-1/0)<<15;var t=e<0;if(t&&(e=-e),e>=65520)return t<<15|31744;if(e<61005353927612305e-21)return t<<15|l(16777216*e);var n=u(s(e));if(-15===n)return t<<15|1024;var r=l((e*c(2,-n)-1)*1024);return 1024===r?t<<15|n+16<<10:t<<15|n+15<<10|r},d=i(DataView.prototype.setUint16);r({target:"DataView",proto:!0},{setFloat16:function(e,t){d(o(this),a(e),p(+t),arguments.length>2&&arguments[2])}})},344:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(81455)(function(){return 120!==new Date(16e11).getYear()}),a=i(Date.prototype.getFullYear);r({target:"Date",proto:!0,forced:o},{getYear:function(){return a(this)-1900}})},33272:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=Date,a=i(o.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return a(new o)}})},71190:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(11573),a=Date.prototype,s=i(a.getTime),l=i(a.setFullYear);r({target:"Date",proto:!0},{setYear:function(e){s(this);var t=+e;if(t!=t)return l(this,t);var n=o(t);return l(this,n>=0&&n<=99?n+1900:n)}})},12244:function(e,t,n){"use strict";n(77341)({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},46323:function(e,t,n){"use strict";var r=n(77341),i=n(61305);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==i},{toISOString:i})},59129:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(87670),a=n(67967);r({target:"Date",proto:!0,arity:1,forced:i(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})},{toJSON:function(e){var t=o(this),n=a(t,"number");return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},61712:function(e,t,n){"use strict";var r=n(85848),i=n(40453),o=n(87789),a=n(78583)("toPrimitive"),s=Date.prototype;!r(s,a)&&i(s,a,o)},13699:function(e,t,n){"use strict";var r=n(12814),i=n(40453),o=Date.prototype,a="Invalid Date",s="toString",l=r(o[s]),u=r(o.getTime);String(new Date(NaN))!==a&&i(o,s,function(){var e=u(this);return e==e?l(this):a})},88802:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(76451),a=n(65085),s=n(70591),l=n(40453),u=n(26252),c=n(42749),p=n(78583),d=n(89904),h=n(50098),f=o("SuppressedError"),m=ReferenceError,g=p("dispose"),A=p("toStringTag"),b="DisposableStack",y=d.set,v=d.getterFor(b),S="sync-dispose",w="disposed",E=function(e){var t=v(e);if(t.state===w)throw new m(b+" already disposed");return t},O=function(){y(s(this,T),{type:b,state:"pending",stack:[]}),!i&&(this.disposed=!1)},T=O.prototype;u(T,{dispose:function(){var e,t=v(this);if(t.state!==w){t.state=w,!i&&(this.disposed=!0);for(var n=t.stack,r=n.length,o=!1;r;){var a=n[--r];n[r]=null;try{a()}catch(t){o?e=new f(t,e):(o=!0,e=t)}}if(t.stack=null,o)throw e}},use:function(e){return h(E(this),e,S),e},adopt:function(e,t){var n=E(this);return a(t),h(n,void 0,S,function(){t(e)}),e},defer:function(e){var t=E(this);a(e),h(t,void 0,S,e)},move:function(){var e=E(this),t=new O;return v(t).stack=e.stack,e.stack=[],e.state=w,!i&&(this.disposed=!0),t}}),i&&c(T,"disposed",{configurable:!0,get:function(){return v(this).state===w}}),l(T,g,T.dispose,{name:"dispose"}),l(T,A,b,{nonWritable:!0}),r({global:!0,constructor:!0},{DisposableStack:O})},40777:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(37626),a=n(43150),s="WebAssembly",l=i[s],u=7!==Error("e",{cause:7}).cause,c=function(e,t){var n={};n[e]=a(e,t,u),r({global:!0,constructor:!0,arity:1,forced:u},n)},p=function(e,t){if(l&&l[e]){var n={};n[e]=a(s+"."+e,t,u),r({target:s,stat:!0,constructor:!0,arity:1,forced:u},n)}};c("Error",function(e){return function(t){return o(e,this,arguments)}}),c("EvalError",function(e){return function(t){return o(e,this,arguments)}}),c("RangeError",function(e){return function(t){return o(e,this,arguments)}}),c("ReferenceError",function(e){return function(t){return o(e,this,arguments)}}),c("SyntaxError",function(e){return function(t){return o(e,this,arguments)}}),c("TypeError",function(e){return function(t){return o(e,this,arguments)}}),c("URIError",function(e){return function(t){return o(e,this,arguments)}}),p("CompileError",function(e){return function(t){return o(e,this,arguments)}}),p("LinkError",function(e){return function(t){return o(e,this,arguments)}}),p("RuntimeError",function(e){return function(t){return o(e,this,arguments)}})},23384:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(86840),a=n(34074),s=n(81455),l="Error",u="DOMException",c=Object.setPrototypeOf||({}).__proto__,p=i(u),d=Error,h=d.isError;r({target:"Error",stat:!0,sham:!0,forced:!h||!c||s(function(){return p&&!h(new p(u))||!h(new d(l,{cause:function(){}}))||h(i("Object","create")(d.prototype))})},{isError:function(e){if(!o(e))return!1;var t=a(e);return t===l||t===u}})},31418:function(e,t,n){"use strict";var r=n(40453),i=n(60708),o=Error.prototype;o.toString!==i&&r(o,"toString",i)},43457:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(43576),a=i("".charAt),s=i("".charCodeAt),l=i(/./.exec),u=i(1.1.toString),c=i("".toUpperCase),p=/[\w*+\-./@]/,d=function(e,t){for(var n=u(e,16);n.length=n.length){this.done=!0;return}var r=n[t];this.iterables[t]=null,e=this.iterator=a(i(r.method,r.iterable)),this.next=e.next}var o=a(i(this.next,e));if(o.done){this.iterator=null,this.next=null;continue}return o.value}});r({target:"Iterator",stat:!0,forced:u},{concat:function(){for(var e=arguments.length,t=c(e),n=0;n94906265.62425156?a(t)+l:i(t-1+s(t-1)*s(t+1))}})},22773:function(e,t,n){"use strict";var r=n(77341),i=Math.asinh,o=Math.log,a=Math.sqrt,s=Math.LN2;r({target:"Math",stat:!0,forced:!(i&&1/i(0)>0)},{asinh:function e(t){var n=+t;return isFinite(n)&&0!==n?n<0?-e(-n):n>94906265.62425156?o(n)+s:o(n+a(n*n+1)):n}})},10416:function(e,t,n){"use strict";var r=n(77341),i=n(21638),o=Math.atanh;r({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(e){var t=+e;return 0===t?t:i(2*t/(1-t))/2}})},48783:function(e,t,n){"use strict";var r=n(77341),i=n(86503),o=Math.abs,a=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){var t=+e;return i(t)*a(o(t),1/3)}})},69094:function(e,t,n){"use strict";var r=n(77341),i=Math.floor,o=Math.log,a=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){var t=e>>>0;return t?31-i(o(t+.5)*a):32}})},15170:function(e,t,n){"use strict";var r=n(77341),i=n(1523),o=Math.cosh,a=Math.abs,s=Math.E;r({target:"Math",stat:!0,forced:!o||o(710)===1/0},{cosh:function(e){var t=i(a(e)-1)+1;return s/2*(t+1/(t*s*s))}})},60878:function(e,t,n){"use strict";var r=n(77341),i=n(1523);r({target:"Math",stat:!0,forced:i!==Math.expm1},{expm1:i})},23437:function(e,t,n){"use strict";var r=n(77341),i=n(20338);r({target:"Math",stat:!0},{f16round:function(e){return i(e,9765625e-10,65504,6103515625e-14)}})},89067:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{fround:n(10382)})},69068:function(e,t,n){"use strict";var r=n(77341),i=Math.hypot,o=Math.abs,a=Math.sqrt;r({target:"Math",stat:!0,arity:2,forced:!!i&&i(1/0,NaN)!==1/0},{hypot:function(e,t){for(var n,r,i=0,s=0,l=arguments.length,u=0;s0?i+=(r=n/u)*r:i+=n;return u===1/0?1/0:u*a(i)}})},52978:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=Math.imul;r({target:"Math",stat:!0,forced:i(function(){return -5!==o(4294967295,5)||2!==o.length})},{imul:function(e,t){var n=+e,r=+t,i=65535&n,o=65535&r;return 0|i*o+((65535&n>>>16)*o+i*(65535&r>>>16)<<16>>>0)}})},27427:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{log10:n(4957)})},95417:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{log1p:n(21638)})},62958:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{log2:n(1289)})},5235:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{sign:n(86503)})},40563:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(1523),a=Math.abs,s=Math.exp,l=Math.E;r({target:"Math",stat:!0,forced:i(function(){return -.00000000000000002!==Math.sinh(-.00000000000000002)})},{sinh:function(e){var t=+e;return 1>a(t)?(o(t)-o(-t))/2:(s(t-1)-s(-t-1))*(l/2)}})},23178:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(45249),a=RangeError,s=TypeError,l=1/0,u=NaN,c=Math.abs,p=Math.pow,d=i([].push),h=p(2,1023),f=p(2,53)-1,m=Number.MAX_VALUE,g=p(2,971),A={},b={},y={},v={},S={},w=function(e,t){var n=e+t;return{hi:n,lo:t-(n-e)}};r({target:"Math",stat:!0},{sumPrecise:function(e){var t,n,r,i,p,E,O=[],T=0,C=v;switch(o(e,function(e){if(++T>f)throw new a("Maximum allowed index exceeded");if("number"!=typeof e)throw new s("Value is not a number");C!==A&&(e!=e?C=A:e===l?C=C===b?A:y:e===-l?C=C===y?A:b:(0!==e||1/e===l)&&(C===v||C===S)&&(C=S,d(O,e)))}),C){case A:return u;case b:return-l;case y:return l;case v:return -0}for(var x=[],I=0,k=0;k=0?x[N]:0;if(N--,c(I)>1||I>0&&D>0||I<0&&D<0)return I>0?l:-l;if(i=(r=w(I*h,D/2)).hi,p=2*r.lo,c(2*i)===l)return i>0?i===h&&p===-(g/2)&&N>=0&&x[N]<0?m:l:i===-h&&p===g/2&&N>=0&&x[N]>0?-m:-l;0!==p&&(x[++N]=p,p=0),i*=2}for(;N>=0&&(i=(r=w(i,x[N--])).hi,0===(p=r.lo)););return N>=0&&(p<0&&x[N]<0||p>0&&x[N]>0)&&(t=i+(n=2*p),n===t-i&&(i=t)),i}})},88433:function(e,t,n){"use strict";var r=n(77341),i=n(1523),o=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=+e,n=i(t),r=i(-t);return n===1/0?1:r===1/0?-1:(n-r)/(o(t)+o(-t))}})},28273:function(e,t,n){"use strict";n(78711)(Math,"Math",!0)},9262:function(e,t,n){"use strict";n(77341)({target:"Math",stat:!0},{trunc:n(6083)})},96821:function(e,t,n){"use strict";var r=n(77341),i=n(83294),o=n(61360),a=n(30456),s=n(61728),l=n(12814),u=n(37653),c=n(85848),p=n(35724),d=n(86711),h=n(83139),f=n(67967),m=n(81455),g=n(25487).f,A=n(13895).f,b=n(68235).f,y=n(74121),v=n(27169).trim,S="Number",w=a[S],E=s[S],O=w.prototype,T=a.TypeError,C=l("".slice),x=l("".charCodeAt),I=function(e){var t=f(e,"number");return"bigint"==typeof t?t:k(t)},k=function(e){var t,n,r,i,o,a,s,l,u=f(e,"number");if(h(u))throw new T("Cannot convert a Symbol value to a number");if("string"==typeof u&&u.length>2){if(43===(t=x(u=v(u),0))||45===t){if(88===(n=x(u,2))||120===n)return NaN}else if(48===t){switch(x(u,1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+u}for(s=0,a=(o=C(u,2)).length;si)return NaN;return parseInt(o,r)}}return+u},_=u(S,!w(" 0o1")||!w("0b1")||w("+0x1")),R=function(e){var t,n=arguments.length<1?0:w(I(e));return(t=this,d(O,t)&&m(function(){y(t)}))?p(Object(n),this,R):n};R.prototype=O,_&&!i&&(O.constructor=R),r({global:!0,constructor:!0,wrap:!0,forced:_},{Number:R});var P=function(e,t){for(var n,r=o?g(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),i=0;r.length>i;i++)c(t,n=r[i])&&!c(e,n)&&b(e,n,A(t,n))};i&&E&&P(s[S],E),(_||i)&&P(s[S],w)},32396:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:2220446049250313e-31})},60515:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0},{isFinite:n(8942)})},35385:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0},{isInteger:n(8504)})},99233:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},12389:function(e,t,n){"use strict";var r=n(77341),i=n(8504),o=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return i(e)&&9007199254740991>=o(e)}})},68076:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},58266:function(e,t,n){"use strict";n(77341)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},95203:function(e,t,n){"use strict";var r=n(77341),i=n(85133);r({target:"Number",stat:!0,forced:Number.parseFloat!==i},{parseFloat:i})},87854:function(e,t,n){"use strict";var r=n(77341),i=n(92781);r({target:"Number",stat:!0,forced:Number.parseInt!==i},{parseInt:i})},60226:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(11573),a=n(74121),s=n(84838),l=n(4957),u=n(81455),c=RangeError,p=String,d=isFinite,h=Math.abs,f=Math.floor,m=Math.pow,g=Math.round,A=i(1.1.toExponential),b=i(s),y=i("".slice),v=m(10,308),S="-6.9000e-11"===A(-.000000000069,4)&&"1.25e+0"===A(1.255,2)&&"1.235e+4"===A(12345,3)&&"3e+1"===A(25,0);r({target:"Number",proto:!0,forced:!S||!(u(function(){A(1,1/0)})&&u(function(){A(1,-1/0)}))||!!u(function(){A(1/0,1/0),A(NaN,1/0)})},{toExponential:function(e){var t,n,r,i,s,u,w=a(this);if(void 0===e)return A(w);var E=o(e);if(!d(w))return String(w);if(E<0||E>20)throw new c("Incorrect fraction digits");if(S)return A(w,E);var O="";return w<0&&(O="-",w=-w),0===w?(n=0,t=b("0",E+1)):(s=g(u=E-(n=f(l(w)))>=308?w*v*m(10,E-n-308):w/m(10,n-E)),u-s>=.5&&(s+=1),s>=m(10,E+1)&&(s/=10,n+=1),t=p(s)),0!==E&&(t=y(t,0,1)+"."+y(t,1)),0===n?(r="+",i="0"):(r=n>0?"+":"-",i=p(h(n))),O+(t+="e"+r+i)}})},25718:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(11573),a=n(74121),s=n(84838),l=n(81455),u=RangeError,c=String,p=Math.floor,d=i(s),h=i("".slice),f=i(1.1.toFixed),m=function(e,t,n){return 0===t?n:t%2==1?m(e,t-1,n*e):m(e*e,t/2,n)},g=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t},A=function(e,t,n){for(var r=-1,i=n;++r<6;)i+=t*e[r],e[r]=i%1e7,i=p(i/1e7)},b=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=p(r/t),r=r%t*1e7},y=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=c(e[t]);n=""===n?r:n+d("0",7-r.length)+r}return n};r({target:"Number",proto:!0,forced:l(function(){return"0.000"!==f(8e-5,3)||"1"!==f(.9,0)||"1.25"!==f(1.255,2)||"1000000000000000128"!==f(0xde0b6b3a7640080,0)})||!l(function(){f({})})},{toFixed:function(e){var t,n,r,i,s=a(this),l=o(e),p=[0,0,0,0,0,0],f="",v="0";if(l<0||l>20)throw new u("Incorrect fraction digits");if(s!=s)return"NaN";if(s<=-1e21||s>=1e21)return c(s);if(s<0&&(f="-",s=-s),s>1e-21){if(n=((t=g(s*m(2,69,1))-69)<0?s*m(2,-t,1):s/m(2,t,1))*4503599627370496,(t=52-t)>0){for(A(p,0,n),r=l;r>=7;)A(p,1e7,0),r-=7;for(A(p,m(10,r,1),0),r=t-1;r>=23;)b(p,8388608),r-=23;b(p,1<0?f+((i=v.length)<=l?"0."+d("0",l-i)+v:h(v,0,i-l)+"."+h(v,i-l)):f+v}})},4295:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(81455),a=n(74121),s=i(1.1.toPrecision);r({target:"Number",proto:!0,forced:o(function(){return"1"!==s(1,void 0)})||!o(function(){s({})})},{toPrecision:function(e){return void 0===e?s(a(this)):s(a(this),e)}})},87799:function(e,t,n){"use strict";var r=n(77341),i=n(60372);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==i},{assign:i})},79817:function(e,t,n){"use strict";n(77341)({target:"Object",stat:!0,sham:!n(61360)},{create:n(31153)})},61550:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(28920),a=n(65085),s=n(87670),l=n(68235);i&&r({target:"Object",proto:!0,forced:o},{__defineGetter__:function(e,t){l.f(s(this),e,{get:a(t),enumerable:!0,configurable:!0})}})},70349:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(15242).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==o,sham:!i},{defineProperties:o})},15142:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(68235).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==o,sham:!i},{defineProperty:o})},83836:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(28920),a=n(65085),s=n(87670),l=n(68235);i&&r({target:"Object",proto:!0,forced:o},{__defineSetter__:function(e,t){l.f(s(this),e,{set:a(t),enumerable:!0,configurable:!0})}})},48454:function(e,t,n){"use strict";var r=n(77341),i=n(99717).entries;r({target:"Object",stat:!0},{entries:function(e){return i(e)}})},59741:function(e,t,n){"use strict";var r=n(77341),i=n(63058),o=n(81455),a=n(86840),s=n(6586).onFreeze,l=Object.freeze;r({target:"Object",stat:!0,forced:o(function(){l(1)}),sham:!i},{freeze:function(e){return l&&a(e)?l(s(e)):e}})},18514:function(e,t,n){"use strict";var r=n(77341),i=n(45249),o=n(82250);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return i(e,function(e,n){o(t,e,n)},{AS_ENTRIES:!0}),t}})},96389:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(60621),a=n(13895).f,s=n(61360);r({target:"Object",stat:!0,forced:!s||i(function(){a(1)}),sham:!s},{getOwnPropertyDescriptor:function(e,t){return a(o(e),t)}})},19836:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(27040),a=n(60621),s=n(13895),l=n(82250);r({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),i=s.f,u=o(r),c={},p=0;u.length>p;)void 0!==(n=i(r,t=u[p++]))&&l(c,t,n);return c}})},56995:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(73361).f;r({target:"Object",stat:!0,forced:i(function(){return!Object.getOwnPropertyNames(1)})},{getOwnPropertyNames:o})},18621:function(e,t,n){"use strict";var r=n(77341),i=n(45946),o=n(81455),a=n(74713),s=n(87670);r({target:"Object",stat:!0,forced:!i||o(function(){a.f(1)})},{getOwnPropertySymbols:function(e){var t=a.f;return t?t(s(e)):[]}})},29573:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(87670),a=n(43424),s=n(64276);r({target:"Object",stat:!0,forced:i(function(){a(1)}),sham:!s},{getPrototypeOf:function(e){return a(o(e))}})},78307:function(e,t,n){"use strict";var r=n(77341),i=n(82250),o=n(76451),a=n(12814),s=n(65085),l=n(80456),u=n(91051),c=n(45249),p=n(81455),d=Object.groupBy,h=o("Object","create"),f=a([].push);r({target:"Object",stat:!0,forced:!d||p(function(){return 1!==d("ab",function(e){return e}).a.length})},{groupBy:function(e,t){l(e),s(t);var n=h(null),r=0;return c(e,function(e){var o=u(t(e,r++));o in n?f(n[o],e):i(n,o,[e])}),n}})},90601:function(e,t,n){"use strict";n(77341)({target:"Object",stat:!0},{hasOwn:n(85848)})},98354:function(e,t,n){"use strict";var r=n(77341),i=n(25549);r({target:"Object",stat:!0,forced:Object.isExtensible!==i},{isExtensible:i})},70822:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(86840),a=n(32185),s=n(30426),l=Object.isFrozen;r({target:"Object",stat:!0,forced:s||i(function(){l(1)})},{isFrozen:function(e){return!o(e)||!!s&&"ArrayBuffer"===a(e)||!!l&&l(e)}})},28501:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(86840),a=n(32185),s=n(30426),l=Object.isSealed;r({target:"Object",stat:!0,forced:s||i(function(){l(1)})},{isSealed:function(e){return!o(e)||!!s&&"ArrayBuffer"===a(e)||!!l&&l(e)}})},29784:function(e,t,n){"use strict";n(77341)({target:"Object",stat:!0},{is:n(46149)})},24533:function(e,t,n){"use strict";var r=n(77341),i=n(87670),o=n(35387);r({target:"Object",stat:!0,forced:n(81455)(function(){o(1)})},{keys:function(e){return o(i(e))}})},67405:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(28920),a=n(87670),s=n(91051),l=n(43424),u=n(13895).f;i&&r({target:"Object",proto:!0,forced:o},{__lookupGetter__:function(e){var t,n=a(this),r=s(e);do if(t=u(n,r))return t.get;while(n=l(n))}})},85437:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(28920),a=n(87670),s=n(91051),l=n(43424),u=n(13895).f;i&&r({target:"Object",proto:!0,forced:o},{__lookupSetter__:function(e){var t,n=a(this),r=s(e);do if(t=u(n,r))return t.set;while(n=l(n))}})},96395:function(e,t,n){"use strict";var r=n(77341),i=n(86840),o=n(6586).onFreeze,a=n(63058),s=n(81455),l=Object.preventExtensions;r({target:"Object",stat:!0,forced:s(function(){l(1)}),sham:!a},{preventExtensions:function(e){return l&&i(e)?l(o(e)):e}})},28417:function(e,t,n){"use strict";var r=n(61360),i=n(42749),o=n(86840),a=n(89268),s=n(87670),l=n(80456),u=Object.getPrototypeOf,c=Object.setPrototypeOf,p=Object.prototype,d="__proto__";if(r&&u&&c&&!(d in p))try{i(p,d,{configurable:!0,get:function(){return u(s(this))},set:function(e){var t=l(this);a(e)&&o(t)&&c(t,e)}})}catch(e){}},36172:function(e,t,n){"use strict";var r=n(77341),i=n(86840),o=n(6586).onFreeze,a=n(63058),s=n(81455),l=Object.seal;r({target:"Object",stat:!0,forced:s(function(){l(1)}),sham:!a},{seal:function(e){return l&&i(e)?l(o(e)):e}})},821:function(e,t,n){"use strict";n(77341)({target:"Object",stat:!0},{setPrototypeOf:n(46682)})},54480:function(e,t,n){"use strict";var r=n(28149),i=n(40453),o=n(9483);!r&&i(Object.prototype,"toString",o,{unsafe:!0})},69920:function(e,t,n){"use strict";var r=n(77341),i=n(99717).values;r({target:"Object",stat:!0},{values:function(e){return i(e)}})},35100:function(e,t,n){"use strict";var r=n(77341),i=n(85133);r({global:!0,forced:parseFloat!==i},{parseFloat:i})},70820:function(e,t,n){"use strict";var r=n(77341),i=n(92781);r({global:!0,forced:parseInt!==i},{parseInt:i})},10189:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(65085),a=n(33803),s=n(59090),l=n(45249);r({target:"Promise",stat:!0,forced:n(65202)},{allSettled:function(e){var t=this,n=a.f(t),r=n.resolve,u=n.reject,c=s(function(){var n=o(t.resolve),a=[],s=0,u=1;l(e,function(e){var o=s++,l=!1;u++,i(n,t,e).then(function(e){!l&&(l=!0,a[o]={status:"fulfilled",value:e},--u||r(a))},function(e){!l&&(l=!0,a[o]={status:"rejected",reason:e},--u||r(a))})}),--u||r(a)});return c.error&&u(c.value),n.promise}})},32945:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(65085),a=n(33803),s=n(59090),l=n(45249);r({target:"Promise",stat:!0,forced:n(65202)},{all:function(e){var t=this,n=a.f(t),r=n.resolve,u=n.reject,c=s(function(){var n=o(t.resolve),a=[],s=0,c=1;l(e,function(e){var o=s++,l=!1;c++,i(n,t,e).then(function(e){!l&&(l=!0,a[o]=e,--c||r(a))},u)}),--c||r(a)});return c.error&&u(c.value),n.promise}})},60862:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(65085),a=n(76451),s=n(33803),l=n(59090),u=n(45249),c=n(65202),p="No one promise resolved";r({target:"Promise",stat:!0,forced:c},{any:function(e){var t=this,n=a("AggregateError"),r=s.f(t),c=r.resolve,d=r.reject,h=l(function(){var r=o(t.resolve),a=[],s=0,l=1,h=!1;u(e,function(e){var o=s++,u=!1;l++,i(r,t,e).then(function(e){!u&&!h&&(h=!0,c(e))},function(e){!u&&!h&&(u=!0,a[o]=e,--l||d(new n(a,p)))})}),--l||d(new n(a,p))});return h.error&&d(h.value),r.promise}})},63098:function(e,t,n){"use strict";var r=n(77341),i=n(83294),o=n(84810).CONSTRUCTOR,a=n(14958),s=n(76451),l=n(99821),u=n(40453),c=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(e){return this.then(void 0,e)}}),!i&&l(a)){var p=s("Promise").prototype.catch;c.catch!==p&&u(c,"catch",p,{unsafe:!0})}},38721:function(e,t,n){"use strict";var r,i,o,a,s=n(77341),l=n(83294),u=n(18050),c=n(30456),p=n(61728),d=n(87494),h=n(40453),f=n(46682),m=n(78711),g=n(29483),A=n(65085),b=n(99821),y=n(86840),v=n(70591),S=n(74696),w=n(16414).set,E=n(88018),O=n(87861),T=n(59090),C=n(17714),x=n(89904),I=n(14958),k=n(84810),_=n(33803),R="Promise",P=k.CONSTRUCTOR,N=k.REJECTION_EVENT,D=k.SUBCLASSING,M=x.getterFor(R),L=x.set,B=I&&I.prototype,F=I,U=B,j=c.TypeError,z=c.document,H=c.process,Z=_.f,V=Z,G=!!(z&&z.createEvent&&c.dispatchEvent),W="unhandledrejection",Q=function(e){var t;return!!(y(e)&&b(t=e.then))&&t},q=function(e,t){var n,r,i,o=t.value,a=1===t.state,s=a?e.ok:e.fail,l=e.resolve,u=e.reject,c=e.domain;try{s?(!a&&(2===t.rejection&&$(t),t.rejection=1),!0===s?n=o:(c&&c.enter(),n=s(o),c&&(c.exit(),i=!0)),n===e.promise?u(new j("Promise-chain cycle")):(r=Q(n))?d(r,n,l,u):l(n)):u(o)}catch(e){c&&!i&&c.exit(),u(e)}},K=function(e,t){!e.notified&&(e.notified=!0,E(function(){for(var n,r=e.reactions;n=r.get();)q(n,e);e.notified=!1,t&&!e.rejection&&X(e)}))},Y=function(e,t,n){var r,i;G?((r=z.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),c.dispatchEvent(r)):r={promise:t,reason:n},!N&&(i=c["on"+e])?i(r):e===W&&O("Unhandled promise rejection",n)},X=function(e){d(w,c,function(){var t,n=e.facade,r=e.value;if(J(e)&&(t=T(function(){u?H.emit("unhandledRejection",r,n):Y(W,n,r)}),e.rejection=u||J(e)?2:1,t.error))throw t.value})},J=function(e){return 1!==e.rejection&&!e.parent},$=function(e){d(w,c,function(){var t=e.facade;u?H.emit("rejectionHandled",t):Y("rejectionhandled",t,e.value)})},ee=function(e,t,n){return function(r){e(t,r,n)}},et=function(e,t,n){!e.done&&(e.done=!0,n&&(e=n),e.value=t,e.state=2,K(e,!0))},en=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw new j("Promise can't be resolved itself");var r=Q(t);r?E(function(){var n={done:!1};try{d(r,t,ee(en,n,e),ee(et,n,e))}catch(t){et(n,t,e)}}):(e.value=t,e.state=1,K(e,!1))}catch(t){et({done:!1},t,e)}}};if(P&&(U=(F=function(e){v(this,U),A(e),d(r,this);var t=M(this);try{e(ee(en,t),ee(et,t))}catch(e){et(t,e)}}).prototype,(r=function(e){L(this,{type:R,done:!1,notified:!1,parent:!1,reactions:new C,rejection:!1,state:0,value:null})}).prototype=h(U,"then",function(e,t){var n=M(this),r=Z(S(this,F));return n.parent=!0,r.ok=!b(e)||e,r.fail=b(t)&&t,r.domain=u?H.domain:void 0,0===n.state?n.reactions.add(r):E(function(){q(r,n)}),r.promise}),i=function(){var e=new r,t=M(e);this.promise=e,this.resolve=ee(en,t),this.reject=ee(et,t)},_.f=Z=function(e){return e===F||e===o?new i(e):V(e)},!l&&b(I)&&B!==Object.prototype)){a=B.then,!D&&h(B,"then",function(e,t){var n=this;return new F(function(e,t){d(a,n,e,t)}).then(e,t)},{unsafe:!0});try{delete B.constructor}catch(e){}f&&f(B,U)}s({global:!0,constructor:!0,wrap:!0,forced:P},{Promise:F}),o=p.Promise,m(F,R,!1,!0),g(R)},67496:function(e,t,n){"use strict";var r=n(77341),i=n(83294),o=n(14958),a=n(81455),s=n(76451),l=n(99821),u=n(74696),c=n(41941),p=n(40453),d=o&&o.prototype;if(r({target:"Promise",proto:!0,real:!0,forced:!!o&&a(function(){d.finally.call({then:function(){}},function(){})})},{finally:function(e){var t=u(this,s("Promise")),n=l(e);return this.then(n?function(n){return c(t,e()).then(function(){return n})}:e,n?function(n){return c(t,e()).then(function(){throw n})}:e)}}),!i&&l(o)){var h=s("Promise").prototype.finally;d.finally!==h&&p(d,"finally",h,{unsafe:!0})}},1455:function(e,t,n){"use strict";n(38721),n(32945),n(63098),n(5201),n(79476),n(9921)},5201:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(65085),a=n(33803),s=n(59090),l=n(45249);r({target:"Promise",stat:!0,forced:n(65202)},{race:function(e){var t=this,n=a.f(t),r=n.reject,u=s(function(){var a=o(t.resolve);l(e,function(e){i(a,t,e).then(n.resolve,r)})});return u.error&&r(u.value),n.promise}})},79476:function(e,t,n){"use strict";var r=n(77341),i=n(33803);r({target:"Promise",stat:!0,forced:n(84810).CONSTRUCTOR},{reject:function(e){var t=i.f(this);return(0,t.reject)(e),t.promise}})},9921:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(83294),a=n(14958),s=n(84810).CONSTRUCTOR,l=n(41941),u=i("Promise"),c=o&&!s;r({target:"Promise",stat:!0,forced:o||s},{resolve:function(e){return l(c&&this===u?a:this,e)}})},17074:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(37626),a=n(47441),s=n(33803),l=n(65085),u=n(59090),c=i.Promise,p=!1;r({target:"Promise",stat:!0,forced:!c||!c.try||u(function(){c.try(function(e){p=8===e},8)}).error||!p},{try:function(e){var t=arguments.length>1?a(arguments,1):[],n=s.f(this),r=u(function(){return o(l(e),void 0,t)});return(r.error?n.reject:n.resolve)(r.value),n.promise}})},95353:function(e,t,n){"use strict";var r=n(77341),i=n(33803);r({target:"Promise",stat:!0},{withResolvers:function(){var e=i.f(this);return{promise:e.promise,resolve:e.resolve,reject:e.reject}}})},63849:function(e,t,n){"use strict";var r=n(77341),i=n(37626),o=n(65085),a=n(36539);r({target:"Reflect",stat:!0,forced:!n(81455)(function(){Reflect.apply(function(){})})},{apply:function(e,t,n){return i(o(e),t,a(n))}})},31454:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(37626),a=n(67697),s=n(15058),l=n(36539),u=n(86840),c=n(31153),p=n(81455),d=i("Reflect","construct"),h=Object.prototype,f=[].push,m=p(function(){function e(){}return!(d(function(){},[],e) instanceof e)}),g=!p(function(){d(function(){})}),A=m||g;r({target:"Reflect",stat:!0,forced:A,sham:A},{construct:function(e,t){s(e);var n=arguments.length<3?e:s(arguments[2]);if(l(t),g&&!m)return d(e,t,n);if(e===n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return o(f,r,t),new(o(a,e,r))}var i=n.prototype,p=c(u(i)?i:h),A=o(e,p,t);return u(A)?A:p}})},11161:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(36539),a=n(91051),s=n(68235),l=n(99821),u=n(81455),c=TypeError;r({target:"Reflect",stat:!0,forced:u(function(){Reflect.defineProperty(s.f({},1,{value:1}),1,{value:2})}),sham:!i},{defineProperty:function(e,t,n){o(e);var r,i,u=a(t);if(o(n),("get"in n||"set"in n)&&("get"in n&&!l(r=n.get)&&void 0!==r||"set"in n&&!l(i=n.set)&&void 0!==i||"value"in n||"writable"in n))throw new c("Invalid property descriptor");try{return s.f(e,u,n),!0}catch(e){return!1}}})},36205:function(e,t,n){"use strict";var r=n(77341),i=n(36539),o=n(13895).f,a=n(91051);r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){i(e);var n=a(t),r=o(e,n);return(!r||!!r.configurable)&&delete e[n]}})},12829:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(36539),a=n(13895);r({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(e,t){return a.f(o(e),t)}})},42655:function(e,t,n){"use strict";var r=n(77341),i=n(36539),o=n(43424);r({target:"Reflect",stat:!0,sham:!n(64276)},{getPrototypeOf:function(e){return o(i(e))}})},24233:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(86840),a=n(36539),s=n(43577),l=n(13895),u=n(43424),c=n(91051),p=function(e,t,n){if(a(e)===n)return e[t];var r=l.f(e,t);if(r)return s(r)?r.value:void 0===r.get?void 0:i(r.get,n);var c=u(e);if(o(c))return p(c,t,n)};r({target:"Reflect",stat:!0},{get:function(e,t){return p(a(e),c(t),arguments.length<3?e:arguments[2])}})},54194:function(e,t,n){"use strict";n(77341)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},69606:function(e,t,n){"use strict";var r=n(77341),i=n(36539),o=n(25549);r({target:"Reflect",stat:!0},{isExtensible:function(e){return i(e),o(e)}})},28123:function(e,t,n){"use strict";n(77341)({target:"Reflect",stat:!0},{ownKeys:n(27040)})},68947:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(36539);r({target:"Reflect",stat:!0,sham:!n(63058)},{preventExtensions:function(e){o(e);try{var t=i("Object","preventExtensions");return t&&t(e),!0}catch(e){return!1}}})},51033:function(e,t,n){"use strict";var r=n(77341),i=n(36539),o=n(91526),a=n(46682);a&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){i(e),o(t);try{return a(e,t),!0}catch(e){return!1}}})},23693:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(36539),a=n(86840),s=n(43577),l=n(81455),u=n(68235),c=n(13895),p=n(43424),d=n(98590),h=n(91051),f=function(e,t,n,r){var l,h,m,g=c.f(o(e),t);if(!g){if(a(h=p(e)))return f(h,t,n,r);g=d(0)}if(s(g)){if(!1===g.writable||!a(r))return!1;if(l=c.f(r,t)){if(!s(l)||!1===l.writable)return!1;u.f(r,t,{value:n})}else try{u.f(r,t,d(0,n))}catch(e){return!1}}else{if(void 0===(m=g.set))return!1;i(m,r,n)}return!0};r({target:"Reflect",stat:!0,forced:l(function(){var e=function(){},t=u.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)})},{set:function(e,t,n){return f(o(e),h(t),n,arguments.length<4?e:arguments[3])}})},576:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(78711);r({global:!0},{Reflect:{}}),o(i.Reflect,"Reflect",!0)},65640:function(e,t,n){"use strict";var r=n(61360),i=n(30456),o=n(12814),a=n(37653),s=n(35724),l=n(92444),u=n(31153),c=n(25487).f,p=n(86711),d=n(85013),h=n(43576),f=n(47726),m=n(76371),g=n(24301),A=n(40453),b=n(81455),y=n(85848),v=n(89904).enforce,S=n(29483),w=n(78583),E=n(46020),O=n(28697),T=w("match"),C=i.RegExp,x=C.prototype,I=i.SyntaxError,k=o(x.exec),_=o("".charAt),R=o("".replace),P=o("".indexOf),N=o("".slice),D=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,M=/a/g,L=/a/g,B=new C(M)!==M,F=m.MISSED_STICKY,U=m.UNSUPPORTED_Y,j=r&&(!B||F||E||O||b(function(){return L[T]=!1,C(M)!==M||C(L)===L||"/a/i"!==String(C(M,"i"))})),z=function(e){for(var t,n=e.length,r=0,i="",o=!1;r"===t&&l:if(""===p||y(a,p))throw new I("Invalid capture group name");a[p]=!0,o[o.length]=[p,c],l=!1,p="";continue}l?p+=t:i+=t}for(var d=0;d",f="\\"+o[d][1];P(i,h)>-1;)i=R(i,h,f)}return[i,o]};if(a("RegExp",j)){for(var Z=function(e,t){var n,r,i,o,a,u,c=p(x,this),m=d(e),g=void 0===t,A=[],b=e;if(!c&&m&&g&&e.constructor===Z)return e;if((m||p(x,e))&&(e=e.source,g&&(t=f(b))),e=void 0===e?"":h(e),t=void 0===t?"":h(t),b=e,E&&"dotAll"in M&&(r=!!t&&P(t,"s")>-1)&&(t=R(t,/s/g,"")),n=t,F&&"sticky"in M&&(i=!!t&&P(t,"y")>-1)&&U&&(t=R(t,/y/g,"")),O&&(e=(o=H(e))[0],A=o[1]),a=s(C(e,t),c?this:x,Z),(r||i||A.length)&&(u=v(a),r&&(u.dotAll=!0,u.raw=Z(z(e),n)),i&&(u.sticky=!0),A.length&&(u.groups=A)),e!==b)try{l(a,"source",""===b?"(?:)":b)}catch(e){}return a},V=c(C),G=0;V.length>G;)g(Z,C,V[G++]);x.constructor=Z,Z.prototype=x,A(i,"RegExp",Z,{constructor:!0})}S("RegExp")},28660:function(e,t,n){"use strict";var r=n(61360),i=n(46020),o=n(32185),a=n(42749),s=n(89904).get,l=RegExp.prototype,u=TypeError;r&&i&&a(l,"dotAll",{configurable:!0,get:function(){if(this!==l){if("RegExp"===o(this))return!!s(this).dotAll;throw new u("Incompatible receiver, RegExp required")}}})},95666:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(74420),a=n(85848),s=n(82498).start,l=n(76959),u=Array,c=RegExp.escape,p=i("".charAt),d=i("".charCodeAt),h=i(1.1.toString),f=i([].join),m=/^[0-9a-z]/i,g=/^[$()*+./?[\\\]^{|}]/,A=RegExp("^[!\"#%&',\\-:;<=>@`~"+l+"]"),b=i(m.exec),y={" ":"t","\n":"n","\v":"v","\f":"f","\r":"r"},v=function(e){var t=h(d(e,0),16);return t.length<3?"\\x"+s(t,2,"0"):"\\u"+s(t,4,"0")};r({target:"RegExp",stat:!0,forced:!c||"\\x61b"!==c("ab")},{escape:function(e){o(e);for(var t=e.length,n=u(t),r=0;r=56320||r+1>=t||(64512&d(e,r+1))!=56320?n[r]=v(i):(n[r]=i,n[++r]=p(e,r))}}return f(n,"")}})},64455:function(e,t,n){"use strict";var r=n(77341),i=n(20625);r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},60142:function(e,t,n){"use strict";var r=n(61360),i=n(42749),o=n(48904),a=n(43635);r&&!o.correct&&(i(RegExp.prototype,"flags",{configurable:!0,get:a}),o.correct=!0)},20727:function(e,t,n){"use strict";var r=n(61360),i=n(76371).MISSED_STICKY,o=n(32185),a=n(42749),s=n(89904).get,l=RegExp.prototype,u=TypeError;r&&i&&a(l,"sticky",{configurable:!0,get:function(){if(this!==l){if("RegExp"===o(this))return!!s(this).sticky;throw new u("Incompatible receiver, RegExp required")}}})},32192:function(e,t,n){"use strict";n(64455);var r,i,o=n(77341),a=n(87494),s=n(99821),l=n(36539),u=n(43576);var c=(r=!1,(i=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===i.test("abc")&&r),p=/./.test;o({target:"RegExp",proto:!0,forced:!c},{test:function(e){var t=l(this),n=u(e),r=t.exec;if(!s(r))return a(p,t,n);var i=a(r,t,n);return null!==i&&(l(i),!0)}})},56303:function(e,t,n){"use strict";var r=n(50360).PROPER,i=n(40453),o=n(36539),a=n(43576),s=n(81455),l=n(47726),u="toString",c=RegExp.prototype,p=c[u],d=s(function(){return"/a/b"!==p.call({source:"a",flags:"b"})}),h=r&&p.name!==u;(d||h)&&i(c,u,function(){var e=o(this);return"/"+a(e.source)+"/"+a(l(e))},{unsafe:!0})},61285:function(e,t,n){"use strict";n(54096)("Set",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},n(13962))},67886:function(e,t,n){"use strict";var r=n(77341),i=n(90794),o=n(81455);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("difference",function(e){return 0===e.size})||o(function(){var e=new Set([1,2,3,4]);return 3!==e.difference({size:1,has:function(){return!0},keys:function(){var t=0;return{next:function(){var n=t++>1;return e.has(1)&&e.clear(),{done:n,value:2}}}}}).size})},{difference:i})},65451:function(e,t,n){"use strict";var r=n(77341),i=n(81455),o=n(88583);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("intersection",function(e){return 2===e.size&&e.has(1)&&e.has(2)})||i(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))})},{intersection:o})},46015:function(e,t,n){"use strict";var r=n(77341),i=n(2932);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("isDisjointFrom",function(e){return!e})},{isDisjointFrom:i})},38334:function(e,t,n){"use strict";var r=n(77341),i=n(5970);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("isSubsetOf",function(e){return e})},{isSubsetOf:i})},94880:function(e,t,n){"use strict";var r=n(77341),i=n(25267);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("isSupersetOf",function(e){return!e})},{isSupersetOf:i})},11353:function(e,t,n){"use strict";n(61285)},75643:function(e,t,n){"use strict";var r=n(77341),i=n(98936),o=n(59544);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("symmetricDifference")||!o("symmetricDifference")},{symmetricDifference:i})},29761:function(e,t,n){"use strict";var r=n(77341),i=n(12688),o=n(59544);r({target:"Set",proto:!0,real:!0,forced:!n(57209)("union")||!o("union")},{union:i})},52700:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("anchor")},{anchor:function(e){return i(this,"a","name",e)}})},5458:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(80456),a=n(11573),s=n(43576),l=n(81455),u=i("".charAt);r({target:"String",proto:!0,forced:l(function(){return"\uD842"!=="\uD842\uDFB7".at(-2)})},{at:function(e){var t=s(o(this)),n=t.length,r=a(e),i=r>=0?r:n+r;return i<0||i>=n?void 0:u(t,i)}})},70008:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("big")},{big:function(){return i(this,"big","","")}})},70610:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("blink")},{blink:function(){return i(this,"blink","","")}})},59224:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("bold")},{bold:function(){return i(this,"b","","")}})},38077:function(e,t,n){"use strict";var r=n(77341),i=n(68047).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return i(this,e)}})},26086:function(e,t,n){"use strict";var r,i=n(77341),o=n(91609),a=n(13895).f,s=n(63663),l=n(43576),u=n(279),c=n(80456),p=n(95524),d=n(83294),h=o("".slice),f=Math.min,m=p("endsWith");i({target:"String",proto:!0,forced:!(!d&&!m&&(r=a(String.prototype,"endsWith"))&&!r.writable)&&!m},{endsWith:function(e){var t=l(c(this));u(e);var n=l(e),r=arguments.length>1?arguments[1]:void 0,i=t.length,o=void 0===r?i:f(s(r),i);return h(t,o-n.length,o)===n}})},24826:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("fixed")},{fixed:function(){return i(this,"tt","","")}})},33063:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("fontcolor")},{fontcolor:function(e){return i(this,"font","color",e)}})},40416:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("fontsize")},{fontsize:function(e){return i(this,"font","size",e)}})},11102:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(77732),a=RangeError,s=String.fromCharCode,l=String.fromCodePoint,u=i([].join);r({target:"String",stat:!0,arity:1,forced:!!l&&1!==l.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,i=0;r>i;){if(t=+arguments[i],o(t,1114111)!==t)throw new a(t+" is not a valid code point");n[i++]=t<65536?s(t):s(((t-=65536)>>10)+55296,t%1024+56320)}return u(n,"")}})},56389:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(279),a=n(80456),s=n(43576),l=n(95524),u=i("".indexOf);r({target:"String",proto:!0,forced:!l("includes")},{includes:function(e){return!!~u(s(a(this)),s(o(e)),arguments.length>1?arguments[1]:void 0)}})},37451:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(80456),a=n(43576),s=i("".charCodeAt);r({target:"String",proto:!0},{isWellFormed:function(){for(var e=a(o(this)),t=e.length,n=0;n=56320||++n>=t||(64512&s(e,n))!=56320))return!1}return!0}})},10910:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("italics")},{italics:function(){return i(this,"i","","")}})},48694:function(e,t,n){"use strict";var r=n(68047).charAt,i=n(43576),o=n(89904),a=n(55852),s=n(37056),l="String Iterator",u=o.set,c=o.getterFor(l);a(String,"String",function(e){u(this,{type:l,string:i(e),index:0})},function(){var e,t=c(this),n=t.string,i=t.index;return i>=n.length?s(void 0,!0):(e=r(n,i),t.index+=e.length,s(e,!1))})},78122:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("link")},{link:function(e){return i(this,"a","href",e)}})},49685:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(91609),a=n(40052),s=n(37056),l=n(80456),u=n(63663),c=n(43576),p=n(36539),d=n(86840),h=n(32185),f=n(85013),m=n(47726),g=n(36780),A=n(40453),b=n(81455),y=n(78583),v=n(74696),S=n(12751),w=n(69774),E=n(89904),O=n(83294),T=y("matchAll"),C="RegExp String",x=C+" Iterator",I=E.set,k=E.getterFor(x),_=RegExp.prototype,R=TypeError,P=o("".indexOf),N=o("".matchAll),D=!!N&&!b(function(){N("a",/./)}),M=a(function(e,t,n,r){I(this,{type:x,regexp:e,string:t,global:n,unicode:r,done:!1})},C,function(){var e=k(this);if(e.done)return s(void 0,!0);var t=e.regexp,n=e.string,r=w(t,n);return null===r?(e.done=!0,s(void 0,!0)):e.global?(""===c(r[0])&&(t.lastIndex=S(n,u(t.lastIndex),e.unicode)),s(r,!1)):(e.done=!0,s(r,!1))}),L=function(e){var t,n,r,i=p(this),o=c(e),a=v(i,RegExp),s=c(m(i));return t=new a(a===RegExp?i.source:i,s),n=!!~P(s,"g"),r=!!~P(s,"u")||!!~P(s,"v"),t.lastIndex=u(i.lastIndex),new M(t,o,n,r)};r({target:"String",proto:!0,forced:D},{matchAll:function(e){var t,n,r,o=l(this);if(d(e)){if(f(e)&&!~P(c(l(m(e))),"g"))throw new R("`.matchAll` does not allow non-global regexes");if(D)return N(o,e);if(void 0===(n=g(e,T))&&O&&"RegExp"===h(e)&&(n=L),n)return i(n,e,o)}else if(D)return N(o,e);return t=c(o),r=RegExp(e,"g"),O?i(L,r,t):r[T](t)}}),O||T in _||A(_,T,L)},40005:function(e,t,n){"use strict";var r=n(87494),i=n(12814),o=n(87432),a=n(36539),s=n(86840),l=n(63663),u=n(43576),c=n(80456),p=n(36780),d=n(12751),h=n(47726),f=n(69774),m=i("".indexOf);o("match",function(e,t,n){return[function(t){var n=c(this),i=s(t)?p(t,e):void 0;return i?r(i,t,n):new RegExp(t)[e](u(n))},function(e){var r,i=a(this),o=u(e),s=n(t,i,o);if(s.done)return s.value;var c=u(h(i));if(!~m(c,"g"))return f(i,o);var p=!!~m(c,"u")||!!~m(c,"v");i.lastIndex=0;for(var g=[],A=0;null!==(r=f(i,o));){var b=u(r[0]);g[A]=b,""===b&&(i.lastIndex=d(o,l(i.lastIndex),p)),A++}return 0===A?null:g}]})},83128:function(e,t,n){"use strict";var r=n(77341),i=n(82498).end;r({target:"String",proto:!0,forced:n(35726)},{padEnd:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},18977:function(e,t,n){"use strict";var r=n(77341),i=n(82498).start;r({target:"String",proto:!0,forced:n(35726)},{padStart:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},17959:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(60621),a=n(87670),s=n(43576),l=n(80555),u=i([].push),c=i([].join);r({target:"String",stat:!0},{raw:function(e){var t=o(a(e).raw),n=l(t);if(!n)return"";for(var r=arguments.length,i=[],p=0;;){if(u(i,s(t[p++])),p===n)return c(i,"");po.length?-1:b(o,f,T+O);return I=k&&(I+=C(s,k,L)+D,k=L+M.length)}return I+C(s,k)}]},!!s(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})||!x||I)},41381:function(e,t,n){"use strict";var r=n(87494),i=n(87432),o=n(36539),a=n(86840),s=n(80456),l=n(46149),u=n(43576),c=n(36780),p=n(69774);i("search",function(e,t,n){return[function(t){var n=s(this),i=a(t)?c(t,e):void 0;return i?r(i,t,n):new RegExp(t)[e](u(n))},function(e){var r=o(this),i=u(e),a=n(t,r,i);if(a.done)return a.value;var s=r.lastIndex;!l(s,0)&&(r.lastIndex=0);var c=p(r,i);return!l(r.lastIndex,s)&&(r.lastIndex=s),null===c?-1:c.index}]})},66397:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("small")},{small:function(){return i(this,"small","","")}})},38465:function(e,t,n){"use strict";var r=n(87494),i=n(12814),o=n(87432),a=n(36539),s=n(86840),l=n(80456),u=n(74696),c=n(12751),p=n(63663),d=n(43576),h=n(36780),f=n(47726),m=n(69774),g=n(76371),A=n(81455),b=g.UNSUPPORTED_Y,y=Math.min,v=i([].push),S=i("".slice),w=i("".indexOf),E=!A(function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}),O="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;o("split",function(e,t,n){var i="0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:r(t,this,e,n)}:t;return[function(t,n){var o=l(this),a=s(t)?h(t,e):void 0;return a?r(a,t,o,n):r(i,d(o),t,n)},function(e,r){var o=a(this),s=d(e);if(!O){var l=n(i,o,s,r,i!==t);if(l.done)return l.value}var h=u(o,RegExp),g=d(f(o)),A=!!~w(g,"u")||!!~w(g,"v");b?!~w(g,"g")&&(g+="g"):!~w(g,"y")&&(g+="y");var E=new h(b?"^(?:"+o.source+")":o,g),T=void 0===r?4294967295:r>>>0;if(0===T)return[];if(0===s.length)return null===m(E,s)?[s]:[];for(var C=0,x=0,I=[];x1?arguments[1]:void 0,t.length));return h(t,r,r+n.length)===n}})},76874:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("strike")},{strike:function(){return i(this,"strike","","")}})},76082:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("sub")},{sub:function(){return i(this,"sub","","")}})},89632:function(e,t,n){"use strict";var r=n(77341),i=n(12814),o=n(80456),a=n(11573),s=n(43576),l=i("".slice),u=Math.max,c=Math.min;r({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(e,t){var n=s(o(this)),r=n.length,i=a(e),p=i<0?u(r+i,0):c(i,r),d=void 0===t?r:a(t);if(d<=0)return"";var h=c(p+d,r);return p>=h?"":l(n,p,h)}})},13329:function(e,t,n){"use strict";var r=n(77341),i=n(13556);r({target:"String",proto:!0,forced:n(99725)("sup")},{sup:function(){return i(this,"sup","","")}})},86152:function(e,t,n){"use strict";var r=n(77341),i=n(87494),o=n(12814),a=n(80456),s=n(43576),l=n(81455),u=Array,c=o("".charAt),p=o("".charCodeAt),d=o([].join),h="".toWellFormed,f=h&&l(function(){return"1"!==i(h,1)});r({target:"String",proto:!0,forced:f},{toWellFormed:function(){var e=s(a(this));if(f)return i(h,e);for(var t=e.length,n=u(t),r=0;r=56320||r+1>=t||(64512&p(e,r+1))!=56320?n[r]="�":(n[r]=c(e,r),n[++r]=c(e,r))}return d(n,"")}})},55066:function(e,t,n){"use strict";n(3373);var r=n(77341),i=n(35398);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==i},{trimEnd:i})},20116:function(e,t,n){"use strict";var r=n(77341),i=n(4915);r({target:"String",proto:!0,name:"trimStart",forced:void 0!==i},{trimLeft:i})},3373:function(e,t,n){"use strict";var r=n(77341),i=n(35398);r({target:"String",proto:!0,name:"trimEnd",forced:void 0!==i},{trimRight:i})},69586:function(e,t,n){"use strict";n(20116);var r=n(77341),i=n(4915);r({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==i},{trimStart:i})},20655:function(e,t,n){"use strict";var r=n(77341),i=n(27169).trim;r({target:"String",proto:!0,forced:n(39353)("trim")},{trim:function(){return i(this)}})},83712:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(86711),a=n(43424),s=n(46682),l=n(27130),u=n(31153),c=n(92444),p=n(98590),d=n(50807),h=n(74735),f=n(78583),m=n(81455),g=n(83294),A=i.SuppressedError,b=f("toStringTag"),y=Error,v=!!A&&3!==A.length,S=!!A&&m(function(){return 4===new A(1,2,3,{cause:4}).cause}),w=v||S,E=function(e,t,n){var r,i=o(O,this);return s?r=w&&(!i||a(this)===O)?new A:s(new y,i?a(this):O):c(r=i?this:u(O),b,"Error"),void 0!==n&&c(r,"message",h(n)),d(r,E,r.stack,1),c(r,"error",e),c(r,"suppressed",t),r};s?s(E,y):l(E,y,{name:!0});var O=E.prototype=w?A.prototype:u(y.prototype,{constructor:p(1,E),message:p(1,""),name:p(1,"SuppressedError")});w&&!g&&(O.constructor=E),r({global:!0,constructor:!0,arity:3,forced:w},{SuppressedError:E})},48622:function(e,t,n){"use strict";var r=n(30456),i=n(79478),o=n(68235).f,a=n(13895).f,s=r.Symbol;if(i("asyncDispose"),s){var l=a(s,"asyncDispose");l.enumerable&&l.configurable&&l.writable&&o(s,"asyncDispose",{value:l.value,enumerable:!1,configurable:!1,writable:!1})}},15411:function(e,t,n){"use strict";n(79478)("asyncIterator")},39606:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(87494),a=n(12814),s=n(83294),l=n(61360),u=n(45946),c=n(81455),p=n(85848),d=n(86711),h=n(36539),f=n(60621),m=n(91051),g=n(43576),A=n(98590),b=n(31153),y=n(35387),v=n(25487),S=n(73361),w=n(74713),E=n(13895),O=n(68235),T=n(15242),C=n(322),x=n(40453),I=n(42749),k=n(19263),_=n(72566),R=n(82793),P=n(18508),N=n(78583),D=n(33233),M=n(79478),L=n(63920),B=n(78711),F=n(89904),U=n(15368).forEach,j=_("hidden"),z="Symbol",H="prototype",Z=F.set,V=F.getterFor(z),G=Object[H],W=i.Symbol,Q=W&&W[H],q=i.RangeError,K=i.TypeError,Y=i.QObject,X=E.f,J=O.f,$=S.f,ee=C.f,et=a([].push),en=k("symbols"),er=k("op-symbols"),ei=k("wks"),eo=!Y||!Y[H]||!Y[H].findChild,ea=function(e,t,n){var r=X(G,t);return r&&delete G[t],J(e,t,n),r&&e!==G&&J(G,t,r),e},es=l&&c(function(){return 7!==b(J({},"a",{get:function(){return J(this,"a",{value:7}).a}})).a})?ea:J,el=function(e,t){var n=en[e]=b(Q);return Z(n,{type:z,tag:e,description:t}),!l&&(n.description=t),n},eu=function(e,t,n){e===G&&eu(er,t,n),h(e);var r=m(t);return(h(n),p(en,r))?(("enumerable"in n?!n.enumerable:!p(e,r)||p(e,j)&&e[j][r])?(!p(e,j)&&J(e,j,A(1,b(null))),e[j][r]=!0):(p(e,j)&&e[j][r]&&(e[j][r]=!1),n=b(n,{enumerable:A(0,!1)})),es(e,r,n)):J(e,r,n)},ec=function(e,t){h(e);var n=f(t);return U(y(n).concat(ef(n)),function(t){(!l||o(ep,n,t))&&eu(e,t,n[t])}),e},ep=function(e){var t=m(e),n=o(ee,this,t);return(!(this===G&&p(en,t))||!!p(er,t))&&(!(n||!p(this,t)||!p(en,t)||p(this,j)&&this[j][t])||n)},ed=function(e,t){var n=f(e),r=m(t);if(!(n===G&&p(en,r))||p(er,r)){var i=X(n,r);return i&&p(en,r)&&!(p(n,j)&&n[j][r])&&(i.enumerable=!0),i}},eh=function(e){var t=$(f(e)),n=[];return U(t,function(e){!p(en,e)&&!p(R,e)&&et(n,e)}),n},ef=function(e){var t=e===G,n=$(t?er:f(e)),r=[];return U(n,function(e){p(en,e)&&(!t||p(G,e))&&et(r,en[e])}),r};!u&&(x(Q=(W=function(){if(d(Q,this))throw new K("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?g(arguments[0]):void 0,t=P(e),n=function(e){var r=void 0===this?i:this;r===G&&o(n,er,e),p(r,j)&&p(r[j],t)&&(r[j][t]=!1);var a=A(1,e);try{es(r,t,a)}catch(e){if(!(e instanceof q))throw e;ea(r,t,a)}};return l&&eo&&es(G,t,{configurable:!0,set:n}),el(t,e)})[H],"toString",function(){return V(this).tag}),x(W,"withoutSetter",function(e){return el(P(e),e)}),C.f=ep,O.f=eu,T.f=ec,E.f=ed,v.f=S.f=eh,w.f=ef,D.f=function(e){return el(N(e),e)},l&&(I(Q,"description",{configurable:!0,get:function(){return V(this).description}}),!s&&x(G,"propertyIsEnumerable",ep,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!u,sham:!u},{Symbol:W}),U(y(ei),function(e){M(e)}),r({target:z,stat:!0,forced:!u},{useSetter:function(){eo=!0},useSimple:function(){eo=!1}}),r({target:"Object",stat:!0,forced:!u,sham:!l},{create:function(e,t){return void 0===t?b(e):ec(b(e),t)},defineProperty:eu,defineProperties:ec,getOwnPropertyDescriptor:ed}),r({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:eh}),L(),B(W,z),R[j]=!0},84730:function(e,t,n){"use strict";var r=n(77341),i=n(61360),o=n(30456),a=n(87494),s=n(12814),l=n(85848),u=n(99821),c=n(86711),p=n(43576),d=n(42749),h=n(27130),f=o.Symbol,m=f&&f.prototype;if(i&&u(f)&&(!("description"in m)||void 0!==f().description)){var g={},A=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:p(arguments[0]),t=c(m,this)?new f(e):void 0===e?f():f(e);return""===e&&(g[t]=!0),t};h(A,f);var b=A.for;A.for=({for:function(e){var t=p(e),n=a(b,this,t);return""===t&&(g[n]=!0),n}}).for,A.prototype=m,m.constructor=A;var y="Symbol(description detection)"===String(f("description detection")),v=s(m.valueOf),S=s(m.toString),w=/^Symbol\((.*)\)[^)]+$/,E=s("".replace),O=s("".slice);d(m,"description",{configurable:!0,get:function(){var e=v(this);if(l(g,e))return"";var t=S(e),n=y?O(t,7,-1):E(t,w,"$1");return""===n?void 0:n}}),r({global:!0,constructor:!0,forced:!0},{Symbol:A})}},94304:function(e,t,n){"use strict";var r=n(30456),i=n(79478),o=n(68235).f,a=n(13895).f,s=r.Symbol;if(i("dispose"),s){var l=a(s,"dispose");l.enumerable&&l.configurable&&l.writable&&o(s,"dispose",{value:l.value,enumerable:!1,configurable:!1,writable:!1})}},1756:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(85848),a=n(43576),s=n(19263),l=n(81982),u=s("string-to-symbol-registry"),c=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!l},{for:function(e){var t=a(e);if(o(u,t))return u[t];var n=i("Symbol")(t);return u[t]=n,c[n]=t,n}})},81596:function(e,t,n){"use strict";n(79478)("hasInstance")},6280:function(e,t,n){"use strict";n(79478)("isConcatSpreadable")},79133:function(e,t,n){"use strict";n(79478)("iterator")},73249:function(e,t,n){"use strict";n(39606),n(1756),n(43359),n(21700),n(18621)},43359:function(e,t,n){"use strict";var r=n(77341),i=n(85848),o=n(83139),a=n(74263),s=n(19263),l=n(81982),u=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!l},{keyFor:function(e){if(!o(e))throw TypeError(a(e)+" is not a symbol");if(i(u,e))return u[e]}})},84562:function(e,t,n){"use strict";n(79478)("matchAll")},37257:function(e,t,n){"use strict";n(79478)("match")},58240:function(e,t,n){"use strict";n(79478)("replace")},17020:function(e,t,n){"use strict";n(79478)("search")},36668:function(e,t,n){"use strict";n(79478)("species")},19719:function(e,t,n){"use strict";n(79478)("split")},67589:function(e,t,n){"use strict";var r=n(79478),i=n(63920);r("toPrimitive"),i()},20289:function(e,t,n){"use strict";var r=n(76451),i=n(79478),o=n(78711);i("toStringTag"),o(r("Symbol"),"Symbol")},20648:function(e,t,n){"use strict";n(79478)("unscopables")},52483:function(e,t,n){"use strict";var r=n(40163),i=n(80555),o=n(11573),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("at",function(e){var t=a(this),n=i(t),r=o(e),s=r>=0?r:n+r;return s<0||s>=n?void 0:t[s]})},13286:function(e,t,n){"use strict";var r=n(12814),i=n(40163),o=r(n(16220)),a=i.aTypedArray;(0,i.exportTypedArrayMethod)("copyWithin",function(e,t){return o(a(this),e,t,arguments.length>2?arguments[2]:void 0)})},31444:function(e,t,n){"use strict";var r=n(40163),i=n(15368).every,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},76840:function(e,t,n){"use strict";var r=n(40163),i=n(12298),o=n(29499),a=n(34074),s=n(87494),l=n(12814),u=n(81455),c=r.aTypedArray,p=r.exportTypedArrayMethod,d=l("".slice);p("fill",function(e){var t=arguments.length;return c(this),s(i,this,"Big"===d(a(this),0,3)?o(e):+e,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)},u(function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e}))},29175:function(e,t,n){"use strict";var r=n(40163),i=n(15368).filter,o=n(93663),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("filter",function(e){var t=i(a(this),e,arguments.length>1?arguments[1]:void 0);return o(this,t)})},23631:function(e,t,n){"use strict";var r=n(40163),i=n(15368).findIndex,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},87148:function(e,t,n){"use strict";var r=n(40163),i=n(70225).findLastIndex,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("findLastIndex",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},53152:function(e,t,n){"use strict";var r=n(40163),i=n(70225).findLast,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("findLast",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},86921:function(e,t,n){"use strict";var r=n(40163),i=n(15368).find,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},454:function(e,t,n){"use strict";n(73890)("Float32",function(e){return function(t,n,r){return e(this,t,n,r)}})},39085:function(e,t,n){"use strict";n(73890)("Float64",function(e){return function(t,n,r){return e(this,t,n,r)}})},47005:function(e,t,n){"use strict";var r=n(40163),i=n(15368).forEach,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",function(e){i(o(this),e,arguments.length>1?arguments[1]:void 0)})},79032:function(e,t,n){"use strict";var r=n(63482);(0,n(40163).exportTypedArrayStaticMethod)("from",n(19575),r)},63168:function(e,t,n){"use strict";var r=n(40163),i=n(83355).includes,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},94245:function(e,t,n){"use strict";var r=n(40163),i=n(83355).indexOf,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},48963:function(e,t,n){"use strict";n(73890)("Int16",function(e){return function(t,n,r){return e(this,t,n,r)}})},25353:function(e,t,n){"use strict";n(73890)("Int32",function(e){return function(t,n,r){return e(this,t,n,r)}})},42520:function(e,t,n){"use strict";n(73890)("Int8",function(e){return function(t,n,r){return e(this,t,n,r)}})},5781:function(e,t,n){"use strict";var r=n(30456),i=n(81455),o=n(12814),a=n(40163),s=n(26847),l=n(78583)("iterator"),u=r.Uint8Array,c=o(s.values),p=o(s.keys),d=o(s.entries),h=a.aTypedArray,f=a.exportTypedArrayMethod,m=u&&u.prototype,g=!i(function(){m[l].call([1])}),A=!!m&&m.values&&m[l]===m.values&&"values"===m.values.name,b=function(){return c(h(this))};f("entries",function(){return d(h(this))},g),f("keys",function(){return p(h(this))},g),f("values",b,g||!A,{name:"values"}),f(l,b,g||!A,{name:"values"})},42097:function(e,t,n){"use strict";var r=n(40163),i=n(12814),o=r.aTypedArray,a=r.exportTypedArrayMethod,s=i([].join);a("join",function(e){return s(o(this),e)})},76440:function(e,t,n){"use strict";var r=n(40163),i=n(37626),o=n(58014),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",function(e){var t=arguments.length;return i(o,a(this),t>1?[e,arguments[1]]:[e])})},52497:function(e,t,n){"use strict";var r=n(40163),i=n(15368).map,o=n(93663),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("map",function(e){var t=i(a(this),e,arguments.length>1?arguments[1]:void 0);return o(this,t)})},33099:function(e,t,n){"use strict";var r=n(40163),i=n(63482),o=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",function(){for(var e=0,t=arguments.length,n=new(o(this))(t);t>e;)n[e]=arguments[e++];return n},i)},51410:function(e,t,n){"use strict";var r=n(40163),i=n(39845).right,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",function(e){var t=arguments.length;return i(o(this),e,t,t>1?arguments[1]:void 0)})},91260:function(e,t,n){"use strict";var r=n(40163),i=n(39845).left,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",function(e){var t=arguments.length;return i(o(this),e,t,t>1?arguments[1]:void 0)})},78632:function(e,t,n){"use strict";var r=n(40163),i=r.aTypedArray,o=r.exportTypedArrayMethod,a=Math.floor;o("reverse",function(){for(var e,t=i(this).length,n=a(t/2),r=0;r1?arguments[1]:void 0,1),n=l(e);if(g)return i(h,this,n,t);var r=this.length,o=a(n),u=0;if(o+t>r)throw new c("Wrong length");for(;ui;)u[i]=n[i++];return u},i(function(){new Int8Array(1).slice()}))},61791:function(e,t,n){"use strict";var r=n(40163),i=n(15368).some,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0)})},3481:function(e,t,n){"use strict";var r=n(30456),i=n(91609),o=n(81455),a=n(65085),s=n(17322),l=n(40163),u=n(61392),c=n(71949),p=n(21033),d=n(53047),h=l.aTypedArray,f=l.exportTypedArrayMethod,m=r.Uint16Array,g=m&&i(m.prototype.sort),A=!!g&&!(o(function(){g(new m(2),null)})&&o(function(){g(new m(2),{})})),b=!!g&&!o(function(){if(p)return p<74;if(u)return u<67;if(c)return!0;if(d)return d<602;var e,t,n=new m(516),r=Array(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(g(n,function(e,t){return(e/4|0)-(t/4|0)}),e=0;e<516;e++)if(n[e]!==r[e])return!0});f("sort",function(e){var t;if(void 0!==e&&a(e),b)return g(this,e);return s(h(this),(t=e,function(e,n){return void 0!==t?+t(e,n)||0:n!=n?e!=e?0:-1:e!=e?1:0===e&&0===n?1/e>0?1/n>0?0:1:1/n>0?-1:0:e>n?1:e=r||d<0)throw new p("Incorrect index");for(var f=new(u(n))(r),m=0;m1?arguments[1]:void 0,null,9007199254740991);return o(s,t.bytes)}})},35150:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(74420),a=n(7908);i.Uint8Array&&r({target:"Uint8Array",stat:!0},{fromHex:function(e){return a(o(e)).bytes}})},23977:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(47026),a=n(27463),s=i.Uint8Array,l=!s||!s.prototype.setFromBase64||!function(){var e=new s([255,255,255,255,255]);try{e.setFromBase64("",null);return}catch(e){}try{e.setFromBase64("a");return}catch(e){}try{e.setFromBase64("MjYyZg===")}catch(t){return 50===e[0]&&54===e[1]&&50===e[2]&&255===e[3]&&255===e[4]}}();s&&r({target:"Uint8Array",proto:!0,forced:l},{setFromBase64:function(e){a(this);var t=o(e,arguments.length>1?arguments[1]:void 0,this,this.length);return{read:t.read,written:t.written}}})},79168:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(74420),a=n(27463),s=n(87556),l=n(7908);i.Uint8Array&&r({target:"Uint8Array",proto:!0,forced:function(){try{var e=new ArrayBuffer(16,{maxByteLength:1024});new Uint8Array(e).setFromHex("cafed00d")}catch(e){return!0}}()},{setFromHex:function(e){a(this),o(e),s(this.buffer);var t=l(e,this).read;return{read:t,written:t/2}}})},88196:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(12814),a=n(61257),s=n(27463),l=n(87556),u=n(50135),c=n(67521),p=u.i2c,d=u.i2cUrl,h=o("".charAt),f=i.Uint8Array,m=!f||!f.prototype.toBase64||!function(){try{new f().toBase64(null)}catch(e){return!0}}();f&&r({target:"Uint8Array",proto:!0,forced:m},{toBase64:function(){var e,t=s(this),n=arguments.length?a(arguments[0]):void 0,r="base64"===c(n)?p:d,i=!!n&&!!n.omitPadding;l(this.buffer);for(var o="",u=0,f=t.length,m=function(t){return h(r,e>>6*t&63)};u+2>2)*3+(C?C-1:0)),I=0;l>(-2*T&6)));return v(x,"")}})},59454:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(76451),a=n(12814),s=n(87494),l=n(81455),u=n(43576),c=n(60968),p=n(50135).i2c,d=o("btoa"),h=Array,f=a([].join),m=a("".charAt),g=a("".charCodeAt),A=!!d&&!l(function(){return"aGk="!==d("hi")}),b=A&&!l(function(){d()}),y=A&&l(function(){return"bnVsbA=="!==d(null)}),v=A&&1!==d.length;r({global:!0,bind:!0,enumerable:!0,forced:!A||b||y||v},{btoa:function(e){if(c(arguments.length,1),A)return s(d,i,u(e));for(var t,n,r=u(e),a=new h((r.length+2)/3<<2),l=0,b=0,y=p;m(r,b)||(y="=",b%1);){if((n=g(r,b+=3/4))>255)throw new(o("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");t=t<<8|n,a[l++]=m(y,63&t>>8-b%1*8)}return f(a,"")}})},23857:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(16414).clear;r({global:!0,bind:!0,enumerable:!0,forced:i.clearImmediate!==o},{clearImmediate:o})},67398:function(e,t,n){"use strict";var r=n(30456),i=n(22685),o=n(27703),a=n(36751),s=n(92444),l=function(e){if(e&&e.forEach!==a)try{s(e,"forEach",a)}catch(t){e.forEach=a}};for(var u in i)i[u]&&l(r[u]&&r[u].prototype);l(o)},27530:function(e,t,n){"use strict";var r=n(30456),i=n(22685),o=n(27703),a=n(26847),s=n(92444),l=n(78711),u=n(78583)("iterator"),c=a.values,p=function(e,t){if(e){if(e[u]!==c)try{s(e,u,c)}catch(t){e[u]=c}if(l(e,t,!0),i[t]){for(var n in a)if(e[n]!==a[n])try{s(e,n,a[n])}catch(t){e[n]=a[n]}}}};for(var d in i)p(r[d]&&r[d].prototype,d);p(o,"DOMTokenList")},93782:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(95766),a=n(81455),s=n(31153),l=n(98590),u=n(68235).f,c=n(40453),p=n(42749),d=n(85848),h=n(70591),f=n(36539),m=n(60708),g=n(74735),A=n(82415),b=n(3101),y=n(89904),v=n(61360),S=n(83294),w="DOMException",E="DATA_CLONE_ERR",O=i("Error"),T=i(w)||function(){try{new(i("MessageChannel")||o("worker_threads").MessageChannel)().port1.postMessage(new WeakMap)}catch(e){if(e.name===E&&25===e.code)return e.constructor}}(),C=T&&T.prototype,x=O.prototype,I=y.set,k=y.getterFor(w),_="stack"in new O(w),R=function(e){return d(A,e)&&A[e].m?A[e].c:0},P=function(){h(this,N);var e=arguments.length,t=g(e<1?void 0:arguments[0]),n=g(e<2?void 0:arguments[1],"Error"),r=R(n);if(I(this,{type:w,name:n,message:t,code:r}),!v&&(this.name=n,this.message=t,this.code=r),_){var i=new O(t);i.name=w,u(this,"stack",l(1,b(i.stack,1)))}},N=P.prototype=s(x),D=function(e){return{enumerable:!0,configurable:!0,get:e}},M=function(e){return D(function(){return k(this)[e]})};v&&(p(N,"code",M("code")),p(N,"message",M("message")),p(N,"name",M("name"))),u(N,"constructor",l(1,P));var L=a(function(){return!(new T instanceof O)}),B=L||a(function(){return x.toString!==m||"2: 1"!==String(new T(1,2))}),F=L||a(function(){return 25!==new T(1,"DataCloneError").code}),U=L||25!==T[E]||25!==C[E],j=S?B||F||U:L;r({global:!0,constructor:!0,forced:j},{DOMException:j?P:T});var z=i(w),H=z.prototype;for(var Z in B&&(S||T===z)&&c(H,"toString",m),F&&v&&T===z&&p(H,"code",D(function(){return R(f(this).name)})),A)if(d(A,Z)){var V=A[Z],G=V.s,W=l(6,V.c);!d(z,G)&&u(z,G,W),!d(H,G)&&u(H,G,W)}},63355:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(76451),a=n(98590),s=n(68235).f,l=n(85848),u=n(70591),c=n(35724),p=n(74735),d=n(82415),h=n(3101),f=n(61360),m=n(83294),g="DOMException",A=o("Error"),b=o(g),y=function(){u(this,v);var e=arguments.length,t=p(e<1?void 0:arguments[0]),n=p(e<2?void 0:arguments[1],"Error"),r=new b(t,n),i=new A(t);return i.name=g,s(r,"stack",a(1,h(i.stack,1))),c(r,this,y),r},v=y.prototype=b.prototype,S="stack"in new A(g),w="stack"in new b(1,2),E=b&&f&&Object.getOwnPropertyDescriptor(i,g),O=!!E&&!(E.writable&&E.configurable),T=S&&!O&&!w;r({global:!0,constructor:!0,forced:m||T},{DOMException:T?y:b});var C=o(g),x=C.prototype;if(x.constructor!==C){for(var I in!m&&s(x,"constructor",a(1,C)),d)if(l(d,I)){var k=d[I],_=k.s;!l(C,_)&&s(C,_,a(6,k.c))}}},69250:function(e,t,n){"use strict";var r=n(76451),i=n(78711),o="DOMException";i(r(o),o)},28856:function(e,t,n){"use strict";n(23857),n(53619)},2503:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(88018),a=n(65085),s=n(60968),l=n(81455),u=n(61360);r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:l(function(){return u&&1!==Object.getOwnPropertyDescriptor(i,"queueMicrotask").value.length})},{queueMicrotask:function(e){s(arguments.length,1),o(a(e))}})},77451:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(42749),a=n(61360),s=TypeError,l=Object.defineProperty,u=i.self!==i;try{if(a){var c=Object.getOwnPropertyDescriptor(i,"self");(u||!c||!c.get||!c.enumerable)&&o(i,"self",{get:function(){return i},set:function(e){if(this!==i)throw new s("Illegal invocation");l(i,"self",{value:e,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else r({global:!0,simple:!0,forced:u},{self:i})}catch(e){}},53619:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(16414).set,a=n(41696),s=i.setImmediate?a(o,!1):o;r({global:!0,bind:!0,enumerable:!0,forced:i.setImmediate!==s},{setImmediate:s})},74764:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(41696)(i.setInterval,!0);r({global:!0,bind:!0,forced:i.setInterval!==o},{setInterval:o})},53342:function(e,t,n){"use strict";var r=n(77341),i=n(30456),o=n(41696)(i.setTimeout,!0);r({global:!0,bind:!0,forced:i.setTimeout!==o},{setTimeout:o})},14897:function(e,t,n){"use strict";var r,i=n(83294),o=n(77341),a=n(30456),s=n(76451),l=n(12814),u=n(81455),c=n(18508),p=n(99821),d=n(62219),h=n(59700),f=n(86840),m=n(83139),g=n(45249),A=n(36539),b=n(34074),y=n(85848),v=n(82250),S=n(92444),w=n(80555),E=n(60968),O=n(47726),T=n(74692),C=n(51718),x=n(16137),I=n(61589),k=n(24859),_=n(47113),R=a.Object,P=a.Array,N=a.Date,D=a.Error,M=a.TypeError,L=a.PerformanceMark,B=s("DOMException"),F=T.Map,U=T.has,j=T.get,z=T.set,H=C.Set,Z=C.add,V=C.has,G=s("Object","keys"),W=l([].push),Q=l((!0).valueOf),q=l(1.1.valueOf),K=l("".valueOf),Y=l(N.prototype.getTime),X=c("structuredClone"),J="DataCloneError",$="Transferring",ee=function(e){return!u(function(){var t=new a.Set([7]),n=e(t),r=e(R(7));return n===t||!n.has(7)||!f(r)||7!=+r})&&e},et=function(e,t){return!u(function(){var n=new t,r=e({a:n,b:n});return!(r&&r.a===r.b&&r.a instanceof t&&r.a.stack===n.stack)})},en=a.structuredClone;var er=i||!et(en,D)||!et(en,B)||(r=en,!!u(function(){var e=r(new a.AggregateError([1],X,{cause:3}));return"AggregateError"!==e.name||1!==e.errors[0]||e.message!==X||3!==e.cause})),ei=!en&&ee(function(e){return new L(X,{detail:e}).detail}),eo=ee(en)||ei,ea=function(e){throw new B("Uncloneable type: "+e,J)},es=function(e,t){throw new B((t||"Cloning")+" of "+e+" cannot be properly polyfilled in this engine",J)},el=function(e,t){return!eo&&es(t),eo(e)},eu=function(){var e;try{e=new a.DataTransfer}catch(t){try{e=new a.ClipboardEvent("").clipboardData}catch(e){}}return e&&e.items&&e.files?e:null},ec=function(e,t,n){if(U(t,e))return j(t,e);if("SharedArrayBuffer"===(n||b(e)))r=eo?eo(e):e;else{var r,i,o,s,l,u,c=a.DataView;!c&&!p(e.slice)&&es("ArrayBuffer");try{if(p(e.slice)&&!e.resizable)r=e.slice(0);else for(u=0,i=e.byteLength,o=("maxByteLength"in e)?{maxByteLength:e.maxByteLength}:void 0,r=new ArrayBuffer(i,o),s=new c(e),l=new c(r);u1&&!h(arguments[1])?A(arguments[1]):void 0,i=r?r.transfer:void 0;void 0!==i&&(n=eh(i,t=new F));var o=ed(e,t);return n&&ef(n),o}})},88946:function(e,t,n){"use strict";n(74764),n(53342)},71709:function(e,t,n){"use strict";n(26847),n(11102);var r=n(77341),i=n(30456),o=n(38666),a=n(76451),s=n(87494),l=n(12814),u=n(61360),c=n(1110),p=n(40453),d=n(42749),h=n(26252),f=n(78711),m=n(40052),g=n(89904),A=n(70591),b=n(99821),y=n(85848),v=n(37722),S=n(34074),w=n(36539),E=n(86840),O=n(43576),T=n(31153),C=n(98590),x=n(70269),I=n(4311),k=n(37056),_=n(60968),R=n(78583),P=n(17322),N=R("iterator"),D="URLSearchParams",M=D+"Iterator",L=g.set,B=g.getterFor(D),F=g.getterFor(M),U=o("fetch"),j=o("Request"),z=o("Headers"),H=j&&j.prototype,Z=z&&z.prototype,V=i.TypeError,G=i.encodeURIComponent,W=String.fromCharCode,Q=a("String","fromCodePoint"),q=parseInt,K=l("".charAt),Y=l([].join),X=l([].push),J=l("".replace),$=l([].shift),ee=l([].splice),et=l("".split),en=l("".slice),er=l(/./.exec),ei=/\+/g,eo=/^[0-9a-f]+$/i,ea=function(e,t){var n=en(e,t,t+2);return er(eo,n)?q(n,16):NaN},es=function(e){for(var t=0,n=128;n>0&&(e&n)!=0;n>>=1)t++;return t},el=function(e){var t=null,n=e.length;switch(n){case 1:t=e[0];break;case 2:t=(31&e[0])<<6|63&e[1];break;case 3:t=(15&e[0])<<12|(63&e[1])<<6|63&e[2];break;case 4:t=(7&e[0])<<18|(63&e[1])<<12|(63&e[2])<<6|63&e[3]}return null===t||t>1114111||t>=55296&&t<=57343||t<(n>3?65536:n>2?2048:n>1?128:0)?null:t},eu=function(e){for(var t=(e=J(e,ei," ")).length,n="",r=0;rt){n+="%",r++;continue}var o=ea(e,r+1);if(o!=o){n+=i,r++;continue}r+=2;var a=es(o);if(0===a)i=W(o);else{if(1===a||a>4){n+="�",r++;continue}for(var s=[o],l=1;lt)&&"%"===K(e,r);){;var u=ea(e,r+1);if(u!=u||u>191||u<128||1===l&&(224===o&&u<160||237===o&&u>159||240===o&&u<144||244===o&&u>143))break;X(s,u),r+=2,l++}if(s.length!==a){n+="�";continue}var c=el(s);if(null===c){for(var p=0;p=t.length)return e.target=null,k(void 0,!0);var r=t[n];switch(e.kind){case"keys":return k(r.key,!1);case"values":return k(r.value,!1)}return k([r.key,r.value],!1)},!0),em=function(e){this.entries=[],this.url=null,void 0!==e&&(E(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===K(e,0)?en(e,1):e:O(e)))};em.prototype={type:D,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,i,o,a,l,u=this.entries,c=I(e);if(c)for(n=(t=x(e,c)).next;!(r=s(n,t)).done;){if((a=s(o=(i=x(w(r.value))).next,i)).done||(l=s(o,i)).done||!s(o,i).done)throw new V("Expected sequence with length 2");X(u,{key:O(a.value),value:O(l.value)})}else for(var p in e)y(e,p)&&X(u,{key:p,value:O(e[p])})},parseQuery:function(e){if(e){for(var t,n,r=this.entries,i=et(e,"&"),o=0;o0?arguments[0]:void 0,t=L(this,new em(e));!u&&(this.size=t.entries.length)},eA=eg.prototype;if(h(eA,{append:function(e,t){var n=B(this);_(arguments.length,2),X(n.entries,{key:O(e),value:O(t)}),!u&&this.size++,n.updateURL()},delete:function(e){for(var t=B(this),n=_(arguments.length,1),r=t.entries,i=O(e),o=n<2?void 0:arguments[1],a=void 0===o?o:O(o),s=0;st.key?1:-1}),e.updateURL()},forEach:function(e){for(var t,n=B(this).entries,r=v(e,arguments.length>1?arguments[1]:void 0),i=0;i1?ev(arguments[1]):{})}}),b(j)){var eS=function(e){return A(this,H),new j(e,arguments.length>1?ev(arguments[1]):{})};H.constructor=eS,eS.prototype=H,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:eS})}}e.exports={URLSearchParams:eg,getState:B}},36330:function(e,t,n){"use strict";var r=n(40453),i=n(12814),o=n(43576),a=n(60968),s=URLSearchParams,l=s.prototype,u=i(l.append),c=i(l.delete),p=i(l.forEach),d=i([].push),h=new s("a=1&a=2&b=3");h.delete("a",1),h.delete("b",void 0),h+""!="a=2"&&r(l,"delete",function(e){var t,n=arguments.length,r=n<2?void 0:arguments[1];if(n&&void 0===r)return c(this,e);var i=[];p(this,function(e,t){d(i,{key:t,value:e})}),a(n,1);for(var s=o(e),l=o(r),h=0,f=i.length;h?@[\\\]^|]/,er=/[\0\t\n\r #/:<>?@[\\\]^|]/,ei=/^[\u0000-\u0020]+/,eo=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ea=/[\t\n\r]/g,es=function(e){var t,n,r=H(e,".");if(""===r[r.length-1]){if(1===r.length)return!1;r.length--}return!!M(ee,t=r[r.length-1])||!!M(J,t)&&(""===(n=Z(t,2))||!!M(et,n))},el=function(e){var t,n,r,i,o,a,s,l=H(e,".");if(l.length&&""===l[l.length-1]&&l.length--,(t=l.length)>4)return null;for(r=0,n=[];r1&&"0"===D(i,0)&&(o=M(J,i)?16:8,i=Z(i,8===o?1:2)),""===i)a=0;else{if(!M(10===o?ee:8===o?$:et,i))return null;a=R(i,o)}U(n,a)}for(r=0;r=N(256,5-t))return null}else if(a>255)return null;for(r=0,s=F(n);r6)return;for(r=0;d();){if(i=null,r>0){if("."!==d()||!(r<4))return;p++}if(!M(X,d()))return;for(;M(X,d());){if(o=R(d(),10),null===i)i=o;else{if(0===i)return;i=10*i+o}if(i>255)return;p++}l[u]=256*l[u]+i,(2==++r||4===r)&&u++}if(4!==r)return;break}if(":"===d()){if(p++,!d())return}else if(d())return;l[u++]=t}if(null!==c)for(a=u-c,u=7;0!==u&&a>0;)s=l[u],l[u--]=l[c+a-1],l[c+--a]=s;else if(8!==u)return;return l},ec=function(e){for(var t=null,n=1,r=null,i=0,o=0;o<8;o++)0!==e[o]?(i>n&&(t=r,n=i),r=null,i=0):(null===r&&(r=o),++i);return i>n?r:t},ep=function(e){var t,n,r,i;if("number"==typeof e){for(n=0,t=[];n<4;n++)G(t,e%256),e=P(e/256);return L(t,".")}if("object"==typeof e){for(n=0,t="",r=ec(e);n<8;n++)(!i||0!==e[n])&&(i&&(i=!1),r===n?(t+=n?":":"::",i=!0):(t+=B(e[n],16),n<7&&(t+=":")));return"["+t+"]"}return e},ed={},eh=f({},ed,{" ":1,'"':1,"#":1,"<":1,">":1}),ef=f({},eh,{"'":1}),em=f({},ed,{" ":1,'"':1,"<":1,">":1,"`":1}),eg=f({},em,{"#":1,"?":1,"{":1,"}":1,"^":1}),eA=f({},eg,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),eb=function(e,t){var n=A(e,0);return n>=32&&n<127&&!h(t,e)?e:"'"===e&&h(t,e)?"%27":_(e)},ey={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ev=function(e,t){var n;return 2===e.length&&M(K,D(e,0))&&(":"===(n=D(e,1))||!t&&"|"===n)},eS=function(e){var t;return e.length>1&&ev(Z(e,0,2))&&(2===e.length||"/"===(t=D(e,2))||"\\"===t||"?"===t||"#"===t)},ew={},eE={},eO={},eT={},eC={},ex={},eI={},ek={},e_={},eR={},eP={},eN={},eD={},eM={},eL={},eB={},eF={},eU={},ej={},ez={},eH={},eZ=function(e,t,n){var r,i,o,a=y(e);if(t){if(i=this.parse(a))throw new k(i);this.searchParams=null}else{if(void 0!==n&&(r=new eZ(n,!0)),i=this.parse(a,null,r))throw new k(i);(o=x(new C)).bindURL(this),this.searchParams=o}};eZ.prototype={type:"URL",parse:function(e,t,n){var i=t||ew,o=0,a="",s=!1,l=!1,u=!1;for(e=y(e),!t&&(this.scheme="",this.username="",this.password="",this.host=null,this.port=null,this.path=[],this.query=null,this.fragment=null,this.cannotBeABaseURL=!1,e=j(e,ei,""),e=j(e,eo,"$1")),c=m(e=j(e,ea,""));o<=c.length;){switch(p=c[o],i){case ew:if(p&&M(K,p))a+=V(p),i=eE;else{if(t)return W;i=eO;continue}break;case eE:if(p&&M(Y,p))a+=V(p);else if(":"===p){if(t&&(this.isSpecial()!==h(ey,a)||"file"===a&&(this.includesCredentials()||null!==this.port)||"file"===this.scheme&&""===this.host))return;if(this.scheme=a,t){this.isSpecial()&&ey[this.scheme]===this.port&&(this.port=null);return}a="","file"===this.scheme?i=eM:this.isSpecial()&&n&&n.scheme===this.scheme?i=eT:this.isSpecial()?i=ek:"/"===c[o+1]?(i=eC,o++):(this.cannotBeABaseURL=!0,U(this.path,""),i=ej)}else{if(t)return W;a="",i=eO,o=0;continue}break;case eO:if(!n||n.cannotBeABaseURL&&"#"!==p)return W;if(n.cannotBeABaseURL&&"#"===p){this.scheme=n.scheme,this.path=g(n.path),this.query=n.query,this.fragment="",this.cannotBeABaseURL=!0,i=eH;break}i="file"===n.scheme?eM:ex;continue;case eT:if("/"===p&&"/"===c[o+1])i=e_,o++;else{i=ex;continue}break;case eC:if("/"===p){i=eR;break}i=eU;continue;case ex:if(this.scheme=n.scheme,p===r)this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,this.path=g(n.path),this.query=n.query;else if("/"===p||"\\"===p&&this.isSpecial())i=eI;else if("?"===p)this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,this.path=g(n.path),this.query="",i=ez;else if("#"===p)this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,this.path=g(n.path),this.query=n.query,this.fragment="",i=eH;else{this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,this.path=g(n.path),this.path.length&&this.path.length--,i=eU;continue}break;case eI:if(this.isSpecial()&&("/"===p||"\\"===p))i=e_;else if("/"===p)i=eR;else{this.username=n.username,this.password=n.password,this.host=n.host,this.port=n.port,i=eU;continue}break;case ek:if(i=e_,"/"!==p||"/"!==c[o+1])continue;o++;break;case e_:if("/"!==p&&"\\"!==p){i=eR;continue}break;case eR:if("@"===p){s&&(a="%40"+a),s=!0,d=m(a);for(var c,p,d,f,A,b,v=0;v65535)return q;this.port=this.isSpecial()&&E===ey[this.scheme]?null:E,a=""}if(t)return;i=eF;continue}break;case eM:if(this.scheme="file",this.host="","/"===p||"\\"===p)i=eL;else if(n&&"file"===n.scheme)switch(p){case r:this.host=n.host,this.path=g(n.path),this.query=n.query;break;case"?":this.host=n.host,this.path=g(n.path),this.query="",i=ez;break;case"#":this.host=n.host,this.path=g(n.path),this.query=n.query,this.fragment="",i=eH;break;default:this.host=n.host,!eS(L(g(c,o),""))&&(this.path=g(n.path),this.shortenPath()),i=eU;continue}else{i=eU;continue}break;case eL:if("/"===p||"\\"===p){i=eB;break}n&&"file"===n.scheme&&(this.host=n.host,!eS(L(g(c,o),""))&&ev(n.path[0],!0)&&U(this.path,n.path[0])),i=eU;continue;case eB:if(p===r||"/"===p||"\\"===p||"?"===p||"#"===p){if(!t&&ev(a))i=eU;else if(""===a){if(this.host="",t)return;i=eF}else{if(f=this.parseHost(a))return f;if("localhost"===this.host&&(this.host=""),t)return;a="",i=eF}continue}a+=p;break;case eF:if(this.isSpecial()){if(i=eU,"/"!==p&&"\\"!==p)continue}else if(t||"?"!==p){if(t||"#"!==p){if(p!==r&&(i=eU,"/"!==p))continue}else this.fragment="",i=eH}else this.query="",i=ez;break;case eU:if(p===r||"/"===p||"\\"===p&&this.isSpecial()||!t&&("?"===p||"#"===p)){;if(".."===(A=V(A=a))||"%2e."===A||".%2e"===A||"%2e%2e"===A)this.shortenPath(),"/"!==p&&!("\\"===p&&this.isSpecial())&&U(this.path,"");else{;if("."===(b=a)||"%2e"===V(b))"/"!==p&&!("\\"===p&&this.isSpecial())&&U(this.path,"");else"file"===this.scheme&&!this.path.length&&ev(a)&&(null!==this.host&&""!==this.host&&(this.host=""),a=D(a,0)+":"),U(this.path,a)}if(a="","file"===this.scheme&&(p===r||"?"===p||"#"===p))for(;this.path.length>1&&""===this.path[0];)z(this.path);"?"===p?(this.query="",i=ez):"#"===p&&(this.fragment="",i=eH)}else a+=eb(p,eg);break;case ej:"?"===p?(this.query="",i=ez):"#"===p?(this.fragment="",i=eH):p!==r&&(this.path[0]+=eb(p,ed));break;case ez:t||"#"!==p?p!==r&&(this.query+=eb(p,this.isSpecial()?ef:eh)):(this.fragment="",i=eH);break;case eH:p!==r&&(this.fragment+=eb(p,em))}o++}},parseHost:function(e){var t,n,r;if("["===D(e,0)){if("]"!==D(e,e.length-1)||!(t=eu(Z(e,1,-1))))return Q;this.host=t}else if(this.isSpecial()){if(M(en,e=b(e)))return Q;if(es(e)){if(null===(t=el(e)))return Q;this.host=t}else this.host=e}else{if(M(er,e))return Q;for(r=0,t="",n=m(e);r1&&""===o[0]&&(l+="/."),l+=this.cannotBeABaseURL?o[0]:o.length?"/"+L(o,"/"):"",null!==a&&(l+="?"+a),null!==s&&(l+="#"+s),l},setHref:function(e){var t=this.parse(e);if(t)throw new k(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"===e)try{return new eV(this.path[0]).origin}catch(e){return"null"}return"file"!==e&&this.isSpecial()?e+"://"+ep(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(y(e)+":",ew)},getUsername:function(){return this.username},setUsername:function(e){var t=m(y(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var n=0;n1?arguments[1]:void 0,r=O(t,new eZ(e,!1,n));!o&&(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},eG=eV.prototype,eW=function(e,t){return{get:function(){return T(this)[e]()},set:t&&function(e){return T(this)[t](e)},configurable:!0,enumerable:!0}};if(o&&(p(eG,"href",eW("serialize","setHref")),p(eG,"origin",eW("getOrigin")),p(eG,"protocol",eW("getProtocol","setProtocol")),p(eG,"username",eW("getUsername","setUsername")),p(eG,"password",eW("getPassword","setPassword")),p(eG,"host",eW("getHost","setHost")),p(eG,"hostname",eW("getHostname","setHostname")),p(eG,"port",eW("getPort","setPort")),p(eG,"pathname",eW("getPathname","setPathname")),p(eG,"search",eW("getSearch","setSearch")),p(eG,"searchParams",eW("getSearchParams")),p(eG,"hash",eW("getHash","setHash"))),c(eG,"toJSON",function(){return T(this).serialize()},{enumerable:!0}),c(eG,"toString",function(){return T(this).serialize()},{enumerable:!0}),I){var eQ=I.createObjectURL,eq=I.revokeObjectURL;eQ&&c(eV,"createObjectURL",l(eQ,I)),eq&&c(eV,"revokeObjectURL",l(eq,I))}v(eV,"URL"),i({global:!0,constructor:!0,forced:!a,sham:!o},{URL:eV})},41465:function(e,t,n){"use strict";n(20204)},30601:function(e,t,n){"use strict";var r=n(77341),i=n(76451),o=n(60968),a=n(43576),s=n(1110),l=i("URL");r({target:"URL",stat:!0,forced:!s},{parse:function(e){var t=o(arguments.length,1),n=a(e),r=t<2||void 0===arguments[1]?void 0:a(arguments[1]);try{return new l(n,r)}catch(e){return null}}})},34845:function(e,t,n){"use strict";var r=n(77341),i=n(87494);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return i(URL.prototype.toString,this)}})},8647:function(e,t,n){"use strict";n(73249),n(84730),n(48622),n(15411),n(94304),n(81596),n(6280),n(79133),n(37257),n(84562),n(58240),n(17020),n(36668),n(19719),n(67589),n(20289),n(20648),n(40777),n(23384),n(31418),n(446),n(87671),n(83712),n(55619),n(12212),n(84140),n(1709),n(63430),n(25518),n(70021),n(14487),n(86782),n(91298),n(24674),n(81315),n(49193),n(55204),n(39710),n(87622),n(21868),n(26847),n(38997),n(66778),n(24819),n(89674),n(2394),n(44438),n(41305),n(6988),n(69643),n(14328),n(18574),n(47296),n(13571),n(37339),n(34051),n(15519),n(20678),n(78152),n(73042),n(45146),n(78136),n(85696),n(73350),n(7324),n(28267),n(46209),n(97810),n(43044),n(83694),n(344),n(33272),n(71190),n(12244),n(46323),n(59129),n(61712),n(13699),n(88802),n(43457),n(98389),n(72040),n(13189),n(13715),n(81738),n(75434),n(60399),n(8302),n(33480),n(94814),n(29981),n(55770),n(22960),n(31845),n(6989),n(93190),n(72489),n(13101),n(92581),n(76622),n(80158),n(99572),n(21700),n(92377),n(7175),n(97582),n(87995),n(61222),n(66585),n(22773),n(10416),n(48783),n(69094),n(15170),n(60878),n(89067),n(23437),n(69068),n(52978),n(27427),n(95417),n(62958),n(5235),n(40563),n(23178),n(88433),n(28273),n(9262),n(96821),n(32396),n(60515),n(35385),n(99233),n(12389),n(68076),n(58266),n(95203),n(87854),n(60226),n(25718),n(4295),n(87799),n(79817),n(61550),n(70349),n(15142),n(83836),n(48454),n(59741),n(18514),n(96389),n(19836),n(56995),n(29573),n(78307),n(90601),n(29784),n(98354),n(70822),n(28501),n(24533),n(67405),n(85437),n(96395),n(28417),n(36172),n(821),n(54480),n(69920),n(35100),n(70820),n(1455),n(10189),n(60862),n(67496),n(17074),n(95353),n(16995),n(80706),n(87040),n(63849),n(31454),n(11161),n(36205),n(24233),n(12829),n(42655),n(54194),n(69606),n(28123),n(68947),n(23693),n(51033),n(576),n(65640),n(95666),n(28660),n(64455),n(60142),n(20727),n(32192),n(56303),n(11353),n(67886),n(65451),n(46015),n(38334),n(94880),n(75643),n(29761),n(5458),n(38077),n(26086),n(11102),n(56389),n(37451),n(48694),n(40005),n(49685),n(83128),n(18977),n(17959),n(10490),n(6202),n(17994),n(41381),n(38465),n(44261),n(89632),n(86152),n(20655),n(55066),n(69586),n(52700),n(70008),n(70610),n(59224),n(24826),n(33063),n(40416),n(10910),n(78122),n(66397),n(76874),n(76082),n(13329),n(454),n(39085),n(42520),n(48963),n(25353),n(9306),n(33250),n(38559),n(31373),n(52483),n(13286),n(31444),n(76840),n(29175),n(86921),n(23631),n(53152),n(87148),n(47005),n(79032),n(63168),n(94245),n(5781),n(42097),n(76440),n(52497),n(33099),n(91260),n(51410),n(78632),n(17654),n(97776),n(61791),n(3481),n(43987),n(67946),n(18248),n(5099),n(30022),n(7303),n(73680),n(35150),n(23977),n(79168),n(88196),n(74062),n(95523),n(52530),n(76181),n(78843),n(30890),n(8314),n(59454),n(67398),n(27530),n(93782),n(63355),n(69250),n(28856),n(2503),n(77451),n(14897),n(88946),n(41465),n(36707),n(30601),n(34845),n(95729),n(36330),n(38221),n(75863),n(61728)},16019:function(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,i){if(1&i&&(r=this(r)),8&i||"object"==typeof r&&r&&(4&i&&r.__esModule||16&i&&"function"==typeof r.then))return r;var o=Object.create(null);n.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var s=2&i&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach(function(e){a[e]=function(){return r[e]}});return a.default=function(){return r},n.d(o,a),o}})(),n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.k=function(e){return""+e+".css"},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.rv=function(){return"1.0.0"},(()=>{var e={},t="openstudioreleases",r="data-webpack-loading",i=function(e,i,o,a,s){var l,u,c="chunk-"+e;if(!a){for(var p=document.getElementsByTagName("link"),d=0;d{var s,l,u="",c="",p="",d={},h="--webpack-"+t+"-"+a,f=1,m={};try{!o&&(o=i(a));for(var g=o.sheet.cssRules||o.sheet.rules,A=g.length-1;A>-1&&!s;){var b=g[A--].style;if(!!b)s=b.getPropertyValue(h)}}catch(e){}if(!s&&(s=getComputedStyle(document.head).getPropertyValue(h)),!s)return;var y,v={},S=s[0],w=S,E=S,O=256;for(l=1;l65535&&(O=256,v={}),w=y;for(l=0,s=E;f;l++)58==(f=s.charCodeAt(l))?(c=u,u=""):47==f?(u=u.replace(/^_/,""),c=c.replace(/^_/,""),p?m.push(c,p,u):d[c]=void 0===d[c]?u:d[c]+" "+u,u="",c="",p=""):38==f?n.r(d):f&&44!=f?92==f?u+=s[++l]:64==f?(p=u,u=""):u+=s[l]:(r[u=u.replace(/^_/,"")]=((e,t,r)=>{!function(e,t){for(var r=0;r 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n var newProps = {};\n\n for (var _key in props) {\n if (hasOwn.call(props, _key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var _key2 in props) {\n if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n newProps[_key2] = props[_key2];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-f0de968e.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-f0de968e.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx = function jsx(type, props) {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n(function (_jsx) {\n var JSX;\n\n (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));\n})(jsx || (jsx = {}));\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nfunction keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n}\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z\"\n}), 'ArrowBack');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars &&\n // The error should throw only for the root theme creation because user is not allowed to use a custom node `vars`.\n // `generateCssVars` is the closest identifier for checking that the `options` is a result of `extendTheme` with CSS variables so that user can create new theme for nested ThemeProvider.\n options.generateCssVars === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","export default '$$material';","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","import capitalize from '@mui/utils/capitalize';\nexport default capitalize;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n // the will define the property that has `currentColor`\n // for example heroicons uses fill=\"none\" and stroke=\"currentColor\"\n fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox,\n hasSvgAsChild\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, hasSvgAsChild && children.props, {\n ownerState: ownerState,\n children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import debounce from '@mui/utils/debounce';\nexport default debounce;","import createChainedFunction from '@mui/utils/createChainedFunction';\nexport default createChainedFunction;","import deprecatedPropType from '@mui/utils/deprecatedPropType';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import requirePropFactory from '@mui/utils/requirePropFactory';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import setRef from '@mui/utils/setRef';\nexport default setRef;","'use client';\n\nimport useId from '@mui/utils/useId';\nexport default useId;","import unsupportedProp from '@mui/utils/unsupportedProp';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/utils';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import isMuiElement from '@mui/utils/isMuiElement';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","import ownerDocument from '@mui/utils/ownerDocument';\nexport default ownerDocument;","import ownerWindow from '@mui/utils/ownerWindow';\nexport default ownerWindow;","'use client';\n\nimport useControlled from '@mui/utils/useControlled';\nexport default useControlled;","'use client';\n\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nexport default useEnhancedEffect;","'use client';\n\nimport useEventCallback from '@mui/utils/useEventCallback';\nexport default useEventCallback;","'use client';\n\nimport useForkRef from '@mui/utils/useForkRef';\nexport default useForkRef;","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","'use client';\n\nimport useIsFocusVisible from '@mui/utils/useIsFocusVisible';\nexport default useIsFocusVisible;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\n\nvar isDevelopment = false;\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n // eslint-disable-next-line prefer-spread\n styles.push.apply(styles, args);\n } else {\n var templateStringsArr = args[0];\n\n styles.push(templateStringsArr[0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], templateStringsArr[i]);\n }\n }\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n var newStyled = createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n }));\n return newStyled.apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/react';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\nimport '@emotion/utils';\nimport 'react';\nimport '@emotion/is-prop-valid';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// bind it to avoid mutating the original function\nvar styled = createStyled.bind(null);\ntags.forEach(function (tagName) {\n styled[tagName] = styled(tagName);\n});\n\nexport { styled as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getCache(injectFirst, enableCssLayer) {\n const emotionCache = createCache({\n key: 'css',\n prepend: injectFirst\n });\n if (enableCssLayer) {\n const prevInsert = emotionCache.insert;\n emotionCache.insert = (...args) => {\n if (!args[1].styles.match(/^@layer\\s+[^{]*$/)) {\n // avoid nested @layer\n args[1].styles = `@layer mui {${args[1].styles}}`;\n }\n return prevInsert(...args);\n };\n }\n return emotionCache;\n}\nconst cacheMap = new Map();\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n enableCssLayer,\n children\n } = props;\n const cache = React.useMemo(() => {\n const cacheKey = `${injectFirst}-${enableCssLayer}`;\n if (typeof document === 'object' && cacheMap.has(cacheKey)) {\n return cacheMap.get(cacheKey);\n }\n const fresh = getCache(injectFirst, enableCssLayer);\n cacheMap.set(cacheKey, fresh);\n return fresh;\n }, [injectFirst, enableCssLayer]);\n if (injectFirst || enableCssLayer) {\n return /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n });\n }\n return children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * If true, MUI styles are wrapped in CSS `@layer mui` rule.\n * It helps to override MUI styles when using CSS Modules, Tailwind CSS, plain CSS, or any other styling solution.\n */\n enableCssLayer: PropTypes.bool,\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","/**\n * @mui/styled-engine v5.18.0\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nimport { serializeStyles as emSerializeStyles } from '@emotion/serialize';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\n\n// Emotion only accepts an array, but we want to avoid allocations\nconst wrapper = [];\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_serializeStyles(styles) {\n wrapper[0] = styles;\n return emSerializeStyles(wrapper);\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nfunction shallowLayer(serialized, layerName) {\n if (layerName && serialized && typeof serialized === 'object' && serialized.styles && !serialized.styles.startsWith('@layer') // only add the layer if it is not already there.\n ) {\n serialized.styles = `@layer ${layerName}{${String(serialized.styles)}}`;\n }\n return serialized;\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref, layerName) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props), layerName));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n const variantStyle = typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style;\n result.push(layerName ? shallowLayer((0, _styledEngine.internal_serializeStyles)(variantStyle), layerName) : variantStyle);\n }\n });\n return result;\n }\n return layerName ? shallowLayer((0, _styledEngine.internal_serializeStyles)(resolvedStylesArg), layerName) : resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n const layerName = componentName && componentName.startsWith('Mui') || !!componentSlot ? 'components' : 'custom';\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => {\n const theme = resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n });\n return processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? layerName : undefined);\n };\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? 'theme' : undefined);\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? 'theme' : undefined);\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {},\n nested\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme,\n nested: true\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n if (!nested && theme.modularCssLayers) {\n return {\n '@layer sx': removeUnusedBreakpoints(breakpointsKeys, css)\n };\n }\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _styledEngine = require(\"@mui/styled-engine\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(_styledEngine.ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nvar _default = exports.default = useTheme;","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\n\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if ( /*#__PURE__*/React.isValidElement(source) || !isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if ( /*#__PURE__*/React.isValidElement(source[key])) {\n output[key] = source[key];\n } else if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import ClassNameGenerator from '../ClassNameGenerator';\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n\n// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nfunction index (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) ; else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per GeneratorResume behavior specified since ES2015:\n // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next method, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable != null) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar style_to_object_1 = __importDefault(require(\"style-to-object\"));\nvar utilities_1 = require(\"./utilities\");\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style, options) {\n var output = {};\n if (!style || typeof style !== 'string') {\n return output;\n }\n (0, style_to_object_1.default)(style, function (property, value) {\n // skip CSS comment\n if (property && value) {\n output[(0, utilities_1.camelCase)(property, options)] = value;\n }\n });\n return output;\n}\nStyleToJS.default = StyleToJS;\nmodule.exports = StyleToJS;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.camelCase = void 0;\nvar CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nvar HYPHEN_REGEX = /-([a-z])/g;\nvar NO_HYPHEN_REGEX = /^[^-]+$/;\nvar VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nvar MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n/**\n * Checks whether to skip camelCase.\n */\nvar skipCamelCase = function (property) {\n return !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n};\n/**\n * Replacer that capitalizes first character.\n */\nvar capitalize = function (match, character) {\n return character.toUpperCase();\n};\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nvar trimHyphen = function (match, prefix) { return \"\".concat(prefix, \"-\"); };\n/**\n * CamelCases a CSS property.\n */\nvar camelCase = function (property, options) {\n if (options === void 0) { options = {}; }\n if (skipCamelCase(property)) {\n return property;\n }\n property = property.toLowerCase();\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n }\n else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n return property.replace(HYPHEN_REGEX, capitalize);\n};\nexports.camelCase = camelCase;\n//# sourceMappingURL=utilities.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StyleToObject;\nconst inline_style_parser_1 = __importDefault(require(\"inline-style-parser\"));\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nfunction StyleToObject(style, iterator) {\n let styleObject = null;\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n const declarations = (0, inline_style_parser_1.default)(style);\n const hasIterator = typeof iterator === 'function';\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n const { property, value } = declaration;\n if (hasIterator) {\n iterator(property, value, declaration);\n }\n else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n return styleObject;\n}\n//# sourceMappingURL=index.js.map","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/* eslint-disable no-prototype-builtins */\nvar g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {}\n\nvar support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type)\n var encoding = match ? match[1] : 'utf-8'\n reader.readAsText(blob, encoding)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._noBody = true;\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n try {\n headers.append(key, value)\n } catch (error) {\n console.warn('Response ' + error.message)\n }\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 200, statusText: ''})\n response.ok = false\n response.status = 0\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = g.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name))\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value)\n }\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!g.fetch) {\n g.fetch = fetch\n g.Headers = Headers\n g.Request = Request\n g.Response = Response\n}\n","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet _Symbol$toStringTag, _Symbol$hasInstance, _Symbol$toStringTag2;\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n_Symbol$toStringTag = Symbol.toStringTag;\nclass ValidationErrorNoStack {\n constructor(errorOrErrors, value, field, type) {\n this.name = void 0;\n this.message = void 0;\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = void 0;\n this.inner = void 0;\n this[_Symbol$toStringTag] = 'Error';\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n const innerErrors = err.inner.length ? err.inner : [err];\n this.inner.push(...innerErrors);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n }\n}\n_Symbol$hasInstance = Symbol.hasInstance;\n_Symbol$toStringTag2 = Symbol.toStringTag;\nclass ValidationError extends Error {\n static formatError(message, params) {\n // Attempt to make the path more friendly for error message interpolation.\n const path = params.label || params.path || 'this';\n // Store the original path under `originalPath` so it isn't lost to custom\n // message functions; e.g., ones provided in `setLocale()` calls.\n params = Object.assign({}, params, {\n path,\n originalPath: params.path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type, disableStack) {\n const errorNoStack = new ValidationErrorNoStack(errorOrErrors, value, field, type);\n if (disableStack) {\n return errorNoStack;\n }\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = [];\n this.inner = [];\n this[_Symbol$toStringTag2] = 'Error';\n this.name = errorNoStack.name;\n this.message = errorNoStack.message;\n this.type = errorNoStack.type;\n this.value = errorNoStack.value;\n this.path = errorNoStack.path;\n this.errors = errorNoStack.errors;\n this.inner = errorNoStack.inner;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ValidationError);\n }\n }\n static [_Symbol$hasInstance](inst) {\n return ValidationErrorNoStack[Symbol.hasInstance](inst) || super[Symbol.hasInstance](inst);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n datetime: '${path} must be a valid ISO date-time',\n datetime_precision: '${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits',\n datetime_offset: '${path} must be a valid ISO date-time with UTC \"Z\" timezone',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}',\n exact: '${path} object contains unknown properties: ${properties}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean,\n tuple\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly,\n disableStackTrace = schema.spec.disableStackTrace\n } = options;\n const resolveOptions = {\n value,\n parent,\n context\n };\n function createError(overrides = {}) {\n const nextParams = resolveParams(Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec,\n disableStackTrace: overrides.disableStackTrace || disableStackTrace\n }, params, overrides.params), resolveOptions);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name, nextParams.disableStackTrace);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve(item) {\n return resolveMaybeRef(item, resolveOptions);\n },\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (shouldSkip) {\n return handleResult(true);\n }\n let result;\n try {\n var _result;\n result = test.call(ctx, value, ctx);\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n if (options.sync) {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n return Promise.resolve(result).then(handleResult, handleError);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\n// Warning: mutates the input\nfunction resolveParams(params, options) {\n if (!params) return params;\n for (const key of Object.keys(params)) {\n params[key] = resolveMaybeRef(params[key], options);\n }\n return params;\n}\nfunction resolveMaybeRef(item, options) {\n return Reference.isRef(item) ? item.getValue(options.value, options.parent, options.context) : item;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\n/**\n * Copied from @standard-schema/spec to avoid having a dependency on it.\n * https://github.com/standard-schema/standard-schema/blob/main/packages/spec/src/index.ts\n */\n\nfunction createStandardPath(path) {\n if (!(path != null && path.length)) {\n return undefined;\n }\n\n // Array to store the final path segments\n const segments = [];\n // Buffer for building the current segment\n let currentSegment = '';\n // Track if we're inside square brackets (array/property access)\n let inBrackets = false;\n // Track if we're inside quotes (for property names with special chars)\n let inQuotes = false;\n for (let i = 0; i < path.length; i++) {\n const char = path[i];\n if (char === '[' && !inQuotes) {\n // When entering brackets, push any accumulated segment after splitting on dots\n if (currentSegment) {\n segments.push(...currentSegment.split('.').filter(Boolean));\n currentSegment = '';\n }\n inBrackets = true;\n continue;\n }\n if (char === ']' && !inQuotes) {\n if (currentSegment) {\n // Handle numeric indices (e.g. arr[0])\n if (/^\\d+$/.test(currentSegment)) {\n segments.push(currentSegment);\n } else {\n // Handle quoted property names (e.g. obj[\"foo.bar\"])\n segments.push(currentSegment.replace(/^\"|\"$/g, ''));\n }\n currentSegment = '';\n }\n inBrackets = false;\n continue;\n }\n if (char === '\"') {\n // Toggle quote state for handling quoted property names\n inQuotes = !inQuotes;\n continue;\n }\n if (char === '.' && !inBrackets && !inQuotes) {\n // On dots outside brackets/quotes, push current segment\n if (currentSegment) {\n segments.push(currentSegment);\n currentSegment = '';\n }\n continue;\n }\n currentSegment += char;\n }\n\n // Push any remaining segment after splitting on dots\n if (currentSegment) {\n segments.push(...currentSegment.split('.').filter(Boolean));\n }\n return segments;\n}\nfunction createStandardIssues(error, parentPath) {\n const path = parentPath ? `${parentPath}.${error.path}` : error.path;\n return error.errors.map(err => ({\n message: err,\n path: createStandardPath(path)\n }));\n}\nfunction issuesFromValidationError(error, parentPath) {\n var _error$inner;\n if (!((_error$inner = error.inner) != null && _error$inner.length) && error.errors.length) {\n return createStandardIssues(error, parentPath);\n }\n const path = parentPath ? `${parentPath}.${error.path}` : error.path;\n return error.inner.flatMap(err => issuesFromValidationError(err, path));\n}\n\n// If `CustomSchemaMeta` isn't extended with any keys, we'll fall back to a\n// loose Record definition allowing free form usage.\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n disableStackTrace: false,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive, _options$disableStack;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive,\n disableStackTrace: (_options$disableStack = options.disableStackTrace) != null ? _options$disableStack : this.spec.disableStackTrace\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({}, options, {\n value\n // parent: options.parent,\n // context: options.context,\n }));\n\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this, options), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n Array.isArray(err) ? nestedErrors.push(...err) : nestedErrors.push(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${isIndex ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n var _options$disableStack2;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let disableStackTrace = (_options$disableStack2 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack2 : schema.spec.disableStackTrace;\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated, undefined, undefined, disableStackTrace));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n var _options$disableStack3;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n let disableStackTrace = (_options$disableStack3 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack3 : schema.spec.disableStackTrace;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value, undefined, undefined, disableStackTrace);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this, options) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.filter((n, idx, list) => list.findIndex(c => c.OPTIONS.name === n.OPTIONS.name) === idx).map(fn => {\n const params = fn.OPTIONS.params && options ? resolveParams(Object.assign({}, fn.OPTIONS.params), options) : fn.OPTIONS.params;\n return {\n name: fn.OPTIONS.name,\n params\n };\n })\n };\n return description;\n }\n get ['~standard']() {\n const schema = this;\n const standard = {\n version: 1,\n vendor: 'yup',\n async validate(value) {\n try {\n const result = await schema.validate(value, {\n abortEarly: false\n });\n return {\n value: result\n };\n } catch (err) {\n if (err instanceof ValidationError) {\n return {\n issues: issuesFromValidationError(err)\n };\n }\n throw err;\n }\n }\n };\n return standard;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw) => {\n if (this.spec.coerce && !this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n/**\n * This file is a modified version of the file from the following repository:\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n\n// prettier-ignore\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nconst isoReg = /^(\\d{4}|[+-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,.](\\d{1,}))?)?(?:(Z)|([+-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction parseIsoDate(date) {\n const struct = parseDateStruct(date);\n if (!struct) return Date.parse ? Date.parse(date) : Number.NaN;\n\n // timestamps without timezone identifiers should be considered local time\n if (struct.z === undefined && struct.plusMinus === undefined) {\n return new Date(struct.year, struct.month, struct.day, struct.hour, struct.minute, struct.second, struct.millisecond).valueOf();\n }\n let totalMinutesOffset = 0;\n if (struct.z !== 'Z' && struct.plusMinus !== undefined) {\n totalMinutesOffset = struct.hourOffset * 60 + struct.minuteOffset;\n if (struct.plusMinus === '+') totalMinutesOffset = 0 - totalMinutesOffset;\n }\n return Date.UTC(struct.year, struct.month, struct.day, struct.hour, struct.minute + totalMinutesOffset, struct.second, struct.millisecond);\n}\nfunction parseDateStruct(date) {\n var _regexResult$7$length, _regexResult$;\n const regexResult = isoReg.exec(date);\n if (!regexResult) return null;\n\n // use of toNumber() avoids NaN timestamps caused by “undefined”\n // values being passed to Date constructor\n return {\n year: toNumber(regexResult[1]),\n month: toNumber(regexResult[2], 1) - 1,\n day: toNumber(regexResult[3], 1),\n hour: toNumber(regexResult[4]),\n minute: toNumber(regexResult[5]),\n second: toNumber(regexResult[6]),\n millisecond: regexResult[7] ?\n // allow arbitrary sub-second precision beyond milliseconds\n toNumber(regexResult[7].substring(0, 3)) : 0,\n precision: (_regexResult$7$length = (_regexResult$ = regexResult[7]) == null ? void 0 : _regexResult$.length) != null ? _regexResult$7$length : undefined,\n z: regexResult[8] || undefined,\n plusMinus: regexResult[9] || undefined,\n hourOffset: toNumber(regexResult[10]),\n minuteOffset: toNumber(regexResult[11])\n };\n}\nfunction toNumber(str, defaultValue = 0) {\n return Number(str) || defaultValue;\n}\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet yearMonthDay = '^\\\\d{4}-\\\\d{2}-\\\\d{2}';\nlet hourMinuteSecond = '\\\\d{2}:\\\\d{2}:\\\\d{2}';\nlet zOrOffset = '(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)';\nlet rIsoDateTime = new RegExp(`${yearMonthDay}T${hourMinuteSecond}(\\\\.\\\\d+)?${zOrOffset}$`);\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw) => {\n if (!this.spec.coerce || this.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n datetime(options) {\n let message = '';\n let allowOffset;\n let precision;\n if (options) {\n if (typeof options === 'object') {\n ({\n message = '',\n allowOffset = false,\n precision = undefined\n } = options);\n } else {\n message = options;\n }\n }\n return this.matches(rIsoDateTime, {\n name: 'datetime',\n message: message || string.datetime,\n excludeEmptyString: true\n }).test({\n name: 'datetime_offset',\n message: message || string.datetime_offset,\n params: {\n allowOffset\n },\n skipAbsent: true,\n test: value => {\n if (!value || allowOffset) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return !!struct.z;\n }\n }).test({\n name: 'datetime_precision',\n message: message || string.datetime_precision,\n params: {\n precision\n },\n skipAbsent: true,\n test: value => {\n if (!value || precision == undefined) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return struct.precision === precision;\n }\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw) => {\n if (!this.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (this.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!this.spec.coerce || this.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, schema) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return schema.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n let inputValue = value[prop];\n if (field) {\n let fieldValue;\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ? field.cast(inputValue, innerOptions) : inputValue;\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = inputValue;\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== inputValue) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked, this._excludedEdges.filter(([a, b]) => keys.includes(a) && keys.includes(b)));\n }\n omit(keys) {\n const remaining = [];\n for (const key of Object.keys(this.fields)) {\n if (keys.includes(key)) continue;\n remaining.push(key);\n }\n return this.pick(remaining);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n\n /**\n * Similar to `noUnknown` but only validates that an object is the right shape without stripping the unknown keys\n */\n exact(message) {\n return this.test({\n name: 'exact',\n exclusive: true,\n message: message || object.exact,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return unknownKeys.length === 0 || this.createError({\n params: {\n properties: unknownKeys.join(', ')\n }\n });\n }\n });\n }\n stripUnknown() {\n return this.clone({\n noUnknown: true\n });\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(next.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`,\n parent: value,\n originalValue: v,\n value: v,\n index: idx\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n if (next.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = next.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`,\n parent: value,\n originalValue: value[idx],\n value: value[idx],\n index: idx\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.innerType = next.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nfunction catchValidationError(fn) {\n try {\n return fn();\n } catch (err) {\n if (ValidationError.isError(err)) return Promise.reject(err);\n throw err;\n }\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return catchValidationError(() => this._resolve(value, options).validate(value, options));\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return catchValidationError(() => this._resolve(value, options).validateAt(path, value, options));\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n try {\n return this._resolve(value, options).isValid(value, options);\n } catch (err) {\n if (ValidationError.isError(err)) {\n return Promise.resolve(false);\n }\n throw err;\n }\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n get ['~standard']() {\n const schema = this;\n const standard = {\n version: 1,\n vendor: 'yup',\n async validate(value) {\n try {\n const result = await schema.validate(value, {\n abortEarly: false\n });\n return {\n value: result\n };\n } catch (err) {\n if (ValidationError.isError(err)) {\n return {\n issues: issuesFromValidationError(err)\n };\n }\n throw err;\n }\n }\n };\n return standard;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, Lazy as LazySchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, printValue, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Logger } from '@firebase/logger';\nimport { ErrorFactory, calculateBackoffMillis, FirebaseError, isIndexedDBAvailable, validateIndexedDBOpenable, isBrowserExtension, areCookiesEnabled, getModularInstance, deepEqual } from '@firebase/util';\nimport { Component } from '@firebase/component';\nimport '@firebase/installations';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Type constant for Firebase Analytics.\r\n */\r\nconst ANALYTICS_TYPE = 'analytics';\r\n// Key to attach FID to in gtag params.\r\nconst GA_FID_KEY = 'firebase_id';\r\nconst ORIGIN_KEY = 'origin';\r\nconst FETCH_TIMEOUT_MILLIS = 60 * 1000;\r\nconst DYNAMIC_CONFIG_URL = 'https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig';\r\nconst GTAG_URL = 'https://www.googletagmanager.com/gtag/js';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/analytics');\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"already-exists\" /* AnalyticsError.ALREADY_EXISTS */]: 'A Firebase Analytics instance with the appId {$id} ' +\r\n ' already exists. ' +\r\n 'Only one Firebase Analytics instance can be created for each appId.',\r\n [\"already-initialized\" /* AnalyticsError.ALREADY_INITIALIZED */]: 'initializeAnalytics() cannot be called again with different options than those ' +\r\n 'it was initially called with. It can be called again with the same options to ' +\r\n 'return the existing instance, or getAnalytics() can be used ' +\r\n 'to get a reference to the already-initialized instance.',\r\n [\"already-initialized-settings\" /* AnalyticsError.ALREADY_INITIALIZED_SETTINGS */]: 'Firebase Analytics has already been initialized.' +\r\n 'settings() must be called before initializing any Analytics instance' +\r\n 'or it will have no effect.',\r\n [\"interop-component-reg-failed\" /* AnalyticsError.INTEROP_COMPONENT_REG_FAILED */]: 'Firebase Analytics Interop Component failed to instantiate: {$reason}',\r\n [\"invalid-analytics-context\" /* AnalyticsError.INVALID_ANALYTICS_CONTEXT */]: 'Firebase Analytics is not supported in this environment. ' +\r\n 'Wrap initialization of analytics in analytics.isSupported() ' +\r\n 'to prevent initialization in unsupported environments. Details: {$errorInfo}',\r\n [\"indexeddb-unavailable\" /* AnalyticsError.INDEXEDDB_UNAVAILABLE */]: 'IndexedDB unavailable or restricted in this environment. ' +\r\n 'Wrap initialization of analytics in analytics.isSupported() ' +\r\n 'to prevent initialization in unsupported environments. Details: {$errorInfo}',\r\n [\"fetch-throttle\" /* AnalyticsError.FETCH_THROTTLE */]: 'The config fetch request timed out while in an exponential backoff state.' +\r\n ' Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',\r\n [\"config-fetch-failed\" /* AnalyticsError.CONFIG_FETCH_FAILED */]: 'Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}',\r\n [\"no-api-key\" /* AnalyticsError.NO_API_KEY */]: 'The \"apiKey\" field is empty in the local Firebase config. Firebase Analytics requires this field to' +\r\n 'contain a valid API key.',\r\n [\"no-app-id\" /* AnalyticsError.NO_APP_ID */]: 'The \"appId\" field is empty in the local Firebase config. Firebase Analytics requires this field to' +\r\n 'contain a valid app ID.',\r\n [\"no-client-id\" /* AnalyticsError.NO_CLIENT_ID */]: 'The \"client_id\" field is empty.',\r\n [\"invalid-gtag-resource\" /* AnalyticsError.INVALID_GTAG_RESOURCE */]: 'Trusted Types detected an invalid gtag resource: {$gtagURL}.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('analytics', 'Analytics', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Verifies and creates a TrustedScriptURL.\r\n */\r\nfunction createGtagTrustedTypesScriptURL(url) {\r\n if (!url.startsWith(GTAG_URL)) {\r\n const err = ERROR_FACTORY.create(\"invalid-gtag-resource\" /* AnalyticsError.INVALID_GTAG_RESOURCE */, {\r\n gtagURL: url\r\n });\r\n logger.warn(err.message);\r\n return '';\r\n }\r\n return url;\r\n}\r\n/**\r\n * Makeshift polyfill for Promise.allSettled(). Resolves when all promises\r\n * have either resolved or rejected.\r\n *\r\n * @param promises Array of promises to wait for.\r\n */\r\nfunction promiseAllSettled(promises) {\r\n return Promise.all(promises.map(promise => promise.catch(e => e)));\r\n}\r\n/**\r\n * Creates a TrustedTypePolicy object that implements the rules passed as policyOptions.\r\n *\r\n * @param policyName A string containing the name of the policy\r\n * @param policyOptions Object containing implementations of instance methods for TrustedTypesPolicy, see {@link https://developer.mozilla.org/en-US/docs/Web/API/TrustedTypePolicy#instance_methods\r\n * | the TrustedTypePolicy reference documentation}.\r\n */\r\nfunction createTrustedTypesPolicy(policyName, policyOptions) {\r\n // Create a TrustedTypes policy that we can use for updating src\r\n // properties\r\n let trustedTypesPolicy;\r\n if (window.trustedTypes) {\r\n trustedTypesPolicy = window.trustedTypes.createPolicy(policyName, policyOptions);\r\n }\r\n return trustedTypesPolicy;\r\n}\r\n/**\r\n * Inserts gtag script tag into the page to asynchronously download gtag.\r\n * @param dataLayerName Name of datalayer (most often the default, \"_dataLayer\").\r\n */\r\nfunction insertScriptTag(dataLayerName, measurementId) {\r\n const trustedTypesPolicy = createTrustedTypesPolicy('firebase-js-sdk-policy', {\r\n createScriptURL: createGtagTrustedTypesScriptURL\r\n });\r\n const script = document.createElement('script');\r\n // We are not providing an analyticsId in the URL because it would trigger a `page_view`\r\n // without fid. We will initialize ga-id using gtag (config) command together with fid.\r\n const gtagScriptURL = `${GTAG_URL}?l=${dataLayerName}&id=${measurementId}`;\r\n script.src = trustedTypesPolicy\r\n ? trustedTypesPolicy === null || trustedTypesPolicy === void 0 ? void 0 : trustedTypesPolicy.createScriptURL(gtagScriptURL)\r\n : gtagScriptURL;\r\n script.async = true;\r\n document.head.appendChild(script);\r\n}\r\n/**\r\n * Get reference to, or create, global datalayer.\r\n * @param dataLayerName Name of datalayer (most often the default, \"_dataLayer\").\r\n */\r\nfunction getOrCreateDataLayer(dataLayerName) {\r\n // Check for existing dataLayer and create if needed.\r\n let dataLayer = [];\r\n if (Array.isArray(window[dataLayerName])) {\r\n dataLayer = window[dataLayerName];\r\n }\r\n else {\r\n window[dataLayerName] = dataLayer;\r\n }\r\n return dataLayer;\r\n}\r\n/**\r\n * Wrapped gtag logic when gtag is called with 'config' command.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n * @param measurementId GA Measurement ID to set config for.\r\n * @param gtagParams Gtag config params to set.\r\n */\r\nasync function gtagOnConfig(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, measurementId, gtagParams) {\r\n // If config is already fetched, we know the appId and can use it to look up what FID promise we\r\n /// are waiting for, and wait only on that one.\r\n const correspondingAppId = measurementIdToAppId[measurementId];\r\n try {\r\n if (correspondingAppId) {\r\n await initializationPromisesMap[correspondingAppId];\r\n }\r\n else {\r\n // If config is not fetched yet, wait for all configs (we don't know which one we need) and\r\n // find the appId (if any) corresponding to this measurementId. If there is one, wait on\r\n // that appId's initialization promise. If there is none, promise resolves and gtag\r\n // call goes through.\r\n const dynamicConfigResults = await promiseAllSettled(dynamicConfigPromisesList);\r\n const foundConfig = dynamicConfigResults.find(config => config.measurementId === measurementId);\r\n if (foundConfig) {\r\n await initializationPromisesMap[foundConfig.appId];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n logger.error(e);\r\n }\r\n gtagCore(\"config\" /* GtagCommand.CONFIG */, measurementId, gtagParams);\r\n}\r\n/**\r\n * Wrapped gtag logic when gtag is called with 'event' command.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementId GA Measurement ID to log event to.\r\n * @param gtagParams Params to log with this event.\r\n */\r\nasync function gtagOnEvent(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementId, gtagParams) {\r\n try {\r\n let initializationPromisesToWaitFor = [];\r\n // If there's a 'send_to' param, check if any ID specified matches\r\n // an initializeIds() promise we are waiting for.\r\n if (gtagParams && gtagParams['send_to']) {\r\n let gaSendToList = gtagParams['send_to'];\r\n // Make it an array if is isn't, so it can be dealt with the same way.\r\n if (!Array.isArray(gaSendToList)) {\r\n gaSendToList = [gaSendToList];\r\n }\r\n // Checking 'send_to' fields requires having all measurement ID results back from\r\n // the dynamic config fetch.\r\n const dynamicConfigResults = await promiseAllSettled(dynamicConfigPromisesList);\r\n for (const sendToId of gaSendToList) {\r\n // Any fetched dynamic measurement ID that matches this 'send_to' ID\r\n const foundConfig = dynamicConfigResults.find(config => config.measurementId === sendToId);\r\n const initializationPromise = foundConfig && initializationPromisesMap[foundConfig.appId];\r\n if (initializationPromise) {\r\n initializationPromisesToWaitFor.push(initializationPromise);\r\n }\r\n else {\r\n // Found an item in 'send_to' that is not associated\r\n // directly with an FID, possibly a group. Empty this array,\r\n // exit the loop early, and let it get populated below.\r\n initializationPromisesToWaitFor = [];\r\n break;\r\n }\r\n }\r\n }\r\n // This will be unpopulated if there was no 'send_to' field , or\r\n // if not all entries in the 'send_to' field could be mapped to\r\n // a FID. In these cases, wait on all pending initialization promises.\r\n if (initializationPromisesToWaitFor.length === 0) {\r\n /* eslint-disable-next-line @typescript-eslint/no-floating-promises */\r\n initializationPromisesToWaitFor = Object.values(initializationPromisesMap);\r\n }\r\n // Run core gtag function with args after all relevant initialization\r\n // promises have been resolved.\r\n await Promise.all(initializationPromisesToWaitFor);\r\n // Workaround for http://b/141370449 - third argument cannot be undefined.\r\n gtagCore(\"event\" /* GtagCommand.EVENT */, measurementId, gtagParams || {});\r\n }\r\n catch (e) {\r\n logger.error(e);\r\n }\r\n}\r\n/**\r\n * Wraps a standard gtag function with extra code to wait for completion of\r\n * relevant initialization promises before sending requests.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n */\r\nfunction wrapGtag(gtagCore, \r\n/**\r\n * Allows wrapped gtag calls to wait on whichever initialization promises are required,\r\n * depending on the contents of the gtag params' `send_to` field, if any.\r\n */\r\ninitializationPromisesMap, \r\n/**\r\n * Wrapped gtag calls sometimes require all dynamic config fetches to have returned\r\n * before determining what initialization promises (which include FIDs) to wait for.\r\n */\r\ndynamicConfigPromisesList, \r\n/**\r\n * Wrapped gtag config calls can narrow down which initialization promise (with FID)\r\n * to wait for if the measurementId is already fetched, by getting the corresponding appId,\r\n * which is the key for the initialization promises map.\r\n */\r\nmeasurementIdToAppId) {\r\n /**\r\n * Wrapper around gtag that ensures FID is sent with gtag calls.\r\n * @param command Gtag command type.\r\n * @param idOrNameOrParams Measurement ID if command is EVENT/CONFIG, params if command is SET.\r\n * @param gtagParams Params if event is EVENT/CONFIG.\r\n */\r\n async function gtagWrapper(command, ...args) {\r\n try {\r\n // If event, check that relevant initialization promises have completed.\r\n if (command === \"event\" /* GtagCommand.EVENT */) {\r\n const [measurementId, gtagParams] = args;\r\n // If EVENT, second arg must be measurementId.\r\n await gtagOnEvent(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementId, gtagParams);\r\n }\r\n else if (command === \"config\" /* GtagCommand.CONFIG */) {\r\n const [measurementId, gtagParams] = args;\r\n // If CONFIG, second arg must be measurementId.\r\n await gtagOnConfig(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, measurementId, gtagParams);\r\n }\r\n else if (command === \"consent\" /* GtagCommand.CONSENT */) {\r\n const [consentAction, gtagParams] = args;\r\n // consentAction can be one of 'default' or 'update'.\r\n gtagCore(\"consent\" /* GtagCommand.CONSENT */, consentAction, gtagParams);\r\n }\r\n else if (command === \"get\" /* GtagCommand.GET */) {\r\n const [measurementId, fieldName, callback] = args;\r\n gtagCore(\"get\" /* GtagCommand.GET */, measurementId, fieldName, callback);\r\n }\r\n else if (command === \"set\" /* GtagCommand.SET */) {\r\n const [customParams] = args;\r\n // If SET, second arg must be params.\r\n gtagCore(\"set\" /* GtagCommand.SET */, customParams);\r\n }\r\n else {\r\n gtagCore(command, ...args);\r\n }\r\n }\r\n catch (e) {\r\n logger.error(e);\r\n }\r\n }\r\n return gtagWrapper;\r\n}\r\n/**\r\n * Creates global gtag function or wraps existing one if found.\r\n * This wrapped function attaches Firebase instance ID (FID) to gtag 'config' and\r\n * 'event' calls that belong to the GAID associated with this Firebase instance.\r\n *\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n * @param dataLayerName Name of global GA datalayer array.\r\n * @param gtagFunctionName Name of global gtag function (\"gtag\" if not user-specified).\r\n */\r\nfunction wrapOrCreateGtag(initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, dataLayerName, gtagFunctionName) {\r\n // Create a basic core gtag function\r\n let gtagCore = function (..._args) {\r\n // Must push IArguments object, not an array.\r\n window[dataLayerName].push(arguments);\r\n };\r\n // Replace it with existing one if found\r\n if (window[gtagFunctionName] &&\r\n typeof window[gtagFunctionName] === 'function') {\r\n // @ts-ignore\r\n gtagCore = window[gtagFunctionName];\r\n }\r\n window[gtagFunctionName] = wrapGtag(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId);\r\n return {\r\n gtagCore,\r\n wrappedGtag: window[gtagFunctionName]\r\n };\r\n}\r\n/**\r\n * Returns the script tag in the DOM matching both the gtag url pattern\r\n * and the provided data layer name.\r\n */\r\nfunction findGtagScriptOnPage(dataLayerName) {\r\n const scriptTags = window.document.getElementsByTagName('script');\r\n for (const tag of Object.values(scriptTags)) {\r\n if (tag.src &&\r\n tag.src.includes(GTAG_URL) &&\r\n tag.src.includes(dataLayerName)) {\r\n return tag;\r\n }\r\n }\r\n return null;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Backoff factor for 503 errors, which we want to be conservative about\r\n * to avoid overloading servers. Each retry interval will be\r\n * BASE_INTERVAL_MILLIS * LONG_RETRY_FACTOR ^ retryCount, so the second one\r\n * will be ~30 seconds (with fuzzing).\r\n */\r\nconst LONG_RETRY_FACTOR = 30;\r\n/**\r\n * Base wait interval to multiplied by backoffFactor^backoffCount.\r\n */\r\nconst BASE_INTERVAL_MILLIS = 1000;\r\n/**\r\n * Stubbable retry data storage class.\r\n */\r\nclass RetryData {\r\n constructor(throttleMetadata = {}, intervalMillis = BASE_INTERVAL_MILLIS) {\r\n this.throttleMetadata = throttleMetadata;\r\n this.intervalMillis = intervalMillis;\r\n }\r\n getThrottleMetadata(appId) {\r\n return this.throttleMetadata[appId];\r\n }\r\n setThrottleMetadata(appId, metadata) {\r\n this.throttleMetadata[appId] = metadata;\r\n }\r\n deleteThrottleMetadata(appId) {\r\n delete this.throttleMetadata[appId];\r\n }\r\n}\r\nconst defaultRetryData = new RetryData();\r\n/**\r\n * Set GET request headers.\r\n * @param apiKey App API key.\r\n */\r\nfunction getHeaders(apiKey) {\r\n return new Headers({\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\n/**\r\n * Fetches dynamic config from backend.\r\n * @param app Firebase app to fetch config for.\r\n */\r\nasync function fetchDynamicConfig(appFields) {\r\n var _a;\r\n const { appId, apiKey } = appFields;\r\n const request = {\r\n method: 'GET',\r\n headers: getHeaders(apiKey)\r\n };\r\n const appUrl = DYNAMIC_CONFIG_URL.replace('{app-id}', appId);\r\n const response = await fetch(appUrl, request);\r\n if (response.status !== 200 && response.status !== 304) {\r\n let errorMessage = '';\r\n try {\r\n // Try to get any error message text from server response.\r\n const jsonResponse = (await response.json());\r\n if ((_a = jsonResponse.error) === null || _a === void 0 ? void 0 : _a.message) {\r\n errorMessage = jsonResponse.error.message;\r\n }\r\n }\r\n catch (_ignored) { }\r\n throw ERROR_FACTORY.create(\"config-fetch-failed\" /* AnalyticsError.CONFIG_FETCH_FAILED */, {\r\n httpStatus: response.status,\r\n responseMessage: errorMessage\r\n });\r\n }\r\n return response.json();\r\n}\r\n/**\r\n * Fetches dynamic config from backend, retrying if failed.\r\n * @param app Firebase app to fetch config for.\r\n */\r\nasync function fetchDynamicConfigWithRetry(app, \r\n// retryData and timeoutMillis are parameterized to allow passing a different value for testing.\r\nretryData = defaultRetryData, timeoutMillis) {\r\n const { appId, apiKey, measurementId } = app.options;\r\n if (!appId) {\r\n throw ERROR_FACTORY.create(\"no-app-id\" /* AnalyticsError.NO_APP_ID */);\r\n }\r\n if (!apiKey) {\r\n if (measurementId) {\r\n return {\r\n measurementId,\r\n appId\r\n };\r\n }\r\n throw ERROR_FACTORY.create(\"no-api-key\" /* AnalyticsError.NO_API_KEY */);\r\n }\r\n const throttleMetadata = retryData.getThrottleMetadata(appId) || {\r\n backoffCount: 0,\r\n throttleEndTimeMillis: Date.now()\r\n };\r\n const signal = new AnalyticsAbortSignal();\r\n setTimeout(async () => {\r\n // Note a very low delay, eg < 10ms, can elapse before listeners are initialized.\r\n signal.abort();\r\n }, timeoutMillis !== undefined ? timeoutMillis : FETCH_TIMEOUT_MILLIS);\r\n return attemptFetchDynamicConfigWithRetry({ appId, apiKey, measurementId }, throttleMetadata, signal, retryData);\r\n}\r\n/**\r\n * Runs one retry attempt.\r\n * @param appFields Necessary app config fields.\r\n * @param throttleMetadata Ongoing metadata to determine throttling times.\r\n * @param signal Abort signal.\r\n */\r\nasync function attemptFetchDynamicConfigWithRetry(appFields, { throttleEndTimeMillis, backoffCount }, signal, retryData = defaultRetryData // for testing\r\n) {\r\n var _a;\r\n const { appId, measurementId } = appFields;\r\n // Starts with a (potentially zero) timeout to support resumption from stored state.\r\n // Ensures the throttle end time is honored if the last attempt timed out.\r\n // Note the SDK will never make a request if the fetch timeout expires at this point.\r\n try {\r\n await setAbortableTimeout(signal, throttleEndTimeMillis);\r\n }\r\n catch (e) {\r\n if (measurementId) {\r\n logger.warn(`Timed out fetching this Firebase app's measurement ID from the server.` +\r\n ` Falling back to the measurement ID ${measurementId}` +\r\n ` provided in the \"measurementId\" field in the local Firebase config. [${e === null || e === void 0 ? void 0 : e.message}]`);\r\n return { appId, measurementId };\r\n }\r\n throw e;\r\n }\r\n try {\r\n const response = await fetchDynamicConfig(appFields);\r\n // Note the SDK only clears throttle state if response is success or non-retriable.\r\n retryData.deleteThrottleMetadata(appId);\r\n return response;\r\n }\r\n catch (e) {\r\n const error = e;\r\n if (!isRetriableError(error)) {\r\n retryData.deleteThrottleMetadata(appId);\r\n if (measurementId) {\r\n logger.warn(`Failed to fetch this Firebase app's measurement ID from the server.` +\r\n ` Falling back to the measurement ID ${measurementId}` +\r\n ` provided in the \"measurementId\" field in the local Firebase config. [${error === null || error === void 0 ? void 0 : error.message}]`);\r\n return { appId, measurementId };\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n const backoffMillis = Number((_a = error === null || error === void 0 ? void 0 : error.customData) === null || _a === void 0 ? void 0 : _a.httpStatus) === 503\r\n ? calculateBackoffMillis(backoffCount, retryData.intervalMillis, LONG_RETRY_FACTOR)\r\n : calculateBackoffMillis(backoffCount, retryData.intervalMillis);\r\n // Increments backoff state.\r\n const throttleMetadata = {\r\n throttleEndTimeMillis: Date.now() + backoffMillis,\r\n backoffCount: backoffCount + 1\r\n };\r\n // Persists state.\r\n retryData.setThrottleMetadata(appId, throttleMetadata);\r\n logger.debug(`Calling attemptFetch again in ${backoffMillis} millis`);\r\n return attemptFetchDynamicConfigWithRetry(appFields, throttleMetadata, signal, retryData);\r\n }\r\n}\r\n/**\r\n * Supports waiting on a backoff by:\r\n *\r\n *
    \r\n *
  • Promisifying setTimeout, so we can set a timeout in our Promise chain
  • \r\n *
  • Listening on a signal bus for abort events, just like the Fetch API
  • \r\n *
  • Failing in the same way the Fetch API fails, so timing out a live request and a throttled\r\n * request appear the same.
  • \r\n *
\r\n *\r\n *

Visible for testing.\r\n */\r\nfunction setAbortableTimeout(signal, throttleEndTimeMillis) {\r\n return new Promise((resolve, reject) => {\r\n // Derives backoff from given end time, normalizing negative numbers to zero.\r\n const backoffMillis = Math.max(throttleEndTimeMillis - Date.now(), 0);\r\n const timeout = setTimeout(resolve, backoffMillis);\r\n // Adds listener, rather than sets onabort, because signal is a shared object.\r\n signal.addEventListener(() => {\r\n clearTimeout(timeout);\r\n // If the request completes before this timeout, the rejection has no effect.\r\n reject(ERROR_FACTORY.create(\"fetch-throttle\" /* AnalyticsError.FETCH_THROTTLE */, {\r\n throttleEndTimeMillis\r\n }));\r\n });\r\n });\r\n}\r\n/**\r\n * Returns true if the {@link Error} indicates a fetch request may succeed later.\r\n */\r\nfunction isRetriableError(e) {\r\n if (!(e instanceof FirebaseError) || !e.customData) {\r\n return false;\r\n }\r\n // Uses string index defined by ErrorData, which FirebaseError implements.\r\n const httpStatus = Number(e.customData['httpStatus']);\r\n return (httpStatus === 429 ||\r\n httpStatus === 500 ||\r\n httpStatus === 503 ||\r\n httpStatus === 504);\r\n}\r\n/**\r\n * Shims a minimal AbortSignal (copied from Remote Config).\r\n *\r\n *

AbortController's AbortSignal conveniently decouples fetch timeout logic from other aspects\r\n * of networking, such as retries. Firebase doesn't use AbortController enough to justify a\r\n * polyfill recommendation, like we do with the Fetch API, but this minimal shim can easily be\r\n * swapped out if/when we do.\r\n */\r\nclass AnalyticsAbortSignal {\r\n constructor() {\r\n this.listeners = [];\r\n }\r\n addEventListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n abort() {\r\n this.listeners.forEach(listener => listener());\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Event parameters to set on 'gtag' during initialization.\r\n */\r\nlet defaultEventParametersForInit;\r\n/**\r\n * Logs an analytics event through the Firebase SDK.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param eventName Google Analytics event name, choose from standard list or use a custom string.\r\n * @param eventParams Analytics event parameters.\r\n */\r\nasync function logEvent$1(gtagFunction, initializationPromise, eventName, eventParams, options) {\r\n if (options && options.global) {\r\n gtagFunction(\"event\" /* GtagCommand.EVENT */, eventName, eventParams);\r\n return;\r\n }\r\n else {\r\n const measurementId = await initializationPromise;\r\n const params = Object.assign(Object.assign({}, eventParams), { 'send_to': measurementId });\r\n gtagFunction(\"event\" /* GtagCommand.EVENT */, eventName, params);\r\n }\r\n}\r\n/**\r\n * Set screen_name parameter for this Google Analytics ID.\r\n *\r\n * @deprecated Use {@link logEvent} with `eventName` as 'screen_view' and add relevant `eventParams`.\r\n * See {@link https://firebase.google.com/docs/analytics/screenviews | Track Screenviews}.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param screenName Screen name string to set.\r\n */\r\nasync function setCurrentScreen$1(gtagFunction, initializationPromise, screenName, options) {\r\n if (options && options.global) {\r\n gtagFunction(\"set\" /* GtagCommand.SET */, { 'screen_name': screenName });\r\n return Promise.resolve();\r\n }\r\n else {\r\n const measurementId = await initializationPromise;\r\n gtagFunction(\"config\" /* GtagCommand.CONFIG */, measurementId, {\r\n update: true,\r\n 'screen_name': screenName\r\n });\r\n }\r\n}\r\n/**\r\n * Set user_id parameter for this Google Analytics ID.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param id User ID string to set\r\n */\r\nasync function setUserId$1(gtagFunction, initializationPromise, id, options) {\r\n if (options && options.global) {\r\n gtagFunction(\"set\" /* GtagCommand.SET */, { 'user_id': id });\r\n return Promise.resolve();\r\n }\r\n else {\r\n const measurementId = await initializationPromise;\r\n gtagFunction(\"config\" /* GtagCommand.CONFIG */, measurementId, {\r\n update: true,\r\n 'user_id': id\r\n });\r\n }\r\n}\r\n/**\r\n * Set all other user properties other than user_id and screen_name.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param properties Map of user properties to set\r\n */\r\nasync function setUserProperties$1(gtagFunction, initializationPromise, properties, options) {\r\n if (options && options.global) {\r\n const flatProperties = {};\r\n for (const key of Object.keys(properties)) {\r\n // use dot notation for merge behavior in gtag.js\r\n flatProperties[`user_properties.${key}`] = properties[key];\r\n }\r\n gtagFunction(\"set\" /* GtagCommand.SET */, flatProperties);\r\n return Promise.resolve();\r\n }\r\n else {\r\n const measurementId = await initializationPromise;\r\n gtagFunction(\"config\" /* GtagCommand.CONFIG */, measurementId, {\r\n update: true,\r\n 'user_properties': properties\r\n });\r\n }\r\n}\r\n/**\r\n * Retrieves a unique Google Analytics identifier for the web client.\r\n * See {@link https://developers.google.com/analytics/devguides/collection/ga4/reference/config#client_id | client_id}.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n */\r\nasync function internalGetGoogleAnalyticsClientId(gtagFunction, initializationPromise) {\r\n const measurementId = await initializationPromise;\r\n return new Promise((resolve, reject) => {\r\n gtagFunction(\"get\" /* GtagCommand.GET */, measurementId, 'client_id', (clientId) => {\r\n if (!clientId) {\r\n reject(ERROR_FACTORY.create(\"no-client-id\" /* AnalyticsError.NO_CLIENT_ID */));\r\n }\r\n resolve(clientId);\r\n });\r\n });\r\n}\r\n/**\r\n * Set whether collection is enabled for this ID.\r\n *\r\n * @param enabled If true, collection is enabled for this ID.\r\n */\r\nasync function setAnalyticsCollectionEnabled$1(initializationPromise, enabled) {\r\n const measurementId = await initializationPromise;\r\n window[`ga-disable-${measurementId}`] = !enabled;\r\n}\r\n/**\r\n * Consent parameters to default to during 'gtag' initialization.\r\n */\r\nlet defaultConsentSettingsForInit;\r\n/**\r\n * Sets the variable {@link defaultConsentSettingsForInit} for use in the initialization of\r\n * analytics.\r\n *\r\n * @param consentSettings Maps the applicable end user consent state for gtag.js.\r\n */\r\nfunction _setConsentDefaultForInit(consentSettings) {\r\n defaultConsentSettingsForInit = consentSettings;\r\n}\r\n/**\r\n * Sets the variable `defaultEventParametersForInit` for use in the initialization of\r\n * analytics.\r\n *\r\n * @param customParams Any custom params the user may pass to gtag.js.\r\n */\r\nfunction _setDefaultEventParametersForInit(customParams) {\r\n defaultEventParametersForInit = customParams;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function validateIndexedDB() {\r\n if (!isIndexedDBAvailable()) {\r\n logger.warn(ERROR_FACTORY.create(\"indexeddb-unavailable\" /* AnalyticsError.INDEXEDDB_UNAVAILABLE */, {\r\n errorInfo: 'IndexedDB is not available in this environment.'\r\n }).message);\r\n return false;\r\n }\r\n else {\r\n try {\r\n await validateIndexedDBOpenable();\r\n }\r\n catch (e) {\r\n logger.warn(ERROR_FACTORY.create(\"indexeddb-unavailable\" /* AnalyticsError.INDEXEDDB_UNAVAILABLE */, {\r\n errorInfo: e === null || e === void 0 ? void 0 : e.toString()\r\n }).message);\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Initialize the analytics instance in gtag.js by calling config command with fid.\r\n *\r\n * NOTE: We combine analytics initialization and setting fid together because we want fid to be\r\n * part of the `page_view` event that's sent during the initialization\r\n * @param app Firebase app\r\n * @param gtagCore The gtag function that's not wrapped.\r\n * @param dynamicConfigPromisesList Array of all dynamic config promises.\r\n * @param measurementIdToAppId Maps measurementID to appID.\r\n * @param installations _FirebaseInstallationsInternal instance.\r\n *\r\n * @returns Measurement ID.\r\n */\r\nasync function _initializeAnalytics(app, dynamicConfigPromisesList, measurementIdToAppId, installations, gtagCore, dataLayerName, options) {\r\n var _a;\r\n const dynamicConfigPromise = fetchDynamicConfigWithRetry(app);\r\n // Once fetched, map measurementIds to appId, for ease of lookup in wrapped gtag function.\r\n dynamicConfigPromise\r\n .then(config => {\r\n measurementIdToAppId[config.measurementId] = config.appId;\r\n if (app.options.measurementId &&\r\n config.measurementId !== app.options.measurementId) {\r\n logger.warn(`The measurement ID in the local Firebase config (${app.options.measurementId})` +\r\n ` does not match the measurement ID fetched from the server (${config.measurementId}).` +\r\n ` To ensure analytics events are always sent to the correct Analytics property,` +\r\n ` update the` +\r\n ` measurement ID field in the local config or remove it from the local config.`);\r\n }\r\n })\r\n .catch(e => logger.error(e));\r\n // Add to list to track state of all dynamic config promises.\r\n dynamicConfigPromisesList.push(dynamicConfigPromise);\r\n const fidPromise = validateIndexedDB().then(envIsValid => {\r\n if (envIsValid) {\r\n return installations.getId();\r\n }\r\n else {\r\n return undefined;\r\n }\r\n });\r\n const [dynamicConfig, fid] = await Promise.all([\r\n dynamicConfigPromise,\r\n fidPromise\r\n ]);\r\n // Detect if user has already put the gtag \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |

\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/// \n\n/* global document */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const character = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n if (\n character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n value !== 'semi'\n ) {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n return character === characterReference ? false : character\n}\n","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * \n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n resolve: resolveHeadingAtx,\n tokenize: tokenizeHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n /** @type {Token} */\n let content;\n /** @type {Token} */\n let text;\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(\"atxHeading\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return sequenceOpen;\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n return nok(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"atxHeading\");\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code);\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(\"atxHeadingText\");\n return data(code);\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (encoding && typeof encoding === 'object') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst guard = (name, init) => {\n switch (name) {\n case 'Function':\n case 'SharedWorker':\n case 'Worker':\n case 'eval':\n case 'setInterval':\n case 'setTimeout':\n throw new TypeError('unable to deserialize ' + name);\n }\n return new env[name](init);\n};\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(guard(name, message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(guard(type, value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @import {Node, Parent} from 'unist'\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | ReadonlyArray | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test)\n ? anyFactory(test)\n : // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(/** @type {Props} */ (test))\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propertiesFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray\n * ? MatchesOne\n * : Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n * @import {VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js python ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {\n *   ElementContent as HastElementContent,\n *   Element as HastElement,\n *   Nodes as HastNodes,\n *   Properties as HastProperties,\n *   RootContent as HastRootContent,\n *   Text as HastText\n * } from 'hast'\n * @import {\n *   Definition as MdastDefinition,\n *   FootnoteDefinition as MdastFootnoteDefinition,\n *   Nodes as MdastNodes,\n *   Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n *   FootnoteBackContentTemplate,\n *   FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @import {Element, ElementContent, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentProps, ElementType, ReactElement} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in Extract]?: ElementType & ExtraProps>\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {createElement, useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Promise}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n /* c8 ignore next 7 -- hooks are client-only. */\n function () {\n const file = createFile(options)\n processor.run(processor.parse(file), file, function (error, tree) {\n setError(error)\n setTree(tree)\n })\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n /* c8 ignore next -- hooks are client-only. */\n if (error) throw error\n\n /* c8 ignore next -- hooks are client-only. */\n return tree ? post(tree, options) : createElement(Fragment)\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Processor}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n // Wrap in `div` if there’s a class name.\n if (options.className) {\n tree = {\n type: 'element',\n tagName: 'div',\n properties: {className: options.className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n tree.type === 'root' ? tree.children : [tree]\n )\n }\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n */\n\n/**\n * @template {string} SimpleSelector\n * Selector type.\n * @template {string} DefaultTagName\n * Default tag name.\n * @typedef {(\n * SimpleSelector extends ''\n * ? DefaultTagName\n * : SimpleSelector extends `${infer TagName}.${infer Rest}`\n * ? ExtractTagName\n * : SimpleSelector extends `${infer TagName}#${infer Rest}`\n * ? ExtractTagName\n * : SimpleSelector extends string\n * ? SimpleSelector\n * : DefaultTagName\n * )} ExtractTagName\n * Extract tag name from a simple selector.\n */\n\nconst search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @template {string} Selector\n * Type of selector.\n * @template {string} [DefaultTagName='div']\n * Type of default tag name (default: `'div'`).\n * @param {Selector | null | undefined} [selector]\n * Simple CSS selector (optional).\n *\n * Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).\n * Multiple classes are allowed.\n * Uses the last ID if multiple IDs are found.\n * @param {DefaultTagName | null | undefined} [defaultTagName='div']\n * Tag name to use if `selector` does not specify one (default: `'div'`).\n * @returns {Element & {tagName: ExtractTagName}}\n * Built element.\n */\nexport function parseSelector(selector, defaultTagName) {\n const value = selector || ''\n /** @type {Properties} */\n const props = {}\n let start = 0\n /** @type {string | undefined} */\n let previous\n /** @type {string | undefined} */\n let tagName\n\n while (start < value.length) {\n search.lastIndex = start\n const match = search.exec(value)\n const subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n tagName = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (Array.isArray(props.className)) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {\n type: 'element',\n // @ts-expect-error: tag name is parsed.\n tagName: tagName || defaultTagName || 'div',\n properties: props,\n children: []\n }\n}\n","/**\n * @import {Element, Nodes, RootContent, Root} from 'hast'\n * @import {Info, Schema} from 'property-information'\n */\n\n/**\n * @typedef {Array} ArrayChildNested\n * List of children (deep).\n */\n\n/**\n * @typedef {Array} ArrayChild\n * List of children.\n */\n\n/**\n * @typedef {Array} ArrayValue\n * List of property values for space- or comma separated values (such as `className`).\n */\n\n/**\n * @typedef {ArrayChild | Nodes | PrimitiveChild} Child\n * Acceptable child value.\n */\n\n/**\n * @typedef {number | string | null | undefined} PrimitiveChild\n * Primitive children, either ignored (nullish), or turned into text nodes.\n */\n\n/**\n * @typedef {boolean | number | string | null | undefined} PrimitiveValue\n * Primitive property value.\n */\n\n/**\n * @typedef {Record} Properties\n * Acceptable value for element properties.\n */\n\n/**\n * @typedef {ArrayValue | PrimitiveValue} PropertyValue\n * Primitive value or list value.\n */\n\n/**\n * @typedef {Element | Root} Result\n * Result from a `h` (or `s`) call.\n */\n\n/**\n * @typedef {number | string} StyleValue\n * Value for a CSS style field.\n */\n\n/**\n * @typedef {Record} Style\n * Supported value of a `style` prop.\n */\n\nimport {parse as parseCommas} from 'comma-separated-tokens'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {find, normalize} from 'property-information'\nimport {parse as parseSpaces} from 'space-separated-tokens'\n\n/**\n * @param {Schema} schema\n * Schema to use.\n * @param {string} defaultTagName\n * Default tag name.\n * @param {ReadonlyArray | undefined} [caseSensitive]\n * Case-sensitive tag names (default: `undefined`).\n * @returns\n * `h`.\n */\nexport function createH(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive ? createAdjustMap(caseSensitive) : undefined\n\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @overload\n * @param {null | undefined} [selector]\n * @param {...Child} children\n * @returns {Root}\n *\n * @overload\n * @param {string} selector\n * @param {Properties} properties\n * @param {...Child} children\n * @returns {Element}\n *\n * @overload\n * @param {string} selector\n * @param {...Child} children\n * @returns {Element}\n *\n * @param {string | null | undefined} [selector]\n * Selector.\n * @param {Child | Properties | null | undefined} [properties]\n * Properties (or first child) (default: `undefined`).\n * @param {...Child} children\n * Children.\n * @returns {Result}\n * Result.\n */\n function h(selector, properties, ...children) {\n /** @type {Result} */\n let node\n\n if (selector === null || selector === undefined) {\n node = {type: 'root', children: []}\n // Properties are not supported for roots.\n const child = /** @type {Child} */ (properties)\n children.unshift(child)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n const lower = node.tagName.toLowerCase()\n const adjusted = adjust ? adjust.get(lower) : undefined\n node.tagName = adjusted || lower\n\n // Handle properties.\n if (isChild(properties)) {\n children.unshift(properties)\n } else {\n for (const [key, value] of Object.entries(properties)) {\n addProperty(schema, node.properties, key, value)\n }\n }\n }\n\n // Handle children.\n for (const child of children) {\n addChild(node.children, child)\n }\n\n if (node.type === 'element' && node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n return h\n}\n\n/**\n * Check if something is properties or a child.\n *\n * @param {Child | Properties} value\n * Value to check.\n * @returns {value is Child}\n * Whether `value` is definitely a child.\n */\nfunction isChild(value) {\n // Never properties if not an object.\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n return true\n }\n\n // Never node without `type`; that’s the main discriminator.\n if (typeof value.type !== 'string') return false\n\n // Slower check: never property value if object or array with\n // non-number/strings.\n const record = /** @type {Record} */ (value)\n const keys = Object.keys(value)\n\n for (const key of keys) {\n const value = record[key]\n\n if (value && typeof value === 'object') {\n if (!Array.isArray(value)) return true\n\n const list = /** @type {ReadonlyArray} */ (value)\n\n for (const item of list) {\n if (typeof item !== 'number' && typeof item !== 'string') {\n return true\n }\n }\n }\n }\n\n // Also see empty `children` as a node.\n if ('children' in value && Array.isArray(value.children)) {\n return true\n }\n\n // Default to properties, someone can always pass an empty object,\n // put `data: {}` in a node,\n // or wrap it in an array.\n return false\n}\n\n/**\n * @param {Schema} schema\n * Schema.\n * @param {Properties} properties\n * Properties object.\n * @param {string} key\n * Property name.\n * @param {PropertyValue | Style} value\n * Property value.\n * @returns {undefined}\n * Nothing.\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n /** @type {PropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === null || value === undefined) return\n\n if (typeof value === 'number') {\n // Ignore NaN.\n if (Number.isNaN(value)) return\n\n result = value\n }\n // Booleans.\n else if (typeof value === 'boolean') {\n result = value\n }\n // Handle list values.\n else if (typeof value === 'string') {\n if (info.spaceSeparated) {\n result = parseSpaces(value)\n } else if (info.commaSeparated) {\n result = parseCommas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = parseSpaces(parseCommas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = [...value]\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array} */\n const finalResult = []\n\n for (const item of result) {\n // Assume no booleans in array.\n finalResult.push(\n /** @type {number | string} */ (\n parsePrimitive(info, info.property, item)\n )\n )\n }\n\n result = finalResult\n }\n\n // Class names (which can be added both on the `selector` and here).\n if (info.property === 'className' && Array.isArray(properties.className)) {\n // Assume no booleans in `className`.\n result = properties.className.concat(\n /** @type {Array | number | string} */ (result)\n )\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array} nodes\n * Children.\n * @param {Child} value\n * Child.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChild(nodes, value) {\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'number' || typeof value === 'string') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n for (const child of value) {\n addChild(nodes, child)\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * Property information.\n * @param {string} name\n * Property name.\n * @param {PrimitiveValue} value\n * Property value.\n * @returns {PrimitiveValue}\n * Property value.\n */\nfunction parsePrimitive(info, name, value) {\n if (typeof value === 'string') {\n if (info.number && value && !Number.isNaN(Number(value))) {\n return Number(value)\n }\n\n if (\n (info.boolean || info.overloadedBoolean) &&\n (value === '' || normalize(value) === normalize(name))\n ) {\n return true\n }\n }\n\n return value\n}\n\n/**\n * Serialize a `style` object as a string.\n *\n * @param {Style} styles\n * Style object.\n * @returns {string}\n * CSS string.\n */\nfunction style(styles) {\n /** @type {Array} */\n const result = []\n\n for (const [key, value] of Object.entries(styles)) {\n result.push([key, value].join(': '))\n }\n\n return result.join('; ')\n}\n\n/**\n * Create a map to adjust casing.\n *\n * @param {ReadonlyArray} values\n * List of properly cased keys.\n * @returns {Map}\n * Map of lowercase keys to uppercase keys.\n */\nfunction createAdjustMap(values) {\n /** @type {Map} */\n const result = new Map()\n\n for (const value of values) {\n result.set(value.toLowerCase(), value)\n }\n\n return result\n}\n","// Register the JSX namespace on `h`.\n/**\n * @typedef {import('./jsx-classic.js').Element} h.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} h.JSX.IntrinsicElements\n */\n\n// Register the JSX namespace on `s`.\n/**\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n */\n\nimport {html, svg} from 'property-information'\nimport {createH} from './create-h.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType} */\nexport const h = createH(html, 'div')\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType} */\nexport const s = createH(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * List of case-sensitive SVG tag names.\n *\n * @type {ReadonlyArray}\n */\nexport const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * @import {VFile, Value} from 'vfile'\n * @import {Location} from 'vfile-location'\n */\n\n/**\n * Create an index of the given document to translate between line/column and\n * offset based positional info.\n *\n * Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n * [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n *\n * @param {VFile | Value} file\n * File to index.\n * @returns {Location}\n * Accessors for index.\n */\nexport function location(file) {\n const value = String(file)\n /**\n * List, where each index is a line number (0-based), and each value is the\n * byte index *after* where the line ends.\n *\n * @type {Array}\n */\n const indices = []\n\n return {toOffset, toPoint}\n\n /** @type {Location['toPoint']} */\n function toPoint(offset) {\n if (typeof offset === 'number' && offset > -1 && offset <= value.length) {\n let index = 0\n\n while (true) {\n let end = indices[index]\n\n if (end === undefined) {\n const eol = next(value, indices[index - 1])\n end = eol === -1 ? value.length + 1 : eol + 1\n indices[index] = end\n }\n\n if (end > offset) {\n return {\n line: index + 1,\n column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n offset\n }\n }\n\n index++\n }\n }\n }\n\n /** @type {Location['toOffset']} */\n function toOffset(point) {\n if (\n point &&\n typeof point.line === 'number' &&\n typeof point.column === 'number' &&\n !Number.isNaN(point.line) &&\n !Number.isNaN(point.column)\n ) {\n while (indices.length < point.line) {\n const from = indices[indices.length - 1]\n const eol = next(value, from)\n const end = eol === -1 ? value.length + 1 : eol + 1\n if (from === end) break\n indices.push(end)\n }\n\n const offset =\n (point.line > 1 ? indices[point.line - 2] : 0) + point.column - 1\n // The given `column` could not exist on this line.\n if (offset < indices[point.line - 1]) return offset\n }\n }\n}\n\n/**\n * @param {string} value\n * @param {number} from\n */\nfunction next(value, from) {\n const cr = value.indexOf('\\r', from)\n const lf = value.indexOf('\\n', from)\n if (lf === -1) return cr\n if (cr === -1 || cr + 1 === lf) return lf\n return cr < lf ? cr : lf\n}\n","/**\n * Map of web namespaces.\n *\n * @type {Record}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @import {ElementData, Element, Nodes, RootContent, Root} from 'hast'\n * @import {DefaultTreeAdapterMap, Token} from 'parse5'\n * @import {Schema} from 'property-information'\n * @import {Point, Position} from 'unist'\n * @import {VFile} from 'vfile'\n * @import {Options} from 'hast-util-from-parse5'\n */\n\n/**\n * @typedef State\n * Info passed around about the current state.\n * @property {VFile | undefined} file\n * Corresponding file.\n * @property {boolean} location\n * Whether location info was found.\n * @property {Schema} schema\n * Current schema.\n * @property {boolean | undefined} verbose\n * Add extra positional info.\n */\n\nimport {ok as assert} from 'devlop'\nimport {h, s} from 'hastscript'\nimport {find, html, svg} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n/** @type {unknown} */\n// type-coverage:ignore-next-line\nconst proto = Object.prototype\n\n/**\n * Transform a `parse5` AST to hast.\n *\n * @param {DefaultTreeAdapterMap['node']} tree\n * `parse5` tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * hast tree.\n */\nexport function fromParse5(tree, options) {\n const settings = options || {}\n\n return one(\n {\n file: settings.file || undefined,\n location: false,\n schema: settings.space === 'svg' ? svg : html,\n verbose: settings.verbose || false\n },\n tree\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['node']} node\n * p5 node.\n * @returns {Nodes}\n * hast node.\n */\nfunction one(state, node) {\n /** @type {Nodes} */\n let result\n\n switch (node.nodeName) {\n case '#comment': {\n const reference = /** @type {DefaultTreeAdapterMap['commentNode']} */ (\n node\n )\n result = {type: 'comment', value: reference.data}\n patch(state, reference, result)\n return result\n }\n\n case '#document':\n case '#document-fragment': {\n const reference =\n /** @type {DefaultTreeAdapterMap['document'] | DefaultTreeAdapterMap['documentFragment']} */ (\n node\n )\n const quirksMode =\n 'mode' in reference\n ? reference.mode === 'quirks' || reference.mode === 'limited-quirks'\n : false\n\n result = {\n type: 'root',\n children: all(state, node.childNodes),\n data: {quirksMode}\n }\n\n if (state.file && state.location) {\n const document = String(state.file)\n const loc = location(document)\n const start = loc.toPoint(0)\n const end = loc.toPoint(document.length)\n // Always defined as we give valid input.\n assert(start, 'expected `start`')\n assert(end, 'expected `end`')\n result.position = {start, end}\n }\n\n return result\n }\n\n case '#documentType': {\n const reference = /** @type {DefaultTreeAdapterMap['documentType']} */ (\n node\n )\n result = {type: 'doctype'}\n patch(state, reference, result)\n return result\n }\n\n case '#text': {\n const reference = /** @type {DefaultTreeAdapterMap['textNode']} */ (node)\n result = {type: 'text', value: reference.value}\n patch(state, reference, result)\n return result\n }\n\n // Element.\n default: {\n const reference = /** @type {DefaultTreeAdapterMap['element']} */ (node)\n result = element(state, reference)\n return result\n }\n }\n}\n\n/**\n * Transform children.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Array} nodes\n * Nodes.\n * @returns {Array}\n * hast nodes.\n */\nfunction all(state, nodes) {\n let index = -1\n /** @type {Array} */\n const results = []\n\n while (++index < nodes.length) {\n // Assume no roots in `nodes`.\n const result = /** @type {RootContent} */ (one(state, nodes[index]))\n results.push(result)\n }\n\n return results\n}\n\n/**\n * Transform an element.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['element']} node\n * `parse5` node to transform.\n * @returns {Element}\n * hast node.\n */\nfunction element(state, node) {\n const schema = state.schema\n\n state.schema = node.namespaceURI === webNamespaces.svg ? svg : html\n\n // Props.\n let index = -1\n /** @type {Record} */\n const properties = {}\n\n while (++index < node.attrs.length) {\n const attribute = node.attrs[index]\n const name =\n (attribute.prefix ? attribute.prefix + ':' : '') + attribute.name\n if (!own.call(proto, name)) {\n properties[name] = attribute.value\n }\n }\n\n // Build.\n const x = state.schema.space === 'svg' ? s : h\n const result = x(node.tagName, properties, all(state, node.childNodes))\n patch(state, node, result)\n\n // Switch content.\n if (result.tagName === 'template') {\n const reference = /** @type {DefaultTreeAdapterMap['template']} */ (node)\n const pos = reference.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n // Root in, root out.\n const content = /** @type {Root} */ (one(state, reference.content))\n\n if (startTag && endTag && state.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n state.schema = schema\n\n return result\n}\n\n/**\n * Patch positional info from `from` onto `to`.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['node']} from\n * p5 node.\n * @param {Nodes} to\n * hast node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(state, from, to) {\n if ('sourceCodeLocation' in from && from.sourceCodeLocation && state.file) {\n const position = createLocation(state, to, from.sourceCodeLocation)\n\n if (position) {\n state.location = true\n to.position = position\n }\n }\n}\n\n/**\n * Create clean positional information.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Nodes} node\n * hast node.\n * @param {Token.ElementLocation} location\n * p5 location info.\n * @returns {Position | undefined}\n * Position, or nothing.\n */\nfunction createLocation(state, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: .\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (state.verbose) {\n /** @type {Record} */\n const properties = {}\n /** @type {string} */\n let key\n\n if (location.attrs) {\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n properties[find(state.schema, key).property] = position(\n location.attrs[key]\n )\n }\n }\n }\n\n assert(location.startTag, 'a start tag should exist')\n const opening = position(location.startTag)\n const closing = location.endTag ? position(location.endTag) : undefined\n /** @type {ElementData['position']} */\n const data = {opening}\n if (closing) data.closing = closing\n data.properties = properties\n\n node.data = {position: data}\n }\n }\n\n return result\n}\n\n/**\n * Turn a p5 location into a position.\n *\n * @param {Token.Location} loc\n * Location.\n * @returns {Position | undefined}\n * Position or nothing.\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n\n // @ts-expect-error: we do use `undefined` for points if one or the other\n // exists.\n return start || end ? {start, end} : undefined\n}\n\n/**\n * Filter out invalid points.\n *\n * @param {Point} point\n * Point with potentially `undefined` values.\n * @returns {Point | undefined}\n * Point or nothing.\n */\nfunction point(point) {\n return point.line && point.column ? point : undefined\n}\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record} [Handlers=Record]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record} [Handlers=Record]\n * @param {string} key\n * Field to switch on.\n * @param {Options} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters): ReturnType, (...parameters: Parameters): ReturnType}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @import {Comment, Doctype, Element, Nodes, RootContent, Root, Text} from 'hast'\n * @import {DefaultTreeAdapterMap, Token} from 'parse5'\n * @import {Schema} from 'property-information'\n */\n\n/**\n * @typedef {DefaultTreeAdapterMap['document']} Parse5Document\n * @typedef {DefaultTreeAdapterMap['documentFragment']} Parse5Fragment\n * @typedef {DefaultTreeAdapterMap['element']} Parse5Element\n * @typedef {DefaultTreeAdapterMap['node']} Parse5Nodes\n * @typedef {DefaultTreeAdapterMap['documentType']} Parse5Doctype\n * @typedef {DefaultTreeAdapterMap['commentNode']} Parse5Comment\n * @typedef {DefaultTreeAdapterMap['textNode']} Parse5Text\n * @typedef {DefaultTreeAdapterMap['parentNode']} Parse5Parent\n * @typedef {Token.Attribute} Parse5Attribute\n *\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in (default: `'html'`).\n *\n * When an `` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n *\n * @typedef {Exclude} Parse5Content\n *\n * @typedef {'html' | 'svg'} Space\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {find, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\nconst own = {}.hasOwnProperty\n\nconst one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a hast tree to a `parse5` AST.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Parse5Nodes}\n * `parse5` node.\n */\nexport function toParse5(tree, options) {\n const settings = options || emptyOptions\n const space = settings.space\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Document}\n * Parse5 node.\n */\nfunction root(node, schema) {\n /** @type {Parse5Document} */\n const result = {\n nodeName: '#document',\n // @ts-expect-error: `parse5` uses enums, which are actually strings.\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Fragment}\n * Parse5 node.\n */\nfunction fragment(node, schema) {\n /** @type {Parse5Fragment} */\n const result = {nodeName: '#document-fragment', childNodes: []}\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Doctype} node\n * Node (hast) to transform.\n * @returns {Parse5Doctype}\n * Parse5 node.\n */\nfunction doctype(node) {\n /** @type {Parse5Doctype} */\n const result = {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: null\n }\n\n patch(node, result)\n return result\n}\n\n/**\n * @param {Text} node\n * Node (hast) to transform.\n * @returns {Parse5Text}\n * Parse5 node.\n */\nfunction text(node) {\n /** @type {Parse5Text} */\n const result = {\n nodeName: '#text',\n value: node.value,\n parentNode: null\n }\n patch(node, result)\n return result\n}\n\n/**\n * @param {Comment} node\n * Node (hast) to transform.\n * @returns {Parse5Comment}\n * Parse5 node.\n */\nfunction comment(node) {\n /** @type {Parse5Comment} */\n const result = {\n nodeName: '#comment',\n data: node.value,\n parentNode: null\n }\n\n patch(node, result)\n\n return result\n}\n\n/**\n * @param {Element} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Element}\n * Parse5 node.\n */\nfunction element(node, schema) {\n const parentSchema = schema\n let currentSchema = parentSchema\n\n if (\n node.type === 'element' &&\n node.tagName.toLowerCase() === 'svg' &&\n parentSchema.space === 'html'\n ) {\n currentSchema = svg\n }\n\n /** @type {Array} */\n const attrs = []\n /** @type {string} */\n let prop\n\n if (node.properties) {\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(\n currentSchema,\n prop,\n node.properties[prop]\n )\n\n if (result) {\n attrs.push(result)\n }\n }\n }\n }\n\n const space = currentSchema.space\n // `html` and `svg` both have a space.\n assert(space)\n\n /** @type {Parse5Element} */\n const result = {\n nodeName: node.tagName,\n tagName: node.tagName,\n attrs,\n // @ts-expect-error: `parse5` types are wrong.\n namespaceURI: webNamespaces[space],\n childNodes: [],\n parentNode: null\n }\n result.childNodes = all(node.children, result, currentSchema)\n patch(node, result)\n\n if (node.tagName === 'template' && node.content) {\n // @ts-expect-error: `parse5` types are wrong.\n result.content = fragment(node.content, currentSchema)\n }\n\n return result\n}\n\n/**\n * Handle a property.\n *\n * @param {Schema} schema\n * Current schema.\n * @param {string} prop\n * Key.\n * @param {Array | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Parse5Attribute | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(schema, prop, value) {\n const info = find(schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === false ||\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (!value && info.boolean)\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n /** @type {Parse5Attribute} */\n const attribute = {\n name: info.attribute,\n value: value === true ? '' : String(value)\n }\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n const index = attribute.name.indexOf(':')\n\n if (index < 0) {\n attribute.prefix = ''\n } else {\n attribute.name = attribute.name.slice(index + 1)\n attribute.prefix = info.attribute.slice(0, index)\n }\n\n attribute.namespace = webNamespaces[info.space]\n }\n\n return attribute\n}\n\n/**\n * Transform all hast nodes.\n *\n * @param {Array} children\n * List of children.\n * @param {Parse5Parent} parentNode\n * `parse5` parent node.\n * @param {Schema} schema\n * Current schema.\n * @returns {Array}\n * Transformed children.\n */\nfunction all(children, parentNode, schema) {\n let index = -1\n /** @type {Array} */\n const results = []\n\n if (children) {\n while (++index < children.length) {\n /** @type {Parse5Content} */\n const child = one(children[index], schema)\n\n child.parentNode = parentNode\n\n results.push(child)\n }\n }\n\n return results\n}\n\n/**\n * Add position info from `from` to `to`.\n *\n * @param {Nodes} from\n * hast node.\n * @param {Parse5Nodes} to\n * `parse5` node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n const position = from.position\n\n if (position && position.start && position.end) {\n assert(typeof position.start.offset === 'number')\n assert(typeof position.end.offset === 'number')\n\n to.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","import { CODE_POINTS as $, getSurrogatePairCodePoint, isControlCodePoint, isSurrogate, isSurrogatePair, isUndefinedCodePoint, } from '../common/unicode.js';\nimport { ERR } from '../common/error-codes.js';\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nexport class Preprocessor {\n constructor(handler) {\n this.handler = handler;\n this.html = '';\n this.pos = -1;\n // NOTE: Initial `lastGapPos` is -2, to ensure `col` on initialisation is 0\n this.lastGapPos = -2;\n this.gapStack = [];\n this.skipNextNewLine = false;\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n this.line = 1;\n //NOTE: avoid reporting errors twice on advance/retreat\n this.lastErrOffset = -1;\n }\n /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */\n get col() {\n return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos);\n }\n get offset() {\n return this.droppedBufferSize + this.pos;\n }\n getError(code, cpOffset) {\n const { line, col, offset } = this;\n const startCol = col + cpOffset;\n const startOffset = offset + cpOffset;\n return {\n code,\n startLine: line,\n endLine: line,\n startCol,\n endCol: startCol,\n startOffset,\n endOffset: startOffset,\n };\n }\n _err(code) {\n if (this.handler.onParseError && this.lastErrOffset !== this.offset) {\n this.lastErrOffset = this.offset;\n this.handler.onParseError(this.getError(code, 0));\n }\n }\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.html.length - 1) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n if (isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n //NOTE: add a gap that should be avoided during retreat\n this._addGap();\n return getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n //NOTE: we are at the end of a chunk, therefore we can't infer the surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n return cp;\n }\n willDropParsedChunk() {\n return this.pos > this.bufferWaterline;\n }\n dropParsedChunk() {\n if (this.willDropParsedChunk()) {\n this.html = this.html.substring(this.pos);\n this.lineStartPos -= this.pos;\n this.droppedBufferSize += this.pos;\n this.pos = 0;\n this.lastGapPos = -2;\n this.gapStack.length = 0;\n }\n }\n write(chunk, isLastChunk) {\n if (this.html.length > 0) {\n this.html += chunk;\n }\n else {\n this.html = chunk;\n }\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1);\n this.endOfChunkHit = false;\n }\n startsWith(pattern, caseSensitive) {\n // Check if our buffer has enough characters\n if (this.pos + pattern.length > this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return false;\n }\n if (caseSensitive) {\n return this.html.startsWith(pattern, this.pos);\n }\n for (let i = 0; i < pattern.length; i++) {\n const cp = this.html.charCodeAt(this.pos + i) | 0x20;\n if (cp !== pattern.charCodeAt(i)) {\n return false;\n }\n }\n return true;\n }\n peek(offset) {\n const pos = this.pos + offset;\n if (pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n const code = this.html.charCodeAt(pos);\n return code === $.CARRIAGE_RETURN ? $.LINE_FEED : code;\n }\n advance() {\n this.pos++;\n //NOTE: LF should be in the last column of the line\n if (this.isEol) {\n this.isEol = false;\n this.line++;\n this.lineStartPos = this.pos;\n }\n if (this.pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n let cp = this.html.charCodeAt(this.pos);\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.isEol = true;\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (cp === $.LINE_FEED) {\n this.isEol = true;\n if (this.skipNextNewLine) {\n // `line` will be bumped again in the recursive call.\n this.line--;\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n }\n this.skipNextNewLine = false;\n if (isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange = this.handler.onParseError === null ||\n (cp > 0x1f && cp < 0x7f) ||\n cp === $.LINE_FEED ||\n cp === $.CARRIAGE_RETURN ||\n (cp > 0x9f && cp < 64976);\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n return cp;\n }\n _checkForProblematicCharacters(cp) {\n if (isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n }\n else if (isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n retreat(count) {\n this.pos -= count;\n while (this.pos < this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n this.isEol = false;\n }\n}\n","// Generated using scripts/write-decode-map.ts\nexport const htmlDecodeTree = /* #__PURE__ */ new Uint16Array(\n// prettier-ignore\n/* #__PURE__ */ \"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map","import { TAG_ID as $, NS, NUMBERED_HEADERS } from '../common/html.js';\n//Element utils\nconst IMPLICIT_END_TAG_REQUIRED = new Set([$.DD, $.DT, $.LI, $.OPTGROUP, $.OPTION, $.P, $.RB, $.RP, $.RT, $.RTC]);\nconst IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = new Set([\n ...IMPLICIT_END_TAG_REQUIRED,\n $.CAPTION,\n $.COLGROUP,\n $.TBODY,\n $.TD,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TR,\n]);\nconst SCOPING_ELEMENTS_HTML = new Set([\n $.APPLET,\n $.CAPTION,\n $.HTML,\n $.MARQUEE,\n $.OBJECT,\n $.TABLE,\n $.TD,\n $.TEMPLATE,\n $.TH,\n]);\nconst SCOPING_ELEMENTS_HTML_LIST = new Set([...SCOPING_ELEMENTS_HTML, $.OL, $.UL]);\nconst SCOPING_ELEMENTS_HTML_BUTTON = new Set([...SCOPING_ELEMENTS_HTML, $.BUTTON]);\nconst SCOPING_ELEMENTS_MATHML = new Set([$.ANNOTATION_XML, $.MI, $.MN, $.MO, $.MS, $.MTEXT]);\nconst SCOPING_ELEMENTS_SVG = new Set([$.DESC, $.FOREIGN_OBJECT, $.TITLE]);\nconst TABLE_ROW_CONTEXT = new Set([$.TR, $.TEMPLATE, $.HTML]);\nconst TABLE_BODY_CONTEXT = new Set([$.TBODY, $.TFOOT, $.THEAD, $.TEMPLATE, $.HTML]);\nconst TABLE_CONTEXT = new Set([$.TABLE, $.TEMPLATE, $.HTML]);\nconst TABLE_CELLS = new Set([$.TD, $.TH]);\n//Stack of open elements\nexport class OpenElementStack {\n get currentTmplContentOrNode() {\n return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;\n }\n constructor(document, treeAdapter, handler) {\n this.treeAdapter = treeAdapter;\n this.handler = handler;\n this.items = [];\n this.tagIDs = [];\n this.stackTop = -1;\n this.tmplCount = 0;\n this.currentTagId = $.UNKNOWN;\n this.current = document;\n }\n //Index of element\n _indexOf(element) {\n return this.items.lastIndexOf(element, this.stackTop);\n }\n //Update current element\n _isInTemplate() {\n return this.currentTagId === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagId = this.tagIDs[this.stackTop];\n }\n //Mutations\n push(element, tagID) {\n this.stackTop++;\n this.items[this.stackTop] = element;\n this.current = element;\n this.tagIDs[this.stackTop] = tagID;\n this.currentTagId = tagID;\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n this.handler.onItemPush(element, tagID, true);\n }\n pop() {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, true);\n }\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n this.items[idx] = newElement;\n if (idx === this.stackTop) {\n this.current = newElement;\n }\n }\n insertAfter(referenceElement, newElement, newElementID) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n this.items.splice(insertionIdx, 0, newElement);\n this.tagIDs.splice(insertionIdx, 0, newElementID);\n this.stackTop++;\n if (insertionIdx === this.stackTop) {\n this._updateCurrentElement();\n }\n if (this.current && this.currentTagId !== undefined) {\n this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);\n }\n }\n popUntilTagNamePopped(tagName) {\n let targetIdx = this.stackTop + 1;\n do {\n targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);\n } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== NS.HTML);\n this.shortenToLength(Math.max(targetIdx, 0));\n }\n shortenToLength(idx) {\n while (this.stackTop >= idx) {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount -= 1;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, this.stackTop < idx);\n }\n }\n popUntilElementPopped(element) {\n const idx = this._indexOf(element);\n this.shortenToLength(Math.max(idx, 0));\n }\n popUntilPopped(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(Math.max(idx, 0));\n }\n popUntilNumberedHeaderPopped() {\n this.popUntilPopped(NUMBERED_HEADERS, NS.HTML);\n }\n popUntilTableCellPopped() {\n this.popUntilPopped(TABLE_CELLS, NS.HTML);\n }\n popAllUpToHtmlElement() {\n //NOTE: here we assume that the root element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.tmplCount = 0;\n this.shortenToLength(1);\n }\n _indexOfTagNames(tagNames, namespace) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (tagNames.has(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {\n return i;\n }\n }\n return -1;\n }\n clearBackTo(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx + 1);\n }\n clearBackToTableContext() {\n this.clearBackTo(TABLE_CONTEXT, NS.HTML);\n }\n clearBackToTableBodyContext() {\n this.clearBackTo(TABLE_BODY_CONTEXT, NS.HTML);\n }\n clearBackToTableRowContext() {\n this.clearBackTo(TABLE_ROW_CONTEXT, NS.HTML);\n }\n remove(element) {\n const idx = this._indexOf(element);\n if (idx >= 0) {\n if (idx === this.stackTop) {\n this.pop();\n }\n else {\n this.items.splice(idx, 1);\n this.tagIDs.splice(idx, 1);\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(element, false);\n }\n }\n }\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested element (should be second element in stack).\n return this.stackTop >= 1 && this.tagIDs[1] === $.BODY ? this.items[1] : null;\n }\n contains(element) {\n return this._indexOf(element) > -1;\n }\n getCommonAncestor(element) {\n const elementIdx = this._indexOf(element) - 1;\n return elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.tagIDs[0] === $.HTML;\n }\n //Element in scope\n hasInDynamicScope(tagName, htmlScope) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n switch (this.treeAdapter.getNamespaceURI(this.items[i])) {\n case NS.HTML: {\n if (tn === tagName)\n return true;\n if (htmlScope.has(tn))\n return false;\n break;\n }\n case NS.SVG: {\n if (SCOPING_ELEMENTS_SVG.has(tn))\n return false;\n break;\n }\n case NS.MATHML: {\n if (SCOPING_ELEMENTS_MATHML.has(tn))\n return false;\n break;\n }\n }\n }\n return true;\n }\n hasInScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML);\n }\n hasInListItemScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_LIST);\n }\n hasInButtonScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_BUTTON);\n }\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n switch (this.treeAdapter.getNamespaceURI(this.items[i])) {\n case NS.HTML: {\n if (NUMBERED_HEADERS.has(tn))\n return true;\n if (SCOPING_ELEMENTS_HTML.has(tn))\n return false;\n break;\n }\n case NS.SVG: {\n if (SCOPING_ELEMENTS_SVG.has(tn))\n return false;\n break;\n }\n case NS.MATHML: {\n if (SCOPING_ELEMENTS_MATHML.has(tn))\n return false;\n break;\n }\n }\n }\n return true;\n }\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case tagName: {\n return true;\n }\n case $.TABLE:\n case $.HTML: {\n return false;\n }\n }\n }\n return true;\n }\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case $.TBODY:\n case $.THEAD:\n case $.TFOOT: {\n return true;\n }\n case $.TABLE:\n case $.HTML: {\n return false;\n }\n }\n }\n return true;\n }\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case tagName: {\n return true;\n }\n case $.OPTION:\n case $.OPTGROUP: {\n break;\n }\n default: {\n return false;\n }\n }\n }\n return true;\n }\n //Implied end tags\n generateImpliedEndTags() {\n while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsThoroughly() {\n while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsWithExclusion(exclusionId) {\n while (this.currentTagId !== undefined &&\n this.currentTagId !== exclusionId &&\n IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n}\n","import { DOCUMENT_MODE } from '../common/html.js';\nexport const defaultTreeAdapter = {\n //Node construction\n createDocument() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: [],\n };\n },\n createDocumentFragment() {\n return {\n nodeName: '#document-fragment',\n childNodes: [],\n };\n },\n createElement(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName,\n attrs,\n namespaceURI,\n childNodes: [],\n parentNode: null,\n };\n },\n createCommentNode(data) {\n return {\n nodeName: '#comment',\n data,\n parentNode: null,\n };\n },\n createTextNode(value) {\n return {\n nodeName: '#text',\n value,\n parentNode: null,\n };\n },\n //Tree mutation\n appendChild(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n },\n insertBefore(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n },\n setTemplateContent(templateElement, contentElement) {\n templateElement.content = contentElement;\n },\n getTemplateContent(templateElement) {\n return templateElement.content;\n },\n setDocumentType(document, name, publicId, systemId) {\n const doctypeNode = document.childNodes.find((node) => node.nodeName === '#documentType');\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n }\n else {\n const node = {\n nodeName: '#documentType',\n name,\n publicId,\n systemId,\n parentNode: null,\n };\n defaultTreeAdapter.appendChild(document, node);\n }\n },\n setDocumentMode(document, mode) {\n document.mode = mode;\n },\n getDocumentMode(document) {\n return document.mode;\n },\n detachNode(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n },\n insertText(parentNode, text) {\n if (parentNode.childNodes.length > 0) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n if (defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n return;\n }\n }\n defaultTreeAdapter.appendChild(parentNode, defaultTreeAdapter.createTextNode(text));\n },\n insertTextBefore(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n if (prevNode && defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n }\n else {\n defaultTreeAdapter.insertBefore(parentNode, defaultTreeAdapter.createTextNode(text), referenceNode);\n }\n },\n adoptAttributes(recipient, attrs) {\n const recipientAttrsMap = new Set(recipient.attrs.map((attr) => attr.name));\n for (let j = 0; j < attrs.length; j++) {\n if (!recipientAttrsMap.has(attrs[j].name)) {\n recipient.attrs.push(attrs[j]);\n }\n }\n },\n //Tree traversing\n getFirstChild(node) {\n return node.childNodes[0];\n },\n getChildNodes(node) {\n return node.childNodes;\n },\n getParentNode(node) {\n return node.parentNode;\n },\n getAttrList(element) {\n return element.attrs;\n },\n //Node data\n getTagName(element) {\n return element.tagName;\n },\n getNamespaceURI(element) {\n return element.namespaceURI;\n },\n getTextNodeContent(textNode) {\n return textNode.value;\n },\n getCommentNodeContent(commentNode) {\n return commentNode.data;\n },\n getDocumentTypeNodeName(doctypeNode) {\n return doctypeNode.name;\n },\n getDocumentTypeNodePublicId(doctypeNode) {\n return doctypeNode.publicId;\n },\n getDocumentTypeNodeSystemId(doctypeNode) {\n return doctypeNode.systemId;\n },\n //Node types\n isTextNode(node) {\n return node.nodeName === '#text';\n },\n isCommentNode(node) {\n return node.nodeName === '#comment';\n },\n isDocumentTypeNode(node) {\n return node.nodeName === '#documentType';\n },\n isElementNode(node) {\n return Object.prototype.hasOwnProperty.call(node, 'tagName');\n },\n // Source code location\n setNodeSourceCodeLocation(node, location) {\n node.sourceCodeLocation = location;\n },\n getNodeSourceCodeLocation(node) {\n return node.sourceCodeLocation;\n },\n updateNodeSourceCodeLocation(node, endLocation) {\n node.sourceCodeLocation = { ...node.sourceCodeLocation, ...endLocation };\n },\n};\n","import { DOCUMENT_MODE } from './html.js';\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//',\n];\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...QUIRKS_MODE_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\nconst QUIRKS_MODE_PUBLIC_IDS = new Set([\n '-//w3o//dtd w3 html strict 3.0//en//',\n '-/w3c/dtd html 4.0 transitional/en',\n 'html',\n]);\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...LIMITED_QUIRKS_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\n//Utils\nfunction hasPrefix(publicId, prefixes) {\n return prefixes.some((prefix) => publicId.startsWith(prefix));\n}\n//API\nexport function isConforming(token) {\n return (token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID));\n}\nexport function getDocumentMode(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n const { systemId } = token;\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let { publicId } = token;\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n if (QUIRKS_MODE_PUBLIC_IDS.has(publicId)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n return DOCUMENT_MODE.NO_QUIRKS;\n}\n","import { TAG_ID as $, NS, ATTRS, getTagID } from './html.js';\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml',\n};\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = new Map([\n 'attributeName',\n 'attributeType',\n 'baseFrequency',\n 'baseProfile',\n 'calcMode',\n 'clipPathUnits',\n 'diffuseConstant',\n 'edgeMode',\n 'filterUnits',\n 'glyphRef',\n 'gradientTransform',\n 'gradientUnits',\n 'kernelMatrix',\n 'kernelUnitLength',\n 'keyPoints',\n 'keySplines',\n 'keyTimes',\n 'lengthAdjust',\n 'limitingConeAngle',\n 'markerHeight',\n 'markerUnits',\n 'markerWidth',\n 'maskContentUnits',\n 'maskUnits',\n 'numOctaves',\n 'pathLength',\n 'patternContentUnits',\n 'patternTransform',\n 'patternUnits',\n 'pointsAtX',\n 'pointsAtY',\n 'pointsAtZ',\n 'preserveAlpha',\n 'preserveAspectRatio',\n 'primitiveUnits',\n 'refX',\n 'refY',\n 'repeatCount',\n 'repeatDur',\n 'requiredExtensions',\n 'requiredFeatures',\n 'specularConstant',\n 'specularExponent',\n 'spreadMethod',\n 'startOffset',\n 'stdDeviation',\n 'stitchTiles',\n 'surfaceScale',\n 'systemLanguage',\n 'tableValues',\n 'targetX',\n 'targetY',\n 'textLength',\n 'viewBox',\n 'viewTarget',\n 'xChannelSelector',\n 'yChannelSelector',\n 'zoomAndPan',\n].map((attr) => [attr.toLowerCase(), attr]));\nconst XML_ATTRS_ADJUSTMENT_MAP = new Map([\n ['xlink:actuate', { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK }],\n ['xlink:arcrole', { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK }],\n ['xlink:href', { prefix: 'xlink', name: 'href', namespace: NS.XLINK }],\n ['xlink:role', { prefix: 'xlink', name: 'role', namespace: NS.XLINK }],\n ['xlink:show', { prefix: 'xlink', name: 'show', namespace: NS.XLINK }],\n ['xlink:title', { prefix: 'xlink', name: 'title', namespace: NS.XLINK }],\n ['xlink:type', { prefix: 'xlink', name: 'type', namespace: NS.XLINK }],\n ['xml:lang', { prefix: 'xml', name: 'lang', namespace: NS.XML }],\n ['xml:space', { prefix: 'xml', name: 'space', namespace: NS.XML }],\n ['xmlns', { prefix: '', name: 'xmlns', namespace: NS.XMLNS }],\n ['xmlns:xlink', { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }],\n]);\n//SVG tag names adjustment map\nexport const SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'textPath',\n].map((tn) => [tn.toLowerCase(), tn]));\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = new Set([\n $.B,\n $.BIG,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.CENTER,\n $.CODE,\n $.DD,\n $.DIV,\n $.DL,\n $.DT,\n $.EM,\n $.EMBED,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HR,\n $.I,\n $.IMG,\n $.LI,\n $.LISTING,\n $.MENU,\n $.META,\n $.NOBR,\n $.OL,\n $.P,\n $.PRE,\n $.RUBY,\n $.S,\n $.SMALL,\n $.SPAN,\n $.STRONG,\n $.STRIKE,\n $.SUB,\n $.SUP,\n $.TABLE,\n $.TT,\n $.U,\n $.UL,\n $.VAR,\n]);\n//Check exit from foreign content\nexport function causesExit(startTagToken) {\n const tn = startTagToken.tagID;\n const isFontWithAttrs = tn === $.FONT &&\n startTagToken.attrs.some(({ name }) => name === ATTRS.COLOR || name === ATTRS.SIZE || name === ATTRS.FACE);\n return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn);\n}\n//Token adjustments\nexport function adjustTokenMathMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n}\nexport function adjustTokenSVGAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrName != null) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n}\nexport function adjustTokenXMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n}\nexport function adjustTokenSVGTagName(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName);\n if (adjustedTagName != null) {\n token.tagName = adjustedTagName;\n token.tagID = getTagID(token.tagName);\n }\n}\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\nexport function isIntegrationPoint(tn, ns, attrs, foreignNS) {\n return (((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) ||\n ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)));\n}\n","export const xmlReplacer = /[\"$&'<>\\u0080-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt == null\n ? (c, index) => (c.charCodeAt(index) & 64512) === 55296\n ? (c.charCodeAt(index) - 55296) * 1024 +\n c.charCodeAt(index + 1) -\n 56320 +\n 65536\n : c.charCodeAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (input, index) => input.codePointAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(input) {\n let returnValue = \"\";\n let lastIndex = 0;\n let match;\n while ((match = xmlReplacer.exec(input)) !== null) {\n const { index } = match;\n const char = input.charCodeAt(index);\n const next = xmlCodeMap.get(char);\n if (next === undefined) {\n returnValue += `${input.substring(lastIndex, index)}&#x${getCodePoint(input, index).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIndex = xmlReplacer.lastIndex += Number((char & 64512) === 55296);\n }\n else {\n returnValue += input.substring(lastIndex, index) + next;\n lastIndex = index + 1;\n }\n }\n return returnValue + input.substr(lastIndex);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIndex = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIndex !== match.index) {\n result += data.substring(lastIndex, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIndex = match.index + 1;\n }\n return result + data.substring(lastIndex);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = /* #__PURE__ */ getEscaper(/[\"&'<>]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = \n/* #__PURE__ */ getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = /* #__PURE__ */ getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","import { TAG_NAMES as $, NS, hasUnescapedText } from '../common/html.js';\nimport { escapeText, escapeAttribute } from 'entities/escape';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\n// Sets\nconst VOID_ELEMENTS = new Set([\n $.AREA,\n $.BASE,\n $.BASEFONT,\n $.BGSOUND,\n $.BR,\n $.COL,\n $.EMBED,\n $.FRAME,\n $.HR,\n $.IMG,\n $.INPUT,\n $.KEYGEN,\n $.LINK,\n $.META,\n $.PARAM,\n $.SOURCE,\n $.TRACK,\n $.WBR,\n]);\nfunction isVoidElement(node, options) {\n return (options.treeAdapter.isElementNode(node) &&\n options.treeAdapter.getNamespaceURI(node) === NS.HTML &&\n VOID_ELEMENTS.has(options.treeAdapter.getTagName(node)));\n}\nconst defaultOpts = { treeAdapter: defaultTreeAdapter, scriptingEnabled: true };\n/**\n * Serializes an AST node to an HTML string.\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parse('Hi there!');\n *\n * // Serializes a document.\n * const html = parse5.serialize(document);\n *\n * // Serializes the element content.\n * const str = parse5.serialize(document.childNodes[1]);\n *\n * console.log(str); //> 'Hi there!'\n * ```\n *\n * @param node Node to serialize.\n * @param options Serialization options.\n */\nexport function serialize(node, options) {\n const opts = { ...defaultOpts, ...options };\n if (isVoidElement(node, opts)) {\n return '';\n }\n return serializeChildNodes(node, opts);\n}\n/**\n * Serializes an AST element node to an HTML string, including the element node.\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parseFragment('
Hello, world!
');\n *\n * // Serializes the
element.\n * const str = parse5.serializeOuter(document.childNodes[0]);\n *\n * console.log(str); //> '
Hello, world!
'\n * ```\n *\n * @param node Node to serialize.\n * @param options Serialization options.\n */\nexport function serializeOuter(node, options) {\n const opts = { ...defaultOpts, ...options };\n return serializeNode(node, opts);\n}\nfunction serializeChildNodes(parentNode, options) {\n let html = '';\n // Get container of the child nodes\n const container = options.treeAdapter.isElementNode(parentNode) &&\n options.treeAdapter.getTagName(parentNode) === $.TEMPLATE &&\n options.treeAdapter.getNamespaceURI(parentNode) === NS.HTML\n ? options.treeAdapter.getTemplateContent(parentNode)\n : parentNode;\n const childNodes = options.treeAdapter.getChildNodes(container);\n if (childNodes) {\n for (const currentNode of childNodes) {\n html += serializeNode(currentNode, options);\n }\n }\n return html;\n}\nfunction serializeNode(node, options) {\n if (options.treeAdapter.isElementNode(node)) {\n return serializeElement(node, options);\n }\n if (options.treeAdapter.isTextNode(node)) {\n return serializeTextNode(node, options);\n }\n if (options.treeAdapter.isCommentNode(node)) {\n return serializeCommentNode(node, options);\n }\n if (options.treeAdapter.isDocumentTypeNode(node)) {\n return serializeDocumentTypeNode(node, options);\n }\n // Return an empty string for unknown nodes\n return '';\n}\nfunction serializeElement(node, options) {\n const tn = options.treeAdapter.getTagName(node);\n return `<${tn}${serializeAttributes(node, options)}>${isVoidElement(node, options) ? '' : `${serializeChildNodes(node, options)}`}`;\n}\nfunction serializeAttributes(node, { treeAdapter }) {\n let html = '';\n for (const attr of treeAdapter.getAttrList(node)) {\n html += ' ';\n if (attr.namespace) {\n switch (attr.namespace) {\n case NS.XML: {\n html += `xml:${attr.name}`;\n break;\n }\n case NS.XMLNS: {\n if (attr.name !== 'xmlns') {\n html += 'xmlns:';\n }\n html += attr.name;\n break;\n }\n case NS.XLINK: {\n html += `xlink:${attr.name}`;\n break;\n }\n default: {\n html += `${attr.prefix}:${attr.name}`;\n }\n }\n }\n else {\n html += attr.name;\n }\n html += `=\"${escapeAttribute(attr.value)}\"`;\n }\n return html;\n}\nfunction serializeTextNode(node, options) {\n const { treeAdapter } = options;\n const content = treeAdapter.getTextNodeContent(node);\n const parent = treeAdapter.getParentNode(node);\n const parentTn = parent && treeAdapter.isElementNode(parent) && treeAdapter.getTagName(parent);\n return parentTn &&\n treeAdapter.getNamespaceURI(parent) === NS.HTML &&\n hasUnescapedText(parentTn, options.scriptingEnabled)\n ? content\n : escapeText(content);\n}\nfunction serializeCommentNode(node, { treeAdapter }) {\n return ``;\n}\nfunction serializeDocumentTypeNode(node, { treeAdapter }) {\n return ``;\n}\n","/**\n * @import {Options} from 'hast-util-raw'\n * @import {Comment, Doctype, Element, Nodes, RootContent, Root, Text} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {DefaultTreeAdapterMap, ParserOptions} from 'parse5'\n * @import {Point} from 'unist'\n */\n\n/**\n * @typedef State\n * Info passed around about the current state.\n * @property {(node: Nodes) => undefined} handle\n * Add a hast node to the parser.\n * @property {Options} options\n * User configuration.\n * @property {Parser} parser\n * Current parser.\n * @property {boolean} stitches\n * Whether there are stitches.\n */\n\n/**\n * @typedef Stitch\n * Custom comment-like value we pass through parse5, which contains a\n * replacement node that we’ll swap back in afterwards.\n * @property {'comment'} type\n * Node type.\n * @property {{stitch: Nodes}} value\n * Replacement value.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {Parser, Token, TokenizerMode, html} from 'parse5'\nimport {pointEnd, pointStart} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst gfmTagfilterExpression =\n /<(\\/?)(iframe|noembed|noframes|plaintext|script|style|textarea|title|xmp)(?=[\\t\\n\\f\\r />])/gi\n\n// Node types associated with MDX.\n// \nconst knownMdxNames = new Set([\n 'mdxFlowExpression',\n 'mdxJsxFlowElement',\n 'mdxJsxTextElement',\n 'mdxTextExpression',\n 'mdxjsEsm'\n])\n\n/** @type {ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Pass a hast tree through an HTML parser, which will fix nesting, and turn\n * raw nodes into actual nodes.\n *\n * @param {Nodes} tree\n * Original hast tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * Parsed again tree.\n */\nexport function raw(tree, options) {\n const document = documentMode(tree)\n /** @type {(node: Nodes, state: State) => undefined} */\n const one = zwitch('type', {\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n unknown\n })\n\n /** @type {State} */\n const state = {\n parser: document\n ? new Parser(parseOptions)\n : Parser.getFragmentParser(undefined, parseOptions),\n handle(node) {\n one(node, state)\n },\n stitches: false,\n options: options || {}\n }\n\n one(tree, state)\n resetTokenizer(state, pointStart())\n\n const p5 = document ? state.parser.document : state.parser.getFragment()\n const result = fromParse5(p5, {\n // To do: support `space`?\n file: state.options.file\n })\n\n if (state.stitches) {\n visit(result, 'comment', function (node, index, parent) {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent && index !== undefined) {\n /** @type {Array} */\n const siblings = parent.children\n // @ts-expect-error: assume the stitch is allowed.\n siblings[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n result.type === 'root' &&\n result.children.length === 1 &&\n result.children[0].type === tree.type\n ) {\n return result.children[0]\n }\n\n return result\n}\n\n/**\n * Transform all nodes\n *\n * @param {Array} nodes\n * hast content.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction all(nodes, state) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n state.handle(nodes[index])\n }\n }\n}\n\n/**\n * Transform a root.\n *\n * @param {Root} node\n * hast root node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction root(node, state) {\n all(node.children, state)\n}\n\n/**\n * Transform an element.\n *\n * @param {Element} node\n * hast element node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction element(node, state) {\n startTag(node, state)\n\n all(node.children, state)\n\n endTag(node, state)\n}\n\n/**\n * Transform a text.\n *\n * @param {Text} node\n * hast text node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction text(node, state) {\n // Allow `DATA` through `PLAINTEXT`,\n // but when hanging in a tag for example,\n // switch back to `DATA`.\n // Note: `State` is not exposed by `parse5`, so these numbers are fragile.\n // See: \n if (state.parser.tokenizer.state > 4) {\n state.parser.tokenizer.state = 0\n }\n\n /** @type {Token.CharacterToken} */\n const token = {\n type: Token.TokenType.CHARACTER,\n chars: node.value,\n location: createParse5Location(node)\n }\n\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n state.parser.currentToken = token\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a doctype.\n *\n * @param {Doctype} node\n * hast doctype node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction doctype(node, state) {\n /** @type {Token.DoctypeToken} */\n const token = {\n type: Token.TokenType.DOCTYPE,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n }\n\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n state.parser.currentToken = token\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a stitch.\n *\n * @param {Nodes} node\n * unknown node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction stitch(node, state) {\n // Mark that there are stitches, so we need to walk the tree and revert them.\n state.stitches = true\n\n /** @type {Nodes} */\n const clone = cloneWithoutChildren(node)\n\n // Recurse, because to somewhat handle `[]` (where `[]` denotes the\n // passed through node).\n if ('children' in node && 'children' in clone) {\n // Root in root out.\n const fakeRoot = /** @type {Root} */ (\n raw({type: 'root', children: node.children}, state.options)\n )\n clone.children = fakeRoot.children\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}}, state)\n}\n\n/**\n * Transform a comment (or stitch).\n *\n * @param {Comment | Stitch} node\n * hast comment node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction comment(node, state) {\n /** @type {string} */\n // @ts-expect-error: we pass stitches through.\n const data = node.value\n\n /** @type {Token.CommentToken} */\n const token = {\n type: Token.TokenType.COMMENT,\n data,\n location: createParse5Location(node)\n }\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n state.parser.currentToken = token\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a raw node.\n *\n * @param {Raw} node\n * hast raw node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction handleRaw(node, state) {\n // Reset preprocessor:\n // See: .\n state.parser.tokenizer.preprocessor.html = ''\n state.parser.tokenizer.preprocessor.pos = -1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lastGapPos = -2\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.gapStack = []\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.skipNextNewLine = false\n state.parser.tokenizer.preprocessor.lastChunkWritten = false\n state.parser.tokenizer.preprocessor.endOfChunkHit = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.isEol = false\n\n // Now pass `node.value`.\n setPoint(state, pointStart(node))\n\n state.parser.tokenizer.write(\n state.options.tagfilter\n ? node.value.replace(gfmTagfilterExpression, '<$1$2')\n : node.value,\n false\n )\n // @ts-expect-error: private.\n state.parser.tokenizer._runParsingLoop()\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n\n // Note: `State` is not exposed by `parse5`, so these numbers are fragile.\n // See: \n // Note: a change to `parse5`, which breaks this, was merged but not released.\n // Investigate when it is.\n // To do: remove next major.\n /* c8 ignore next 12 -- removed in */\n if (\n state.parser.tokenizer.state === 72 /* NAMED_CHARACTER_REFERENCE */ ||\n // @ts-expect-error: removed.\n state.parser.tokenizer.state === 78 /* NUMERIC_CHARACTER_REFERENCE_END */\n ) {\n state.parser.tokenizer.preprocessor.lastChunkWritten = true\n /** @type {number} */\n // @ts-expect-error: private.\n const cp = state.parser.tokenizer._consume()\n // @ts-expect-error: private.\n state.parser.tokenizer._callState(cp)\n }\n}\n\n/**\n * Crash on an unknown node.\n *\n * @param {unknown} node_\n * unknown node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Never.\n */\nfunction unknown(node_, state) {\n const node = /** @type {Nodes} */ (node_)\n\n if (\n state.options.passThrough &&\n state.options.passThrough.includes(node.type)\n ) {\n stitch(node, state)\n } else {\n let extra = ''\n\n if (knownMdxNames.has(node.type)) {\n extra =\n \". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax\"\n }\n\n throw new Error('Cannot compile `' + node.type + '` node' + extra)\n }\n}\n\n/**\n * Reset the tokenizer of a parser.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Point | undefined} point\n * Point.\n * @returns {undefined}\n * Nothing.\n */\nfunction resetTokenizer(state, point) {\n setPoint(state, point)\n\n // Process final characters if they’re still there after hibernating.\n /** @type {Token.CharacterToken} */\n // @ts-expect-error: private.\n const token = state.parser.tokenizer.currentCharacterToken\n\n if (token && token.location) {\n token.location.endLine = state.parser.tokenizer.preprocessor.line\n token.location.endCol = state.parser.tokenizer.preprocessor.col + 1\n token.location.endOffset = state.parser.tokenizer.preprocessor.offset + 1\n // @ts-expect-error: private.\n state.parser.currentToken = token\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n }\n\n // Reset tokenizer:\n // See: .\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n // @ts-expect-error: private.\n state.parser.tokenizer.paused = false\n // @ts-expect-error: private.\n state.parser.tokenizer.inLoop = false\n\n // Note: don’t reset `state`, `inForeignNode`, or `lastStartTagName`, we\n // manually update those when needed.\n state.parser.tokenizer.active = false\n // @ts-expect-error: private.\n state.parser.tokenizer.returnState = TokenizerMode.DATA\n // @ts-expect-error: private.\n state.parser.tokenizer.charRefCode = -1\n // @ts-expect-error: private.\n state.parser.tokenizer.consumedAfterSnapshot = -1\n // @ts-expect-error: private.\n state.parser.tokenizer.currentLocation = null\n // @ts-expect-error: private.\n state.parser.tokenizer.currentCharacterToken = null\n // @ts-expect-error: private.\n state.parser.tokenizer.currentToken = null\n // @ts-expect-error: private.\n state.parser.tokenizer.currentAttr = {name: '', value: ''}\n}\n\n/**\n * Set current location.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Point | undefined} point\n * Point.\n * @returns {undefined}\n * Nothing.\n */\nfunction setPoint(state, point) {\n if (point && point.offset !== undefined) {\n /** @type {Token.Location} */\n const location = {\n startLine: point.line,\n startCol: point.column,\n startOffset: point.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n }\n\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lineStartPos = -point.column + 1 // Looks weird, but ensures we get correct positional info.\n state.parser.tokenizer.preprocessor.droppedBufferSize = point.offset\n state.parser.tokenizer.preprocessor.line = point.line\n // @ts-expect-error: private.\n state.parser.tokenizer.currentLocation = location\n }\n}\n\n/**\n * Emit a start tag.\n *\n * @param {Element} node\n * Element.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction startTag(node, state) {\n const tagName = node.tagName.toLowerCase()\n\n // Ignore tags if we’re in plain text.\n if (state.parser.tokenizer.state === TokenizerMode.PLAINTEXT) return\n\n resetTokenizer(state, pointStart(node))\n\n const current = state.parser.openElements.current\n let ns = 'namespaceURI' in current ? current.namespaceURI : webNamespaces.html\n\n if (ns === webNamespaces.html && tagName === 'svg') {\n ns = webNamespaces.svg\n }\n\n const result = toParse5(\n // Shallow clone to not delve into `children`: we only need the attributes.\n {...node, children: []},\n {space: ns === webNamespaces.svg ? 'svg' : 'html'}\n )\n\n /** @type {Token.TagToken} */\n const tag = {\n type: Token.TokenType.START_TAG,\n tagName,\n tagID: html.getTagID(tagName),\n // We always send start and end tags.\n selfClosing: false,\n ackSelfClosing: false,\n // Always element.\n /* c8 ignore next */\n attrs: 'attrs' in result ? result.attrs : [],\n location: createParse5Location(node)\n }\n\n // The HTML parsing algorithm works by doing half of the state management in\n // the tokenizer and half in the parser.\n // We can’t use the tokenizer here, as we don’t have strings.\n // So we act *as if* the tokenizer emits tokens:\n\n // @ts-expect-error: private.\n state.parser.currentToken = tag\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n\n // …but then we still need a bunch of work that the tokenizer would normally\n // do, such as:\n\n // Set a tag name, similar to how the tokenizer would do it.\n state.parser.tokenizer.lastStartTagName = tagName\n\n // `inForeignNode` is correctly set by the parser.\n}\n\n/**\n * Emit an end tag.\n *\n * @param {Element} node\n * Element.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction endTag(node, state) {\n const tagName = node.tagName.toLowerCase()\n // Do not emit closing tags for HTML void elements.\n if (\n !state.parser.tokenizer.inForeignNode &&\n htmlVoidElements.includes(tagName)\n ) {\n return\n }\n\n // Ignore tags if we’re in plain text.\n if (state.parser.tokenizer.state === TokenizerMode.PLAINTEXT) return\n\n resetTokenizer(state, pointEnd(node))\n\n /** @type {Token.TagToken} */\n const tag = {\n type: Token.TokenType.END_TAG,\n tagName,\n tagID: html.getTagID(tagName),\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: createParse5Location(node)\n }\n\n // The HTML parsing algorithm works by doing half of the state management in\n // the tokenizer and half in the parser.\n // We can’t use the tokenizer here, as we don’t have strings.\n // So we act *as if* the tokenizer emits tokens:\n\n // @ts-expect-error: private.\n state.parser.currentToken = tag\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n\n // …but then we still need a bunch of work that the tokenizer would normally\n // do, such as:\n\n // Switch back to the data state after alternative states that don’t accept\n // tags:\n if (\n // Current element is closed.\n tagName === state.parser.tokenizer.lastStartTagName &&\n // `

!^a