valtech-components 4.0.442 → 4.0.444

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,21 @@ import { I18nService } from '../../../services/i18n';
5
5
  import { MINI_GAMES_I18N } from './mini-games.i18n';
6
6
  import * as i0 from "@angular/core";
7
7
  const STARTER_CARDS = {
8
- o_simple: { id: 'o_simple', name: 'Ofrenda simple', type: 'offering', cost: 0, attack: 0, life: 1 },
8
+ o_simple: {
9
+ id: 'o_simple',
10
+ name: 'Ofrenda simple',
11
+ type: 'offering',
12
+ cost: 0,
13
+ attack: 0,
14
+ life: 1,
15
+ verseText: 'Una ofrenda sencilla queda lista para sostener tus siguientes jugadas.',
16
+ scripture: 'Genesis 4:4',
17
+ edition: 'GEN',
18
+ collectorNumber: '001/020',
19
+ year: '2026',
20
+ author: 'MVP',
21
+ rarity: 'normal',
22
+ },
9
23
  o_forbidden: {
10
24
  id: 'o_forbidden',
11
25
  name: 'El fruto prohibido',
@@ -14,14 +28,35 @@ const STARTER_CARDS = {
14
28
  attack: 0,
15
29
  life: 2,
16
30
  abilityName: 'Conocimiento del bien y del mal',
17
- abilityText: 'Al usarla, disminuye en 1 los puntos de vida de tu Lider.',
31
+ abilityText: 'Al usarla, disminuye en 1 los puntos de vida de tu Líder.',
18
32
  abilityCost: 0,
33
+ verseText: 'Dios el Señor puso al hombre en el jardín de Edén para que lo labrara y lo cuidara.',
34
+ scripture: 'Genesis 2:17 NBV',
35
+ edition: 'GEN',
36
+ collectorNumber: '012/180',
37
+ year: '2026',
38
+ author: 'MVP',
39
+ rarity: 'uncommon',
40
+ },
41
+ p_scout: {
42
+ id: 'p_scout',
43
+ name: 'Scout',
44
+ type: 'character',
45
+ cost: 1,
46
+ attack: 1,
47
+ life: 1,
48
+ verseText: 'Un explorador humilde abre camino antes de que llegue la batalla.',
49
+ scripture: 'Genesis 13:17',
50
+ edition: 'GEN',
51
+ collectorNumber: '002/020',
52
+ year: '2026',
53
+ author: 'MVP',
54
+ rarity: 'normal',
19
55
  },
20
- p_scout: { id: 'p_scout', name: 'Scout', type: 'character', cost: 1, attack: 1, life: 1 },
21
- p_guard: { id: 'p_guard', name: 'Guard', type: 'character', cost: 2, attack: 1, life: 3 },
22
- p_warrior: { id: 'p_warrior', name: 'Warrior', type: 'character', cost: 2, attack: 2, life: 2 },
23
- p_elder: { id: 'p_elder', name: 'Elder', type: 'character', cost: 3, attack: 2, life: 4 },
24
- p_champion: { id: 'p_champion', name: 'Champion', type: 'character', cost: 4, attack: 4, life: 4 },
56
+ p_guard: { id: 'p_guard', name: 'Guard', type: 'character', cost: 2, attack: 1, life: 3, edition: 'GEN', collectorNumber: '003/020', year: '2026', author: 'MVP', rarity: 'normal' },
57
+ p_warrior: { id: 'p_warrior', name: 'Warrior', type: 'character', cost: 2, attack: 2, life: 2, edition: 'GEN', collectorNumber: '004/020', year: '2026', author: 'MVP', rarity: 'normal' },
58
+ p_elder: { id: 'p_elder', name: 'Elder', type: 'character', cost: 3, attack: 2, life: 4, edition: 'GEN', collectorNumber: '005/020', year: '2026', author: 'MVP', rarity: 'uncommon' },
59
+ p_champion: { id: 'p_champion', name: 'Champion', type: 'character', cost: 4, attack: 4, life: 4, edition: 'GEN', collectorNumber: '006/020', year: '2026', author: 'MVP', rarity: 'rare' },
25
60
  };
26
61
  const STARTING_SHARED_DECK = [
27
62
  'o_simple',
@@ -139,6 +174,10 @@ export class ChristianityGameComponent {
139
174
  const selected = this.selectedHandCard();
140
175
  return selected ? this.cardDefinition(selected) : null;
141
176
  });
177
+ this.selectedPreviewCard = computed(() => {
178
+ const cardId = this.selectedPreview()?.cardId;
179
+ return cardId ? this.cardDefinition(cardId) : null;
180
+ });
142
181
  this.statusText = computed(() => {
143
182
  const attacker = this.selectedAttacker();
144
183
  const handCard = this.selectedCardDefinition();
@@ -165,6 +204,9 @@ export class ChristianityGameComponent {
165
204
  cardDefinition(cardId) {
166
205
  return STARTER_CARDS[cardId] ?? STARTER_CARDS['p_scout'];
167
206
  }
207
+ cardTypeLabel(card) {
208
+ return card.type === 'offering' ? this.t('christianityOfferingCard') : this.t('christianityCharacterCard');
209
+ }
168
210
  battleSlots(seat) {
169
211
  const cards = this.game().players[seat].battleZone;
170
212
  return Array.from({ length: 4 }, (_, index) => ({
@@ -892,18 +934,70 @@ export class ChristianityGameComponent {
892
934
  (pointermove)="tiltPreview($event)"
893
935
  (pointerleave)="resetPreviewTilt()"
894
936
  >
895
- <small>{{ selectedPreview()?.eyebrow }}</small>
896
- <strong>{{ selectedPreview()?.title }}</strong>
897
- <span>{{ selectedPreview()?.meta }}</span>
898
- <p>{{ selectedPreview()?.body }}</p>
899
- @if (selectedPreview()?.source === 'hand') {
900
- <div class="christianity-floating-card-actions">
901
- <button type="button" [disabled]="previewActionDisabled()" (click)="playPreviewCard()">
902
- {{ selectedActionLabel() }}
903
- </button>
904
- </div>
937
+ @if (selectedPreviewCard(); as previewCard) {
938
+ <header class="christianity-full-card-header">
939
+ <span class="christianity-full-card-type-icon" aria-hidden="true"></span>
940
+ <strong>{{ previewCard.name }}</strong>
941
+ <span class="christianity-full-card-cost">{{ previewCard.type === 'offering' ? '+' + previewCard.life : previewCard.cost }}</span>
942
+ </header>
943
+ <section class="christianity-full-card-art" [class.has-image]="previewCard.imageUrl">
944
+ @if (previewCard.imageUrl) {
945
+ <img [src]="previewCard.imageUrl" [alt]="previewCard.name" />
946
+ } @else {
947
+ <span>{{ previewCard.name }}</span>
948
+ }
949
+ <small>{{ cardTypeLabel(previewCard) }}</small>
950
+ </section>
951
+ <section class="christianity-full-card-verse">
952
+ <p>{{ previewCard.verseText ?? selectedPreview()?.body }}</p>
953
+ @if (previewCard.scripture) {
954
+ <strong>{{ previewCard.scripture }}</strong>
955
+ }
956
+ </section>
957
+ <section class="christianity-full-card-effect">
958
+ <div class="christianity-full-card-stats">
959
+ @if (previewCard.type === 'character') {
960
+ <strong>{{ previewCard.attack }}</strong>
961
+ <strong>{{ previewCard.life }}</strong>
962
+ } @else {
963
+ <strong>+{{ previewCard.life }}</strong>
964
+ }
965
+ </div>
966
+ <div>
967
+ @if (previewCard.abilityName) {
968
+ <strong>{{ previewCard.abilityName }}</strong>
969
+ }
970
+ <p>{{ previewCard.abilityText ?? selectedPreview()?.body }}</p>
971
+ </div>
972
+ <span
973
+ class="christianity-full-card-rarity"
974
+ [class.is-normal]="!previewCard.rarity || previewCard.rarity === 'normal'"
975
+ [class.is-uncommon]="previewCard.rarity === 'uncommon'"
976
+ [class.is-rare]="previewCard.rarity === 'rare'"
977
+ [class.is-legendary]="previewCard.rarity === 'legendary'"
978
+ aria-hidden="true"
979
+ ></span>
980
+ </section>
981
+ <footer class="christianity-full-card-footer">
982
+ <span>{{ previewCard.edition ?? 'MVP' }}</span>
983
+ <span>{{ previewCard.collectorNumber ?? previewCard.id }}</span>
984
+ <span>{{ previewCard.year ?? '2026' }} CHRISTIANITY</span>
985
+ <span>{{ previewCard.author ?? 'MVP' }}</span>
986
+ </footer>
987
+ } @else {
988
+ <small>{{ selectedPreview()?.eyebrow }}</small>
989
+ <strong>{{ selectedPreview()?.title }}</strong>
990
+ <span>{{ selectedPreview()?.meta }}</span>
991
+ <p>{{ selectedPreview()?.body }}</p>
905
992
  }
906
993
  </div>
994
+ @if (selectedPreview()?.source === 'hand') {
995
+ <div class="christianity-floating-card-actions">
996
+ <button type="button" [disabled]="previewActionDisabled()" (click)="playPreviewCard()">
997
+ {{ selectedActionLabel() }}
998
+ </button>
999
+ </div>
1000
+ }
907
1001
  </aside>
908
1002
  }
909
1003
 
@@ -997,7 +1091,7 @@ export class ChristianityGameComponent {
997
1091
  </section>
998
1092
  }
999
1093
  </main>
1000
- `, isInline: true, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.65rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb;overflow:visible}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{display:grid;gap:.45rem;padding:.45rem .35rem;border-radius:.75rem;background:#dceafb;overflow:visible}.christianity-player-side{display:grid;gap:.35rem;padding:.35rem .3rem;border-radius:.7rem;background:#ffffff57;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(4,minmax(4.2rem,1fr));gap:.5rem;align-items:center;min-height:clamp(7.8rem,25vw,9.6rem);padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#eff6fff0,#ffffffd1),#ffffffc2;box-shadow:inset 0 0 0 .14rem #2563eb29,0 .8rem 1.7rem #2563eb1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;min-height:clamp(6.8rem,21vw,8.2rem);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73;color:inherit;font:inherit}.christianity-slot--play-target{position:relative;border-color:#2563eb8c;background:#dbeafec7;color:#1d4ed8;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #60a5fa33,0 .7rem 1.25rem #2563eb29;animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(37,99,235,.2);border-radius:.4rem;background:linear-gradient(135deg,rgba(37,99,235,.08),transparent 46%),radial-gradient(circle at 50% 42%,rgba(96,165,250,.22),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #60a5fa33,0 .7rem 1.25rem #2563eb29}50%{box-shadow:inset 0 0 0 .16rem #60a5fa57,0 .9rem 1.65rem #2563eb3d}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:#2563eb;box-shadow:0 1rem 2rem #2563eb2e}.christianity-card-preview-card--hand{touch-action:none}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-preview-card.cdk-drag-preview{border:1px solid rgba(37,99,235,.48);box-shadow:0 0 0 .16rem #bfdbfe6b,0 1.5rem 3rem #102a4347;transform:rotate(2deg)}.christianity-card-preview-card.cdk-drag-placeholder{opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-pile.cdk-drop-list-dragging{border-color:#2563ebb8}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-pile.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #60a5fa57,0 1rem 1.9rem #2563eb38}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2rem;height:1.45rem;border:1px solid rgba(37,99,235,.24);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.05rem;height:.62rem;border:.12rem solid #2563eb;border-radius:999px 999px .72rem .72rem;transform:translate(-50%,-50%)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.28rem;height:.28rem;border-radius:999px;background:#2563eb;transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-pile.is-play-target{border-color:#2563eb94;background:linear-gradient(180deg,#eff6fff5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #60a5fa3d,0 .8rem 1.55rem #2563eb33;animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:clamp(5rem,16vw,6.6rem);box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{justify-self:center;width:auto;min-width:clamp(4.8rem,15vw,6.6rem);height:clamp(6.8rem,21vw,8.4rem);min-height:0;aspect-ratio:5 / 7;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-offering-pile span,.christianity-offering-card span,.christianity-leader-card span,.christianity-zone-card span,.christianity-zone-pile span{position:relative;z-index:2;font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-offering-pile strong,.christianity-offering-card strong,.christianity-leader-card strong,.christianity-zone-card strong,.christianity-zone-pile strong{position:relative;z-index:3;justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(5.9rem,7rem) minmax(5rem,1fr) minmax(4.2rem,7rem);gap:.45rem;align-items:end;justify-items:stretch}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-start;justify-self:start;width:100%}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-self:start;width:min(100%,5.9rem);min-height:7.1rem;padding:.95rem .52rem .6rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-pile i{position:absolute;inset:auto auto 1.05rem .72rem;z-index:-1;width:2.55rem;height:3.55rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:linear-gradient(180deg,#ffffffeb,#f1f5f9eb),radial-gradient(circle at 78% 18%,#facc15 0 .38rem,transparent .4rem);box-shadow:0 .35rem .85rem #102a431a;transform:rotate(-5deg)}.christianity-offering-pile i:nth-child(2){transform:translate(.28rem,.08rem) rotate(3deg)}.christianity-offering-pile i:nth-child(3){transform:translate(.55rem,.18rem) rotate(-1deg)}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(4.75rem,17vw,6rem);min-height:clamp(6.6rem,22vw,8.4rem)}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(4rem,1fr))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-zone-card,.christianity-zone-pile{min-height:6.45rem;padding:.7rem .52rem .55rem}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;box-shadow:inset 0 0 0 999px #ffffff1f}.christianity-zone-pile i{position:absolute;inset:auto .72rem 1.02rem auto;z-index:-1;width:2.7rem;height:3.7rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:#f8fafc;box-shadow:0 .35rem .85rem #102a431c;transform:rotate(4deg)}.christianity-zone-pile i:nth-child(2){transform:translate(-.28rem,.12rem) rotate(-3deg)}.christianity-zone-pile i:nth-child(3){background:linear-gradient(135deg,#102a4329,#102a4308),repeating-linear-gradient(45deg,#dbeafe 0 .33rem,#fff .33rem .66rem);transform:translate(-.54rem,.24rem) rotate(2deg)}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:61;width:min(28rem,calc(100vw - 1.25rem));transform:translate(-50%,-50%)}.christianity-floating-card{display:grid;gap:.45rem;width:100%;min-height:min(31rem,calc(100vh - 3.5rem));padding:1.15rem;border:1px solid rgba(36,48,68,.18);border-radius:.75rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 20% 0%,rgba(37,99,235,.12),transparent 45%);box-shadow:0 0 0 .18rem #bfdbfe6b,0 0 2.2rem #60a5fa57,0 2.4rem 5rem #102a4357,inset 0 0 0 .35rem #ffffff8c;touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-floating-card-close{position:absolute;top:-2.6rem;right:0;z-index:62;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-backdrop,.christianity-history-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172a75}.christianity-preview-backdrop{z-index:60}.christianity-floating-card small,.christianity-floating-card span{color:#1f2933a3}.christianity-floating-card strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-floating-card-actions{display:flex;justify-content:flex-end;margin-top:.35rem}.christianity-floating-card-actions button{min-height:2.35rem;padding:0 .9rem;border:0;border-radius:999px;background:#102a43;color:#fff;font:inherit;font-size:.9rem;font-weight:800;box-shadow:0 .65rem 1.3rem #102a432e}.christianity-floating-card-actions button:disabled{cursor:not-allowed;opacity:.45}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(34rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:min(43rem,calc(100vh - 4rem));padding:1.45rem}}.christianity-history-backdrop{z-index:40}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(4.9rem,6.2rem) minmax(0,1fr);gap:.65rem;align-items:stretch;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-offering-card{min-height:7.4rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 82% 14%,#facc15 0 .48rem,transparent .5rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{color:#1f293394;font-size:.66rem;text-transform:uppercase}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem}.christianity-player-side{padding:.3rem .25rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(3.35rem,1fr));overflow-x:auto}.christianity-hand-fan{min-height:10.55rem;padding-bottom:2rem;overflow:visible}.christianity-hand-shelf{min-height:11.75rem;margin-top:-1rem;padding-top:1.35rem;padding-bottom:.9rem}.christianity-hand-shelf--opponent{min-height:6.65rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.85rem}.christianity-player-rack{grid-template-columns:minmax(4.7rem,5.9rem) minmax(4.8rem,1fr) minmax(3.7rem,5rem)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem}.christianity-offering-pile{min-height:6.85rem;padding:.88rem .46rem .55rem}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-leader-card{width:clamp(4.55rem,20vw,5.7rem);min-height:clamp(6.15rem,27vw,7.6rem)}.christianity-offering-row{grid-template-columns:minmax(4.5rem,5.5rem) minmax(0,1fr);gap:.5rem}.christianity-hand-fan--opponent{min-height:5.75rem;padding-bottom:.7rem}}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: LightRippleDirective, selector: "[valLightRipple]" }] }); }
1094
+ `, isInline: true, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #fffaf0;--christianity-theme-olive: #5f6f2a;--christianity-theme-gold: #d6a21d;--christianity-theme-gold-soft: rgba(214, 162, 29, .18);--christianity-theme-gold-ring: rgba(214, 162, 29, .48);--christianity-theme-glow: rgba(245, 199, 85, .32);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(82, 64, 28, .18);--christianity-theme-shadow-strong: rgba(82, 64, 28, .3);display:block;color:var(--christianity-theme-ink)}.christianity-shell{display:grid;gap:.65rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb;overflow:visible}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{display:grid;gap:.45rem;padding:.45rem .35rem;border-radius:.75rem;background:#dceafb;overflow:visible}.christianity-player-side{display:grid;gap:.35rem;padding:.35rem .3rem;border-radius:.7rem;background:#ffffff57;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(4.8rem, 15vw, 6.6rem);display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;min-height:clamp(7.8rem,25vw,9.6rem);padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:var(--christianity-battle-card-width);height:clamp(6.8rem,21vw,8.4rem);min-height:0;aspect-ratio:5 / 7;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73;color:inherit;font:inherit}.christianity-slot--play-target{position:relative;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow)}.christianity-card-preview-card--hand{touch-action:none}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-preview-card.cdk-drag-preview{border:1px solid var(--christianity-theme-gold-ring);box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-preview-card.cdk-drag-placeholder{opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-pile.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-pile.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid rgba(214,162,29,.34);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-olive);border-radius:82% 0;background:#fffaf0eb;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,250,240,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-gold);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-pile.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:clamp(5rem,16vw,6.6rem);box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{justify-self:center;width:var(--christianity-battle-card-width);min-width:0;height:clamp(6.8rem,21vw,8.4rem);min-height:0;aspect-ratio:5 / 7;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-offering-pile span,.christianity-offering-card span,.christianity-leader-card span,.christianity-zone-card span,.christianity-zone-pile span{position:relative;z-index:2;font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-offering-pile strong,.christianity-offering-card strong,.christianity-leader-card strong,.christianity-zone-card strong,.christianity-zone-pile strong{position:relative;z-index:3;justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(5.9rem,7rem) minmax(5rem,1fr) minmax(4.2rem,7rem);gap:.45rem;align-items:end;justify-items:stretch}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-start;justify-self:start;width:100%}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-self:start;width:min(100%,5.9rem);min-height:7.1rem;padding:.95rem .52rem .6rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-pile i{position:absolute;inset:auto auto 1.05rem .72rem;z-index:-1;width:2.55rem;height:3.55rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:linear-gradient(180deg,#ffffffeb,#f1f5f9eb),radial-gradient(circle at 78% 18%,#facc15 0 .38rem,transparent .4rem);box-shadow:0 .35rem .85rem #102a431a;transform:rotate(-5deg)}.christianity-offering-pile i:nth-child(2){transform:translate(.28rem,.08rem) rotate(3deg)}.christianity-offering-pile i:nth-child(3){transform:translate(.55rem,.18rem) rotate(-1deg)}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(4.75rem,17vw,6rem);min-height:clamp(6.6rem,22vw,8.4rem)}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-zone-card,.christianity-zone-pile{min-height:6.45rem;padding:.7rem .52rem .55rem}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;box-shadow:inset 0 0 0 999px #ffffff1f}.christianity-zone-pile i{position:absolute;inset:auto .72rem 1.02rem auto;z-index:-1;width:2.7rem;height:3.7rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:#f8fafc;box-shadow:0 .35rem .85rem #102a431c;transform:rotate(4deg)}.christianity-zone-pile i:nth-child(2){transform:translate(-.28rem,.12rem) rotate(-3deg)}.christianity-zone-pile i:nth-child(3){background:linear-gradient(135deg,#102a4329,#102a4308),repeating-linear-gradient(45deg,#dbeafe 0 .33rem,#fff .33rem .66rem);transform:translate(-.54rem,.24rem) rotate(2deg)}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:61;display:grid;gap:.75rem;width:min(26rem,calc(100vw - 1.25rem));transform:translate(-50%,-50%)}.christianity-floating-card{display:grid;grid-template-rows:auto minmax(9rem,1.25fr) auto minmax(7rem,.9fr) auto;gap:.58rem;width:100%;min-height:min(29rem,calc(100vh - 3.5rem));padding:.72rem;border:1px solid rgba(36,48,68,.18);border-radius:.75rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 45%);box-shadow:0 0 0 .18rem #fff4c294,0 0 2.2rem var(--christianity-theme-glow),0 2.4rem 5rem #102a4357,inset 0 0 0 .35rem #ffffff8c;touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-cost{width:2.1rem;height:2.1rem;background:#ffd91a;color:#243044;font-size:1.35rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#d1d5db}.christianity-full-card-rarity.is-uncommon{background:#22c55e}.christianity-full-card-rarity.is-rare{background:#3b82f6}.christianity-full-card-rarity.is-legendary{background:#eab308}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:absolute;top:.65rem;right:.65rem;z-index:62;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-backdrop,.christianity-history-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172a75}.christianity-preview-backdrop{z-index:60}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-floating-card-actions{display:flex;justify-content:center;padding:0 .35rem}.christianity-floating-card-actions button{min-height:2.35rem;padding:0 1rem;border:0;border-radius:999px;background:#102a43;color:#fff;font:inherit;font-size:.9rem;font-weight:800;box-shadow:0 .65rem 1.3rem #102a432e}.christianity-floating-card-actions button:disabled{cursor:not-allowed;opacity:.45}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(29rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:min(35rem,calc(100vh - 4rem));padding:1.35rem}}.christianity-history-backdrop{z-index:40}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(4.9rem,6.2rem) minmax(0,1fr);gap:.65rem;align-items:stretch;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-offering-card{min-height:7.4rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 82% 14%,#facc15 0 .48rem,transparent .5rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{color:#1f293394;font-size:.66rem;text-transform:uppercase}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem}.christianity-player-side{padding:.3rem .25rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(4.4rem, 20vw, 5.8rem);grid-template-columns:repeat(4,var(--christianity-battle-card-width));justify-content:center;overflow-x:auto}.christianity-hand-fan{min-height:10.55rem;padding-bottom:2rem;overflow:visible}.christianity-hand-shelf{min-height:11.75rem;margin-top:-1rem;padding-top:1.35rem;padding-bottom:.9rem}.christianity-hand-shelf--opponent{min-height:6.65rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.85rem}.christianity-player-rack{grid-template-columns:minmax(4.7rem,5.9rem) minmax(4.8rem,1fr) minmax(3.7rem,5rem)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem}.christianity-offering-pile{min-height:6.85rem;padding:.88rem .46rem .55rem}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-leader-card{width:clamp(4.55rem,20vw,5.7rem);min-height:clamp(6.15rem,27vw,7.6rem)}.christianity-offering-row{grid-template-columns:minmax(4.5rem,5.5rem) minmax(0,1fr);gap:.5rem}.christianity-hand-fan--opponent{min-height:5.75rem;padding-bottom:.7rem}}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: LightRippleDirective, selector: "[valLightRipple]" }] }); }
1001
1095
  }
1002
1096
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, decorators: [{
1003
1097
  type: Component,
@@ -1275,18 +1369,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1275
1369
  (pointermove)="tiltPreview($event)"
1276
1370
  (pointerleave)="resetPreviewTilt()"
1277
1371
  >
1278
- <small>{{ selectedPreview()?.eyebrow }}</small>
1279
- <strong>{{ selectedPreview()?.title }}</strong>
1280
- <span>{{ selectedPreview()?.meta }}</span>
1281
- <p>{{ selectedPreview()?.body }}</p>
1282
- @if (selectedPreview()?.source === 'hand') {
1283
- <div class="christianity-floating-card-actions">
1284
- <button type="button" [disabled]="previewActionDisabled()" (click)="playPreviewCard()">
1285
- {{ selectedActionLabel() }}
1286
- </button>
1287
- </div>
1372
+ @if (selectedPreviewCard(); as previewCard) {
1373
+ <header class="christianity-full-card-header">
1374
+ <span class="christianity-full-card-type-icon" aria-hidden="true"></span>
1375
+ <strong>{{ previewCard.name }}</strong>
1376
+ <span class="christianity-full-card-cost">{{ previewCard.type === 'offering' ? '+' + previewCard.life : previewCard.cost }}</span>
1377
+ </header>
1378
+ <section class="christianity-full-card-art" [class.has-image]="previewCard.imageUrl">
1379
+ @if (previewCard.imageUrl) {
1380
+ <img [src]="previewCard.imageUrl" [alt]="previewCard.name" />
1381
+ } @else {
1382
+ <span>{{ previewCard.name }}</span>
1383
+ }
1384
+ <small>{{ cardTypeLabel(previewCard) }}</small>
1385
+ </section>
1386
+ <section class="christianity-full-card-verse">
1387
+ <p>{{ previewCard.verseText ?? selectedPreview()?.body }}</p>
1388
+ @if (previewCard.scripture) {
1389
+ <strong>{{ previewCard.scripture }}</strong>
1390
+ }
1391
+ </section>
1392
+ <section class="christianity-full-card-effect">
1393
+ <div class="christianity-full-card-stats">
1394
+ @if (previewCard.type === 'character') {
1395
+ <strong>{{ previewCard.attack }}</strong>
1396
+ <strong>{{ previewCard.life }}</strong>
1397
+ } @else {
1398
+ <strong>+{{ previewCard.life }}</strong>
1399
+ }
1400
+ </div>
1401
+ <div>
1402
+ @if (previewCard.abilityName) {
1403
+ <strong>{{ previewCard.abilityName }}</strong>
1404
+ }
1405
+ <p>{{ previewCard.abilityText ?? selectedPreview()?.body }}</p>
1406
+ </div>
1407
+ <span
1408
+ class="christianity-full-card-rarity"
1409
+ [class.is-normal]="!previewCard.rarity || previewCard.rarity === 'normal'"
1410
+ [class.is-uncommon]="previewCard.rarity === 'uncommon'"
1411
+ [class.is-rare]="previewCard.rarity === 'rare'"
1412
+ [class.is-legendary]="previewCard.rarity === 'legendary'"
1413
+ aria-hidden="true"
1414
+ ></span>
1415
+ </section>
1416
+ <footer class="christianity-full-card-footer">
1417
+ <span>{{ previewCard.edition ?? 'MVP' }}</span>
1418
+ <span>{{ previewCard.collectorNumber ?? previewCard.id }}</span>
1419
+ <span>{{ previewCard.year ?? '2026' }} CHRISTIANITY</span>
1420
+ <span>{{ previewCard.author ?? 'MVP' }}</span>
1421
+ </footer>
1422
+ } @else {
1423
+ <small>{{ selectedPreview()?.eyebrow }}</small>
1424
+ <strong>{{ selectedPreview()?.title }}</strong>
1425
+ <span>{{ selectedPreview()?.meta }}</span>
1426
+ <p>{{ selectedPreview()?.body }}</p>
1288
1427
  }
1289
1428
  </div>
1429
+ @if (selectedPreview()?.source === 'hand') {
1430
+ <div class="christianity-floating-card-actions">
1431
+ <button type="button" [disabled]="previewActionDisabled()" (click)="playPreviewCard()">
1432
+ {{ selectedActionLabel() }}
1433
+ </button>
1434
+ </div>
1435
+ }
1290
1436
  </aside>
1291
1437
  }
1292
1438
 
@@ -1380,6 +1526,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1380
1526
  </section>
1381
1527
  }
1382
1528
  </main>
1383
- `, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.65rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb;overflow:visible}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{display:grid;gap:.45rem;padding:.45rem .35rem;border-radius:.75rem;background:#dceafb;overflow:visible}.christianity-player-side{display:grid;gap:.35rem;padding:.35rem .3rem;border-radius:.7rem;background:#ffffff57;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(4,minmax(4.2rem,1fr));gap:.5rem;align-items:center;min-height:clamp(7.8rem,25vw,9.6rem);padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#eff6fff0,#ffffffd1),#ffffffc2;box-shadow:inset 0 0 0 .14rem #2563eb29,0 .8rem 1.7rem #2563eb1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;min-height:clamp(6.8rem,21vw,8.2rem);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73;color:inherit;font:inherit}.christianity-slot--play-target{position:relative;border-color:#2563eb8c;background:#dbeafec7;color:#1d4ed8;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #60a5fa33,0 .7rem 1.25rem #2563eb29;animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(37,99,235,.2);border-radius:.4rem;background:linear-gradient(135deg,rgba(37,99,235,.08),transparent 46%),radial-gradient(circle at 50% 42%,rgba(96,165,250,.22),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #60a5fa33,0 .7rem 1.25rem #2563eb29}50%{box-shadow:inset 0 0 0 .16rem #60a5fa57,0 .9rem 1.65rem #2563eb3d}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:#2563eb;box-shadow:0 1rem 2rem #2563eb2e}.christianity-card-preview-card--hand{touch-action:none}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-preview-card.cdk-drag-preview{border:1px solid rgba(37,99,235,.48);box-shadow:0 0 0 .16rem #bfdbfe6b,0 1.5rem 3rem #102a4347;transform:rotate(2deg)}.christianity-card-preview-card.cdk-drag-placeholder{opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-pile.cdk-drop-list-dragging{border-color:#2563ebb8}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-pile.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #60a5fa57,0 1rem 1.9rem #2563eb38}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2rem;height:1.45rem;border:1px solid rgba(37,99,235,.24);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.05rem;height:.62rem;border:.12rem solid #2563eb;border-radius:999px 999px .72rem .72rem;transform:translate(-50%,-50%)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.28rem;height:.28rem;border-radius:999px;background:#2563eb;transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-pile.is-play-target{border-color:#2563eb94;background:linear-gradient(180deg,#eff6fff5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #60a5fa3d,0 .8rem 1.55rem #2563eb33;animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:clamp(5rem,16vw,6.6rem);box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{justify-self:center;width:auto;min-width:clamp(4.8rem,15vw,6.6rem);height:clamp(6.8rem,21vw,8.4rem);min-height:0;aspect-ratio:5 / 7;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-offering-pile span,.christianity-offering-card span,.christianity-leader-card span,.christianity-zone-card span,.christianity-zone-pile span{position:relative;z-index:2;font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-offering-pile strong,.christianity-offering-card strong,.christianity-leader-card strong,.christianity-zone-card strong,.christianity-zone-pile strong{position:relative;z-index:3;justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(5.9rem,7rem) minmax(5rem,1fr) minmax(4.2rem,7rem);gap:.45rem;align-items:end;justify-items:stretch}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-start;justify-self:start;width:100%}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-self:start;width:min(100%,5.9rem);min-height:7.1rem;padding:.95rem .52rem .6rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-pile i{position:absolute;inset:auto auto 1.05rem .72rem;z-index:-1;width:2.55rem;height:3.55rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:linear-gradient(180deg,#ffffffeb,#f1f5f9eb),radial-gradient(circle at 78% 18%,#facc15 0 .38rem,transparent .4rem);box-shadow:0 .35rem .85rem #102a431a;transform:rotate(-5deg)}.christianity-offering-pile i:nth-child(2){transform:translate(.28rem,.08rem) rotate(3deg)}.christianity-offering-pile i:nth-child(3){transform:translate(.55rem,.18rem) rotate(-1deg)}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(4.75rem,17vw,6rem);min-height:clamp(6.6rem,22vw,8.4rem)}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(4rem,1fr))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-zone-card,.christianity-zone-pile{min-height:6.45rem;padding:.7rem .52rem .55rem}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;box-shadow:inset 0 0 0 999px #ffffff1f}.christianity-zone-pile i{position:absolute;inset:auto .72rem 1.02rem auto;z-index:-1;width:2.7rem;height:3.7rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:#f8fafc;box-shadow:0 .35rem .85rem #102a431c;transform:rotate(4deg)}.christianity-zone-pile i:nth-child(2){transform:translate(-.28rem,.12rem) rotate(-3deg)}.christianity-zone-pile i:nth-child(3){background:linear-gradient(135deg,#102a4329,#102a4308),repeating-linear-gradient(45deg,#dbeafe 0 .33rem,#fff .33rem .66rem);transform:translate(-.54rem,.24rem) rotate(2deg)}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:61;width:min(28rem,calc(100vw - 1.25rem));transform:translate(-50%,-50%)}.christianity-floating-card{display:grid;gap:.45rem;width:100%;min-height:min(31rem,calc(100vh - 3.5rem));padding:1.15rem;border:1px solid rgba(36,48,68,.18);border-radius:.75rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 20% 0%,rgba(37,99,235,.12),transparent 45%);box-shadow:0 0 0 .18rem #bfdbfe6b,0 0 2.2rem #60a5fa57,0 2.4rem 5rem #102a4357,inset 0 0 0 .35rem #ffffff8c;touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-floating-card-close{position:absolute;top:-2.6rem;right:0;z-index:62;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-backdrop,.christianity-history-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172a75}.christianity-preview-backdrop{z-index:60}.christianity-floating-card small,.christianity-floating-card span{color:#1f2933a3}.christianity-floating-card strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-floating-card-actions{display:flex;justify-content:flex-end;margin-top:.35rem}.christianity-floating-card-actions button{min-height:2.35rem;padding:0 .9rem;border:0;border-radius:999px;background:#102a43;color:#fff;font:inherit;font-size:.9rem;font-weight:800;box-shadow:0 .65rem 1.3rem #102a432e}.christianity-floating-card-actions button:disabled{cursor:not-allowed;opacity:.45}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(34rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:min(43rem,calc(100vh - 4rem));padding:1.45rem}}.christianity-history-backdrop{z-index:40}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(4.9rem,6.2rem) minmax(0,1fr);gap:.65rem;align-items:stretch;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-offering-card{min-height:7.4rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 82% 14%,#facc15 0 .48rem,transparent .5rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{color:#1f293394;font-size:.66rem;text-transform:uppercase}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem}.christianity-player-side{padding:.3rem .25rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(3.35rem,1fr));overflow-x:auto}.christianity-hand-fan{min-height:10.55rem;padding-bottom:2rem;overflow:visible}.christianity-hand-shelf{min-height:11.75rem;margin-top:-1rem;padding-top:1.35rem;padding-bottom:.9rem}.christianity-hand-shelf--opponent{min-height:6.65rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.85rem}.christianity-player-rack{grid-template-columns:minmax(4.7rem,5.9rem) minmax(4.8rem,1fr) minmax(3.7rem,5rem)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem}.christianity-offering-pile{min-height:6.85rem;padding:.88rem .46rem .55rem}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-leader-card{width:clamp(4.55rem,20vw,5.7rem);min-height:clamp(6.15rem,27vw,7.6rem)}.christianity-offering-row{grid-template-columns:minmax(4.5rem,5.5rem) minmax(0,1fr);gap:.5rem}.christianity-hand-fan--opponent{min-height:5.75rem;padding-bottom:.7rem}}\n"] }]
1529
+ `, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #fffaf0;--christianity-theme-olive: #5f6f2a;--christianity-theme-gold: #d6a21d;--christianity-theme-gold-soft: rgba(214, 162, 29, .18);--christianity-theme-gold-ring: rgba(214, 162, 29, .48);--christianity-theme-glow: rgba(245, 199, 85, .32);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(82, 64, 28, .18);--christianity-theme-shadow-strong: rgba(82, 64, 28, .3);display:block;color:var(--christianity-theme-ink)}.christianity-shell{display:grid;gap:.65rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb;overflow:visible}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{display:grid;gap:.45rem;padding:.45rem .35rem;border-radius:.75rem;background:#dceafb;overflow:visible}.christianity-player-side{display:grid;gap:.35rem;padding:.35rem .3rem;border-radius:.7rem;background:#ffffff57;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(4.8rem, 15vw, 6.6rem);display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;min-height:clamp(7.8rem,25vw,9.6rem);padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:var(--christianity-battle-card-width);height:clamp(6.8rem,21vw,8.4rem);min-height:0;aspect-ratio:5 / 7;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73;color:inherit;font:inherit}.christianity-slot--play-target{position:relative;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow)}.christianity-card-preview-card--hand{touch-action:none}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-preview-card.cdk-drag-preview{border:1px solid var(--christianity-theme-gold-ring);box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-preview-card.cdk-drag-placeholder{opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-pile.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-pile.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid rgba(214,162,29,.34);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-olive);border-radius:82% 0;background:#fffaf0eb;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,250,240,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-gold);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-pile.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:clamp(5rem,16vw,6.6rem);box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{justify-self:center;width:var(--christianity-battle-card-width);min-width:0;height:clamp(6.8rem,21vw,8.4rem);min-height:0;aspect-ratio:5 / 7;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-offering-pile span,.christianity-offering-card span,.christianity-leader-card span,.christianity-zone-card span,.christianity-zone-pile span{position:relative;z-index:2;font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-offering-pile strong,.christianity-offering-card strong,.christianity-leader-card strong,.christianity-zone-card strong,.christianity-zone-pile strong{position:relative;z-index:3;justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(5.9rem,7rem) minmax(5rem,1fr) minmax(4.2rem,7rem);gap:.45rem;align-items:end;justify-items:stretch}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-start;justify-self:start;width:100%}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-self:start;width:min(100%,5.9rem);min-height:7.1rem;padding:.95rem .52rem .6rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-pile i{position:absolute;inset:auto auto 1.05rem .72rem;z-index:-1;width:2.55rem;height:3.55rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:linear-gradient(180deg,#ffffffeb,#f1f5f9eb),radial-gradient(circle at 78% 18%,#facc15 0 .38rem,transparent .4rem);box-shadow:0 .35rem .85rem #102a431a;transform:rotate(-5deg)}.christianity-offering-pile i:nth-child(2){transform:translate(.28rem,.08rem) rotate(3deg)}.christianity-offering-pile i:nth-child(3){transform:translate(.55rem,.18rem) rotate(-1deg)}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(4.75rem,17vw,6rem);min-height:clamp(6.6rem,22vw,8.4rem)}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-zone-card,.christianity-zone-pile{min-height:6.45rem;padding:.7rem .52rem .55rem}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;box-shadow:inset 0 0 0 999px #ffffff1f}.christianity-zone-pile i{position:absolute;inset:auto .72rem 1.02rem auto;z-index:-1;width:2.7rem;height:3.7rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:#f8fafc;box-shadow:0 .35rem .85rem #102a431c;transform:rotate(4deg)}.christianity-zone-pile i:nth-child(2){transform:translate(-.28rem,.12rem) rotate(-3deg)}.christianity-zone-pile i:nth-child(3){background:linear-gradient(135deg,#102a4329,#102a4308),repeating-linear-gradient(45deg,#dbeafe 0 .33rem,#fff .33rem .66rem);transform:translate(-.54rem,.24rem) rotate(2deg)}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:61;display:grid;gap:.75rem;width:min(26rem,calc(100vw - 1.25rem));transform:translate(-50%,-50%)}.christianity-floating-card{display:grid;grid-template-rows:auto minmax(9rem,1.25fr) auto minmax(7rem,.9fr) auto;gap:.58rem;width:100%;min-height:min(29rem,calc(100vh - 3.5rem));padding:.72rem;border:1px solid rgba(36,48,68,.18);border-radius:.75rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 45%);box-shadow:0 0 0 .18rem #fff4c294,0 0 2.2rem var(--christianity-theme-glow),0 2.4rem 5rem #102a4357,inset 0 0 0 .35rem #ffffff8c;touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-cost{width:2.1rem;height:2.1rem;background:#ffd91a;color:#243044;font-size:1.35rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#d1d5db}.christianity-full-card-rarity.is-uncommon{background:#22c55e}.christianity-full-card-rarity.is-rare{background:#3b82f6}.christianity-full-card-rarity.is-legendary{background:#eab308}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:absolute;top:.65rem;right:.65rem;z-index:62;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-backdrop,.christianity-history-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172a75}.christianity-preview-backdrop{z-index:60}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-floating-card-actions{display:flex;justify-content:center;padding:0 .35rem}.christianity-floating-card-actions button{min-height:2.35rem;padding:0 1rem;border:0;border-radius:999px;background:#102a43;color:#fff;font:inherit;font-size:.9rem;font-weight:800;box-shadow:0 .65rem 1.3rem #102a432e}.christianity-floating-card-actions button:disabled{cursor:not-allowed;opacity:.45}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(29rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:min(35rem,calc(100vh - 4rem));padding:1.35rem}}.christianity-history-backdrop{z-index:40}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(4.9rem,6.2rem) minmax(0,1fr);gap:.65rem;align-items:stretch;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-offering-card{min-height:7.4rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 82% 14%,#facc15 0 .48rem,transparent .5rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{color:#1f293394;font-size:.66rem;text-transform:uppercase}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem}.christianity-player-side{padding:.3rem .25rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(4.4rem, 20vw, 5.8rem);grid-template-columns:repeat(4,var(--christianity-battle-card-width));justify-content:center;overflow-x:auto}.christianity-hand-fan{min-height:10.55rem;padding-bottom:2rem;overflow:visible}.christianity-hand-shelf{min-height:11.75rem;margin-top:-1rem;padding-top:1.35rem;padding-bottom:.9rem}.christianity-hand-shelf--opponent{min-height:6.65rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.85rem}.christianity-player-rack{grid-template-columns:minmax(4.7rem,5.9rem) minmax(4.8rem,1fr) minmax(3.7rem,5rem)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem}.christianity-offering-pile{min-height:6.85rem;padding:.88rem .46rem .55rem}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-leader-card{width:clamp(4.55rem,20vw,5.7rem);min-height:clamp(6.15rem,27vw,7.6rem)}.christianity-offering-row{grid-template-columns:minmax(4.5rem,5.5rem) minmax(0,1fr);gap:.5rem}.christianity-hand-fan--opponent{min-height:5.75rem;padding-bottom:.7rem}}\n"] }]
1384
1530
  }], ctorParameters: () => [] });
1385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWdhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9taW5pLWdhbWVzL2NocmlzdGlhbml0eS1nYW1lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUEwQnBELE1BQU0sYUFBYSxHQUErQztJQUNoRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO0lBQ25HLFdBQVcsRUFBRTtRQUNYLEVBQUUsRUFBRSxhQUFhO1FBQ2pCLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLEVBQUUsQ0FBQztRQUNULElBQUksRUFBRSxDQUFDO1FBQ1AsV0FBVyxFQUFFLGlDQUFpQztRQUM5QyxXQUFXLEVBQUUsMkRBQTJEO1FBQ3hFLFdBQVcsRUFBRSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFF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O0dBMlhUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5pbXBvcnQgeyBMaWdodFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGlnaHQtcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTUlOSV9HQU1FU19JMThOIH0gZnJvbSAnLi9taW5pLWdhbWVzLmkxOG4nO1xuaW1wb3J0IHtcbiAgQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sXG4gIENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlLFxuICBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG4gIENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UsXG4gIENocmlzdGlhbml0eVBsYXllclN0YXRlLFxuICBDaHJpc3RpYW5pdHlTZWF0LFxufSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUNhcmRQcmV2aWV3IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZXllYnJvdzogc3RyaW5nO1xuICBtZXRhOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbiAgY2FyZElkPzogc3RyaW5nO1xuICBzb3VyY2U/OiAnaGFuZCcgfCAnYm9hcmQnIHwgJ3BpbGUnO1xufVxuXG5pbnRlcmZhY2UgQ2hyaXN0aWFuaXR5UHJldmlld1RpbHQge1xuICByb3RhdGVYOiBudW1iZXI7XG4gIHJvdGF0ZVk6IG51bWJlcjtcbiAgc2hpZnRYOiBudW1iZXI7XG4gIHNoaWZ0WTogbnVtYmVyO1xufVxuXG5jb25zdCBTVEFSVEVSX0NBUkRTOiBSZWNvcmQ8c3RyaW5nLCBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbj4gPSB7XG4gIG9fc2ltcGxlOiB7IGlkOiAnb19zaW1wbGUnLCBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLCB0eXBlOiAnb2ZmZXJpbmcnLCBjb3N0OiAwLCBhdHRhY2s6IDAsIGxpZmU6IDEgfSxcbiAgb19mb3JiaWRkZW46IHtcbiAgICBpZDogJ29fZm9yYmlkZGVuJyxcbiAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDIsXG4gICAgYWJpbGl0eU5hbWU6ICdDb25vY2ltaWVudG8gZGVsIGJpZW4geSBkZWwgbWFsJyxcbiAgICBhYmlsaXR5VGV4dDogJ0FsIHVzYXJsYSwgZGlzbWludXllIGVuIDEgbG9zIHB1bnRvcyBkZSB2aWRhIGRlIHR1IExpZGVyLicsXG4gICAgYWJpbGl0eUNvc3Q6IDAsXG4gIH0sXG4gIHBfc2NvdXQ6IHsgaWQ6ICdwX3Njb3V0JywgbmFtZTogJ1Njb3V0JywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDEsIGF0dGFjazogMSwgbGlmZTogMSB9LFxuICBwX2d1YXJkOiB7IGlkOiAncF9ndWFyZCcsIG5hbWU6ICdHdWFyZCcsIHR5cGU6ICdjaGFyYWN0ZXInLCBjb3N0OiAyLCBhdHRhY2s6IDEsIGxpZmU6IDMgfSxcbiAgcF93YXJyaW9yOiB7IGlkOiAncF93YXJyaW9yJywgbmFtZTogJ1dhcnJpb3InLCB0eXBlOiAnY2hhcmFjdGVyJywgY29zdDogMiwgYXR0YWNrOiAyLCBsaWZlOiAyIH0sXG4gIHBfZWxkZXI6IHsgaWQ6ICdwX2VsZGVyJywgbmFtZTogJ0VsZGVyJywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDMsIGF0dGFjazogMiwgbGlmZTogNCB9LFxuICBwX2NoYW1waW9uOiB7IGlkOiAncF9jaGFtcGlvbicsIG5hbWU6ICdDaGFtcGlvbicsIHR5cGU6ICdjaGFyYWN0ZXInLCBjb3N0OiA0LCBhdHRhY2s6IDQsIGxpZmU6IDQgfSxcbn07XG5cbmNvbnN0IFNUQVJUSU5HX1NIQVJFRF9ERUNLID0gW1xuICAnb19zaW1wbGUnLFxuICAncF9zY291dCcsXG4gICdvX2ZvcmJpZGRlbicsXG4gICdvX3NpbXBsZScsXG4gICdwX2d1YXJkJyxcbiAgJ3Bfd2FycmlvcicsXG4gICdvX3NpbXBsZScsXG4gICdwX2VsZGVyJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19zaW1wbGUnLFxuICAncF9jaGFtcGlvbicsXG4gICdwX2d1YXJkJyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3Bfd2FycmlvcicsXG4gICdwX3Njb3V0JyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfZWxkZXInLFxuICAncF9ndWFyZCcsXG4gICdvX3NpbXBsZScsXG5dO1xuXG5jb25zdCBTVEFSVElOR19HQU1FOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUgPSB7XG4gIGdhbWVJZDogJ21vY2stY2hyaXN0aWFuaXR5JyxcbiAgc3RhdHVzOiAnaW5fcHJvZ3Jlc3MnLFxuICBtb2RlOiAnbG9jYWxfcGFzcycsXG4gIHR1cm5Pd25lcjogJ1AxJyxcbiAgcmV2aXNpb246IDAsXG4gIHR1cm5Db3VudDogMSxcbiAgbWF0Y2hTY29yZTogeyBQMTogMSwgUDI6IDAgfSxcbiAgc2hhcmVkRGVjazogU1RBUlRJTkdfU0hBUkVEX0RFQ0ssXG4gIGhpc3Rvcnlab25lOiBbXSxcbiAgcGxheWVyczoge1xuICAgIFAxOiB7XG4gICAgICBzZWF0OiAnUDEnLFxuICAgICAgZGlzcGxheU5hbWU6ICdKdWdhZG9yJyxcbiAgICAgIGF2YXRhcjogJ0onLFxuICAgICAgYXZhdGFyQ29sb3I6ICcjMjU2M2ViJyxcbiAgICAgIGxlYWRlck5hbWU6ICdBZGFtJyxcbiAgICAgIGxlYWRlckhwOiAxNSxcbiAgICAgIGxlYWRlck1heEhwOiAxNSxcbiAgICAgIG9mZmVyaW5nczogW1xuICAgICAgICB7IGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDEnLCBjYXJkSWQ6ICdvX3NpbXBsZScsIG5hbWU6ICdPZnJlbmRhIHNpbXBsZScsIG93bmVyOiAnUDEnLCByZWFkeTogdHJ1ZSwgdmFsdWU6IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDInLFxuICAgICAgICAgIGNhcmRJZDogJ29fZm9yYmlkZGVuJyxcbiAgICAgICAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICBhYmlsaXR5TmFtZTogJ0Nvbm9jaW1pZW50byBkZWwgYmllbiB5IGRlbCBtYWwnLFxuICAgICAgICAgIGFiaWxpdHlUZXh0OiAnQWwgdXNhcmxhLCBkaXNtaW51eWUgZW4gMSBsb3MgcHVudG9zIGRlIHZpZGEgZGUgdHUgTGlkZXIuJyxcbiAgICAgICAgICBhYmlsaXR5Q29zdDogMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBvZmZlcmluZ1BsYXllZFRoaXNUdXJuOiBmYWxzZSxcbiAgICAgIGhhbmQ6IFsnb19zaW1wbGUnLCAncF9zY291dCcsICdwX3dhcnJpb3InLCAncF9ndWFyZCddLFxuICAgICAgYmF0dGxlWm9uZTogW10sXG4gICAgfSxcbiAgICBQMjoge1xuICAgICAgc2VhdDogJ1AyJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnUml2YWwnLFxuICAgICAgYXZhdGFyOiAnUicsXG4gICAgICBhdmF0YXJDb2xvcjogJyNiNDUzMDknLFxuICAgICAgbGVhZGVyTmFtZTogJ05vYWgnLFxuICAgICAgbGVhZGVySHA6IDE1LFxuICAgICAgbGVhZGVyTWF4SHA6IDE1LFxuICAgICAgb2ZmZXJpbmdzOiBbeyBpbnN0YW5jZUlkOiAncDJfb2ZmZXJpbmdfMDAxJywgY2FyZElkOiAnb19zaW1wbGUnLCBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLCBvd25lcjogJ1AyJywgcmVhZHk6IHRydWUsIHZhbHVlOiAxIH1dLFxuICAgICAgb2ZmZXJpbmdQbGF5ZWRUaGlzVHVybjogZmFsc2UsXG4gICAgICBoYW5kQ291bnQ6IDQsXG4gICAgICBiYXR0bGVab25lOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiAnb3BwXzAwMScsXG4gICAgICAgICAgY2FyZElkOiAncF9zY291dCcsXG4gICAgICAgICAgbmFtZTogJ1Njb3V0JyxcbiAgICAgICAgICBvd25lcjogJ1AyJyxcbiAgICAgICAgICBjb250cm9sbGVyOiAnUDInLFxuICAgICAgICAgIGF0dGFjazogMSxcbiAgICAgICAgICBjdXJyZW50SHA6IDEsXG4gICAgICAgICAgbWF4SHA6IDEsXG4gICAgICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgbG9nOiBbJ1BhcnRpZGEgaW5pY2lhZGEuJ10sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY2hyaXN0aWFuaXR5LWdhbWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2RrRHJhZywgQ2RrRHJvcExpc3QsIExpZ2h0UmlwcGxlRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWFpbiBjbGFzcz1cImNocmlzdGlhbml0eS1zaGVsbFwiPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGVhZGVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5RXllYnJvdycpIH19PC9wPlxuICAgICAgICAgIDxoMT57eyB0KCdjaHJpc3RpYW5pdHlUaXRsZScpIH19PC9oMT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktdHVyblwiIFtjbGFzcy5pcy1vd24tdHVybl09XCJpc093blR1cm4oKVwiPlxuICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eVR1cm4nKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3Ryb25nPnt7IGN1cnJlbnRQbGF5ZXIoKS5kaXNwbGF5TmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXBcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU1hdGNoU2NvcmUnKVwiPlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cImNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1hdmF0YXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwbGF5ZXIoKS5hdmF0YXJDb2xvclwiPnt7IHBsYXllcigpLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHN0cm9uZz57eyBwbGF5ZXIoKS5kaXNwbGF5TmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPHNtYWxsPnt7IHBsYXllcigpLmxlYWRlck5hbWUgfX0gwrcge3sgcGxheWVyKCkubGVhZGVySHAgfX0ve3sgcGxheWVyKCkubGVhZGVyTWF4SHAgfX08L3NtYWxsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2NvcmVib2FyZFwiPlxuICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eU1hdGNoJykgfX08L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyBnYW1lKCkubWF0Y2hTY29yZS5QMSB9fS17eyBnYW1lKCkubWF0Y2hTY29yZS5QMiB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIGNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXItLW9wcG9uZW50XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktYXZhdGFyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwib3Bwb25lbnQoKS5hdmF0YXJDb2xvclwiPnt7IG9wcG9uZW50KCkuYXZhdGFyIH19PC9zcGFuPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IG9wcG9uZW50KCkuZGlzcGxheU5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDxzbWFsbD57eyBvcHBvbmVudCgpLmxlYWRlck5hbWUgfX0gwrcge3sgb3Bwb25lbnQoKS5sZWFkZXJIcCB9fS97eyBvcHBvbmVudCgpLmxlYWRlck1heEhwIH19PC9zbWFsbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLXNoZWxmIGNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXItLW9wcG9uZW50XCI+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5SGFuZCcpIH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgb3Bwb25lbnRIYW5kQ291bnQoKSB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1mYW4gY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5T3Bwb25lbnRIYW5kJylcIj5cbiAgICAgICAgICBAZm9yIChfIG9mIGhpZGRlbkhhbmRDYXJkcyhvcHBvbmVudEhhbmRDb3VudCgpKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCBjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhY2tcIlxuICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cImZhblRyYW5zZm9ybSgkaW5kZXgsIG9wcG9uZW50SGFuZENvdW50KCksIHRydWUpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlIaWRkZW5DYXJkJylcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS10YWJsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5VGFibGUnKVwiPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSBjaHJpc3RpYW5pdHktcGxheWVyLXNpZGUtLW9wcG9uZW50XCI+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXJhY2sgY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrLS1vcHBvbmVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZ3Mtem9uZVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cIm9wZW5PZmZlcmluZ3MoJ1AyJylcIj5cbiAgICAgICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ3MnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHJlYWR5T2ZmZXJpbmdzKG9wcG9uZW50KCkpIH19L3t7IHRvdGFsT2ZmZXJpbmdzKG9wcG9uZW50KCkpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1sZWFkZXItY2FyZFwiIHZhbExpZ2h0UmlwcGxlIFtjbGFzcy5pcy10YXJnZXRdPVwic2VsZWN0ZWRBdHRhY2tlcigpICYmICFoYXNPcHBvbmVudEd1YXJkcygpXCIgKGNsaWNrKT1cImhhbmRsZU9wcG9uZW50TGVhZGVyKClcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgb3Bwb25lbnQoKS5sZWFkZXJOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IG9wcG9uZW50KCkubGVhZGVySHAgfX0ve3sgb3Bwb25lbnQoKS5sZWFkZXJNYXhIcCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1yYWNrLXNwYWNlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1iYXR0bGUtem9uZSBjaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUtLW9wcG9uZW50XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlPcHBvbmVudEJhdHRsZScpXCI+XG4gICAgICAgICAgICBAZm9yIChzbG90IG9mIGJhdHRsZVNsb3RzKCdQMicpOyB0cmFjayBzbG90LnRyYWNrSWQpIHtcbiAgICAgICAgICAgICAgQGlmIChzbG90LmNhcmQpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIGNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtdGFyZ2V0XT1cInNlbGVjdGVkQXR0YWNrZXIoKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3Bwb25lbnRDaGFyYWN0ZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2xvdC5jYXJkLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHNsb3QuY2FyZC5hdHRhY2sgfX0gLyB7eyBzbG90LmNhcmQuY3VycmVudEhwIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNsb3RcIj48L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1zaGFyZWQtem9uZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5U2hhcmVkWm9uZScpXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1waWxlIGNocmlzdGlhbml0eS16b25lLXBpbGUtLWhpc3RvcnlcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwic2hvd0hpc3Rvcnkuc2V0KHRydWUpXCI+XG4gICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlIaXN0b3J5JykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IGdhbWUoKS5oaXN0b3J5Wm9uZS5sZW5ndGggfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLXBpbGUgY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0tZGVja1wiIHZhbExpZ2h0UmlwcGxlIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIChjbGljayk9XCJpbnNwZWN0RGVjaygpXCI+XG4gICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlEZWNrJykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IGdhbWUoKS5zaGFyZWREZWNrLmxlbmd0aCB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1jYXJkXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlQbGFjZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjaHJpc3RpYW5pdHlFbXB0eScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItc2lkZVwiPlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lXCIgW2NsYXNzLmlzLXBsYWNpbmctY2FyZF09XCJjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCkgfHwgaXNEcmFnZ2luZ0NoYXJhY3RlcigpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlZb3VyQmF0dGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2YgYmF0dGxlU2xvdHMoJ1AxJyk7IHRyYWNrIHNsb3QudHJhY2tJZCkge1xuICAgICAgICAgICAgICBAaWYgKHNsb3QuY2FyZCkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGVcIlxuICAgICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZEF0dGFja2VyKCk/Lmluc3RhbmNlSWQgPT09IHNsb3QuY2FyZC5pbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1leGhhdXN0ZWRdPVwiIXNsb3QuY2FyZC5jYW5BdHRhY2tcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEF0dGFja2VyKHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNsb3QuY2FyZC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBzbG90LmNhcmQuYXR0YWNrIH19IC8ge3sgc2xvdC5jYXJkLmN1cnJlbnRIcCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNsb3RcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJiYXR0bGVTbG90RHJvcElkKCRpbmRleClcIlxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCIkaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiWydjaHJpc3RpYW5pdHktaGFuZC1zb3VyY2UnXVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25CYXR0bGVTbG90XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXRdPVwiY2FuUGxhY2VTZWxlY3RlZENoYXJhY3RlcigpIHx8IGlzRHJhZ2dpbmdDaGFyYWN0ZXIoKVwiXG4gICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wT25CYXR0bGVTbG90KCRldmVudCwgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicGxheVNlbGVjdGVkQ2FyZCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAaWYgKGNhblBsYWNlU2VsZWN0ZWRDaGFyYWN0ZXIoKSB8fCBpc0RyYWdnaW5nQ2hhcmFjdGVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5UGxheUhlcmUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy16b25lXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlXCJcbiAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcm9wXCJcbiAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIlsnY2hyaXN0aWFuaXR5LWhhbmQtc291cmNlJ11cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1wbGF5LXRhcmdldF09XCJjYW5QbGFjZVNlbGVjdGVkT2ZmZXJpbmcoKSB8fCBpc0RyYWdnaW5nT2ZmZXJpbmcoKVwiXG4gICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiY2FuRHJvcE9uT2ZmZXJpbmdzXCJcbiAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPbk9mZmVyaW5ncygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT2ZmZXJpbmdQaWxlKCdQMScpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5ncycpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcmVhZHlPZmZlcmluZ3MocGxheWVyKCkpIH19L3t7IHRvdGFsT2ZmZXJpbmdzKHBsYXllcigpKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktbGVhZGVyLWNhcmRcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdExlYWRlcignUDEnKVwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBwbGF5ZXIoKS5sZWFkZXJOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmxlYWRlckhwIH19L3t7IHBsYXllcigpLmxlYWRlck1heEhwIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLWNvbW1hbmRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2VcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1hdmF0YXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwbGF5ZXIoKS5hdmF0YXJDb2xvclwiPnt7IHBsYXllcigpLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktZW5kLXR1cm5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJlbmRUdXJuKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5RW5kVHVybicpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLW1ldGVyXCI+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5SGFuZCcpIH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgcGxheWVyKCkuaGFuZD8ubGVuZ3RoID8/IDAgfX08L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzZWN0aW9uXG4gICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1mYW5cIlxuICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgaWQ9XCJjaHJpc3RpYW5pdHktaGFuZC1zb3VyY2VcIlxuICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cImRyb3BUYXJnZXRJZHMoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlZb3VySGFuZCcpXCJcbiAgICAgICAgICAocG9pbnRlcmxlYXZlKT1cImNsZWFySG92ZXJlZEhhbmRJbmRleCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGNhcmRJZCBvZiBwbGF5ZXIoKS5oYW5kID8/IFtdOyB0cmFjayBjYXJkSWQgKyAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBsZXQgY2FyZCA9IGNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkSGFuZENhcmQoKSA9PT0gY2FyZElkXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzLWRyYWdnaW5nXT1cImRyYWdnaW5nQ2FyZElkKCkgPT09IGNhcmRJZFwiXG4gICAgICAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cImhhbmRDYXJkWkluZGV4KCRpbmRleClcIlxuICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cImZhblRyYW5zZm9ybSgkaW5kZXgsIHBsYXllcigpLmhhbmQ/Lmxlbmd0aCA/PyAwLCBmYWxzZSlcIlxuICAgICAgICAgICAgICAocG9pbnRlcmVudGVyKT1cInNldEhvdmVyZWRIYW5kSW5kZXgoJGluZGV4KVwiXG4gICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJzZXRIb3ZlcmVkSGFuZEluZGV4KCRpbmRleClcIlxuICAgICAgICAgICAgICAocG9pbnRlcnVwKT1cInJlbGVhc2VIb3ZlcmVkSGFuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIGNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZFwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cImNhcmRJZFwiXG4gICAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhY2FuUGxheShjYXJkKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkSGFuZENhcmQoKSA9PT0gY2FyZElkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZGlzYWJsZWRdPVwiIWNhblBsYXkoY2FyZClcIlxuICAgICAgICAgICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydERyYWdnaW5nQ2FyZChjYXJkSWQpXCJcbiAgICAgICAgICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZERyYWdnaW5nQ2FyZCgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SGFuZENhcmQoY2FyZElkKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c21hbGw+XG4gICAgICAgICAgICAgICAgICBAaWYgKGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSB9fVxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eUNvc3QnKSB9fSB7eyBjYXJkLmNvc3QgfX1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNhcmQubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgQGlmIChjYXJkLnR5cGUgPT09ICdvZmZlcmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgK3t7IGNhcmQubGlmZSB9fVxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHt7IGNhcmQuYXR0YWNrIH19IC8ge3sgY2FyZC5saWZlIH19XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1leWVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5UHJldmlld0NhcmQnKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc3BlY3RIYW5kQ2FyZChjYXJkSWQsIHRydWUpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXcoKSkge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZVByZXZpZXcnKVwiIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YXNpZGVcbiAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsXCJcbiAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1jbG9zZVwiIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiPlxuICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmRcIlxuICAgICAgICAgICAgW3N0eWxlLi0tcHJldmlldy1yb3RhdGUteF09XCJwcmV2aWV3VGlsdCgpLnJvdGF0ZVggKyAnZGVnJ1wiXG4gICAgICAgICAgICBbc3R5bGUuLS1wcmV2aWV3LXJvdGF0ZS15XT1cInByZXZpZXdUaWx0KCkucm90YXRlWSArICdkZWcnXCJcbiAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctc2hpZnQteF09XCJwcmV2aWV3VGlsdCgpLnNoaWZ0WCArICdweCdcIlxuICAgICAgICAgICAgW3N0eWxlLi0tcHJldmlldy1zaGlmdC15XT1cInByZXZpZXdUaWx0KCkuc2hpZnRZICsgJ3B4J1wiXG4gICAgICAgICAgICAocG9pbnRlcm1vdmUpPVwidGlsdFByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICAocG9pbnRlcmxlYXZlKT1cInJlc2V0UHJldmlld1RpbHQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNtYWxsPnt7IHNlbGVjdGVkUHJldmlldygpPy5leWVicm93IH19PC9zbWFsbD5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgc2VsZWN0ZWRQcmV2aWV3KCk/LnRpdGxlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8c3Bhbj57eyBzZWxlY3RlZFByZXZpZXcoKT8ubWV0YSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxwPnt7IHNlbGVjdGVkUHJldmlldygpPy5ib2R5IH19PC9wPlxuICAgICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXcoKT8uc291cmNlID09PSAnaGFuZCcpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwicHJldmlld0FjdGlvbkRpc2FibGVkKClcIiAoY2xpY2spPVwicGxheVByZXZpZXdDYXJkKClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkQWN0aW9uTGFiZWwoKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hc2lkZT5cbiAgICAgIH1cblxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktYWN0aW9uc1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICA8cD57eyBzdGF0dXNUZXh0KCkgfX08L3A+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cInNlbGVjdGVkQWN0aW9uRGlzYWJsZWQoKVwiIChjbGljayk9XCJwbGF5U2VsZWN0ZWRDYXJkKClcIj5cbiAgICAgICAgICAgIHt7IHNlbGVjdGVkQWN0aW9uTGFiZWwoKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXNldE1vY2soKVwiPlxuICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5UmVzZXQnKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgQGlmIChzaG93SGlzdG9yeSgpKSB7XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUNsb3NlSGlzdG9yeScpXCIgKGNsaWNrKT1cInNob3dIaXN0b3J5LnNldChmYWxzZSlcIj48L2J1dHRvbj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXJcIj5cbiAgICAgICAgICA8aGVhZGVyPlxuICAgICAgICAgICAgPGgyPnt7IHQoJ2NocmlzdGlhbml0eUhpc3RvcnknKSB9fTwvaDI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGdhbWUoKS5oaXN0b3J5Wm9uZS5sZW5ndGggfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZVwiIChjbGljayk9XCJzaG93SGlzdG9yeS5zZXQoZmFsc2UpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIEBpZiAoZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWRcIj5cbiAgICAgICAgICAgICAgQGZvciAoY2FyZElkIG9mIGdhbWUoKS5oaXN0b3J5Wm9uZTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGxldCBjYXJkID0gY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZFwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0SGlzdG9yeUNhcmQoY2FyZElkKVwiPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpIDogdCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNhcmQubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgK3t7IGNhcmQubGlmZSB9fVxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB7eyBjYXJkLmF0dGFjayB9fSAvIHt7IGNhcmQubGlmZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlIaXN0b3J5RW1wdHknKSB9fTwvcD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChvZmZlcmluZ3NTZWF0KCkpIHtcbiAgICAgICAgQGxldCBvZmZlcmluZ1BsYXllciA9IGdhbWUoKS5wbGF5ZXJzW29mZmVyaW5nc1NlYXQoKSFdO1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZU9mZmVyaW5ncycpXCIgKGNsaWNrKT1cImNsb3NlT2ZmZXJpbmdzKClcIj48L2J1dHRvbj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcmF3ZXJcIj5cbiAgICAgICAgICA8aGVhZGVyPlxuICAgICAgICAgICAgPGgyPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5ncycpIH19PC9oMj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgcmVhZHlPZmZlcmluZ3Mob2ZmZXJpbmdQbGF5ZXIpIH19L3t7IHRvdGFsT2ZmZXJpbmdzKG9mZmVyaW5nUGxheWVyKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlT2ZmZXJpbmdzKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjbG9zZScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChvZmZlcmluZyBvZiBvZmZlcmluZ1BsYXllci5vZmZlcmluZ3M7IHRyYWNrIG9mZmVyaW5nLmluc3RhbmNlSWQpIHtcbiAgICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93XCIgW2NsYXNzLmlzLWV4aGF1c3RlZF09XCIhb2ZmZXJpbmcucmVhZHlcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RPZmZlcmluZyhvZmZlcmluZylcIj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBvZmZlcmluZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz4re3sgb2ZmZXJpbmcudmFsdWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIEBpZiAob2ZmZXJpbmcuYWJpbGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgb2ZmZXJpbmcuYWJpbGl0eU5hbWUgfX08L3A+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgb2ZmZXJpbmcucmVhZHkgPyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1JlYWR5JykgOiB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0V4aGF1c3RlZCcpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8cD57eyBvZmZlcmluZy5hYmlsaXR5VGV4dCB8fCB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ05vQWJpbGl0eScpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgQGlmIChvZmZlcmluZy5hYmlsaXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Vc2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmcsIG9mZmVyaW5nc1NlYXQoKSEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBvZmZlcmluZ3NTZWF0KCkhKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlVc2VBYmlsaXR5JykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIDwvbWFpbj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6IHZhcigtLXZhbC10ZXh0LWNvbG9yLCAjMWYyOTMzKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbSAwLjI1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjZmOGZiO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnksXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIGgxLFxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnkgaDIsXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgaDEge1xuICAgICAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWRlY2sgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxhY2Ugc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGlsZSBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1kZWNrLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGFjZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xNXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiA1LjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE4LCAxMjgsIDEwOCwgMC4zNSk7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlY2ZkZjU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyLS1vcHBvbmVudCB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllci0tb3Bwb25lbnQgZGl2IHtcbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogNC4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNTVyZW07XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW0gMC4zNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2RjZWFmYjtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMzVyZW0gMC4zcmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjdyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDdyZW0sIDFmcikgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMTMuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUtLW9wcG9uZW50IHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCg3cmVtLCAxZnIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCg0LjJyZW0sIDFmcikpO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogY2xhbXAoNy44cmVtLCAyNXZ3LCA5LjZyZW0pO1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBiYWNrZ3JvdW5kIDE2MG1zIGVhc2UsXG4gICAgICAgICAgYm94LXNoYWRvdyAxNjBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjk0KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE0cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpLFxuICAgICAgICAgIDAgMC44cmVtIDEuN3JlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW0gMC40cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItLXRhcmdldCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUuOHJlbTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNXJlbSAxLjI1cmVtIHJnYmEoMzYsIDQ4LCA2OCwgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCBzcGFuIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkIHN0cm9uZyB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIDAuMzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMjU2M2ViO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xNik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy1kaXNhYmxlZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy1leGhhdXN0ZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQuaXMtdGFyZ2V0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGMyNjI2O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDAuN3JlbTtcbiAgICAgICAgZ2FwOiAwLjE2cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjA1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmRzIGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDAuNjVyZW07XG4gICAgICAgIGhlaWdodDogMC45NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xOHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkcyBpLmlzLXVzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjY2JkNWUxO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogY2xhbXAoNi44cmVtLCAyMXZ3LCA4LjJyZW0pO1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgzNiwgNDgsIDY4LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjU1KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTksIDIzNCwgMjU0LCAwLjc4KTtcbiAgICAgICAgY29sb3I6ICMxZDRlZDg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xMnJlbSByZ2JhKDk2LCAxNjUsIDI1MCwgMC4yKSxcbiAgICAgICAgICAwIDAuN3JlbSAxLjI1cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpO1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS10YXJnZXQtcHVsc2UgMTQ1MG1zIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMC4zNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpLCB0cmFuc3BhcmVudCA0NiUpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDQyJSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuMjIpLCB0cmFuc3BhcmVudCA1OCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHBhZGRpbmc6IDAuMTZyZW0gMC40NHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktdGFyZ2V0LXB1bHNlIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjIpLFxuICAgICAgICAgICAgMCAwLjdyZW0gMS4yNXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDAuMTZyZW0gcmdiYSg5NiwgMTY1LCAyNTAsIDAuMzQpLFxuICAgICAgICAgICAgMCAwLjlyZW0gMS42NXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjI0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWF1dG8tY29sdW1uczogbWlubWF4KDZyZW0sIDhyZW0pO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b24sXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgbWluLWhlaWdodDogMi40cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b246bm90KDpkaXNhYmxlZCksXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzEwMmE0MztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMC44cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuMjVyZW0gMi4xcmVtO1xuICAgICAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHotaW5kZXg6IDEyO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMnJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEuMTVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEuNDVyZW0gMC4yNXJlbSAxcmVtO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCB7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYuODVyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW0gMC4yNXJlbSAwLjg1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUuOXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjlyZW0sIDE3dncsIDcuMXJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDYuNnJlbSwgMjJ2dywgOC44cmVtKTtcbiAgICAgICAgcGFkZGluZzogMC40OHJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDExNSU7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgdHJhbnNmb3JtIDE2MG1zIGVhc2UsXG4gICAgICAgICAgYm94LXNoYWRvdyAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJvcmRlci1jb2xvciAxNjBtcyBlYXNlO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNXJlbSAxLjI1cmVtIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4taW5saW5lOiAtMC40MnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMTUlO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIHRyYW5zZm9ybSAxNjBtcyBlYXNlLFxuICAgICAgICAgIGZpbHRlciAxNjBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwOmhvdmVyLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1zZWxlY3RlZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAuaXMtZHJhZ2dpbmcge1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwOmhvdmVyIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLXNlbGVjdGVkIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLWRyYWdnaW5nIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQge1xuICAgICAgICBib3JkZXItY29sb3I6ICMyNTYzZWI7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXJlbSAycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIHtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLmNkay1kcmFnLWRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC5jZGstZHJhZy1wcmV2aWV3IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC40OCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAgMC4xNnJlbSByZ2JhKDE5MSwgMjE5LCAyNTQsIDAuNDIpLFxuICAgICAgICAgIDAgMS41cmVtIDNyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjI4KTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMmRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQuY2RrLWRyYWctcGxhY2Vob2xkZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjIyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QuY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZS5jZGstZHJvcC1saXN0LWRyYWdnaW5nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjcyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LmNkay1kcm9wLWxpc3QtcmVjZWl2aW5nLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLmNkay1kcm9wLWxpc3QtcmVjZWl2aW5nIHtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE4cmVtIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjM0KSxcbiAgICAgICAgICAwIDFyZW0gMS45cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogNTAlO1xuICAgICAgICBib3R0b206IDAuMzhyZW07XG4gICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjU1cmVtIDEuMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC0wLjJyZW0pIHNjYWxlKDAuOTIpO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgMTQwbXMgZWFzZSxcbiAgICAgICAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZSxcbiAgICAgICAgICBib3JkZXItY29sb3IgMTQwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWV5ZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEuMDVyZW07XG4gICAgICAgIGhlaWdodDogMC42MnJlbTtcbiAgICAgICAgYm9yZGVyOiAwLjEycmVtIHNvbGlkICMyNTYzZWI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4IDk5OXB4IDAuNzJyZW0gMC43MnJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1leWU6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDAuMjhyZW07XG4gICAgICAgIGhlaWdodDogMC4yOHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwOmhvdmVyIC5jaHJpc3RpYW5pdHktY2FyZC1leWUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLXNlbGVjdGVkIC5jaHJpc3RpYW5pdHktY2FyZC1leWUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDApIHNjYWxlKDEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUuaXMtcGxheS10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuNTgpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45NiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODIlIDE0JSwgcmdiYSgyNTAsIDIwNCwgMjEsIDAuMjgpIDAgMC43cmVtLCB0cmFuc3BhcmVudCAwLjcycmVtKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjI0KSxcbiAgICAgICAgICAwIDAuOHJlbSAxLjU1cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMik7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LXRhcmdldC1wdWxzZSAxNDUwbXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhY2sge1xuICAgICAgICB3aWR0aDogY2xhbXAoNHJlbSwgMTR2dywgNS43cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogY2xhbXAoNXJlbSwgMTZ2dywgNi42cmVtKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjhyZW0gMS41NXJlbSByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgLTE4JTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpLCByZ2JhKDE2LCA0MiwgNjcsIDAuMDIpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZTJlOGYwIDAgMC4zNXJlbSwgI2Y4ZmFmYyAwLjM1cmVtIDAuN3JlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZSB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiBjbGFtcCg0LjhyZW0sIDE1dncsIDYuNnJlbSk7XG4gICAgICAgIGhlaWdodDogY2xhbXAoNi44cmVtLCAyMXZ3LCA4LjRyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDUgLyA3O1xuICAgICAgICBtYXJnaW4taW5saW5lOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSBzdHJvbmcge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIDAuMzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjayB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDUuOXJlbSwgN3JlbSkgbWlubWF4KDVyZW0sIDFmcikgbWlubWF4KDQuMnJlbSwgN3JlbSk7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogc3RyZXRjaDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjay0tb3Bwb25lbnQge1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMC4zNXJlbTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4yNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMS43cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjE4cmVtIDAuNDZyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjhyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyLS1vcHBvbmVudCB7XG4gICAgICAgIHRvcDogMC4xNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg2cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWNvbW1hbmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSB7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc0cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZS0tb3Bwb25lbnQge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlIHN0cm9uZyB7XG4gICAgICAgIG1heC13aWR0aDogNi41cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hdmF0YXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMS44NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy16b25lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDAuMjVyZW07XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtaW4taGVpZ2h0OiA0LjlyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pIHtcbiAgICAgICAgd2lkdGg6IDMuNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNS45cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogNy4xcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjk1cmVtIDAuNTJyZW0gMC42cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYsICNmOGZhZmMpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjE4KSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIGkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiBhdXRvIGF1dG8gMS4wNXJlbSAwLjcycmVtO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgd2lkdGg6IDIuNTVyZW07XG4gICAgICAgIGhlaWdodDogMy41NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpLCByZ2JhKDI0MSwgMjQ1LCAyNDksIDAuOTIpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDc4JSAxOCUsICNmYWNjMTUgMCAwLjM4cmVtLCB0cmFuc3BhcmVudCAwLjRyZW0pO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIGk6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMC4yOHJlbSwgMC4wOHJlbSkgcm90YXRlKDNkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgaTpudGgtY2hpbGQoMykge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLjU1cmVtLCAwLjE4cmVtKSByb3RhdGUoLTFkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDQuNzVyZW0sIDE3dncsIDZyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiBjbGFtcCg2LjZyZW0sIDIydncsIDguNHJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcmFjay1zcGFjZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDRyZW0sIDFmcikpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDQuM3JlbSwgMWZyKSk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgbWluLWhlaWdodDogNi40NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC43cmVtIDAuNTJyZW0gMC41NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgOTk5cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgaSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IGF1dG8gMC43MnJlbSAxLjAycmVtIGF1dG87XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB3aWR0aDogMi43cmVtO1xuICAgICAgICBoZWlnaHQ6IDMuN3JlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuODVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjExKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIGk6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTAuMjhyZW0sIDAuMTJyZW0pIHJvdGF0ZSgtM2RlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIGk6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpLCByZ2JhKDE2LCA0MiwgNjcsIDAuMDMpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZGJlYWZlIDAgMC4zM3JlbSwgI2ZmZmZmZiAwLjMzcmVtIDAuNjZyZW0pO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMC41NHJlbSwgMC4yNHJlbSkgcm90YXRlKDJkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDYxO1xuICAgICAgICB3aWR0aDogbWluKDI4cmVtLCBjYWxjKDEwMHZ3IC0gMS4yNXJlbSkpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDMxcmVtLCBjYWxjKDEwMHZoIC0gMy41cmVtKSk7XG4gICAgICAgIHBhZGRpbmc6IDEuMTVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk2KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpLCB0cmFuc3BhcmVudCA0NSUpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwIDAuMThyZW0gcmdiYSgxOTEsIDIxOSwgMjU0LCAwLjQyKSxcbiAgICAgICAgICAwIDAgMi4ycmVtIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjM0KSxcbiAgICAgICAgICAwIDIuNHJlbSA1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4zNCksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4zNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICAgICAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICB0cmFuc2xhdGUodmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpLCB2YXIoLS1wcmV2aWV3LXNoaWZ0LXksIDBweCkpXG4gICAgICAgICAgcGVyc3BlY3RpdmUoNDhyZW0pXG4gICAgICAgICAgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCA1ZGVnKSlcbiAgICAgICAgICByb3RhdGVZKHZhcigtLXByZXZpZXctcm90YXRlLXksIC01ZGVnKSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA5MG1zIGVhc2Utb3V0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTIuNnJlbTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDYyO1xuICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43OCk7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjQ1cmVtIDFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYmFja2Ryb3AsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3Age1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC40Nik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1iYWNrZHJvcCB7XG4gICAgICAgIHotaW5kZXg6IDYwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjU1cmVtLCA4dncsIDIuMzVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjM1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtYWN0aW9ucyBidXR0b24ge1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjM1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuOXJlbTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzEwMmE0MztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNjVyZW0gMS4zcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1hY3Rpb25zIGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA1MnJlbSkge1xuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMzRyZW0sIGNhbGMoMTAwdncgLSAzcmVtKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IG1pbig0M3JlbSwgY2FsYygxMDB2aCAtIDRyZW0pKTtcbiAgICAgICAgICBwYWRkaW5nOiAxLjQ1cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcCB7XG4gICAgICAgIHotaW5kZXg6IDQwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgYm90dG9tOiBtYXgoMC41cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDQxO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC43NXJlbTtcbiAgICAgICAgd2lkdGg6IG1pbihjYWxjKDEwMHZ3IC0gMXJlbSksIDQ0cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDE4cmVtLCBjYWxjKDEwMGR2aCAtIDFyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDMycmVtLCBjYWxjKDEwMGR2aCAtIDJyZW0pKTtcbiAgICAgICAgcGFkZGluZzogMC44cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEuNXJlbSA0cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yOCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoMixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMS44NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2Uge1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNjJyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNS40cmVtLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwLjU1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjMyKSByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjFyZW0gMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiAwLjY1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXI6IDAuMTRyZW0gc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyYXdlciB7XG4gICAgICAgIHdpZHRoOiBtaW4oY2FsYygxMDB2dyAtIDFyZW0pLCA0OHJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IG1pbigyMHJlbSwgY2FsYygxMDBkdmggLSAxcmVtKSk7XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbigzNHJlbSwgY2FsYygxMDBkdmggLSAycmVtKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjMyKSByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg0LjlyZW0sIDYuMnJlbSkgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LmlzLWV4aGF1c3RlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcuNHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDgyJSAxNCUsICNmYWNjMTUgMCAwLjQ4cmVtLCB0cmFuc3BhcmVudCAwLjVyZW0pO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBzbWFsbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNjZyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBwLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHAge1xuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93ID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93ID4gZGl2IGJ1dHRvbiB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuMnJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogIzEwMmE0MztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93ID4gZGl2IGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlMmU4ZjA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgfVxuXG4gICAgICBidXR0b24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMC4xODc1cmVtIHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjQpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsIHtcbiAgICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDA7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnksXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHtcbiAgICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCB7XG4gICAgICAgICAgbWluLXdpZHRoOiAzLjY1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzdHJvbmcge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUge1xuICAgICAgICAgIHBhZGRpbmc6IDAuM3JlbSAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDMuMzVyZW0sIDFmcikpO1xuICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMC41NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMTEuNzVyZW07XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgICAgICAgcGFkZGluZy10b3A6IDEuMzVyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuOXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDYuNjVyZW07XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjRyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuODVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg0LjdyZW0sIDUuOXJlbSkgbWlubWF4KDQuOHJlbSwgMWZyKSBtaW5tYXgoMy43cmVtLCA1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgzLjdyZW0sIDFmcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA2LjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNThyZW0gMC40NnJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDYuODVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC44OHJlbSAwLjQ2cmVtIDAuNTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoNC4ycmVtLCAyMHZ3LCA1LjdyZW0pO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDUuOHJlbSwgMjZ2dywgNy40cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCg0LjU1cmVtLCAyMHZ3LCA1LjdyZW0pO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDYuMTVyZW0sIDI3dncsIDcuNnJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNC41cmVtLCA1LjVyZW0pIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDUuNzVyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuN3JlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENocmlzdGlhbml0eUdhbWVDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBnYW1lID0gc2lnbmFsPENocmlzdGlhbml0eUdhbWVTdGF0ZT4oc3RydWN0dXJlZENsb25lKFNUQVJUSU5HX0dBTUUpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkSGFuZENhcmQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZEF0dGFja2VyID0gc2lnbmFsPENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXcgPSBzaWduYWw8Q2hyaXN0aWFuaXR5Q2FyZFByZXZpZXcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdUaWx0ID0gc2lnbmFsPENocmlzdGlhbml0eVByZXZpZXdUaWx0Pih7IHJvdGF0ZVg6IDUsIHJvdGF0ZVk6IC01LCBzaGlmdFg6IDAsIHNoaWZ0WTogMCB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhvdmVyZWRIYW5kSW5kZXggPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkcmFnZ2luZ0NhcmRJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dIaXN0b3J5ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9mZmVyaW5nc1NlYXQgPSBzaWduYWw8Q2hyaXN0aWFuaXR5U2VhdCB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25CYXR0bGVTbG90ID0gKGRyYWc6IENka0RyYWc8c3RyaW5nPik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGRyYWcuZGF0YSk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PZmZlcmluZ3MgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxheWVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nYW1lKCkucGxheWVycy5QMSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcHBvbmVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnMuUDIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBsYXllciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnNbdGhpcy5nYW1lKCkudHVybk93bmVyXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc093blR1cm4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS50dXJuT3duZXIgPT09ICdQMScpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzT3Bwb25lbnRHdWFyZHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wcG9uZW50KCkuYmF0dGxlWm9uZS5sZW5ndGggPiAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wcG9uZW50SGFuZENvdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHBvbmVudCgpLmhhbmRDb3VudCA/PyB0aGlzLm9wcG9uZW50KCkuaGFuZD8ubGVuZ3RoID8/IDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZCgpO1xuICAgIHJldHVybiBzZWxlY3RlZCA/IHRoaXMuY2FyZERlZmluaXRpb24oc2VsZWN0ZWQpIDogbnVsbDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdGF0dXNUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5zZWxlY3RlZEF0dGFja2VyKCk7XG4gICAgY29uc3QgaGFuZENhcmQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNPd25UdXJuKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVdhaXRUdXJuJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2tlcikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlQ2hhcmFjdGVyVGFyZ2V0JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZVRhcmdldCcpO1xuICAgIH1cbiAgICBpZiAoaGFuZENhcmQpIHtcbiAgICAgIGlmICghdGhpcy5jYW5QbGF5KGhhbmRDYXJkKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlOZWVkT2ZmZXJpbmdzJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFuZENhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VPZmZlcmluZycpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VTbG90Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZUNhcmQnKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ01pbmlHYW1lcycsIE1JTklfR0FNRVNfSTE4Tik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnTWluaUdhbWVzJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZERlZmluaXRpb24oY2FyZElkOiBzdHJpbmcpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIFNUQVJURVJfQ0FSRFNbY2FyZElkXSA/PyBTVEFSVEVSX0NBUkRTWydwX3Njb3V0J107XG4gIH1cblxuICBwcm90ZWN0ZWQgYmF0dGxlU2xvdHMoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IEFycmF5PHsgdHJhY2tJZDogc3RyaW5nOyBjYXJkPzogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IGNhcmRzID0gdGhpcy5nYW1lKCkucGxheWVyc1tzZWF0XS5iYXR0bGVab25lO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiA0IH0sIChfLCBpbmRleCkgPT4gKHtcbiAgICAgIHRyYWNrSWQ6IGNhcmRzW2luZGV4XT8uaW5zdGFuY2VJZCA/PyBgJHtzZWF0fS1lbXB0eS0ke2luZGV4fWAsXG4gICAgICBjYXJkOiBjYXJkc1tpbmRleF0sXG4gICAgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZVNsb3REcm9wSWQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktYmF0dGxlLXNsb3QtJHtpbmRleH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BUYXJnZXRJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ2NocmlzdGlhbml0eS1vZmZlcmluZ3MtZHJvcCcsIC4uLnRoaXMuYmF0dGxlU2xvdHMoJ1AxJykubWFwKChfLCBpbmRleCkgPT4gdGhpcy5iYXR0bGVTbG90RHJvcElkKGluZGV4KSldO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhpZGRlbkhhbmRDYXJkcyhjb3VudDogbnVtYmVyKTogdW5rbm93bltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmFuVHJhbnNmb3JtKGluZGV4OiBudW1iZXIsIHRvdGFsOiBudW1iZXIsIG9wcG9uZW50OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBpZiAodG90YWwgPD0gMSkgcmV0dXJuICdub25lJztcbiAgICBjb25zdCBjZW50ZXIgPSAodG90YWwgLSAxKSAvIDI7XG4gICAgY29uc3Qgb2Zmc2V0ID0gaW5kZXggLSBjZW50ZXI7XG4gICAgY29uc3Qgcm90YXRlID0gb2Zmc2V0ICogKG9wcG9uZW50ID8gOCA6IDUpO1xuICAgIGNvbnN0IGxpZnQgPSBNYXRoLmFicyhvZmZzZXQpICogMC4yNTtcbiAgICBjb25zdCBob3ZlckxpZnQgPSBvcHBvbmVudCA/IDAgOiB0aGlzLmhhbmRXYXZlTGlmdChpbmRleCk7XG4gICAgY29uc3Qgc2NhbGUgPSBvcHBvbmVudCA/IDEgOiB0aGlzLmhhbmRXYXZlU2NhbGUoaW5kZXgpO1xuICAgIGNvbnN0IGZhbkxpZnQgPSBvcHBvbmVudCA/IE1hdGguYWJzKG9mZnNldCkgKiAwLjM0IDogbGlmdCArIGhvdmVyTGlmdDtcbiAgICBjb25zdCBmYW5TcHJlYWQgPSBvcHBvbmVudCA/IG9mZnNldCAqIDAuMDggOiAwO1xuICAgIHJldHVybiBgdHJhbnNsYXRlKCR7ZmFuU3ByZWFkfXJlbSwgJHtmYW5MaWZ0fXJlbSkgcm90YXRlKCR7cm90YXRlfWRlZykgc2NhbGUoJHtzY2FsZX0pYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kQ2FyZFpJbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBob3ZlcmVkID0gdGhpcy5ob3ZlcmVkSGFuZEluZGV4KCk7XG4gICAgaWYgKGhvdmVyZWQgPT09IG51bGwpIHJldHVybiAyO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoaW5kZXggLSBob3ZlcmVkKTtcbiAgICByZXR1cm4gTWF0aC5tYXgoMiwgOCAtIGRpc3RhbmNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRIb3ZlcmVkSGFuZEluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmhvdmVyZWRIYW5kSW5kZXguc2V0KGluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbGVhckhvdmVyZWRIYW5kSW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy5ob3ZlcmVkSGFuZEluZGV4LnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWxlYXNlSG92ZXJlZEhhbmQoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5wb2ludGVyVHlwZSAhPT0gJ21vdXNlJykge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGVhckhvdmVyZWRIYW5kSW5kZXgoKSwgMTgwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRXYXZlTGlmdChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBob3ZlcmVkID0gdGhpcy5ob3ZlcmVkSGFuZEluZGV4KCk7XG4gICAgaWYgKGhvdmVyZWQgPT09IG51bGwpIHJldHVybiAwO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoaW5kZXggLSBob3ZlcmVkKTtcbiAgICBpZiAoZGlzdGFuY2UgPT09IDApIHJldHVybiAtMS4xNTtcbiAgICBpZiAoZGlzdGFuY2UgPT09IDEpIHJldHVybiAtMC41ODtcbiAgICBpZiAoZGlzdGFuY2UgPT09IDIpIHJldHVybiAtMC4yMjtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZFdhdmVTY2FsZShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBob3ZlcmVkID0gdGhpcy5ob3ZlcmVkSGFuZEluZGV4KCk7XG4gICAgaWYgKGhvdmVyZWQgPT09IG51bGwpIHJldHVybiAxO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoaW5kZXggLSBob3ZlcmVkKTtcbiAgICBpZiAoZGlzdGFuY2UgPT09IDApIHJldHVybiAxLjA2O1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMSkgcmV0dXJuIDEuMDM7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZHlPZmZlcmluZ3MocGxheWVyOiBDaHJpc3RpYW5pdHlQbGF5ZXJTdGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHBsYXllci5vZmZlcmluZ3MucmVkdWNlKCh0b3RhbCwgb2ZmZXJpbmcpID0+IHRvdGFsICsgKG9mZmVyaW5nLnJlYWR5ID8gb2ZmZXJpbmcudmFsdWUgOiAwKSwgMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG90YWxPZmZlcmluZ3MocGxheWVyOiBDaHJpc3RpYW5pdHlQbGF5ZXJTdGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHBsYXllci5vZmZlcmluZ3MucmVkdWNlKCh0b3RhbCwgb2ZmZXJpbmcpID0+IHRvdGFsICsgb2ZmZXJpbmcudmFsdWUsIDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblBsYXkoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNPd25UdXJuKCkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnKSByZXR1cm4gIXRoaXMucGxheWVyKCkub2ZmZXJpbmdQbGF5ZWRUaGlzVHVybjtcbiAgICByZXR1cm4gdGhpcy5yZWFkeU9mZmVyaW5ncyh0aGlzLnBsYXllcigpKSA+PSBjYXJkLmNvc3QgJiYgdGhpcy5wbGF5ZXIoKS5iYXR0bGVab25lLmxlbmd0aCA8IDQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxheVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEhhbmRDYXJkKCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWQgJiYgdGhpcy5jYW5QbGF5KHRoaXMuY2FyZERlZmluaXRpb24oc2VsZWN0ZWQpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RlZEFjdGlvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICBpZiAoIXNlbGVjdGVkKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5Q2FyZCcpO1xuICAgIHJldHVybiBzZWxlY3RlZC50eXBlID09PSAnb2ZmZXJpbmcnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5T2ZmZXJpbmcnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxheUNhcmQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RlZEFjdGlvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgaWYgKCFzZWxlY3RlZCB8fCAhdGhpcy5jYW5QbGF5KHNlbGVjdGVkKSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIHNlbGVjdGVkLnR5cGUgPT09ICdjaGFyYWN0ZXInO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXZpZXdBY3Rpb25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAocHJldmlldz8uc291cmNlICE9PSAnaGFuZCcgfHwgIXByZXZpZXcuY2FyZElkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gIXRoaXMuY2FuUGxheSh0aGlzLmNhcmREZWZpbml0aW9uKHByZXZpZXcuY2FyZElkKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxhY2VTZWxlY3RlZENoYXJhY3RlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkICYmIHNlbGVjdGVkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIHRoaXMuY2FuUGxheShzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxhY2VTZWxlY3RlZE9mZmVyaW5nKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWQgJiYgc2VsZWN0ZWQudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiB0aGlzLmNhblBsYXkoc2VsZWN0ZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRHJhZ2dpbmdDaGFyYWN0ZXIoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5kcmFnZ2luZ0NhcmRJZCgpO1xuICAgIGlmICghY2FyZElkKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyAmJiB0aGlzLmNhblBsYXkoY2FyZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNEcmFnZ2luZ09mZmVyaW5nKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuZHJhZ2dpbmdDYXJkSWQoKTtcbiAgICBpZiAoIWNhcmRJZCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiB0aGlzLmNhblBsYXkoY2FyZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhcnREcmFnZ2luZ0NhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQoY2FyZElkKTtcbiAgICB0aGlzLmRyYWdnaW5nQ2FyZElkLnNldChjYXJkSWQpO1xuICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5kRHJhZ2dpbmdDYXJkKCk6IHZvaWQge1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BPbkJhdHRsZVNsb3QoZXZlbnQ6IENka0RyYWdEcm9wPG51bWJlciwgdW5rbm93biwgc3RyaW5nPiwgc2xvdEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihldmVudC5pdGVtLmRhdGEpO1xuICAgIGlmIChjYXJkLnR5cGUgIT09ICdjaGFyYWN0ZXInKSByZXR1cm47XG4gICAgdGhpcy5wbGF5Q2FyZEZyb21IYW5kKGV2ZW50Lml0ZW0uZGF0YSwgc2xvdEluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wT25PZmZlcmluZ3MoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24sIHVua25vd24sIHN0cmluZz4pOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihldmVudC5pdGVtLmRhdGEpO1xuICAgIGlmIChjYXJkLnR5cGUgIT09ICdvZmZlcmluZycpIHJldHVybjtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoZXZlbnQuaXRlbS5kYXRhKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RIYW5kQ2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEhhbmRDYXJkKCkgPT09IGNhcmRJZDtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQod2FzU2VsZWN0ZWQgPyBudWxsIDogY2FyZElkKTtcbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBsYXlTZWxlY3RlZENhcmQoc2xvdEluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5zZWxlY3RlZEhhbmRDYXJkKCk7XG4gICAgaWYgKCFjYXJkSWQpIHJldHVybjtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoY2FyZElkLCBzbG90SW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBsYXlDYXJkRnJvbUhhbmQoY2FyZElkOiBzdHJpbmcsIHNsb3RJbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgaWYgKCF0aGlzLmNhblBsYXkoY2FyZCkpIHJldHVybjtcblxuICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gc3RydWN0dXJlZENsb25lKGdhbWUpO1xuICAgICAgY29uc3QgcGxheWVyID0gbmV4dC5wbGF5ZXJzLlAxO1xuICAgICAgY29uc3QgaGFuZEluZGV4ID0gcGxheWVyLmhhbmQ/LmluZGV4T2YoY2FyZElkKSA/PyAtMTtcbiAgICAgIGlmIChoYW5kSW5kZXggPCAwIHx8ICFwbGF5ZXIuaGFuZCkgcmV0dXJuIGdhbWU7XG4gICAgICBwbGF5ZXIuaGFuZC5zcGxpY2UoaGFuZEluZGV4LCAxKTtcbiAgICAgIGlmIChjYXJkLnR5cGUgPT09ICdvZmZlcmluZycpIHtcbiAgICAgICAgcGxheWVyLm9mZmVyaW5ncy5wdXNoKHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiBgcDFfb2ZmZXJpbmdfJHtuZXh0LnJldmlzaW9uICsgMX1gLFxuICAgICAgICAgIGNhcmRJZDogY2FyZC5pZCxcbiAgICAgICAgICBuYW1lOiBjYXJkLm5hbWUsXG4gICAgICAgICAgb3duZXI6ICdQMScsXG4gICAgICAgICAgcmVhZHk6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IGNhcmQubGlmZSxcbiAgICAgICAgICBhYmlsaXR5TmFtZTogY2FyZC5hYmlsaXR5TmFtZSxcbiAgICAgICAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCxcbiAgICAgICAgICBhYmlsaXR5Q29zdDogY2FyZC5hYmlsaXR5Q29zdCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBsYXllci5vZmZlcmluZ1BsYXllZFRoaXNUdXJuID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3BlbmRPZmZlcmluZ3MocGxheWVyLCBjYXJkLmNvc3QpO1xuICAgICAgICBjb25zdCBpbnNlcnRJbmRleCA9IE1hdGgubWluKHNsb3RJbmRleCA/PyBwbGF5ZXIuYmF0dGxlWm9uZS5sZW5ndGgsIHBsYXllci5iYXR0bGVab25lLmxlbmd0aCk7XG4gICAgICAgIHBsYXllci5iYXR0bGVab25lLnNwbGljZShpbnNlcnRJbmRleCwgMCwge1xuICAgICAgICAgIGluc3RhbmNlSWQ6IGBwMV8ke25leHQucmV2aXNpb24gKyAxfV8ke3BsYXllci5iYXR0bGVab25lLmxlbmd0aH1gLFxuICAgICAgICAgIGNhcmRJZDogY2FyZC5pZCxcbiAgICAgICAgICBuYW1lOiBjYXJkLm5hbWUsXG4gICAgICAgICAgb3duZXI6ICdQMScsXG4gICAgICAgICAgY29udHJvbGxlcjogJ1AxJyxcbiAgICAgICAgICBhdHRhY2s6IGNhcmQuYXR0YWNrLFxuICAgICAgICAgIGN1cnJlbnRIcDogY2FyZC5saWZlLFxuICAgICAgICAgIG1heEhwOiBjYXJkLmxpZmUsXG4gICAgICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFtcbiAgICAgICAgY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gYCR7Y2FyZC5uYW1lfSBxdWVkYSBsaXN0YSBjb21vIG9mcmVuZGEuYCA6IGAke2NhcmQubmFtZX0gZW50cmEgZW4gYmF0YWxsYS5gLFxuICAgICAgICAuLi5uZXh0LmxvZyxcbiAgICAgIF0uc2xpY2UoMCwgNCk7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KG51bGwpO1xuICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxheVByZXZpZXdDYXJkKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmIChwcmV2aWV3Py5zb3VyY2UgIT09ICdoYW5kJyB8fCAhcHJldmlldy5jYXJkSWQpIHJldHVybjtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihwcmV2aWV3LmNhcmRJZCk7XG4gICAgaWYgKCF0aGlzLmNhblBsYXkoY2FyZCkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KHByZXZpZXcuY2FyZElkKTtcbiAgICBpZiAoY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJykge1xuICAgICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wbGF5U2VsZWN0ZWRDYXJkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT2ZmZXJpbmdQaWxlKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5PZmZlcmluZ3Moc2VhdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0QXR0YWNrZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuaW5zcGVjdENoYXJhY3RlcihjYXJkKTtcbiAgICBpZiAoIXRoaXMuaXNPd25UdXJuKCkgfHwgIWNhcmQuY2FuQXR0YWNrKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldCh0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKT8uaW5zdGFuY2VJZCA9PT0gY2FyZC5pbnN0YW5jZUlkID8gbnVsbCA6IGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wcG9uZW50Q2hhcmFjdGVyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5pbnNwZWN0Q2hhcmFjdGVyKGNhcmQpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKSkge1xuICAgICAgdGhpcy5hdHRhY2tDaGFyYWN0ZXIoY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wcG9uZW50TGVhZGVyKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zcGVjdExlYWRlcignUDInKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEF0dGFja2VyKCkgJiYgIXRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSkge1xuICAgICAgdGhpcy5hdHRhY2tMZWFkZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXR0YWNrTGVhZGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5zZWxlY3RlZEF0dGFja2VyKCk7XG4gICAgaWYgKCFhdHRhY2tlcikgcmV0dXJuO1xuICAgIGlmICh0aGlzLmhhc09wcG9uZW50R3VhcmRzKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICAgIHRpdGxlOiB0aGlzLm9wcG9uZW50KCkubGVhZGVyTmFtZSxcbiAgICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICAgIG1ldGE6IGAke3RoaXMub3Bwb25lbnQoKS5sZWFkZXJIcH0vJHt0aGlzLm9wcG9uZW50KCkubGVhZGVyTWF4SHB9YCxcbiAgICAgICAgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJQcm90ZWN0ZWQnKSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IHN0cnVjdHVyZWRDbG9uZShnYW1lKTtcbiAgICAgIGNvbnN0IGxpdmVBdHRhY2tlciA9IG5leHQucGxheWVycy5QMS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGF0dGFja2VyLmluc3RhbmNlSWQpO1xuICAgICAgaWYgKCFsaXZlQXR0YWNrZXIgfHwgIWxpdmVBdHRhY2tlci5jYW5BdHRhY2spIHJldHVybiBnYW1lO1xuICAgICAgbmV4dC5wbGF5ZXJzLlAyLmxlYWRlckhwID0gTWF0aC5tYXgoMCwgbmV4dC5wbGF5ZXJzLlAyLmxlYWRlckhwIC0gbGl2ZUF0dGFja2VyLmF0dGFjayk7XG4gICAgICBsaXZlQXR0YWNrZXIuY2FuQXR0YWNrID0gZmFsc2U7XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFtgJHtsaXZlQXR0YWNrZXIubmFtZX0gYXRhY2EgYWwgbGlkZXIgcml2YWwuYCwgLi4ubmV4dC5sb2ddLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhdHRhY2tDaGFyYWN0ZXIodGFyZ2V0OiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5zZWxlY3RlZEF0dGFja2VyKCk7XG4gICAgaWYgKCFhdHRhY2tlcikgcmV0dXJuO1xuICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gc3RydWN0dXJlZENsb25lKGdhbWUpO1xuICAgICAgY29uc3QgbGl2ZUF0dGFja2VyID0gbmV4dC5wbGF5ZXJzLlAxLmJhdHRsZVpvbmUuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gYXR0YWNrZXIuaW5zdGFuY2VJZCk7XG4gICAgICBjb25zdCBsaXZlVGFyZ2V0ID0gbmV4dC5wbGF5ZXJzLlAyLmJhdHRsZVpvbmUuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gdGFyZ2V0Lmluc3RhbmNlSWQpO1xuICAgICAgaWYgKCFsaXZlQXR0YWNrZXIgfHwgIWxpdmVUYXJnZXQgfHwgIWxpdmVBdHRhY2tlci5jYW5BdHRhY2spIHJldHVybiBnYW1lO1xuICAgICAgbGl2ZVRhcmdldC5jdXJyZW50SHAgLT0gbGl2ZUF0dGFja2VyLmF0dGFjaztcbiAgICAgIGxpdmVBdHRhY2tlci5jdXJyZW50SHAgLT0gbGl2ZVRhcmdldC5hdHRhY2s7XG4gICAgICBsaXZlQXR0YWNrZXIuY2FuQXR0YWNrID0gZmFsc2U7XG4gICAgICB0aGlzLmNsZWFudXBEZXN0cm95ZWQobmV4dC5wbGF5ZXJzLlAxLCBuZXh0KTtcbiAgICAgIHRoaXMuY2xlYW51cERlc3Ryb3llZChuZXh0LnBsYXllcnMuUDIsIG5leHQpO1xuICAgICAgbmV4dC5yZXZpc2lvbisrO1xuICAgICAgbmV4dC5sb2cgPSBbYCR7bGl2ZUF0dGFja2VyLm5hbWV9IGNvbWJhdGUgY29udHJhICR7bGl2ZVRhcmdldC5uYW1lfS5gLCAuLi5uZXh0LmxvZ10uc2xpY2UoMCwgNCk7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuZFR1cm4oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IHN0cnVjdHVyZWRDbG9uZShnYW1lKTtcbiAgICAgIG5leHQudHVybk93bmVyID0gbmV4dC50dXJuT3duZXIgPT09ICdQMScgPyAnUDInIDogJ1AxJztcbiAgICAgIG5leHQudHVybkNvdW50Kys7XG4gICAgICBjb25zdCBjdXJyZW50ID0gbmV4dC5wbGF5ZXJzW25leHQudHVybk93bmVyXTtcbiAgICAgIGN1cnJlbnQub2ZmZXJpbmdQbGF5ZWRUaGlzVHVybiA9IGZhbHNlO1xuICAgICAgY3VycmVudC5vZmZlcmluZ3MgPSBjdXJyZW50Lm9mZmVyaW5ncy5tYXAob2ZmZXJpbmcgPT4gKHsgLi4ub2ZmZXJpbmcsIHJlYWR5OiB0cnVlIH0pKTtcbiAgICAgIGN1cnJlbnQuYmF0dGxlWm9uZSA9IGN1cnJlbnQuYmF0dGxlWm9uZS5tYXAoY2FyZCA9PiAoeyAuLi5jYXJkLCBjYW5BdHRhY2s6IHRydWUgfSkpO1xuICAgICAgY29uc3QgZHJhd25DYXJkID0gbmV4dC5zaGFyZWREZWNrLnNoaWZ0KCk7XG4gICAgICBpZiAoZHJhd25DYXJkKSB7XG4gICAgICAgIGlmIChjdXJyZW50LmhhbmQpIHtcbiAgICAgICAgICBjdXJyZW50LmhhbmQucHVzaChkcmF3bkNhcmQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnQuaGFuZENvdW50ID0gKGN1cnJlbnQuaGFuZENvdW50ID8/IDApICsgMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbmV4dC5yZXZpc2lvbisrO1xuICAgICAgbmV4dC5sb2cgPSBbXG4gICAgICAgIGRyYXduQ2FyZCA/IGAke2N1cnJlbnQuZGlzcGxheU5hbWV9IHJvYmEgdW5hIGNhcnRhLmAgOiBgRWwgbWF6byBlc3RhIHZhY2lvLmAsXG4gICAgICAgIGBUdXJubyBkZSAke2N1cnJlbnQuZGlzcGxheU5hbWV9LmAsXG4gICAgICAgIC4uLm5leHQubG9nLFxuICAgICAgXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0TW9jaygpOiB2b2lkIHtcbiAgICB0aGlzLmdhbWUuc2V0KHN0cnVjdHVyZWRDbG9uZShTVEFSVElOR19HQU1FKSk7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZVByZXZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMucmVzZXRQcmV2aWV3VGlsdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9wZW5PZmZlcmluZ3Moc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChzZWF0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZU9mZmVyaW5ncygpOiB2b2lkIHtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRpbHRQcmV2aWV3KGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBib3VuZHMgPSAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeCA9IChldmVudC5jbGllbnRYIC0gYm91bmRzLmxlZnQpIC8gYm91bmRzLndpZHRoIC0gMC41O1xuICAgIGNvbnN0IHkgPSAoZXZlbnQuY2xpZW50WSAtIGJvdW5kcy50b3ApIC8gYm91bmRzLmhlaWdodCAtIDAuNTtcbiAgICB0aGlzLnByZXZpZXdUaWx0LnNldCh7XG4gICAgICByb3RhdGVYOiA1IC0geSAqIDE4LFxuICAgICAgcm90YXRlWTogLTUgKyB4ICogMTgsXG4gICAgICBzaGlmdFg6IHggKiAxMCxcbiAgICAgIHNoaWZ0WTogeSAqIDEwLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0UHJldmlld1RpbHQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2aWV3VGlsdC5zZXQoeyByb3RhdGVYOiA1LCByb3RhdGVZOiAtNSwgc2hpZnRYOiAwLCBzaGlmdFk6IDAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBEZXN0cm95ZWQocGxheWVyOiBDaHJpc3RpYW5pdHlQbGF5ZXJTdGF0ZSwgZ2FtZTogQ2hyaXN0aWFuaXR5R2FtZVN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgZGVzdHJveWVkID0gcGxheWVyLmJhdHRsZVpvbmUuZmlsdGVyKGNhcmQgPT4gY2FyZC5jdXJyZW50SHAgPD0gMCk7XG4gICAgaWYgKCFkZXN0cm95ZWQubGVuZ3RoKSByZXR1cm47XG4gICAgZ2FtZS5oaXN0b3J5Wm9uZS5wdXNoKC4uLmRlc3Ryb3llZC5tYXAoY2FyZCA9PiBjYXJkLmNhcmRJZCkpO1xuICAgIHBsYXllci5iYXR0bGVab25lID0gcGxheWVyLmJhdHRsZVpvbmUuZmlsdGVyKGNhcmQgPT4gY2FyZC5jdXJyZW50SHAgPiAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0TGVhZGVyKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICBjb25zdCBwbGF5ZXIgPSB0aGlzLmdhbWUoKS5wbGF5ZXJzW3NlYXRdO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogcGxheWVyLmxlYWRlck5hbWUsXG4gICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgIG1ldGE6IGAke3BsYXllci5sZWFkZXJIcH0vJHtwbGF5ZXIubGVhZGVyTWF4SHB9YCxcbiAgICAgIGJvZHk6IHNlYXQgPT09ICdQMicgJiYgdGhpcy5oYXNPcHBvbmVudEd1YXJkcygpID8gdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJQcm90ZWN0ZWQnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQm9keScpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RPZmZlcmluZyhvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogb2ZmZXJpbmcubmFtZSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJyksXG4gICAgICBtZXRhOiBvZmZlcmluZy5yZWFkeSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZWFkeScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0V4aGF1c3RlZCcpLFxuICAgICAgYm9keTogb2ZmZXJpbmcuYWJpbGl0eVRleHQgfHwgdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0JvZHknKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5Vc2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UsIHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBib29sZWFuIHtcbiAgICBpZiAoc2VhdCAhPT0gJ1AxJyB8fCAhdGhpcy5pc093blR1cm4oKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghb2ZmZXJpbmcucmVhZHkgfHwgIW9mZmVyaW5nLmFiaWxpdHlOYW1lKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucmVhZHlPZmZlcmluZ3ModGhpcy5nYW1lKCkucGxheWVyc1tzZWF0XSkgPj0gKG9mZmVyaW5nLmFiaWxpdHlDb3N0ID8/IDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSwgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jYW5Vc2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmcsIHNlYXQpKSByZXR1cm47XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBwbGF5ZXIgPSBuZXh0LnBsYXllcnNbc2VhdF07XG4gICAgICBjb25zdCBsaXZlT2ZmZXJpbmcgPSBwbGF5ZXIub2ZmZXJpbmdzLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IG9mZmVyaW5nLmluc3RhbmNlSWQpO1xuICAgICAgaWYgKCFsaXZlT2ZmZXJpbmcgfHwgIWxpdmVPZmZlcmluZy5yZWFkeSkgcmV0dXJuIGdhbWU7XG4gICAgICBjb25zdCBvZmZlcmluZ0lkID0gbGl2ZU9mZmVyaW5nLmluc3RhbmNlSWQ7XG4gICAgICB0aGlzLnNwZW5kT2ZmZXJpbmdzKHBsYXllciwgbGl2ZU9mZmVyaW5nLmFiaWxpdHlDb3N0ID8/IDApO1xuICAgICAgcGxheWVyLm9mZmVyaW5ncyA9IHBsYXllci5vZmZlcmluZ3MubWFwKGNhcmQgPT4gKGNhcmQuaW5zdGFuY2VJZCA9PT0gb2ZmZXJpbmdJZCA/IHsgLi4uY2FyZCwgcmVhZHk6IGZhbHNlIH0gOiBjYXJkKSk7XG4gICAgICBwbGF5ZXIubGVhZGVySHAgPSBNYXRoLm1heCgwLCBwbGF5ZXIubGVhZGVySHAgLSAxKTtcbiAgICAgIG5leHQucmV2aXNpb24rKztcbiAgICAgIG5leHQubG9nID0gW2Ake2xpdmVPZmZlcmluZy5uYW1lfTogJHtsaXZlT2ZmZXJpbmcuYWJpbGl0eU5hbWV9LmAsIC4uLm5leHQubG9nXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3REZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrJyksXG4gICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eVNoYXJlZFpvbmUnKSxcbiAgICAgIG1ldGE6IGAke3RoaXMuZ2FtZSgpLnNoYXJlZERlY2subGVuZ3RofWAsXG4gICAgICBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tCb2R5JyksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdEhhbmRDYXJkKGNhcmRJZDogc3RyaW5nLCBmcm9tSGFuZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICBpZiAoZnJvbUhhbmQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KGNhcmRJZCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogY2FyZC5uYW1lLFxuICAgICAgZXllYnJvdzogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpLFxuICAgICAgbWV0YTogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gYCske2NhcmQubGlmZX1gIDogYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlDb3N0Jyl9ICR7Y2FyZC5jb3N0fSDCtyAke2NhcmQuYXR0YWNrfS8ke2NhcmQubGlmZX1gLFxuICAgICAgYm9keTogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0JvZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQm9keScpLFxuICAgICAgY2FyZElkLFxuICAgICAgc291cmNlOiBmcm9tSGFuZCA/ICdoYW5kJyA6ICdwaWxlJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0SGlzdG9yeUNhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5pbnNwZWN0SGFuZENhcmQoY2FyZElkKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zcGVjdENoYXJhY3RlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogY2FyZC5uYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksXG4gICAgICBtZXRhOiBgJHtjYXJkLmF0dGFja30vJHtjYXJkLmN1cnJlbnRIcH1gLFxuICAgICAgYm9keTogY2FyZC5jYW5BdHRhY2sgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlclJlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckV4aGF1c3RlZCcpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzcGVuZE9mZmVyaW5ncyhwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlLCBjb3N0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBsZXQgcmVtYWluaW5nID0gY29zdDtcbiAgICBwbGF5ZXIub2ZmZXJpbmdzID0gcGxheWVyLm9mZmVyaW5ncy5tYXAob2ZmZXJpbmcgPT4ge1xuICAgICAgaWYgKHJlbWFpbmluZyA8PSAwIHx8ICFvZmZlcmluZy5yZWFkeSkgcmV0dXJuIG9mZmVyaW5nO1xuICAgICAgcmVtYWluaW5nIC09IG9mZmVyaW5nLnZhbHVlO1xuICAgICAgcmV0dXJuIHsgLi4ub2ZmZXJpbmcsIHJlYWR5OiBmYWxzZSB9O1xuICAgIH0pO1xuICB9XG59XG4iXX0=
1531
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWdhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9taW5pLWdhbWVzL2NocmlzdGlhbml0eS1nYW1lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUEwQnBELE1BQU0sYUFBYSxHQUErQztJQUNoRSxRQUFRLEVBQUU7UUFDUixFQUFFLEVBQUUsVUFBVTtRQUNkLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLEVBQUUsQ0FBQztRQUNULElBQUksRUFBRSxDQUFDO1FBQ1AsU0FBUyxFQUFFLHdFQUF3RTtRQUNuRixTQUFTLEVBQUUsYUFBYTtRQUN4QixPQUFPLEVBQUUsS0FBSztRQUNkLGVBQWUsRUFBRSxTQUFTO1FBQzFCLElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLEtBQUs7UUFDYixNQUFNLEVBQUUsUUFBUTtLQUNqQjtJQUNELFdBQVcsRUFBRTtRQUNYLEVBQUUsRUFBRSxhQUFhO1FBQ2pCLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLEVBQUUsQ0FBQztRQUNULElBQUksRUFB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErYVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IExpZ2h0UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9saWdodC1yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBNSU5JX0dBTUVTX0kxOE4gfSBmcm9tICcuL21pbmktZ2FtZXMuaTE4bic7XG5pbXBvcnQge1xuICBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbixcbiAgQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UsXG4gIENocmlzdGlhbml0eUdhbWVTdGF0ZSxcbiAgQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSxcbiAgQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUsXG4gIENocmlzdGlhbml0eVNlYXQsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgQ2hyaXN0aWFuaXR5Q2FyZFByZXZpZXcge1xuICB0aXRsZTogc3RyaW5nO1xuICBleWVicm93OiBzdHJpbmc7XG4gIG1ldGE6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBjYXJkSWQ/OiBzdHJpbmc7XG4gIHNvdXJjZT86ICdoYW5kJyB8ICdib2FyZCcgfCAncGlsZSc7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlQcmV2aWV3VGlsdCB7XG4gIHJvdGF0ZVg6IG51bWJlcjtcbiAgcm90YXRlWTogbnVtYmVyO1xuICBzaGlmdFg6IG51bWJlcjtcbiAgc2hpZnRZOiBudW1iZXI7XG59XG5cbmNvbnN0IFNUQVJURVJfQ0FSRFM6IFJlY29yZDxzdHJpbmcsIENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uPiA9IHtcbiAgb19zaW1wbGU6IHtcbiAgICBpZDogJ29fc2ltcGxlJyxcbiAgICBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLFxuICAgIHR5cGU6ICdvZmZlcmluZycsXG4gICAgY29zdDogMCxcbiAgICBhdHRhY2s6IDAsXG4gICAgbGlmZTogMSxcbiAgICB2ZXJzZVRleHQ6ICdVbmEgb2ZyZW5kYSBzZW5jaWxsYSBxdWVkYSBsaXN0YSBwYXJhIHNvc3RlbmVyIHR1cyBzaWd1aWVudGVzIGp1Z2FkYXMuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDQ6NCcsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDAxLzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAnbm9ybWFsJyxcbiAgfSxcbiAgb19mb3JiaWRkZW46IHtcbiAgICBpZDogJ29fZm9yYmlkZGVuJyxcbiAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDIsXG4gICAgYWJpbGl0eU5hbWU6ICdDb25vY2ltaWVudG8gZGVsIGJpZW4geSBkZWwgbWFsJyxcbiAgICBhYmlsaXR5VGV4dDogJ0FsIHVzYXJsYSwgZGlzbWludXllIGVuIDEgbG9zIHB1bnRvcyBkZSB2aWRhIGRlIHR1IEzDrWRlci4nLFxuICAgIGFiaWxpdHlDb3N0OiAwLFxuICAgIHZlcnNlVGV4dDogJ0Rpb3MgZWwgU2XDsW9yIHB1c28gYWwgaG9tYnJlIGVuIGVsIGphcmTDrW4gZGUgRWTDqW4gcGFyYSBxdWUgbG8gbGFicmFyYSB5IGxvIGN1aWRhcmEuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDI6MTcgTkJWJyxcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMTIvMTgwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICd1bmNvbW1vbicsXG4gIH0sXG4gIHBfc2NvdXQ6IHtcbiAgICBpZDogJ3Bfc2NvdXQnLFxuICAgIG5hbWU6ICdTY291dCcsXG4gICAgdHlwZTogJ2NoYXJhY3RlcicsXG4gICAgY29zdDogMSxcbiAgICBhdHRhY2s6IDEsXG4gICAgbGlmZTogMSxcbiAgICB2ZXJzZVRleHQ6ICdVbiBleHBsb3JhZG9yIGh1bWlsZGUgYWJyZSBjYW1pbm8gYW50ZXMgZGUgcXVlIGxsZWd1ZSBsYSBiYXRhbGxhLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyAxMzoxNycsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDAyLzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAnbm9ybWFsJyxcbiAgfSxcbiAgcF9ndWFyZDogeyBpZDogJ3BfZ3VhcmQnLCBuYW1lOiAnR3VhcmQnLCB0eXBlOiAnY2hhcmFjdGVyJywgY29zdDogMiwgYXR0YWNrOiAxLCBsaWZlOiAzLCBlZGl0aW9uOiAnR0VOJywgY29sbGVjdG9yTnVtYmVyOiAnMDAzLzAyMCcsIHllYXI6ICcyMDI2JywgYXV0aG9yOiAnTVZQJywgcmFyaXR5OiAnbm9ybWFsJyB9LFxuICBwX3dhcnJpb3I6IHsgaWQ6ICdwX3dhcnJpb3InLCBuYW1lOiAnV2FycmlvcicsIHR5cGU6ICdjaGFyYWN0ZXInLCBjb3N0OiAyLCBhdHRhY2s6IDIsIGxpZmU6IDIsIGVkaXRpb246ICdHRU4nLCBjb2xsZWN0b3JOdW1iZXI6ICcwMDQvMDIwJywgeWVhcjogJzIwMjYnLCBhdXRob3I6ICdNVlAnLCByYXJpdHk6ICdub3JtYWwnIH0sXG4gIHBfZWxkZXI6IHsgaWQ6ICdwX2VsZGVyJywgbmFtZTogJ0VsZGVyJywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDMsIGF0dGFjazogMiwgbGlmZTogNCwgZWRpdGlvbjogJ0dFTicsIGNvbGxlY3Rvck51bWJlcjogJzAwNS8wMjAnLCB5ZWFyOiAnMjAyNicsIGF1dGhvcjogJ01WUCcsIHJhcml0eTogJ3VuY29tbW9uJyB9LFxuICBwX2NoYW1waW9uOiB7IGlkOiAncF9jaGFtcGlvbicsIG5hbWU6ICdDaGFtcGlvbicsIHR5cGU6ICdjaGFyYWN0ZXInLCBjb3N0OiA0LCBhdHRhY2s6IDQsIGxpZmU6IDQsIGVkaXRpb246ICdHRU4nLCBjb2xsZWN0b3JOdW1iZXI6ICcwMDYvMDIwJywgeWVhcjogJzIwMjYnLCBhdXRob3I6ICdNVlAnLCByYXJpdHk6ICdyYXJlJyB9LFxufTtcblxuY29uc3QgU1RBUlRJTkdfU0hBUkVEX0RFQ0sgPSBbXG4gICdvX3NpbXBsZScsXG4gICdwX3Njb3V0JyxcbiAgJ29fZm9yYmlkZGVuJyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfZ3VhcmQnLFxuICAncF93YXJyaW9yJyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfZWxkZXInLFxuICAncF9zY291dCcsXG4gICdvX3NpbXBsZScsXG4gICdwX2NoYW1waW9uJyxcbiAgJ3BfZ3VhcmQnLFxuICAnb19zaW1wbGUnLFxuICAncF93YXJyaW9yJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19zaW1wbGUnLFxuICAncF9lbGRlcicsXG4gICdwX2d1YXJkJyxcbiAgJ29fc2ltcGxlJyxcbl07XG5cbmNvbnN0IFNUQVJUSU5HX0dBTUU6IENocmlzdGlhbml0eUdhbWVTdGF0ZSA9IHtcbiAgZ2FtZUlkOiAnbW9jay1jaHJpc3RpYW5pdHknLFxuICBzdGF0dXM6ICdpbl9wcm9ncmVzcycsXG4gIG1vZGU6ICdsb2NhbF9wYXNzJyxcbiAgdHVybk93bmVyOiAnUDEnLFxuICByZXZpc2lvbjogMCxcbiAgdHVybkNvdW50OiAxLFxuICBtYXRjaFNjb3JlOiB7IFAxOiAxLCBQMjogMCB9LFxuICBzaGFyZWREZWNrOiBTVEFSVElOR19TSEFSRURfREVDSyxcbiAgaGlzdG9yeVpvbmU6IFtdLFxuICBwbGF5ZXJzOiB7XG4gICAgUDE6IHtcbiAgICAgIHNlYXQ6ICdQMScsXG4gICAgICBkaXNwbGF5TmFtZTogJ0p1Z2Fkb3InLFxuICAgICAgYXZhdGFyOiAnSicsXG4gICAgICBhdmF0YXJDb2xvcjogJyMyNTYzZWInLFxuICAgICAgbGVhZGVyTmFtZTogJ0FkYW0nLFxuICAgICAgbGVhZGVySHA6IDE1LFxuICAgICAgbGVhZGVyTWF4SHA6IDE1LFxuICAgICAgb2ZmZXJpbmdzOiBbXG4gICAgICAgIHsgaW5zdGFuY2VJZDogJ3AxX29mZmVyaW5nXzAwMScsIGNhcmRJZDogJ29fc2ltcGxlJywgbmFtZTogJ09mcmVuZGEgc2ltcGxlJywgb3duZXI6ICdQMScsIHJlYWR5OiB0cnVlLCB2YWx1ZTogMSB9LFxuICAgICAgICB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogJ3AxX29mZmVyaW5nXzAwMicsXG4gICAgICAgICAgY2FyZElkOiAnb19mb3JiaWRkZW4nLFxuICAgICAgICAgIG5hbWU6ICdFbCBmcnV0byBwcm9oaWJpZG8nLFxuICAgICAgICAgIG93bmVyOiAnUDEnLFxuICAgICAgICAgIHJlYWR5OiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiAyLFxuICAgICAgICAgIGFiaWxpdHlOYW1lOiAnQ29ub2NpbWllbnRvIGRlbCBiaWVuIHkgZGVsIG1hbCcsXG4gICAgICAgICAgYWJpbGl0eVRleHQ6ICdBbCB1c2FybGEsIGRpc21pbnV5ZSBlbiAxIGxvcyBwdW50b3MgZGUgdmlkYSBkZSB0dSBMaWRlci4nLFxuICAgICAgICAgIGFiaWxpdHlDb3N0OiAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZDogWydvX3NpbXBsZScsICdwX3Njb3V0JywgJ3Bfd2FycmlvcicsICdwX2d1YXJkJ10sXG4gICAgICBiYXR0bGVab25lOiBbXSxcbiAgICB9LFxuICAgIFAyOiB7XG4gICAgICBzZWF0OiAnUDInLFxuICAgICAgZGlzcGxheU5hbWU6ICdSaXZhbCcsXG4gICAgICBhdmF0YXI6ICdSJyxcbiAgICAgIGF2YXRhckNvbG9yOiAnI2I0NTMwOScsXG4gICAgICBsZWFkZXJOYW1lOiAnTm9haCcsXG4gICAgICBsZWFkZXJIcDogMTUsXG4gICAgICBsZWFkZXJNYXhIcDogMTUsXG4gICAgICBvZmZlcmluZ3M6IFt7IGluc3RhbmNlSWQ6ICdwMl9vZmZlcmluZ18wMDEnLCBjYXJkSWQ6ICdvX3NpbXBsZScsIG5hbWU6ICdPZnJlbmRhIHNpbXBsZScsIG93bmVyOiAnUDInLCByZWFkeTogdHJ1ZSwgdmFsdWU6IDEgfV0sXG4gICAgICBvZmZlcmluZ1BsYXllZFRoaXNUdXJuOiBmYWxzZSxcbiAgICAgIGhhbmRDb3VudDogNCxcbiAgICAgIGJhdHRsZVpvbmU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdvcHBfMDAxJyxcbiAgICAgICAgICBjYXJkSWQ6ICdwX3Njb3V0JyxcbiAgICAgICAgICBuYW1lOiAnU2NvdXQnLFxuICAgICAgICAgIG93bmVyOiAnUDInLFxuICAgICAgICAgIGNvbnRyb2xsZXI6ICdQMicsXG4gICAgICAgICAgYXR0YWNrOiAxLFxuICAgICAgICAgIGN1cnJlbnRIcDogMSxcbiAgICAgICAgICBtYXhIcDogMSxcbiAgICAgICAgICBjYW5BdHRhY2s6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICBsb2c6IFsnUGFydGlkYSBpbmljaWFkYS4nXSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jaHJpc3RpYW5pdHktZ2FtZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDZGtEcmFnLCBDZGtEcm9wTGlzdCwgTGlnaHRSaXBwbGVEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtYWluIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNoZWxsXCI+XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oZWFkZXJcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlFeWVicm93JykgfX08L3A+XG4gICAgICAgICAgPGgxPnt7IHQoJ2NocmlzdGlhbml0eVRpdGxlJykgfX08L2gxPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS10dXJuXCIgW2NsYXNzLmlzLW93bi10dXJuXT1cImlzT3duVHVybigpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5VHVybicpIH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgY3VycmVudFBsYXllcigpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1tYXRjaC1zdHJpcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5TWF0Y2hTY29yZScpXCI+XG4gICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWF2YXRhclwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInBsYXllcigpLmF2YXRhckNvbG9yXCI+e3sgcGxheWVyKCkuYXZhdGFyIH19PC9zcGFuPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8c21hbGw+e3sgcGxheWVyKCkubGVhZGVyTmFtZSB9fSDCtyB7eyBwbGF5ZXIoKS5sZWFkZXJIcCB9fS97eyBwbGF5ZXIoKS5sZWFkZXJNYXhIcCB9fTwvc21hbGw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zY29yZWJvYXJkXCI+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5TWF0Y2gnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3Ryb25nPnt7IGdhbWUoKS5tYXRjaFNjb3JlLlAxIH19LXt7IGdhbWUoKS5tYXRjaFNjb3JlLlAyIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cImNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllci0tb3Bwb25lbnRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1hdmF0YXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJvcHBvbmVudCgpLmF2YXRhckNvbG9yXCI+e3sgb3Bwb25lbnQoKS5hdmF0YXIgfX08L3NwYW4+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgb3Bwb25lbnQoKS5kaXNwbGF5TmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPHNtYWxsPnt7IG9wcG9uZW50KCkubGVhZGVyTmFtZSB9fSDCtyB7eyBvcHBvbmVudCgpLmxlYWRlckhwIH19L3t7IG9wcG9uZW50KCkubGVhZGVyTWF4SHAgfX08L3NtYWxsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYgY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1tZXRlciBjaHJpc3RpYW5pdHktaGFuZC1tZXRlci0tb3Bwb25lbnRcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlIYW5kJykgfX08L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyBvcHBvbmVudEhhbmRDb3VudCgpIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLWZhbiBjaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlPcHBvbmVudEhhbmQnKVwiPlxuICAgICAgICAgIEBmb3IgKF8gb2YgaGlkZGVuSGFuZENhcmRzKG9wcG9uZW50SGFuZENvdW50KCkpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIGNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmFja1wiXG4gICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiZmFuVHJhbnNmb3JtKCRpbmRleCwgb3Bwb25lbnRIYW5kQ291bnQoKSwgdHJ1ZSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUhpZGRlbkNhcmQnKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXRhYmxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlUYWJsZScpXCI+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlIGNocmlzdGlhbml0eS1wbGF5ZXItc2lkZS0tb3Bwb25lbnRcIj5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItcmFjayBjaHJpc3RpYW5pdHktcGxheWVyLXJhY2stLW9wcG9uZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy16b25lXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGVcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwib3Blbk9mZmVyaW5ncygnUDInKVwiPlxuICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5ncycpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcmVhZHlPZmZlcmluZ3Mob3Bwb25lbnQoKSkgfX0ve3sgdG90YWxPZmZlcmluZ3Mob3Bwb25lbnQoKSkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkXCIgdmFsTGlnaHRSaXBwbGUgW2NsYXNzLmlzLXRhcmdldF09XCJzZWxlY3RlZEF0dGFja2VyKCkgJiYgIWhhc09wcG9uZW50R3VhcmRzKClcIiAoY2xpY2spPVwiaGFuZGxlT3Bwb25lbnRMZWFkZXIoKVwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBvcHBvbmVudCgpLmxlYWRlck5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgb3Bwb25lbnQoKS5sZWFkZXJIcCB9fS97eyBvcHBvbmVudCgpLmxlYWRlck1heEhwIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJhY2stc3BhY2VyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIGNocmlzdGlhbml0eS1iYXR0bGUtem9uZS0tb3Bwb25lbnRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU9wcG9uZW50QmF0dGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2YgYmF0dGxlU2xvdHMoJ1AyJyk7IHRyYWNrIHNsb3QudHJhY2tJZCkge1xuICAgICAgICAgICAgICBAaWYgKHNsb3QuY2FyZCkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGVcIlxuICAgICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy10YXJnZXRdPVwic2VsZWN0ZWRBdHRhY2tlcigpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHBvbmVudENoYXJhY3RlcihzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzbG90LmNhcmQubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgc2xvdC5jYXJkLmF0dGFjayB9fSAvIHt7IHNsb3QuY2FyZC5jdXJyZW50SHAgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktc2xvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlTaGFyZWRab25lJylcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLXBpbGUgY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0taGlzdG9yeVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJzaG93SGlzdG9yeS5zZXQodHJ1ZSlcIj5cbiAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUhpc3RvcnknKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSBjaHJpc3RpYW5pdHktem9uZS1waWxlLS1kZWNrXCIgdmFsTGlnaHRSaXBwbGUgYXJpYS1saXZlPVwicG9saXRlXCIgKGNsaWNrKT1cImluc3BlY3REZWNrKClcIj5cbiAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eURlY2snKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZSgpLnNoYXJlZERlY2subGVuZ3RoIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLWNhcmRcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eVBsYWNlJykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ2NocmlzdGlhbml0eUVtcHR5JykgfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlXCI+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktYmF0dGxlLXpvbmVcIiBbY2xhc3MuaXMtcGxhY2luZy1jYXJkXT1cImNhblBsYWNlU2VsZWN0ZWRDaGFyYWN0ZXIoKSB8fCBpc0RyYWdnaW5nQ2hhcmFjdGVyKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVlvdXJCYXR0bGUnKVwiPlxuICAgICAgICAgICAgQGZvciAoc2xvdCBvZiBiYXR0bGVTbG90cygnUDEnKTsgdHJhY2sgc2xvdC50cmFja0lkKSB7XG4gICAgICAgICAgICAgIEBpZiAoc2xvdC5jYXJkKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCBjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZVwiXG4gICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkQXR0YWNrZXIoKT8uaW5zdGFuY2VJZCA9PT0gc2xvdC5jYXJkLmluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWV4aGF1c3RlZF09XCIhc2xvdC5jYXJkLmNhbkF0dGFja1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0QXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2xvdC5jYXJkLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHNsb3QuY2FyZC5hdHRhY2sgfX0gLyB7eyBzbG90LmNhcmQuY3VycmVudEhwIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2xvdFwiXG4gICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgICAgW2lkXT1cImJhdHRsZVNsb3REcm9wSWQoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIiRpbmRleFwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbJ2NocmlzdGlhbml0eS1oYW5kLXNvdXJjZSddXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPbkJhdHRsZVNsb3RcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldF09XCJjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCkgfHwgaXNEcmFnZ2luZ0NoYXJhY3RlcigpXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPbkJhdHRsZVNsb3QoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5U2VsZWN0ZWRDYXJkKCRpbmRleClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoY2FuUGxhY2VTZWxlY3RlZENoYXJhY3RlcigpIHx8IGlzRHJhZ2dpbmdDaGFyYWN0ZXIoKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlQbGF5SGVyZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXJhY2tcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmVcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGVcIlxuICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICAgaWQ9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyb3BcIlxuICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiWydjaHJpc3RpYW5pdHktaGFuZC1zb3VyY2UnXVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXBsYXktdGFyZ2V0XT1cImNhblBsYWNlU2VsZWN0ZWRPZmZlcmluZygpIHx8IGlzRHJhZ2dpbmdPZmZlcmluZygpXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25PZmZlcmluZ3NcIlxuICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE9uT2ZmZXJpbmdzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPZmZlcmluZ1BpbGUoJ1AxJylcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdzJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyByZWFkeU9mZmVyaW5ncyhwbGF5ZXIoKSkgfX0ve3sgdG90YWxPZmZlcmluZ3MocGxheWVyKCkpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1sZWFkZXItY2FyZFwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0TGVhZGVyKCdQMScpXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHBsYXllcigpLmxlYWRlck5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgcGxheWVyKCkubGVhZGVySHAgfX0ve3sgcGxheWVyKCkubGVhZGVyTWF4SHAgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItY29tbWFuZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWF2YXRhclwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInBsYXllcigpLmF2YXRhckNvbG9yXCI+e3sgcGxheWVyKCkuYXZhdGFyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcGxheWVyKCkuZGlzcGxheU5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1lbmQtdHVyblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVuZFR1cm4oKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlFbmRUdXJuJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1zaGVsZlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXJcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlIYW5kJykgfX08L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyBwbGF5ZXIoKS5oYW5kPy5sZW5ndGggPz8gMCB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlY3Rpb25cbiAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLWZhblwiXG4gICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICBpZD1cImNocmlzdGlhbml0eS1oYW5kLXNvdXJjZVwiXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiZHJvcFRhcmdldElkcygpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVlvdXJIYW5kJylcIlxuICAgICAgICAgIChwb2ludGVybGVhdmUpPVwiY2xlYXJIb3ZlcmVkSGFuZEluZGV4KClcIlxuICAgICAgICA+XG4gICAgICAgICAgQGZvciAoY2FyZElkIG9mIHBsYXllcigpLmhhbmQgPz8gW107IHRyYWNrIGNhcmRJZCArICRpbmRleCkge1xuICAgICAgICAgICAgQGxldCBjYXJkID0gY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXBcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRIYW5kQ2FyZCgpID09PSBjYXJkSWRcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtZHJhZ2dpbmddPVwiZHJhZ2dpbmdDYXJkSWQoKSA9PT0gY2FyZElkXCJcbiAgICAgICAgICAgICAgW3N0eWxlLnotaW5kZXhdPVwiaGFuZENhcmRaSW5kZXgoJGluZGV4KVwiXG4gICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiZmFuVHJhbnNmb3JtKCRpbmRleCwgcGxheWVyKCkuaGFuZD8ubGVuZ3RoID8/IDAsIGZhbHNlKVwiXG4gICAgICAgICAgICAgIChwb2ludGVyZW50ZXIpPVwic2V0SG92ZXJlZEhhbmRJbmRleCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgKHBvaW50ZXJkb3duKT1cInNldEhvdmVyZWRIYW5kSW5kZXgoJGluZGV4KVwiXG4gICAgICAgICAgICAgIChwb2ludGVydXApPVwicmVsZWFzZUhvdmVyZWRIYW5kKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kXCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiY2FyZElkXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFjYW5QbGF5KGNhcmQpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRIYW5kQ2FyZCgpID09PSBjYXJkSWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCIhY2FuUGxheShjYXJkKVwiXG4gICAgICAgICAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cInN0YXJ0RHJhZ2dpbmdDYXJkKGNhcmRJZClcIlxuICAgICAgICAgICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kRHJhZ2dpbmdDYXJkKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RIYW5kQ2FyZChjYXJkSWQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzbWFsbD5cbiAgICAgICAgICAgICAgICAgIEBpZiAoY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpIH19XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5Q29zdCcpIH19IHt7IGNhcmQuY29zdCB9fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgY2FyZC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICBAaWYgKGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAre3sgY2FyZC5saWZlIH19XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAge3sgY2FyZC5hdHRhY2sgfX0gLyB7eyBjYXJkLmxpZmUgfX1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLWV5ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlQcmV2aWV3Q2FyZCcpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5zcGVjdEhhbmRDYXJkKGNhcmRJZCwgdHJ1ZSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICBAaWYgKHNlbGVjdGVkUHJldmlldygpKSB7XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUNsb3NlUHJldmlldycpXCIgKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCI+PC9idXR0b24+XG4gICAgICAgIDxhc2lkZVxuICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGxcIlxuICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCI+XG4gICAgICAgICAgICB7eyB0KCdjbG9zZScpIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZFwiXG4gICAgICAgICAgICBbc3R5bGUuLS1wcmV2aWV3LXJvdGF0ZS14XT1cInByZXZpZXdUaWx0KCkucm90YXRlWCArICdkZWcnXCJcbiAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctcm90YXRlLXldPVwicHJldmlld1RpbHQoKS5yb3RhdGVZICsgJ2RlZydcIlxuICAgICAgICAgICAgW3N0eWxlLi0tcHJldmlldy1zaGlmdC14XT1cInByZXZpZXdUaWx0KCkuc2hpZnRYICsgJ3B4J1wiXG4gICAgICAgICAgICBbc3R5bGUuLS1wcmV2aWV3LXNoaWZ0LXldPVwicHJldmlld1RpbHQoKS5zaGlmdFkgKyAncHgnXCJcbiAgICAgICAgICAgIChwb2ludGVybW92ZSk9XCJ0aWx0UHJldmlldygkZXZlbnQpXCJcbiAgICAgICAgICAgIChwb2ludGVybGVhdmUpPVwicmVzZXRQcmV2aWV3VGlsdCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHNlbGVjdGVkUHJldmlld0NhcmQoKTsgYXMgcHJldmlld0NhcmQpIHtcbiAgICAgICAgICAgICAgPGhlYWRlciBjbGFzcz1cImNocmlzdGlhbml0eS1mdWxsLWNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktZnVsbC1jYXJkLXR5cGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHByZXZpZXdDYXJkLm5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1mdWxsLWNhcmQtY29zdFwiPnt7IHByZXZpZXdDYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyAnKycgKyBwcmV2aWV3Q2FyZC5saWZlIDogcHJldmlld0NhcmQuY29zdCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnRcIiBbY2xhc3MuaGFzLWltYWdlXT1cInByZXZpZXdDYXJkLmltYWdlVXJsXCI+XG4gICAgICAgICAgICAgICAgQGlmIChwcmV2aWV3Q2FyZC5pbWFnZVVybCkge1xuICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInByZXZpZXdDYXJkLmltYWdlVXJsXCIgW2FsdF09XCJwcmV2aWV3Q2FyZC5uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHByZXZpZXdDYXJkLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxzbWFsbD57eyBjYXJkVHlwZUxhYmVsKHByZXZpZXdDYXJkKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktZnVsbC1jYXJkLXZlcnNlXCI+XG4gICAgICAgICAgICAgICAgPHA+e3sgcHJldmlld0NhcmQudmVyc2VUZXh0ID8/IHNlbGVjdGVkUHJldmlldygpPy5ib2R5IH19PC9wPlxuICAgICAgICAgICAgICAgIEBpZiAocHJldmlld0NhcmQuc2NyaXB0dXJlKSB7XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHByZXZpZXdDYXJkLnNjcmlwdHVyZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1mdWxsLWNhcmQtZWZmZWN0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1mdWxsLWNhcmQtc3RhdHNcIj5cbiAgICAgICAgICAgICAgICAgIEBpZiAocHJldmlld0NhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBwcmV2aWV3Q2FyZC5hdHRhY2sgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBwcmV2aWV3Q2FyZC5saWZlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz4re3sgcHJldmlld0NhcmQubGlmZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICBAaWYgKHByZXZpZXdDYXJkLmFiaWxpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcHJldmlld0NhcmQuYWJpbGl0eU5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDxwPnt7IHByZXZpZXdDYXJkLmFiaWxpdHlUZXh0ID8/IHNlbGVjdGVkUHJldmlldygpPy5ib2R5IH19PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1ub3JtYWxdPVwiIXByZXZpZXdDYXJkLnJhcml0eSB8fCBwcmV2aWV3Q2FyZC5yYXJpdHkgPT09ICdub3JtYWwnXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy11bmNvbW1vbl09XCJwcmV2aWV3Q2FyZC5yYXJpdHkgPT09ICd1bmNvbW1vbidcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXJhcmVdPVwicHJldmlld0NhcmQucmFyaXR5ID09PSAncmFyZSdcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWxlZ2VuZGFyeV09XCJwcmV2aWV3Q2FyZC5yYXJpdHkgPT09ICdsZWdlbmRhcnknXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICA8Zm9vdGVyIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcmV2aWV3Q2FyZC5lZGl0aW9uID8/ICdNVlAnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHByZXZpZXdDYXJkLmNvbGxlY3Rvck51bWJlciA/PyBwcmV2aWV3Q2FyZC5pZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcmV2aWV3Q2FyZC55ZWFyID8/ICcyMDI2JyB9fSBDSFJJU1RJQU5JVFk8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgcHJldmlld0NhcmQuYXV0aG9yID8/ICdNVlAnIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Zvb3Rlcj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8c21hbGw+e3sgc2VsZWN0ZWRQcmV2aWV3KCk/LmV5ZWJyb3cgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHNlbGVjdGVkUHJldmlldygpPy50aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBzZWxlY3RlZFByZXZpZXcoKT8ubWV0YSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHA+e3sgc2VsZWN0ZWRQcmV2aWV3KCk/LmJvZHkgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXcoKT8uc291cmNlID09PSAnaGFuZCcpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJwcmV2aWV3QWN0aW9uRGlzYWJsZWQoKVwiIChjbGljayk9XCJwbGF5UHJldmlld0NhcmQoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkQWN0aW9uTGFiZWwoKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9hc2lkZT5cbiAgICAgIH1cblxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktYWN0aW9uc1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICA8cD57eyBzdGF0dXNUZXh0KCkgfX08L3A+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cInNlbGVjdGVkQWN0aW9uRGlzYWJsZWQoKVwiIChjbGljayk9XCJwbGF5U2VsZWN0ZWRDYXJkKClcIj5cbiAgICAgICAgICAgIHt7IHNlbGVjdGVkQWN0aW9uTGFiZWwoKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXNldE1vY2soKVwiPlxuICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5UmVzZXQnKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgQGlmIChzaG93SGlzdG9yeSgpKSB7XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUNsb3NlSGlzdG9yeScpXCIgKGNsaWNrKT1cInNob3dIaXN0b3J5LnNldChmYWxzZSlcIj48L2J1dHRvbj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXJcIj5cbiAgICAgICAgICA8aGVhZGVyPlxuICAgICAgICAgICAgPGgyPnt7IHQoJ2NocmlzdGlhbml0eUhpc3RvcnknKSB9fTwvaDI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGdhbWUoKS5oaXN0b3J5Wm9uZS5sZW5ndGggfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZVwiIChjbGljayk9XCJzaG93SGlzdG9yeS5zZXQoZmFsc2UpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIEBpZiAoZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWRcIj5cbiAgICAgICAgICAgICAgQGZvciAoY2FyZElkIG9mIGdhbWUoKS5oaXN0b3J5Wm9uZTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGxldCBjYXJkID0gY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZFwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0SGlzdG9yeUNhcmQoY2FyZElkKVwiPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpIDogdCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNhcmQubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgK3t7IGNhcmQubGlmZSB9fVxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB7eyBjYXJkLmF0dGFjayB9fSAvIHt7IGNhcmQubGlmZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlIaXN0b3J5RW1wdHknKSB9fTwvcD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChvZmZlcmluZ3NTZWF0KCkpIHtcbiAgICAgICAgQGxldCBvZmZlcmluZ1BsYXllciA9IGdhbWUoKS5wbGF5ZXJzW29mZmVyaW5nc1NlYXQoKSFdO1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZU9mZmVyaW5ncycpXCIgKGNsaWNrKT1cImNsb3NlT2ZmZXJpbmdzKClcIj48L2J1dHRvbj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcmF3ZXJcIj5cbiAgICAgICAgICA8aGVhZGVyPlxuICAgICAgICAgICAgPGgyPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5ncycpIH19PC9oMj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgcmVhZHlPZmZlcmluZ3Mob2ZmZXJpbmdQbGF5ZXIpIH19L3t7IHRvdGFsT2ZmZXJpbmdzKG9mZmVyaW5nUGxheWVyKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlT2ZmZXJpbmdzKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjbG9zZScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChvZmZlcmluZyBvZiBvZmZlcmluZ1BsYXllci5vZmZlcmluZ3M7IHRyYWNrIG9mZmVyaW5nLmluc3RhbmNlSWQpIHtcbiAgICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93XCIgW2NsYXNzLmlzLWV4aGF1c3RlZF09XCIhb2ZmZXJpbmcucmVhZHlcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RPZmZlcmluZyhvZmZlcmluZylcIj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBvZmZlcmluZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz4re3sgb2ZmZXJpbmcudmFsdWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIEBpZiAob2ZmZXJpbmcuYWJpbGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgb2ZmZXJpbmcuYWJpbGl0eU5hbWUgfX08L3A+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgb2ZmZXJpbmcucmVhZHkgPyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1JlYWR5JykgOiB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0V4aGF1c3RlZCcpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8cD57eyBvZmZlcmluZy5hYmlsaXR5VGV4dCB8fCB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ05vQWJpbGl0eScpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgQGlmIChvZmZlcmluZy5hYmlsaXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Vc2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmcsIG9mZmVyaW5nc1NlYXQoKSEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBvZmZlcmluZ3NTZWF0KCkhKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlVc2VBYmlsaXR5JykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIDwvbWFpbj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1pbms6IHZhcigtLXZhbC10ZXh0LWNvbG9yLCAjMWYyOTMzKTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc3VyZmFjZTogI2ZmZmZmZjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtcGFyY2htZW50OiAjZmZmYWYwO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1vbGl2ZTogIzVmNmYyYTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZDogI2Q2YTIxZDtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0OiByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xOCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZzogcmdiYSgyMTQsIDE2MiwgMjksIDAuNDgpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1nbG93OiByZ2JhKDI0NSwgMTk5LCA4NSwgMC4zMik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzOiAjMjU2M2ViO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3c6IHJnYmEoODIsIDY0LCAyOCwgMC4xOCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdy1zdHJvbmc6IHJnYmEoODIsIDY0LCAyOCwgMC4zKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbSAwLjI1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjZmOGZiO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnksXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIGgxLFxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnkgaDIsXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgaDEge1xuICAgICAgICBmb250LXNpemU6IDEuMzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWRlY2sgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxhY2Ugc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGlsZSBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1kZWNrLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGFjZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xNXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiA1LjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE4LCAxMjgsIDEwOCwgMC4zNSk7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlY2ZkZjU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyLS1vcHBvbmVudCB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllci0tb3Bwb25lbnQgZGl2IHtcbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogNC4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNTVyZW07XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW0gMC4zNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2RjZWFmYjtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMzVyZW0gMC4zcmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjdyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDdyZW0sIDFmcikgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMTMuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUtLW9wcG9uZW50IHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCg3cmVtLCAxZnIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSB7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLXdpZHRoOiBjbGFtcCg0LjhyZW0sIDE1dncsIDYuNnJlbSk7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCkpO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDcuOHJlbSwgMjV2dywgOS42cmVtKTtcbiAgICAgICAgcGFkZGluZzogMC41NXJlbSAwLjRyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Nik7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgYmFja2dyb3VuZCAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTAsIDI0MCwgMC45NiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NCkpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Nik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xNHJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSxcbiAgICAgICAgICAwIDAuOHJlbSAxLjdyZW0gcmdiYSg5NSwgMTExLCA0MiwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGJ1dHRvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLS10YXJnZXQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtaW4taGVpZ2h0OiA1LjhyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjVyZW0gMS4yNXJlbSByZ2JhKDM2LCA0OCwgNjgsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQgc3BhbiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xNXJlbSAwLjM1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwIDAuMThyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdCksXG4gICAgICAgICAgMCAwLjg1cmVtIDEuNHJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLWRpc2FibGVkLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLWV4aGF1c3RlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6ICNkYzI2MjY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBncmlkLWF1dG8tY29sdW1uczogMC43cmVtO1xuICAgICAgICBnYXA6IDAuMTZyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuMDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZHMgaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMC42NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjk1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjE4cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmRzIGkuaXMtdXNlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNjYmQ1ZTE7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCk7XG4gICAgICAgIGhlaWdodDogY2xhbXAoNi44cmVtLCAyMXZ3LCA4LjRyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDUgLyA3O1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgzNiwgNDgsIDY4LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjUwLCAyNDAsIDAuOTIpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuODIpKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gICAgICAgIGNvbG9yOiAjNWQ0MzA1O1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMTJyZW0gcmdiYSgyMTQsIDE2MiwgMjksIDAuMiksXG4gICAgICAgICAgMCAwLjdyZW0gMS4yNXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktdGFyZ2V0LXB1bHNlIDE0NTBtcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuMzVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjEpLCB0cmFuc3BhcmVudCA0NiUpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDQyJSwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdsb3cpLCB0cmFuc3BhcmVudCA1OCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHBhZGRpbmc6IDAuMTZyZW0gMC40NHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktdGFyZ2V0LXB1bHNlIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjIpLFxuICAgICAgICAgICAgMCAwLjdyZW0gMS4yNXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDAuMTZyZW0gcmdiYSgyMTQsIDE2MiwgMjksIDAuMzQpLFxuICAgICAgICAgICAgMCAwLjlyZW0gMS42NXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1pbm1heCg2cmVtLCA4cmVtKTtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjU1cmVtO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBkaXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuNHJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxMDJhNDM7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3Rvcnkge1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMTAuOHJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjI1cmVtIDIuMXJlbTtcbiAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB6LWluZGV4OiAxMjtcbiAgICAgICAgbWluLWhlaWdodDogMTJyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjE1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxLjQ1cmVtIDAuMjVyZW0gMXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQge1xuICAgICAgICB6LWluZGV4OiA4O1xuICAgICAgICBtaW4taGVpZ2h0OiA2Ljg1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjQ1cmVtIDAuMjVyZW0gMC44NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQge1xuICAgICAgICBtaW4taGVpZ2h0OiA1LjlyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB3aWR0aDogY2xhbXAoNC45cmVtLCAxN3Z3LCA3LjFyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiBjbGFtcCg2LjZyZW0sIDIydncsIDguOHJlbSk7XG4gICAgICAgIHBhZGRpbmc6IDAuNDhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMTUlO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIHRyYW5zZm9ybSAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTYwbXMgZWFzZSxcbiAgICAgICAgICBib3JkZXItY29sb3IgMTYwbXMgZWFzZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjVyZW0gMS4yNXJlbSByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWlubGluZTogLTAuNDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTE1JTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICB0cmFuc2Zvcm0gMTYwbXMgZWFzZSxcbiAgICAgICAgICBmaWx0ZXIgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlcixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAuaXMtc2VsZWN0ZWQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLWRyYWdnaW5nIHtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlciAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1zZWxlY3RlZCAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1kcmFnZ2luZyAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAgMC4xMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSxcbiAgICAgICAgICAwIDFyZW0gMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCB7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZC5jZGstZHJhZy1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQuY2RrLWRyYWctcHJldmlldyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwIDAuMTZyZW0gcmdiYSgyNTUsIDI0NCwgMTk0LCAwLjY4KSxcbiAgICAgICAgICAwIDEuNXJlbSAzcmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMmRlZykgc2NhbGUoMS4wMyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQuY2RrLWRyYWctcGxhY2Vob2xkZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjIyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QuY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZS5jZGstZHJvcC1saXN0LWRyYWdnaW5nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LmNkay1kcm9wLWxpc3QtcmVjZWl2aW5nLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLmNkay1kcm9wLWxpc3QtcmVjZWl2aW5nIHtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE4cmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjM0KSxcbiAgICAgICAgICAwIDFyZW0gMS45cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWV5ZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiAwLjM4cmVtO1xuICAgICAgICB3aWR0aDogMi4xNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjU1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4zNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4xcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNCk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgLTAuMnJlbSkgc2NhbGUoMC45Mik7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgb3BhY2l0eSAxNDBtcyBlYXNlLFxuICAgICAgICAgIHRyYW5zZm9ybSAxNDBtcyBlYXNlLFxuICAgICAgICAgIGJvcmRlci1jb2xvciAxNDBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB3aWR0aDogMS4xcmVtO1xuICAgICAgICBoZWlnaHQ6IDEuMXJlbTtcbiAgICAgICAgYm9yZGVyOiAwLjEycmVtIHNvbGlkIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1vbGl2ZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDgyJSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjUwLCAyNDAsIDAuOTIpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiAwLjQycmVtO1xuICAgICAgICBoZWlnaHQ6IDAuNDJyZW07XG4gICAgICAgIGJvcmRlcjogMC4wOXJlbSBzb2xpZCByZ2JhKDI1NSwgMjUwLCAyNDAsIDAuOTUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDM1JSAzMiUsICNmZmZmZmYgMCAwLjA2cmVtLCB0cmFuc3BhcmVudCAwLjA3cmVtKSxcbiAgICAgICAgICB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwOmhvdmVyIC5jaHJpc3RpYW5pdHktY2FyZC1leWUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLXNlbGVjdGVkIC5jaHJpc3RpYW5pdHktY2FyZC1leWUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDApIHNjYWxlKDEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUuaXMtcGxheS10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTAsIDI0MCwgMC45NiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODIlIDE0JSwgcmdiYSgyNTAsIDIwNCwgMjEsIDAuMjgpIDAgMC43cmVtLCB0cmFuc3BhcmVudCAwLjcycmVtKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjI0KSxcbiAgICAgICAgICAwIDAuOHJlbSAxLjU1cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3cpO1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS10YXJnZXQtcHVsc2UgMTQ1MG1zIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYWNrIHtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDRyZW0sIDE0dncsIDUuN3JlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDVyZW0sIDE2dncsIDYuNnJlbSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC44cmVtIDEuNTVyZW0gcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIC0xOCU7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNiwgNDIsIDY3LCAwLjEyKSwgcmdiYSgxNiwgNDIsIDY3LCAwLjAyKSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgI2UyZThmMCAwIDAuMzVyZW0sICNmOGZhZmMgMC4zNXJlbSAwLjdyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCk7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiBjbGFtcCg2LjhyZW0sIDIxdncsIDguNHJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogNSAvIDc7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLW1pbmkgc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHN0cm9uZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gMC4zNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZGYyZjc7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNS45cmVtLCA3cmVtKSBtaW5tYXgoNXJlbSwgMWZyKSBtaW5tYXgoNC4ycmVtLCA3cmVtKTtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBzdHJldGNoO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrLS1vcHBvbmVudCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwLjM1cmVtO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjI1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMThyZW0gMC40NnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXItLW9wcG9uZW50IHtcbiAgICAgICAgdG9wOiAwLjE1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDAuODZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItY29tbWFuZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlIHtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzYpO1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlLS1vcHBvbmVudCB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2Ugc3Ryb25nIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2LjVyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWF2YXRhciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuODVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC45cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMC4yNXJlbTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLW1pbmksXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQuOXJlbTtcbiAgICAgICAgcGFkZGluZzogMC40OHJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLW1pbmkge1xuICAgICAgICB3aWR0aDogMy41cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA1LjlyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiA3LjFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuOTVyZW0gMC41MnJlbSAwLjZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZmZmZiwgI2Y4ZmFmYyksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTAsIDIwNCwgMjEsIDAuMTgpLCB0cmFuc3BhcmVudCA0MiUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgaSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IGF1dG8gYXV0byAxLjA1cmVtIDAuNzJyZW07XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB3aWR0aDogMi41NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAzLjU1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMTgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MiksIHJnYmEoMjQxLCAyNDUsIDI0OSwgMC45MikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNzglIDE4JSwgI2ZhY2MxNSAwIDAuMzhyZW0sIHRyYW5zcGFyZW50IDAuNHJlbSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjg1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgaTpudGgtY2hpbGQoMikge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLjI4cmVtLCAwLjA4cmVtKSByb3RhdGUoM2RlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSBpOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAuNTVyZW0sIDAuMThyZW0pIHJvdGF0ZSgtMWRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQge1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogY2xhbXAoNC43NXJlbSwgMTd2dywgNnJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDYuNnJlbSwgMjJ2dywgOC40cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1yYWNrLXNwYWNlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCB2YXIoLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGgpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCg0LjNyZW0sIDFmcikpO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYuNDVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwLjUycmVtIDAuNTVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIGkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiBhdXRvIDAuNzJyZW0gMS4wMnJlbSBhdXRvO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgd2lkdGg6IDIuN3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzLjdyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjg1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMSk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDRkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSBpOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0wLjI4cmVtLCAwLjEycmVtKSByb3RhdGUoLTNkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSBpOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNiwgNDIsIDY3LCAwLjE2KSwgcmdiYSgxNiwgNDIsIDY3LCAwLjAzKSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgI2RiZWFmZSAwIDAuMzNyZW0sICNmZmZmZmYgMC4zM3JlbSAwLjY2cmVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTAuNTRyZW0sIDAuMjRyZW0pIHJvdGF0ZSgyZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiA2MTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgICB3aWR0aDogbWluKDI2cmVtLCBjYWxjKDEwMHZ3IC0gMS4yNXJlbSkpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCg5cmVtLCAxLjI1ZnIpIGF1dG8gbWlubWF4KDdyZW0sIDAuOWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNThyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiBtaW4oMjlyZW0sIGNhbGMoMTAwdmggLSAzLjVyZW0pKTtcbiAgICAgICAgcGFkZGluZzogMC43MnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAwJSwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdCksIHRyYW5zcGFyZW50IDQ1JSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAgMC4xOHJlbSByZ2JhKDI1NSwgMjQ0LCAxOTQsIDAuNTgpLFxuICAgICAgICAgIDAgMCAyLjJyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdsb3cpLFxuICAgICAgICAgIDAgMi40cmVtIDVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjM0KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjM1cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIHRyYW5zbGF0ZSh2YXIoLS1wcmV2aWV3LXNoaWZ0LXgsIDBweCksIHZhcigtLXByZXZpZXctc2hpZnQteSwgMHB4KSlcbiAgICAgICAgICBwZXJzcGVjdGl2ZSg0OHJlbSlcbiAgICAgICAgICByb3RhdGVYKHZhcigtLXByZXZpZXctcm90YXRlLXgsIDVkZWcpKVxuICAgICAgICAgIHJvdGF0ZVkodmFyKC0tcHJldmlldy1yb3RhdGUteSwgLTVkZWcpKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDkwbXMgZWFzZS1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNDJyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMjVyZW0sIDV2dywgMS44NXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC10eXBlLWljb24sXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXR5cGUtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgIGhlaWdodDogMS42cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDUwJSwgcmdiYSg5NSwgMTExLCA0MiwgMC43MikgMCAwLjIycmVtLCB0cmFuc3BhcmVudCAwLjI0cmVtKSxcbiAgICAgICAgICByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWNvc3Qge1xuICAgICAgICB3aWR0aDogMi4xcmVtO1xuICAgICAgICBoZWlnaHQ6IDIuMXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZDkxYTtcbiAgICAgICAgY29sb3I6ICMyNDMwNDQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMC4xMnJlbSAwIHJnYmEoODIsIDY0LCAyOCwgMC4xOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWFydCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogOXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC40OHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDk1LCAxMTEsIDQyLCAwLjIpLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xNikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDI1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KSwgdHJhbnNwYXJlbnQgNDIlKSxcbiAgICAgICAgICAjZGJlN2VmO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgzNiwgNDgsIDY4LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtYXJ0IGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQgPiBzcGFuIHtcbiAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgIGNvbG9yOiByZ2JhKDM2LCA0OCwgNjgsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgNXZ3LCAxLjhyZW0pO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQgc21hbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDAuNTVyZW07XG4gICAgICAgIG1pbi13aWR0aDogNXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4xNnJlbSAwLjQ4cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweCAwIDAgOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjNyZW0gMC44cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzQpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC12ZXJzZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2UgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2Uge1xuICAgICAgICBjb2xvcjogIzE3MTkyMztcbiAgICAgICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjcycmVtLCAyLjd2dywgMC44NnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXZlcnNlIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjdyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNDVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNzIlLCByZ2JhKDM2LCA0OCwgNjgsIDAuMDcpLCB0cmFuc3BhcmVudCAzNCUpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXN0YXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjM1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1zdGF0cyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1lZmZlY3QgPiBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjEycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1lZmZlY3QgPiBkaXY6bGFzdC1vZi10eXBlIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZWZmZWN0IHAge1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNzhyZW0sIDIuOXZ3LCAwLjkycmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDAuNjJyZW07XG4gICAgICAgIHJpZ2h0OiAwLjYycmVtO1xuICAgICAgICB3aWR0aDogMC40NnJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjQ2cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEycmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXJhcml0eS5pcy1ub3JtYWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZDFkNWRiO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkuaXMtdW5jb21tb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMjJjNTVlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkuaXMtcmFyZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzYjgyZjY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXJhcml0eS5pcy1sZWdlbmRhcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWFiMzA4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuMzRyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjgpO1xuICAgICAgICBmb250LXNpemU6IDAuNThyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1mb290ZXIgc3BhbiB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1jbG9zZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjY1cmVtO1xuICAgICAgICByaWdodDogMC42NXJlbTtcbiAgICAgICAgei1pbmRleDogNjI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC42cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1iYWNrZHJvcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjQ2KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWJhY2tkcm9wIHtcbiAgICAgICAgei1pbmRleDogNjA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCA+IHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkID4gc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgPiBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuNTVyZW0sIDh2dywgMi4zNXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgPiBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAgMC4zNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWFjdGlvbnMgYnV0dG9uIHtcbiAgICAgICAgbWluLWhlaWdodDogMi4zNXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTAyYTQzO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC42NXJlbSAxLjNyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWFjdGlvbnMgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgb3BhY2l0eTogMC40NTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDUycmVtKSB7XG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbCB7XG4gICAgICAgICAgd2lkdGg6IG1pbigyOXJlbSwgY2FsYygxMDB2dyAtIDNyZW0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB7XG4gICAgICAgICAgbWluLWhlaWdodDogbWluKDM1cmVtLCBjYWxjKDEwMHZoIC0gNHJlbSkpO1xuICAgICAgICAgIHBhZGRpbmc6IDEuMzVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWJhY2tkcm9wIHtcbiAgICAgICAgei1pbmRleDogNDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBib3R0b206IG1heCgwLjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogNDE7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgICB3aWR0aDogbWluKGNhbGMoMTAwdncgLSAxcmVtKSwgNDRyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiBtaW4oMThyZW0sIGNhbGMoMTAwZHZoIC0gMXJlbSkpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oMzJyZW0sIGNhbGMoMTAwZHZoIC0gMnJlbSkpO1xuICAgICAgICBwYWRkaW5nOiAwLjhyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMS41cmVtIDRyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjI4KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAxLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuODVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWRpYWxvZy1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuODVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC42MnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzgpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjhyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCg1LjRyZW0sIDFmcikpO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDM2LCA0OCwgNjgsIDAuMzIpIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43Mik7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuMXJlbSAwLjI1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDAuNjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJvcmRlcjogMC4xNHJlbSBzb2xpZCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNiwgNDgsIDY4LCAwLjMyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MtZHJhd2VyIHtcbiAgICAgICAgd2lkdGg6IG1pbihjYWxjKDEwMHZ3IC0gMXJlbSksIDQ4cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDIwcmVtLCBjYWxjKDEwMGR2aCAtIDFyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDJyZW0pKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjZyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDM2LCA0OCwgNjgsIDAuMzIpIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43Mik7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgICAgICAgcGFkZGluZzogMC4xcmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDQuOXJlbSwgNi4ycmVtKSBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cuaXMtZXhoYXVzdGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC42ODtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHtcbiAgICAgICAgbWluLWhlaWdodDogNy40cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NiksIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45NikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODIlIDE0JSwgI2ZhY2MxNSAwIDAuNDhyZW0sIHRyYW5zcGFyZW50IDAuNXJlbSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC40NXJlbSAxcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHNtYWxsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42NnJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgcCB7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyA+IGRpdiBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgYnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgbWluLWhlaWdodDogMi4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTAyYTQzO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAwLjE4NzVyZW0gc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMjQlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwge1xuICAgICAgICAgIHBhZGRpbmc6IDAuNTVyZW0gMDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXBsYXllcl9fc3VtbWFyeSxcbiAgICAgICAgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIge1xuICAgICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHtcbiAgICAgICAgICBtaW4td2lkdGg6IDMuNjVyZW07XG4gICAgICAgICAgcGFkZGluZzogMCAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHN0cm9uZyB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS10YWJsZSB7XG4gICAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSB7XG4gICAgICAgICAgcGFkZGluZzogMC4zcmVtIDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgICAtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aDogY2xhbXAoNC40cmVtLCAyMHZ3LCA1LjhyZW0pO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCkpO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMC41NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMTEuNzVyZW07XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgICAgICAgcGFkZGluZy10b3A6IDEuMzVyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuOXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDYuNjVyZW07XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjRyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuODVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg0LjdyZW0sIDUuOXJlbSkgbWlubWF4KDQuOHJlbSwgMWZyKSBtaW5tYXgoMy43cmVtLCA1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgzLjdyZW0sIDFmcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA2LjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNThyZW0gMC40NnJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDYuODVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC44OHJlbSAwLjQ2cmVtIDAuNTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoNC4ycmVtLCAyMHZ3LCA1LjdyZW0pO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDUuOHJlbSwgMjZ2dywgNy40cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCg0LjU1cmVtLCAyMHZ3LCA1LjdyZW0pO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDYuMTVyZW0sIDI3dncsIDcuNnJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNC41cmVtLCA1LjVyZW0pIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDUuNzVyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuN3JlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENocmlzdGlhbml0eUdhbWVDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBnYW1lID0gc2lnbmFsPENocmlzdGlhbml0eUdhbWVTdGF0ZT4oc3RydWN0dXJlZENsb25lKFNUQVJUSU5HX0dBTUUpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkSGFuZENhcmQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZEF0dGFja2VyID0gc2lnbmFsPENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXcgPSBzaWduYWw8Q2hyaXN0aWFuaXR5Q2FyZFByZXZpZXcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdUaWx0ID0gc2lnbmFsPENocmlzdGlhbml0eVByZXZpZXdUaWx0Pih7IHJvdGF0ZVg6IDUsIHJvdGF0ZVk6IC01LCBzaGlmdFg6IDAsIHNoaWZ0WTogMCB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhvdmVyZWRIYW5kSW5kZXggPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkcmFnZ2luZ0NhcmRJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dIaXN0b3J5ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9mZmVyaW5nc1NlYXQgPSBzaWduYWw8Q2hyaXN0aWFuaXR5U2VhdCB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25CYXR0bGVTbG90ID0gKGRyYWc6IENka0RyYWc8c3RyaW5nPik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGRyYWcuZGF0YSk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PZmZlcmluZ3MgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxheWVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nYW1lKCkucGxheWVycy5QMSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcHBvbmVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnMuUDIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBsYXllciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnNbdGhpcy5nYW1lKCkudHVybk93bmVyXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc093blR1cm4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS50dXJuT3duZXIgPT09ICdQMScpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzT3Bwb25lbnRHdWFyZHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wcG9uZW50KCkuYmF0dGxlWm9uZS5sZW5ndGggPiAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wcG9uZW50SGFuZENvdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHBvbmVudCgpLmhhbmRDb3VudCA/PyB0aGlzLm9wcG9uZW50KCkuaGFuZD8ubGVuZ3RoID8/IDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZCgpO1xuICAgIHJldHVybiBzZWxlY3RlZCA/IHRoaXMuY2FyZERlZmluaXRpb24oc2VsZWN0ZWQpIDogbnVsbDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXdDYXJkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk/LmNhcmRJZDtcbiAgICByZXR1cm4gY2FyZElkID8gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpIDogbnVsbDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdGF0dXNUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5zZWxlY3RlZEF0dGFja2VyKCk7XG4gICAgY29uc3QgaGFuZENhcmQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNPd25UdXJuKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVdhaXRUdXJuJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2tlcikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlQ2hhcmFjdGVyVGFyZ2V0JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZVRhcmdldCcpO1xuICAgIH1cbiAgICBpZiAoaGFuZENhcmQpIHtcbiAgICAgIGlmICghdGhpcy5jYW5QbGF5KGhhbmRDYXJkKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlOZWVkT2ZmZXJpbmdzJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFuZENhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VPZmZlcmluZycpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VTbG90Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZUNhcmQnKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ01pbmlHYW1lcycsIE1JTklfR0FNRVNfSTE4Tik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnTWluaUdhbWVzJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZERlZmluaXRpb24oY2FyZElkOiBzdHJpbmcpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIFNUQVJURVJfQ0FSRFNbY2FyZElkXSA/PyBTVEFSVEVSX0NBUkRTWydwX3Njb3V0J107XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZFR5cGVMYWJlbChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckNhcmQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBiYXR0bGVTbG90cyhzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogQXJyYXk8eyB0cmFja0lkOiBzdHJpbmc7IGNhcmQ/OiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgY2FyZHMgPSB0aGlzLmdhbWUoKS5wbGF5ZXJzW3NlYXRdLmJhdHRsZVpvbmU7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDQgfSwgKF8sIGluZGV4KSA9PiAoe1xuICAgICAgdHJhY2tJZDogY2FyZHNbaW5kZXhdPy5pbnN0YW5jZUlkID8/IGAke3NlYXR9LWVtcHR5LSR7aW5kZXh9YCxcbiAgICAgIGNhcmQ6IGNhcmRzW2luZGV4XSxcbiAgICB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmF0dGxlU2xvdERyb3BJZChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1iYXR0bGUtc2xvdC0ke2luZGV4fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcFRhcmdldElkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcm9wJywgLi4udGhpcy5iYXR0bGVTbG90cygnUDEnKS5tYXAoKF8sIGluZGV4KSA9PiB0aGlzLmJhdHRsZVNsb3REcm9wSWQoaW5kZXgpKV07XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlkZGVuSGFuZENhcmRzKGNvdW50OiBudW1iZXIpOiB1bmtub3duW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmYW5UcmFuc2Zvcm0oaW5kZXg6IG51bWJlciwgdG90YWw6IG51bWJlciwgb3Bwb25lbnQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGlmICh0b3RhbCA8PSAxKSByZXR1cm4gJ25vbmUnO1xuICAgIGNvbnN0IGNlbnRlciA9ICh0b3RhbCAtIDEpIC8gMjtcbiAgICBjb25zdCBvZmZzZXQgPSBpbmRleCAtIGNlbnRlcjtcbiAgICBjb25zdCByb3RhdGUgPSBvZmZzZXQgKiAob3Bwb25lbnQgPyA4IDogNSk7XG4gICAgY29uc3QgbGlmdCA9IE1hdGguYWJzKG9mZnNldCkgKiAwLjI1O1xuICAgIGNvbnN0IGhvdmVyTGlmdCA9IG9wcG9uZW50ID8gMCA6IHRoaXMuaGFuZFdhdmVMaWZ0KGluZGV4KTtcbiAgICBjb25zdCBzY2FsZSA9IG9wcG9uZW50ID8gMSA6IHRoaXMuaGFuZFdhdmVTY2FsZShpbmRleCk7XG4gICAgY29uc3QgZmFuTGlmdCA9IG9wcG9uZW50ID8gTWF0aC5hYnMob2Zmc2V0KSAqIDAuMzQgOiBsaWZ0ICsgaG92ZXJMaWZ0O1xuICAgIGNvbnN0IGZhblNwcmVhZCA9IG9wcG9uZW50ID8gb2Zmc2V0ICogMC4wOCA6IDA7XG4gICAgcmV0dXJuIGB0cmFuc2xhdGUoJHtmYW5TcHJlYWR9cmVtLCAke2ZhbkxpZnR9cmVtKSByb3RhdGUoJHtyb3RhdGV9ZGVnKSBzY2FsZSgke3NjYWxlfSlgO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRDYXJkWkluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGhvdmVyZWQgPSB0aGlzLmhvdmVyZWRIYW5kSW5kZXgoKTtcbiAgICBpZiAoaG92ZXJlZCA9PT0gbnVsbCkgcmV0dXJuIDI7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyhpbmRleCAtIGhvdmVyZWQpO1xuICAgIHJldHVybiBNYXRoLm1heCgyLCA4IC0gZGlzdGFuY2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEhvdmVyZWRIYW5kSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaG92ZXJlZEhhbmRJbmRleC5zZXQoaW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFySG92ZXJlZEhhbmRJbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvdmVyZWRIYW5kSW5kZXguc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbGVhc2VIb3ZlcmVkSGFuZChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlICE9PSAnbW91c2UnKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsZWFySG92ZXJlZEhhbmRJbmRleCgpLCAxODApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZFdhdmVMaWZ0KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGhvdmVyZWQgPSB0aGlzLmhvdmVyZWRIYW5kSW5kZXgoKTtcbiAgICBpZiAoaG92ZXJlZCA9PT0gbnVsbCkgcmV0dXJuIDA7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyhpbmRleCAtIGhvdmVyZWQpO1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMCkgcmV0dXJuIC0xLjE1O1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMSkgcmV0dXJuIC0wLjU4O1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMikgcmV0dXJuIC0wLjIyO1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kV2F2ZVNjYWxlKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGhvdmVyZWQgPSB0aGlzLmhvdmVyZWRIYW5kSW5kZXgoKTtcbiAgICBpZiAoaG92ZXJlZCA9PT0gbnVsbCkgcmV0dXJuIDE7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyhpbmRleCAtIGhvdmVyZWQpO1xuICAgIGlmIChkaXN0YW5jZSA9PT0gMCkgcmV0dXJuIDEuMDY7XG4gICAgaWYgKGRpc3RhbmNlID09PSAxKSByZXR1cm4gMS4wMztcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkeU9mZmVyaW5ncyhwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcGxheWVyLm9mZmVyaW5ncy5yZWR1Y2UoKHRvdGFsLCBvZmZlcmluZykgPT4gdG90YWwgKyAob2ZmZXJpbmcucmVhZHkgPyBvZmZlcmluZy52YWx1ZSA6IDApLCAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b3RhbE9mZmVyaW5ncyhwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcGxheWVyLm9mZmVyaW5ncy5yZWR1Y2UoKHRvdGFsLCBvZmZlcmluZykgPT4gdG90YWwgKyBvZmZlcmluZy52YWx1ZSwgMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxheShjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc093blR1cm4oKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChjYXJkLnR5cGUgPT09ICdvZmZlcmluZycpIHJldHVybiAhdGhpcy5wbGF5ZXIoKS5vZmZlcmluZ1BsYXllZFRoaXNUdXJuO1xuICAgIHJldHVybiB0aGlzLnJlYWR5T2ZmZXJpbmdzKHRoaXMucGxheWVyKCkpID49IGNhcmQuY29zdCAmJiB0aGlzLnBsYXllcigpLmJhdHRsZVpvbmUubGVuZ3RoIDwgNDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGF5U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZCAmJiB0aGlzLmNhblBsYXkodGhpcy5jYXJkRGVmaW5pdGlvbihzZWxlY3RlZCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aW9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIGlmICghc2VsZWN0ZWQpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlDYXJkJyk7XG4gICAgcmV0dXJuIHNlbGVjdGVkLnR5cGUgPT09ICdvZmZlcmluZycgPyB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlPZmZlcmluZycpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5Q2FyZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICBpZiAoIXNlbGVjdGVkIHx8ICF0aGlzLmNhblBsYXkoc2VsZWN0ZWQpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gc2VsZWN0ZWQudHlwZSA9PT0gJ2NoYXJhY3Rlcic7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmlld0FjdGlvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmIChwcmV2aWV3Py5zb3VyY2UgIT09ICdoYW5kJyB8fCAhcHJldmlldy5jYXJkSWQpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiAhdGhpcy5jYW5QbGF5KHRoaXMuY2FyZERlZmluaXRpb24ocHJldmlldy5jYXJkSWQpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWQgJiYgc2VsZWN0ZWQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGFjZVNlbGVjdGVkT2ZmZXJpbmcoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZCAmJiBzZWxlY3RlZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNEcmFnZ2luZ0NoYXJhY3RlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmRyYWdnaW5nQ2FyZElkKCk7XG4gICAgaWYgKCFjYXJkSWQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIHJldHVybiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0RyYWdnaW5nT2ZmZXJpbmcoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2FyZElkID0gdGhpcy5kcmFnZ2luZ0NhcmRJZCgpO1xuICAgIGlmICghY2FyZElkKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydERyYWdnaW5nQ2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChjYXJkSWQpO1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KGNhcmRJZCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbmREcmFnZ2luZ0NhcmQoKTogdm9pZCB7XG4gICAgdGhpcy5kcmFnZ2luZ0NhcmRJZC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uQmF0dGxlU2xvdChldmVudDogQ2RrRHJhZ0Ryb3A8bnVtYmVyLCB1bmtub3duLCBzdHJpbmc+LCBzbG90SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGV2ZW50Lml0ZW0uZGF0YSk7XG4gICAgaWYgKGNhcmQudHlwZSAhPT0gJ2NoYXJhY3RlcicpIHJldHVybjtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoZXZlbnQuaXRlbS5kYXRhLCBzbG90SW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BPbk9mZmVyaW5ncyhldmVudDogQ2RrRHJhZ0Ryb3A8dW5rbm93biwgdW5rbm93biwgc3RyaW5nPik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGV2ZW50Lml0ZW0uZGF0YSk7XG4gICAgaWYgKGNhcmQudHlwZSAhPT0gJ29mZmVyaW5nJykgcmV0dXJuO1xuICAgIHRoaXMucGxheUNhcmRGcm9tSGFuZChldmVudC5pdGVtLmRhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEhhbmRDYXJkKGNhcmRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgd2FzU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKSA9PT0gY2FyZElkO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldCh3YXNTZWxlY3RlZCA/IG51bGwgOiBjYXJkSWQpO1xuICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxheVNlbGVjdGVkQ2FyZChzbG90SW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKTtcbiAgICBpZiAoIWNhcmRJZCkgcmV0dXJuO1xuICAgIHRoaXMucGxheUNhcmRGcm9tSGFuZChjYXJkSWQsIHNsb3RJbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxheUNhcmRGcm9tSGFuZChjYXJkSWQ6IHN0cmluZywgc2xvdEluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICBpZiAoIXRoaXMuY2FuUGxheShjYXJkKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBwbGF5ZXIgPSBuZXh0LnBsYXllcnMuUDE7XG4gICAgICBjb25zdCBoYW5kSW5kZXggPSBwbGF5ZXIuaGFuZD8uaW5kZXhPZihjYXJkSWQpID8/IC0xO1xuICAgICAgaWYgKGhhbmRJbmRleCA8IDAgfHwgIXBsYXllci5oYW5kKSByZXR1cm4gZ2FtZTtcbiAgICAgIHBsYXllci5oYW5kLnNwbGljZShoYW5kSW5kZXgsIDEpO1xuICAgICAgaWYgKGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJykge1xuICAgICAgICBwbGF5ZXIub2ZmZXJpbmdzLnB1c2goe1xuICAgICAgICAgIGluc3RhbmNlSWQ6IGBwMV9vZmZlcmluZ18ke25leHQucmV2aXNpb24gKyAxfWAsXG4gICAgICAgICAgY2FyZElkOiBjYXJkLmlkLFxuICAgICAgICAgIG5hbWU6IGNhcmQubmFtZSxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogY2FyZC5saWZlLFxuICAgICAgICAgIGFiaWxpdHlOYW1lOiBjYXJkLmFiaWxpdHlOYW1lLFxuICAgICAgICAgIGFiaWxpdHlUZXh0OiBjYXJkLmFiaWxpdHlUZXh0LFxuICAgICAgICAgIGFiaWxpdHlDb3N0OiBjYXJkLmFiaWxpdHlDb3N0LFxuICAgICAgICB9KTtcbiAgICAgICAgcGxheWVyLm9mZmVyaW5nUGxheWVkVGhpc1R1cm4gPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zcGVuZE9mZmVyaW5ncyhwbGF5ZXIsIGNhcmQuY29zdCk7XG4gICAgICAgIGNvbnN0IGluc2VydEluZGV4ID0gTWF0aC5taW4oc2xvdEluZGV4ID8/IHBsYXllci5iYXR0bGVab25lLmxlbmd0aCwgcGxheWVyLmJhdHRsZVpvbmUubGVuZ3RoKTtcbiAgICAgICAgcGxheWVyLmJhdHRsZVpvbmUuc3BsaWNlKGluc2VydEluZGV4LCAwLCB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogYHAxXyR7bmV4dC5yZXZpc2lvbiArIDF9XyR7cGxheWVyLmJhdHRsZVpvbmUubGVuZ3RofWAsXG4gICAgICAgICAgY2FyZElkOiBjYXJkLmlkLFxuICAgICAgICAgIG5hbWU6IGNhcmQubmFtZSxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICBjb250cm9sbGVyOiAnUDEnLFxuICAgICAgICAgIGF0dGFjazogY2FyZC5hdHRhY2ssXG4gICAgICAgICAgY3VycmVudEhwOiBjYXJkLmxpZmUsXG4gICAgICAgICAgbWF4SHA6IGNhcmQubGlmZSxcbiAgICAgICAgICBjYW5BdHRhY2s6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIG5leHQucmV2aXNpb24rKztcbiAgICAgIG5leHQubG9nID0gW1xuICAgICAgICBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyBgJHtjYXJkLm5hbWV9IHF1ZWRhIGxpc3RhIGNvbW8gb2ZyZW5kYS5gIDogYCR7Y2FyZC5uYW1lfSBlbnRyYSBlbiBiYXRhbGxhLmAsXG4gICAgICAgIC4uLm5leHQubG9nLFxuICAgICAgXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQobnVsbCk7XG4gICAgdGhpcy5kcmFnZ2luZ0NhcmRJZC5zZXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5UHJldmlld0NhcmQoKTogdm9pZCB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgaWYgKHByZXZpZXc/LnNvdXJjZSAhPT0gJ2hhbmQnIHx8ICFwcmV2aWV3LmNhcmRJZCkgcmV0dXJuO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKHByZXZpZXcuY2FyZElkKTtcbiAgICBpZiAoIXRoaXMuY2FuUGxheShjYXJkKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQocHJldmlldy5jYXJkSWQpO1xuICAgIGlmIChjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInKSB7XG4gICAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBsYXlTZWxlY3RlZENhcmQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPZmZlcmluZ1BpbGUoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IHZvaWQge1xuICAgIHRoaXMub3Blbk9mZmVyaW5ncyhzZWF0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RBdHRhY2tlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQobnVsbCk7XG4gICAgdGhpcy5pbnNwZWN0Q2hhcmFjdGVyKGNhcmQpO1xuICAgIGlmICghdGhpcy5pc093blR1cm4oKSB8fCAhY2FyZC5jYW5BdHRhY2spIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpPy5pbnN0YW5jZUlkID09PSBjYXJkLmluc3RhbmNlSWQgPyBudWxsIDogY2FyZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT3Bwb25lbnRDaGFyYWN0ZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiB2b2lkIHtcbiAgICB0aGlzLmluc3BlY3RDaGFyYWN0ZXIoY2FyZCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpKSB7XG4gICAgICB0aGlzLmF0dGFja0NoYXJhY3RlcihjYXJkKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT3Bwb25lbnRMZWFkZXIoKTogdm9pZCB7XG4gICAgdGhpcy5pbnNwZWN0TGVhZGVyKCdQMicpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKSAmJiAhdGhpcy5oYXNPcHBvbmVudEd1YXJkcygpKSB7XG4gICAgICB0aGlzLmF0dGFja0xlYWRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhdHRhY2tMZWFkZXIoKTogdm9pZCB7XG4gICAgY29uc3QgYXR0YWNrZXIgPSB0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKTtcbiAgICBpZiAoIWF0dGFja2VyKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgICAgdGl0bGU6IHRoaXMub3Bwb25lbnQoKS5sZWFkZXJOYW1lLFxuICAgICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgICAgbWV0YTogYCR7dGhpcy5vcHBvbmVudCgpLmxlYWRlckhwfS8ke3RoaXMub3Bwb25lbnQoKS5sZWFkZXJNYXhIcH1gLFxuICAgICAgICBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclByb3RlY3RlZCcpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gc3RydWN0dXJlZENsb25lKGdhbWUpO1xuICAgICAgY29uc3QgbGl2ZUF0dGFja2VyID0gbmV4dC5wbGF5ZXJzLlAxLmJhdHRsZVpvbmUuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gYXR0YWNrZXIuaW5zdGFuY2VJZCk7XG4gICAgICBpZiAoIWxpdmVBdHRhY2tlciB8fCAhbGl2ZUF0dGFja2VyLmNhbkF0dGFjaykgcmV0dXJuIGdhbWU7XG4gICAgICBuZXh0LnBsYXllcnMuUDIubGVhZGVySHAgPSBNYXRoLm1heCgwLCBuZXh0LnBsYXllcnMuUDIubGVhZGVySHAgLSBsaXZlQXR0YWNrZXIuYXR0YWNrKTtcbiAgICAgIGxpdmVBdHRhY2tlci5jYW5BdHRhY2sgPSBmYWxzZTtcbiAgICAgIG5leHQucmV2aXNpb24rKztcbiAgICAgIG5leHQubG9nID0gW2Ake2xpdmVBdHRhY2tlci5uYW1lfSBhdGFjYSBhbCBsaWRlciByaXZhbC5gLCAuLi5uZXh0LmxvZ10uc2xpY2UoMCwgNCk7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFja0NoYXJhY3Rlcih0YXJnZXQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgY29uc3QgYXR0YWNrZXIgPSB0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKTtcbiAgICBpZiAoIWF0dGFja2VyKSByZXR1cm47XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBsaXZlQXR0YWNrZXIgPSBuZXh0LnBsYXllcnMuUDEuYmF0dGxlWm9uZS5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBhdHRhY2tlci5pbnN0YW5jZUlkKTtcbiAgICAgIGNvbnN0IGxpdmVUYXJnZXQgPSBuZXh0LnBsYXllcnMuUDIuYmF0dGxlWm9uZS5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSB0YXJnZXQuaW5zdGFuY2VJZCk7XG4gICAgICBpZiAoIWxpdmVBdHRhY2tlciB8fCAhbGl2ZVRhcmdldCB8fCAhbGl2ZUF0dGFja2VyLmNhbkF0dGFjaykgcmV0dXJuIGdhbWU7XG4gICAgICBsaXZlVGFyZ2V0LmN1cnJlbnRIcCAtPSBsaXZlQXR0YWNrZXIuYXR0YWNrO1xuICAgICAgbGl2ZUF0dGFja2VyLmN1cnJlbnRIcCAtPSBsaXZlVGFyZ2V0LmF0dGFjaztcbiAgICAgIGxpdmVBdHRhY2tlci5jYW5BdHRhY2sgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xlYW51cERlc3Ryb3llZChuZXh0LnBsYXllcnMuUDEsIG5leHQpO1xuICAgICAgdGhpcy5jbGVhbnVwRGVzdHJveWVkKG5leHQucGxheWVycy5QMiwgbmV4dCk7XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFtgJHtsaXZlQXR0YWNrZXIubmFtZX0gY29tYmF0ZSBjb250cmEgJHtsaXZlVGFyZ2V0Lm5hbWV9LmAsIC4uLm5leHQubG9nXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5kVHVybigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gc3RydWN0dXJlZENsb25lKGdhbWUpO1xuICAgICAgbmV4dC50dXJuT3duZXIgPSBuZXh0LnR1cm5Pd25lciA9PT0gJ1AxJyA/ICdQMicgOiAnUDEnO1xuICAgICAgbmV4dC50dXJuQ291bnQrKztcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBuZXh0LnBsYXllcnNbbmV4dC50dXJuT3duZXJdO1xuICAgICAgY3VycmVudC5vZmZlcmluZ1BsYXllZFRoaXNUdXJuID0gZmFsc2U7XG4gICAgICBjdXJyZW50Lm9mZmVyaW5ncyA9IGN1cnJlbnQub2ZmZXJpbmdzLm1hcChvZmZlcmluZyA9PiAoeyAuLi5vZmZlcmluZywgcmVhZHk6IHRydWUgfSkpO1xuICAgICAgY3VycmVudC5iYXR0bGVab25lID0gY3VycmVudC5iYXR0bGVab25lLm1hcChjYXJkID0+ICh7IC4uLmNhcmQsIGNhbkF0dGFjazogdHJ1ZSB9KSk7XG4gICAgICBjb25zdCBkcmF3bkNhcmQgPSBuZXh0LnNoYXJlZERlY2suc2hpZnQoKTtcbiAgICAgIGlmIChkcmF3bkNhcmQpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQuaGFuZCkge1xuICAgICAgICAgIGN1cnJlbnQuaGFuZC5wdXNoKGRyYXduQ2FyZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudC5oYW5kQ291bnQgPSAoY3VycmVudC5oYW5kQ291bnQgPz8gMCkgKyAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFtcbiAgICAgICAgZHJhd25DYXJkID8gYCR7Y3VycmVudC5kaXNwbGF5TmFtZX0gcm9iYSB1bmEgY2FydGEuYCA6IGBFbCBtYXpvIGVzdGEgdmFjaW8uYCxcbiAgICAgICAgYFR1cm5vIGRlICR7Y3VycmVudC5kaXNwbGF5TmFtZX0uYCxcbiAgICAgICAgLi4ubmV4dC5sb2csXG4gICAgICBdLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRNb2NrKCk6IHZvaWQge1xuICAgIHRoaXMuZ2FtZS5zZXQoc3RydWN0dXJlZENsb25lKFNUQVJUSU5HX0dBTUUpKTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2hvd0hpc3Rvcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5yZXNldFByZXZpZXdUaWx0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3Blbk9mZmVyaW5ncyhzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2hvd0hpc3Rvcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KHNlYXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlT2ZmZXJpbmdzKCk6IHZvaWQge1xuICAgIHRoaXMub2ZmZXJpbmdzU2VhdC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdGlsdFByZXZpZXcoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGJvdW5kcyA9IChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB4ID0gKGV2ZW50LmNsaWVudFggLSBib3VuZHMubGVmdCkgLyBib3VuZHMud2lkdGggLSAwLjU7XG4gICAgY29uc3QgeSA9IChldmVudC5jbGllbnRZIC0gYm91bmRzLnRvcCkgLyBib3VuZHMuaGVpZ2h0IC0gMC41O1xuICAgIHRoaXMucHJldmlld1RpbHQuc2V0KHtcbiAgICAgIHJvdGF0ZVg6IDUgLSB5ICogMTgsXG4gICAgICByb3RhdGVZOiAtNSArIHggKiAxOCxcbiAgICAgIHNoaWZ0WDogeCAqIDEwLFxuICAgICAgc2hpZnRZOiB5ICogMTAsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRQcmV2aWV3VGlsdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZpZXdUaWx0LnNldCh7IHJvdGF0ZVg6IDUsIHJvdGF0ZVk6IC01LCBzaGlmdFg6IDAsIHNoaWZ0WTogMCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cERlc3Ryb3llZChwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlLCBnYW1lOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUpOiB2b2lkIHtcbiAgICBjb25zdCBkZXN0cm95ZWQgPSBwbGF5ZXIuYmF0dGxlWm9uZS5maWx0ZXIoY2FyZCA9PiBjYXJkLmN1cnJlbnRIcCA8PSAwKTtcbiAgICBpZiAoIWRlc3Ryb3llZC5sZW5ndGgpIHJldHVybjtcbiAgICBnYW1lLmhpc3Rvcnlab25lLnB1c2goLi4uZGVzdHJveWVkLm1hcChjYXJkID0+IGNhcmQuY2FyZElkKSk7XG4gICAgcGxheWVyLmJhdHRsZVpvbmUgPSBwbGF5ZXIuYmF0dGxlWm9uZS5maWx0ZXIoY2FyZCA9PiBjYXJkLmN1cnJlbnRIcCA+IDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RMZWFkZXIoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IHZvaWQge1xuICAgIGNvbnN0IHBsYXllciA9IHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF07XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiBwbGF5ZXIubGVhZGVyTmFtZSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgbWV0YTogYCR7cGxheWVyLmxlYWRlckhwfS8ke3BsYXllci5sZWFkZXJNYXhIcH1gLFxuICAgICAgYm9keTogc2VhdCA9PT0gJ1AyJyAmJiB0aGlzLmhhc09wcG9uZW50R3VhcmRzKCkgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclByb3RlY3RlZCcpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdE9mZmVyaW5nKG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiBvZmZlcmluZy5uYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSxcbiAgICAgIG1ldGE6IG9mZmVyaW5nLnJlYWR5ID8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1JlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nRXhoYXVzdGVkJyksXG4gICAgICBib2R5OiBvZmZlcmluZy5hYmlsaXR5VGV4dCB8fCB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQm9keScpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSwgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IGJvb2xlYW4ge1xuICAgIGlmIChzZWF0ICE9PSAnUDEnIHx8ICF0aGlzLmlzT3duVHVybigpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCFvZmZlcmluZy5yZWFkeSB8fCAhb2ZmZXJpbmcuYWJpbGl0eU5hbWUpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5yZWFkeU9mZmVyaW5ncyh0aGlzLmdhbWUoKS5wbGF5ZXJzW3NlYXRdKSA+PSAob2ZmZXJpbmcuYWJpbGl0eUNvc3QgPz8gMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlLCBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZywgc2VhdCkpIHJldHVybjtcbiAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IHN0cnVjdHVyZWRDbG9uZShnYW1lKTtcbiAgICAgIGNvbnN0IHBsYXllciA9IG5leHQucGxheWVyc1tzZWF0XTtcbiAgICAgIGNvbnN0IGxpdmVPZmZlcmluZyA9IHBsYXllci5vZmZlcmluZ3MuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gb2ZmZXJpbmcuaW5zdGFuY2VJZCk7XG4gICAgICBpZiAoIWxpdmVPZmZlcmluZyB8fCAhbGl2ZU9mZmVyaW5nLnJlYWR5KSByZXR1cm4gZ2FtZTtcbiAgICAgIGNvbnN0IG9mZmVyaW5nSWQgPSBsaXZlT2ZmZXJpbmcuaW5zdGFuY2VJZDtcbiAgICAgIHRoaXMuc3BlbmRPZmZlcmluZ3MocGxheWVyLCBsaXZlT2ZmZXJpbmcuYWJpbGl0eUNvc3QgPz8gMCk7XG4gICAgICBwbGF5ZXIub2ZmZXJpbmdzID0gcGxheWVyLm9mZmVyaW5ncy5tYXAoY2FyZCA9PiAoY2FyZC5pbnN0YW5jZUlkID09PSBvZmZlcmluZ0lkID8geyAuLi5jYXJkLCByZWFkeTogZmFsc2UgfSA6IGNhcmQpKTtcbiAgICAgIHBsYXllci5sZWFkZXJIcCA9IE1hdGgubWF4KDAsIHBsYXllci5sZWFkZXJIcCAtIDEpO1xuICAgICAgbmV4dC5yZXZpc2lvbisrO1xuICAgICAgbmV4dC5sb2cgPSBbYCR7bGl2ZU9mZmVyaW5nLm5hbWV9OiAke2xpdmVPZmZlcmluZy5hYmlsaXR5TmFtZX0uYCwgLi4ubmV4dC5sb2ddLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdERlY2soKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2snKSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5U2hhcmVkWm9uZScpLFxuICAgICAgbWV0YTogYCR7dGhpcy5nYW1lKCkuc2hhcmVkRGVjay5sZW5ndGh9YCxcbiAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja0JvZHknKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0SGFuZENhcmQoY2FyZElkOiBzdHJpbmcsIGZyb21IYW5kID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIGlmIChmcm9tSGFuZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQoY2FyZElkKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiBjYXJkLm5hbWUsXG4gICAgICBleWVicm93OiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksXG4gICAgICBtZXRhOiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyBgKyR7Y2FyZC5saWZlfWAgOiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eUNvc3QnKX0gJHtjYXJkLmNvc3R9IMK3ICR7Y2FyZC5hdHRhY2t9LyR7Y2FyZC5saWZlfWAsXG4gICAgICBib2R5OiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQm9keScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJCb2R5JyksXG4gICAgICBjYXJkSWQsXG4gICAgICBzb3VyY2U6IGZyb21IYW5kID8gJ2hhbmQnIDogJ3BpbGUnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RIaXN0b3J5Q2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0hpc3Rvcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmluc3BlY3RIYW5kQ2FyZChjYXJkSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnNwZWN0Q2hhcmFjdGVyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiBjYXJkLm5hbWUsXG4gICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckNhcmQnKSxcbiAgICAgIG1ldGE6IGAke2NhcmQuYXR0YWNrfS8ke2NhcmQuY3VycmVudEhwfWAsXG4gICAgICBib2R5OiBjYXJkLmNhbkF0dGFjayA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyUmVhZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyRXhoYXVzdGVkJyksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNwZW5kT2ZmZXJpbmdzKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUsIGNvc3Q6IG51bWJlcik6IHZvaWQge1xuICAgIGxldCByZW1haW5pbmcgPSBjb3N0O1xuICAgIHBsYXllci5vZmZlcmluZ3MgPSBwbGF5ZXIub2ZmZXJpbmdzLm1hcChvZmZlcmluZyA9PiB7XG4gICAgICBpZiAocmVtYWluaW5nIDw9IDAgfHwgIW9mZmVyaW5nLnJlYWR5KSByZXR1cm4gb2ZmZXJpbmc7XG4gICAgICByZW1haW5pbmcgLT0gb2ZmZXJpbmcudmFsdWU7XG4gICAgICByZXR1cm4geyAuLi5vZmZlcmluZywgcmVhZHk6IGZhbHNlIH07XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==