real-world-css-libraries 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +36 -1
  2. package/index.js +36 -6
  3. package/libs/30days30submits-18-v0.0.0.css +213 -0
  4. package/libs/amoled-cord-v5.0.11.css +894 -0
  5. package/libs/animating-hamburger-icons-v0.1.0.css +618 -0
  6. package/libs/bootplus-v1.0.5.css +6876 -0
  7. package/libs/enferno-v13.1.1.css +75 -0
  8. package/libs/facebook-buttons-v1.0.0.css +223 -0
  9. package/libs/fluentbird-v1.1.2.css +1060 -0
  10. package/libs/freebies-v0.0.0.css +1110 -0
  11. package/libs/gitweb-theme-v0.0.0.css +764 -0
  12. package/libs/justified-v0.0.0.css +14 -0
  13. package/libs/kickoff-v8.0.0.css +2267 -0
  14. package/libs/knacss-v8.2.0.css +1141 -0
  15. package/libs/linktree-v0.0.0.css +803 -0
  16. package/libs/littlebox-v0.0.4.css +5833 -0
  17. package/libs/lynx-v1.4.0.css +1587 -0
  18. package/libs/obnoxious-v3.5.2.css +1144 -0
  19. package/libs/obsidian-notebook-themes-v2.2.3.css +272 -0
  20. package/libs/patternbolt-v0.0.0.css +861 -0
  21. package/libs/progress-tracker-v3.0.0.css +352 -0
  22. package/libs/proxmorph-v2.7.3.css +3952 -0
  23. package/libs/sapc-apca-v0.0.0.css +5546 -0
  24. package/libs/shina-fox-v0.1.0.css +1194 -0
  25. package/libs/social-signin-buttons-v0.0.0.css +387 -0
  26. package/libs/tailwind-cards-v0.0.0.css +215592 -0
  27. package/libs/the-50-front-end-project-44-v0.0.0.css +459 -0
  28. package/libs/tocas-v5.7.0.css +19928 -0
  29. package/libs/utility-opentype-v0.1.4.css +515 -0
  30. package/libs/vim-css3-syntax-v2.10.0.css +1642 -0
  31. package/libs/waffle-grid-v1.3.6.css +544 -0
  32. package/libs/wikipedia-dark-v3.7.9.css +9990 -0
  33. package/libs/windows-95-v0.0.0.css +393 -0
  34. package/libs/woah-v1.3.1.css +1025 -0
  35. package/libs/yacy-v4.1.2.css +677 -0
  36. package/libs/yue-v1.1.1.css +180 -0
  37. package/package.json +1 -1
  38. package/test.js +3 -4
@@ -0,0 +1,2267 @@
1
+ /* https://github.com/TryKickoff/kickoff/blob/master/assets/dist/css/styleguide.css */
2
+ @charset "UTF-8";
3
+ /**
4
+ * Kickoff Styleguide
5
+ * =================================
6
+ */
7
+ /**
8
+ * Usage:
9
+ *
10
+ * ko-getVal(100, $map) - uses an integer
11
+ * ko-getVal(mid, $map) - uses a Sass map
12
+ * ko-getVal($foo, $map) - uses a Sass variable
13
+ */
14
+ /**
15
+ * Get breakpoints
16
+ *
17
+ * ko-bp()
18
+ *
19
+ * Usage:
20
+ * ko-bp(100) - uses an integer
21
+ * ko-bp(mid) - uses the $breakpoints Sass map
22
+ * ko-bp($foo) - uses a Sass variable
23
+ */
24
+ /**
25
+ * Get type size
26
+ *
27
+ * ko-type()
28
+ *
29
+ * Usage:
30
+ * ko-type(100) - uses an integer
31
+ * ko-type(mid) - uses the $type Sass map
32
+ * ko-type($foo) - uses a Sass variable
33
+ */
34
+ /**
35
+ * Usage:
36
+ *
37
+ $grid-configuration: (
38
+ 'columns': 12,
39
+ 'layouts': (
40
+ 'small': 800px,
41
+ 'medium': 1000px,
42
+ 'large': 1200px,
43
+ ),
44
+ );
45
+
46
+ div {
47
+ font-size: ko-map-deep-get($grid-configuration, 'columns');
48
+ width: ko-map-deep-get($grid-configuration, 'layouts', 'medium');
49
+ }
50
+ */
51
+ /**
52
+ * Modular scale
53
+ * =================================
54
+ * Usage: ko-modular-scale($font-size-base, 3, $type-scale)
55
+ * or with the shorthand version: ko-ms(3)
56
+ */
57
+ /**
58
+ * Shorthand modular scale
59
+ * Uses the $font-size-base and $type-scale framework variables so that you
60
+ * only need to provide the scale increment
61
+ *
62
+ * e.g. ko-ms(5)
63
+ */
64
+ /**
65
+ * Multiply
66
+ * =================
67
+ * Multiply any value
68
+ *
69
+ * Usage:
70
+ * ko-multiply(15, 2)
71
+ * ko-multiply($baseline, 1.5)
72
+ */
73
+ /**
74
+ * Sass Mixins
75
+ * - Responsive
76
+ * - Dimensions
77
+ * - Positioning
78
+ * - Utility
79
+ * - Forms
80
+ * - Module Naming Helpers
81
+ */
82
+ /**
83
+ * Responsive media query mixins
84
+ * - These are used so that we can define separate media-query content
85
+ * - Arguments can use:
86
+ * - a named breakpoint in the $breakpoints map, e.g. mid
87
+ * - a pixel value e.g. 500px
88
+ * - a unitless value that is eqivalent to a pixel e.g. 500
89
+ */
90
+ /**
91
+ * Min-width media query:
92
+ * - Equivalent to: @media screen and (min-width: 20em) { ... }
93
+ * - Usage: @include ko-respond-min(mid) { ... };
94
+ */
95
+ /**
96
+ * Max-width media query:
97
+ * - Equivalent to: @media screen and (max-width: 20em) { ... }
98
+ * - Usage: @include ko-respond-max(mid) { ... };
99
+ */
100
+ /**
101
+ * Min-max-width media query:
102
+ * - Equivalent to: @media screen and (min-width: 10em) and (max-width: 20em) { ... }
103
+ * - Usage: @include ko-respond-min-max(narrow, 600) { ... };
104
+ */
105
+ /**
106
+ * HiDPI mixin.
107
+ * @include ko-hidpi { ... };
108
+ * Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
109
+ */
110
+ /**
111
+ * Hidpi with a minimum width media query
112
+ * @include ko-hidpi-min(bp(mid), 1.5) { ... };
113
+ */
114
+ /**
115
+ * Hidpi with a max width media query
116
+ * @include ko-hidpi-max(bp(mid), 1.3) { ... };
117
+ */
118
+ /**
119
+ * Dimensions-based mixins
120
+ * - REM calculation
121
+ * - Typography mixins based on the REM mixin
122
+ * - font-size
123
+ * - line-height
124
+ * - font-size-ems
125
+ */
126
+ /**
127
+ * Typography mixins
128
+ */
129
+ /**
130
+ * ko-position
131
+ * Usage:
132
+ * @include ko-position(absolute, 10px 20px 30px 10px);
133
+ */
134
+ /**
135
+ * vertical-center
136
+ * Vertically center any element. Needs support for CSS tranforms.
137
+ * Usage:
138
+ * @include ko-vertical-center;
139
+ */
140
+ /**
141
+ * Utility Mixins
142
+ * - clearfix
143
+ * - font-face
144
+ * -
145
+ * - sizing shortcuts
146
+ * - size
147
+ * - square
148
+ * - resizable
149
+ */
150
+ /**
151
+ * Sizing shortcuts
152
+ */
153
+ /**
154
+ * bemify [modified for Kickoff]
155
+ * https://gtihub.com/franzheidl/bemify
156
+ * Franz Heidl 2015
157
+ *
158
+ * Usage: https://gist.github.com/mrmartineau/0cd2010bf265d712bafb
159
+ */
160
+ /**
161
+ * Global color palette
162
+ * =================================
163
+ * - Generic colors
164
+ * - Color scheme
165
+ * - Common colors
166
+ * - Links
167
+ * - Text selection
168
+ * - <hr>
169
+ * - Any others..
170
+ */
171
+ /**
172
+ * Variables
173
+ * =================================
174
+ * - Typography
175
+ * - Breakpoints
176
+ * - Paths
177
+ * - Layout & Grid
178
+ * - App-specific
179
+ */
180
+ /* stylelint-disable indentation */
181
+ /**
182
+ * Typography
183
+ * =================================
184
+ *
185
+ * Base sizes:
186
+ * Set this in pixels (but do not add px),
187
+ * the font-size mixin will convert to REMS
188
+ */
189
+ /**
190
+ * Breakpoints
191
+ * =================================
192
+ * There are no common breakpoints so these are just a suggestions
193
+ * You'll need to define your own breakpoints to suit your design
194
+ * Add your breakpoints to this Sass map
195
+ * Used in the Kickoff grid
196
+ */
197
+ /**
198
+ * Grid
199
+ * =================================
200
+ * These variables will control the grid module.
201
+ *
202
+ * if your project doesnt use Kickoff’s default grid, you can delete these
203
+ */
204
+ /**
205
+ * Path variables
206
+ * =================================
207
+ */
208
+ /**
209
+ * Z-index variables
210
+ * =================================
211
+ */
212
+ /**
213
+ * App-specific variables
214
+ * =================================
215
+ */
216
+ /**
217
+ * The Kickoff Flexbox Grid
218
+ * =================================
219
+ * Default grid classes
220
+ * Grid gutter options
221
+ * Modifier Classes (column height and cell alignment)
222
+ * Legacy fallbacks for flexbox
223
+ * Grid span classes
224
+ * Breakpoint stacking
225
+ */
226
+ /* Import Grid helpers and mixins */
227
+ /**
228
+ * Grid Variables
229
+ * =================================
230
+ * These are defined here so that the grid can run as a standalone module (outside of Kickoff),
231
+ * as well as allowing these files to be generated into standard CSS.
232
+ *
233
+ * When importing the grid into your own project, copy the variables from this file into your own variables.scss
234
+ * They will then override the values specified here (as long as the grid is imported below where your own variables are defined).
235
+ */
236
+ /**
237
+ * Kickoff grid helpers
238
+ */
239
+ /**
240
+ * Grid stacking
241
+ * Stack grids based on a given breakpoint
242
+ *
243
+ * Usage:
244
+ * .g--stack--narrow
245
+ * .g--stack--wide
246
+ */
247
+ /**
248
+ * Gutter Calculations
249
+ * Default: percent
250
+ * Usage: ko-gutterCalc() or ko-gutterCalc(false)
251
+ * When show-unit is true, returns the percentage, otherwise return a decimal
252
+ */
253
+ /**
254
+ * Grid columns width calculations
255
+ * This is where the magic of working out the column widths happens
256
+ *
257
+ * $column-span: define the width for the number of columns required
258
+ * $show-unit: Switch return value between percentage (default) and decimal
259
+ * $include-gutters: if gutters should be included in the calculations. Default = false
260
+ * $legacy-calc: if we are working out a legacy column width calculation, or not. Default = false
261
+ */
262
+ /**
263
+ * Column width mixin
264
+ * Usage:
265
+ * @include column(2);
266
+ */
267
+ /**
268
+ * Basic Usage:
269
+ * =================================
270
+ <div class="g">
271
+ <div class="g-col g-span4 g-span6--mid"></div>
272
+ <div class="g-col g-span8 g-span6--mid"></div>
273
+ </div>
274
+ */
275
+ .g {
276
+ display: -webkit-box !important;
277
+ display: -ms-flexbox !important;
278
+ display: flex !important;
279
+ -ms-flex-wrap: wrap;
280
+ flex-wrap: wrap;
281
+ -webkit-box-orient: horizontal;
282
+ -webkit-box-direction: normal;
283
+ -ms-flex-direction: row;
284
+ flex-direction: row; }
285
+ .g img {
286
+ max-width: 100%; }
287
+
288
+ .g-col {
289
+ display: block;
290
+ -webkit-box-flex: 1;
291
+ -ms-flex: 1 0 0%;
292
+ flex: 1 0 0%;
293
+ min-width: 0; }
294
+
295
+ /**
296
+ * Gutter calcs – applied to grid columns in our grid (direct descendants only)
297
+ * Default: pixels (can look at changing to percentage)
298
+ * Usage: gutterCalc() or gutterCalc(false)
299
+ */
300
+ .g--gutter {
301
+ margin-left: -10px;
302
+ margin-right: -10px; }
303
+ .g--gutter > .g-col {
304
+ padding-left: 10px;
305
+ padding-right: 10px; }
306
+
307
+ .g--gutter--scaled > .g-col {
308
+ margin-left: 2%;
309
+ margin-right: 0; }
310
+ .g--gutter--scaled > .g-col:first-child {
311
+ margin-left: 0; }
312
+
313
+ .g--stack > .g-col {
314
+ -ms-flex-preferred-size: 100%;
315
+ flex-basis: 100%;
316
+ max-width: 100%; }
317
+
318
+ .g--stack.g--gutter--scaled > .g-col {
319
+ margin-left: 0; }
320
+
321
+ /**
322
+ * .g--equalHeight – Equal Height Child Elements
323
+ */
324
+ .g--equalHeight > .g-col {
325
+ display: -webkit-box;
326
+ display: -ms-flexbox;
327
+ display: flex; }
328
+ .g--equalHeight > .g-col > * {
329
+ -ms-flex-preferred-size: 100%;
330
+ flex-basis: 100%; }
331
+
332
+ /**
333
+ * Alignment
334
+ * Modifier classes to move our grid elements around
335
+ */
336
+ .g--alignTop {
337
+ -webkit-box-align: start;
338
+ -ms-flex-align: start;
339
+ align-items: flex-start; }
340
+
341
+ .g--alignBottom {
342
+ -webkit-box-align: end;
343
+ -ms-flex-align: end;
344
+ align-items: flex-end; }
345
+
346
+ .g--alignSelfBottom {
347
+ -ms-flex-item-align: end;
348
+ align-self: flex-end; }
349
+
350
+ .g--alignRight {
351
+ -webkit-box-pack: end;
352
+ -ms-flex-pack: end;
353
+ justify-content: flex-end; }
354
+
355
+ .g--alignCenter {
356
+ -webkit-box-pack: center;
357
+ -ms-flex-pack: center;
358
+ justify-content: center; }
359
+
360
+ .g--alignCenter--v {
361
+ -webkit-box-align: center;
362
+ -ms-flex-align: center;
363
+ align-items: center; }
364
+
365
+ /**
366
+ * Centering
367
+ * Centers an individual column, rather than the entire grid
368
+ */
369
+ .g-col--centered {
370
+ margin: 0 auto; }
371
+
372
+ /**
373
+ * Shrinking Content
374
+ * Shrink a .g-col down to only the space it needs (flexbox only)
375
+ *
376
+ * Effectively just changes it’s values back to the default flex properties
377
+ */
378
+ .g-col--shrink {
379
+ -webkit-box-flex: 0;
380
+ -ms-flex: 0 1 auto;
381
+ flex: 0 1 auto; }
382
+
383
+ /**
384
+ * Add fallbacks for non-flexbox supporting browsers (for example, IE8/9)
385
+ */
386
+ .no-flexbox .g {
387
+ display: block !important; }
388
+ .no-flexbox .g:after {
389
+ content: "";
390
+ display: table;
391
+ clear: both; }
392
+
393
+ .no-flexbox .g-col {
394
+ float: left;
395
+ min-height: 1px;
396
+ clear: none;
397
+ box-sizing: border-box; }
398
+
399
+ .no-flexbox .g--stack .g-col {
400
+ width: 100%; }
401
+
402
+ .no-flexbox .g--equalHeight > .g-col {
403
+ display: block; }
404
+
405
+ /**
406
+ * Grid Span classes (for different breakpoints)
407
+ *
408
+ * Applied by using .g-spanx to .g-col elements, where x is the number of columns
409
+ */
410
+ .g-span1 {
411
+ -ms-flex-preferred-size: 8.33333% !important;
412
+ flex-basis: 8.33333% !important;
413
+ -webkit-box-flex: 0;
414
+ -ms-flex-positive: 0;
415
+ flex-grow: 0;
416
+ max-width: 8.33333% !important; }
417
+ .g-span1.g-holdWidth {
418
+ min-width: 83.33333px; }
419
+ .g--gutter--scaled .g-span1.g-holdWidth {
420
+ min-width: 63.33333px; }
421
+ .g--gutter--scaled .g-span1 {
422
+ -ms-flex-preferred-size: 6.5% !important;
423
+ flex-basis: 6.5% !important;
424
+ max-width: 6.5%;
425
+ margin-left: 2%; }
426
+ .no-flexbox .g-span1 {
427
+ width: 8.33333% !important; }
428
+
429
+ .g-offset1 {
430
+ margin-left: 8.33333% !important; }
431
+
432
+ .g-span2 {
433
+ -ms-flex-preferred-size: 16.66667% !important;
434
+ flex-basis: 16.66667% !important;
435
+ -webkit-box-flex: 0;
436
+ -ms-flex-positive: 0;
437
+ flex-grow: 0;
438
+ max-width: 16.66667% !important; }
439
+ .g-span2.g-holdWidth {
440
+ min-width: 166.66667px; }
441
+ .g--gutter--scaled .g-span2.g-holdWidth {
442
+ min-width: 146.66667px; }
443
+ .g--gutter--scaled .g-span2 {
444
+ -ms-flex-preferred-size: 15% !important;
445
+ flex-basis: 15% !important;
446
+ max-width: 15%;
447
+ margin-left: 2%; }
448
+ .no-flexbox .g-span2 {
449
+ width: 16.66667% !important; }
450
+
451
+ .g-offset2 {
452
+ margin-left: 16.66667% !important; }
453
+
454
+ .g-span3 {
455
+ -ms-flex-preferred-size: 25% !important;
456
+ flex-basis: 25% !important;
457
+ -webkit-box-flex: 0;
458
+ -ms-flex-positive: 0;
459
+ flex-grow: 0;
460
+ max-width: 25% !important; }
461
+ .g-span3.g-holdWidth {
462
+ min-width: 250px; }
463
+ .g--gutter--scaled .g-span3.g-holdWidth {
464
+ min-width: 230px; }
465
+ .g--gutter--scaled .g-span3 {
466
+ -ms-flex-preferred-size: 23.5% !important;
467
+ flex-basis: 23.5% !important;
468
+ max-width: 23.5%;
469
+ margin-left: 2%; }
470
+ .no-flexbox .g-span3 {
471
+ width: 25% !important; }
472
+
473
+ .g-offset3 {
474
+ margin-left: 25% !important; }
475
+
476
+ .g-span4 {
477
+ -ms-flex-preferred-size: 33.33333% !important;
478
+ flex-basis: 33.33333% !important;
479
+ -webkit-box-flex: 0;
480
+ -ms-flex-positive: 0;
481
+ flex-grow: 0;
482
+ max-width: 33.33333% !important; }
483
+ .g-span4.g-holdWidth {
484
+ min-width: 333.33333px; }
485
+ .g--gutter--scaled .g-span4.g-holdWidth {
486
+ min-width: 313.33333px; }
487
+ .g--gutter--scaled .g-span4 {
488
+ -ms-flex-preferred-size: 32% !important;
489
+ flex-basis: 32% !important;
490
+ max-width: 32%;
491
+ margin-left: 2%; }
492
+ .no-flexbox .g-span4 {
493
+ width: 33.33333% !important; }
494
+
495
+ .g-offset4 {
496
+ margin-left: 33.33333% !important; }
497
+
498
+ .g-span5 {
499
+ -ms-flex-preferred-size: 41.66667% !important;
500
+ flex-basis: 41.66667% !important;
501
+ -webkit-box-flex: 0;
502
+ -ms-flex-positive: 0;
503
+ flex-grow: 0;
504
+ max-width: 41.66667% !important; }
505
+ .g-span5.g-holdWidth {
506
+ min-width: 416.66667px; }
507
+ .g--gutter--scaled .g-span5.g-holdWidth {
508
+ min-width: 396.66667px; }
509
+ .g--gutter--scaled .g-span5 {
510
+ -ms-flex-preferred-size: 40.5% !important;
511
+ flex-basis: 40.5% !important;
512
+ max-width: 40.5%;
513
+ margin-left: 2%; }
514
+ .no-flexbox .g-span5 {
515
+ width: 41.66667% !important; }
516
+
517
+ .g-offset5 {
518
+ margin-left: 41.66667% !important; }
519
+
520
+ .g-span6 {
521
+ -ms-flex-preferred-size: 50% !important;
522
+ flex-basis: 50% !important;
523
+ -webkit-box-flex: 0;
524
+ -ms-flex-positive: 0;
525
+ flex-grow: 0;
526
+ max-width: 50% !important; }
527
+ .g-span6.g-holdWidth {
528
+ min-width: 500px; }
529
+ .g--gutter--scaled .g-span6.g-holdWidth {
530
+ min-width: 480px; }
531
+ .g--gutter--scaled .g-span6 {
532
+ -ms-flex-preferred-size: 49% !important;
533
+ flex-basis: 49% !important;
534
+ max-width: 49%;
535
+ margin-left: 2%; }
536
+ .no-flexbox .g-span6 {
537
+ width: 50% !important; }
538
+
539
+ .g-offset6 {
540
+ margin-left: 50% !important; }
541
+
542
+ .g-span7 {
543
+ -ms-flex-preferred-size: 58.33333% !important;
544
+ flex-basis: 58.33333% !important;
545
+ -webkit-box-flex: 0;
546
+ -ms-flex-positive: 0;
547
+ flex-grow: 0;
548
+ max-width: 58.33333% !important; }
549
+ .g-span7.g-holdWidth {
550
+ min-width: 583.33333px; }
551
+ .g--gutter--scaled .g-span7.g-holdWidth {
552
+ min-width: 563.33333px; }
553
+ .g--gutter--scaled .g-span7 {
554
+ -ms-flex-preferred-size: 57.5% !important;
555
+ flex-basis: 57.5% !important;
556
+ max-width: 57.5%;
557
+ margin-left: 2%; }
558
+ .no-flexbox .g-span7 {
559
+ width: 58.33333% !important; }
560
+
561
+ .g-offset7 {
562
+ margin-left: 58.33333% !important; }
563
+
564
+ .g-span8 {
565
+ -ms-flex-preferred-size: 66.66667% !important;
566
+ flex-basis: 66.66667% !important;
567
+ -webkit-box-flex: 0;
568
+ -ms-flex-positive: 0;
569
+ flex-grow: 0;
570
+ max-width: 66.66667% !important; }
571
+ .g-span8.g-holdWidth {
572
+ min-width: 666.66667px; }
573
+ .g--gutter--scaled .g-span8.g-holdWidth {
574
+ min-width: 646.66667px; }
575
+ .g--gutter--scaled .g-span8 {
576
+ -ms-flex-preferred-size: 66% !important;
577
+ flex-basis: 66% !important;
578
+ max-width: 66%;
579
+ margin-left: 2%; }
580
+ .no-flexbox .g-span8 {
581
+ width: 66.66667% !important; }
582
+
583
+ .g-offset8 {
584
+ margin-left: 66.66667% !important; }
585
+
586
+ .g-span9 {
587
+ -ms-flex-preferred-size: 75% !important;
588
+ flex-basis: 75% !important;
589
+ -webkit-box-flex: 0;
590
+ -ms-flex-positive: 0;
591
+ flex-grow: 0;
592
+ max-width: 75% !important; }
593
+ .g-span9.g-holdWidth {
594
+ min-width: 750px; }
595
+ .g--gutter--scaled .g-span9.g-holdWidth {
596
+ min-width: 730px; }
597
+ .g--gutter--scaled .g-span9 {
598
+ -ms-flex-preferred-size: 74.5% !important;
599
+ flex-basis: 74.5% !important;
600
+ max-width: 74.5%;
601
+ margin-left: 2%; }
602
+ .no-flexbox .g-span9 {
603
+ width: 75% !important; }
604
+
605
+ .g-offset9 {
606
+ margin-left: 75% !important; }
607
+
608
+ .g-span10 {
609
+ -ms-flex-preferred-size: 83.33333% !important;
610
+ flex-basis: 83.33333% !important;
611
+ -webkit-box-flex: 0;
612
+ -ms-flex-positive: 0;
613
+ flex-grow: 0;
614
+ max-width: 83.33333% !important; }
615
+ .g-span10.g-holdWidth {
616
+ min-width: 833.33333px; }
617
+ .g--gutter--scaled .g-span10.g-holdWidth {
618
+ min-width: 813.33333px; }
619
+ .g--gutter--scaled .g-span10 {
620
+ -ms-flex-preferred-size: 83% !important;
621
+ flex-basis: 83% !important;
622
+ max-width: 83%;
623
+ margin-left: 2%; }
624
+ .no-flexbox .g-span10 {
625
+ width: 83.33333% !important; }
626
+
627
+ .g-offset10 {
628
+ margin-left: 83.33333% !important; }
629
+
630
+ .g-span11 {
631
+ -ms-flex-preferred-size: 91.66667% !important;
632
+ flex-basis: 91.66667% !important;
633
+ -webkit-box-flex: 0;
634
+ -ms-flex-positive: 0;
635
+ flex-grow: 0;
636
+ max-width: 91.66667% !important; }
637
+ .g-span11.g-holdWidth {
638
+ min-width: 916.66667px; }
639
+ .g--gutter--scaled .g-span11.g-holdWidth {
640
+ min-width: 896.66667px; }
641
+ .g--gutter--scaled .g-span11 {
642
+ -ms-flex-preferred-size: 91.5% !important;
643
+ flex-basis: 91.5% !important;
644
+ max-width: 91.5%;
645
+ margin-left: 2%; }
646
+ .no-flexbox .g-span11 {
647
+ width: 91.66667% !important; }
648
+
649
+ .g-offset11 {
650
+ margin-left: 91.66667% !important; }
651
+
652
+ .g-span12 {
653
+ -ms-flex-preferred-size: 100% !important;
654
+ flex-basis: 100% !important;
655
+ -webkit-box-flex: 0;
656
+ -ms-flex-positive: 0;
657
+ flex-grow: 0;
658
+ max-width: 100% !important; }
659
+ .g-span12.g-holdWidth {
660
+ min-width: 1000px; }
661
+ .g--gutter--scaled .g-span12.g-holdWidth {
662
+ min-width: 980px; }
663
+ .g--gutter--scaled .g-span12 {
664
+ -ms-flex-preferred-size: 100% !important;
665
+ flex-basis: 100% !important;
666
+ max-width: 100%;
667
+ margin-left: 0; }
668
+ .no-flexbox .g-span12 {
669
+ width: 100% !important; }
670
+
671
+ @media (min-width: 400px) {
672
+ .g-span1--narrow {
673
+ -ms-flex-preferred-size: 8.33333% !important;
674
+ flex-basis: 8.33333% !important;
675
+ -webkit-box-flex: 0;
676
+ -ms-flex-positive: 0;
677
+ flex-grow: 0;
678
+ max-width: 8.33333% !important; }
679
+ .g-span1--narrow.g-holdWidth--narrow {
680
+ min-width: 83.33333px; }
681
+ .g--gutter--scaled .g-span1--narrow.g-holdWidth--narrow {
682
+ min-width: 63.33333px; }
683
+ .g--gutter--scaled .g-span1--narrow {
684
+ -ms-flex-preferred-size: 6.5% !important;
685
+ flex-basis: 6.5% !important;
686
+ max-width: 6.5%;
687
+ margin-left: 2%; }
688
+ .no-flexbox .g-span1--narrow {
689
+ width: 8.33333% !important; }
690
+ .g-offset1--narrow {
691
+ margin-left: 8.33333% !important; }
692
+ .g-span2--narrow {
693
+ -ms-flex-preferred-size: 16.66667% !important;
694
+ flex-basis: 16.66667% !important;
695
+ -webkit-box-flex: 0;
696
+ -ms-flex-positive: 0;
697
+ flex-grow: 0;
698
+ max-width: 16.66667% !important; }
699
+ .g-span2--narrow.g-holdWidth--narrow {
700
+ min-width: 166.66667px; }
701
+ .g--gutter--scaled .g-span2--narrow.g-holdWidth--narrow {
702
+ min-width: 146.66667px; }
703
+ .g--gutter--scaled .g-span2--narrow {
704
+ -ms-flex-preferred-size: 15% !important;
705
+ flex-basis: 15% !important;
706
+ max-width: 15%;
707
+ margin-left: 2%; }
708
+ .no-flexbox .g-span2--narrow {
709
+ width: 16.66667% !important; }
710
+ .g-offset2--narrow {
711
+ margin-left: 16.66667% !important; }
712
+ .g-span3--narrow {
713
+ -ms-flex-preferred-size: 25% !important;
714
+ flex-basis: 25% !important;
715
+ -webkit-box-flex: 0;
716
+ -ms-flex-positive: 0;
717
+ flex-grow: 0;
718
+ max-width: 25% !important; }
719
+ .g-span3--narrow.g-holdWidth--narrow {
720
+ min-width: 250px; }
721
+ .g--gutter--scaled .g-span3--narrow.g-holdWidth--narrow {
722
+ min-width: 230px; }
723
+ .g--gutter--scaled .g-span3--narrow {
724
+ -ms-flex-preferred-size: 23.5% !important;
725
+ flex-basis: 23.5% !important;
726
+ max-width: 23.5%;
727
+ margin-left: 2%; }
728
+ .no-flexbox .g-span3--narrow {
729
+ width: 25% !important; }
730
+ .g-offset3--narrow {
731
+ margin-left: 25% !important; }
732
+ .g-span4--narrow {
733
+ -ms-flex-preferred-size: 33.33333% !important;
734
+ flex-basis: 33.33333% !important;
735
+ -webkit-box-flex: 0;
736
+ -ms-flex-positive: 0;
737
+ flex-grow: 0;
738
+ max-width: 33.33333% !important; }
739
+ .g-span4--narrow.g-holdWidth--narrow {
740
+ min-width: 333.33333px; }
741
+ .g--gutter--scaled .g-span4--narrow.g-holdWidth--narrow {
742
+ min-width: 313.33333px; }
743
+ .g--gutter--scaled .g-span4--narrow {
744
+ -ms-flex-preferred-size: 32% !important;
745
+ flex-basis: 32% !important;
746
+ max-width: 32%;
747
+ margin-left: 2%; }
748
+ .no-flexbox .g-span4--narrow {
749
+ width: 33.33333% !important; }
750
+ .g-offset4--narrow {
751
+ margin-left: 33.33333% !important; }
752
+ .g-span5--narrow {
753
+ -ms-flex-preferred-size: 41.66667% !important;
754
+ flex-basis: 41.66667% !important;
755
+ -webkit-box-flex: 0;
756
+ -ms-flex-positive: 0;
757
+ flex-grow: 0;
758
+ max-width: 41.66667% !important; }
759
+ .g-span5--narrow.g-holdWidth--narrow {
760
+ min-width: 416.66667px; }
761
+ .g--gutter--scaled .g-span5--narrow.g-holdWidth--narrow {
762
+ min-width: 396.66667px; }
763
+ .g--gutter--scaled .g-span5--narrow {
764
+ -ms-flex-preferred-size: 40.5% !important;
765
+ flex-basis: 40.5% !important;
766
+ max-width: 40.5%;
767
+ margin-left: 2%; }
768
+ .no-flexbox .g-span5--narrow {
769
+ width: 41.66667% !important; }
770
+ .g-offset5--narrow {
771
+ margin-left: 41.66667% !important; }
772
+ .g-span6--narrow {
773
+ -ms-flex-preferred-size: 50% !important;
774
+ flex-basis: 50% !important;
775
+ -webkit-box-flex: 0;
776
+ -ms-flex-positive: 0;
777
+ flex-grow: 0;
778
+ max-width: 50% !important; }
779
+ .g-span6--narrow.g-holdWidth--narrow {
780
+ min-width: 500px; }
781
+ .g--gutter--scaled .g-span6--narrow.g-holdWidth--narrow {
782
+ min-width: 480px; }
783
+ .g--gutter--scaled .g-span6--narrow {
784
+ -ms-flex-preferred-size: 49% !important;
785
+ flex-basis: 49% !important;
786
+ max-width: 49%;
787
+ margin-left: 2%; }
788
+ .no-flexbox .g-span6--narrow {
789
+ width: 50% !important; }
790
+ .g-offset6--narrow {
791
+ margin-left: 50% !important; }
792
+ .g-span7--narrow {
793
+ -ms-flex-preferred-size: 58.33333% !important;
794
+ flex-basis: 58.33333% !important;
795
+ -webkit-box-flex: 0;
796
+ -ms-flex-positive: 0;
797
+ flex-grow: 0;
798
+ max-width: 58.33333% !important; }
799
+ .g-span7--narrow.g-holdWidth--narrow {
800
+ min-width: 583.33333px; }
801
+ .g--gutter--scaled .g-span7--narrow.g-holdWidth--narrow {
802
+ min-width: 563.33333px; }
803
+ .g--gutter--scaled .g-span7--narrow {
804
+ -ms-flex-preferred-size: 57.5% !important;
805
+ flex-basis: 57.5% !important;
806
+ max-width: 57.5%;
807
+ margin-left: 2%; }
808
+ .no-flexbox .g-span7--narrow {
809
+ width: 58.33333% !important; }
810
+ .g-offset7--narrow {
811
+ margin-left: 58.33333% !important; }
812
+ .g-span8--narrow {
813
+ -ms-flex-preferred-size: 66.66667% !important;
814
+ flex-basis: 66.66667% !important;
815
+ -webkit-box-flex: 0;
816
+ -ms-flex-positive: 0;
817
+ flex-grow: 0;
818
+ max-width: 66.66667% !important; }
819
+ .g-span8--narrow.g-holdWidth--narrow {
820
+ min-width: 666.66667px; }
821
+ .g--gutter--scaled .g-span8--narrow.g-holdWidth--narrow {
822
+ min-width: 646.66667px; }
823
+ .g--gutter--scaled .g-span8--narrow {
824
+ -ms-flex-preferred-size: 66% !important;
825
+ flex-basis: 66% !important;
826
+ max-width: 66%;
827
+ margin-left: 2%; }
828
+ .no-flexbox .g-span8--narrow {
829
+ width: 66.66667% !important; }
830
+ .g-offset8--narrow {
831
+ margin-left: 66.66667% !important; }
832
+ .g-span9--narrow {
833
+ -ms-flex-preferred-size: 75% !important;
834
+ flex-basis: 75% !important;
835
+ -webkit-box-flex: 0;
836
+ -ms-flex-positive: 0;
837
+ flex-grow: 0;
838
+ max-width: 75% !important; }
839
+ .g-span9--narrow.g-holdWidth--narrow {
840
+ min-width: 750px; }
841
+ .g--gutter--scaled .g-span9--narrow.g-holdWidth--narrow {
842
+ min-width: 730px; }
843
+ .g--gutter--scaled .g-span9--narrow {
844
+ -ms-flex-preferred-size: 74.5% !important;
845
+ flex-basis: 74.5% !important;
846
+ max-width: 74.5%;
847
+ margin-left: 2%; }
848
+ .no-flexbox .g-span9--narrow {
849
+ width: 75% !important; }
850
+ .g-offset9--narrow {
851
+ margin-left: 75% !important; }
852
+ .g-span10--narrow {
853
+ -ms-flex-preferred-size: 83.33333% !important;
854
+ flex-basis: 83.33333% !important;
855
+ -webkit-box-flex: 0;
856
+ -ms-flex-positive: 0;
857
+ flex-grow: 0;
858
+ max-width: 83.33333% !important; }
859
+ .g-span10--narrow.g-holdWidth--narrow {
860
+ min-width: 833.33333px; }
861
+ .g--gutter--scaled .g-span10--narrow.g-holdWidth--narrow {
862
+ min-width: 813.33333px; }
863
+ .g--gutter--scaled .g-span10--narrow {
864
+ -ms-flex-preferred-size: 83% !important;
865
+ flex-basis: 83% !important;
866
+ max-width: 83%;
867
+ margin-left: 2%; }
868
+ .no-flexbox .g-span10--narrow {
869
+ width: 83.33333% !important; }
870
+ .g-offset10--narrow {
871
+ margin-left: 83.33333% !important; }
872
+ .g-span11--narrow {
873
+ -ms-flex-preferred-size: 91.66667% !important;
874
+ flex-basis: 91.66667% !important;
875
+ -webkit-box-flex: 0;
876
+ -ms-flex-positive: 0;
877
+ flex-grow: 0;
878
+ max-width: 91.66667% !important; }
879
+ .g-span11--narrow.g-holdWidth--narrow {
880
+ min-width: 916.66667px; }
881
+ .g--gutter--scaled .g-span11--narrow.g-holdWidth--narrow {
882
+ min-width: 896.66667px; }
883
+ .g--gutter--scaled .g-span11--narrow {
884
+ -ms-flex-preferred-size: 91.5% !important;
885
+ flex-basis: 91.5% !important;
886
+ max-width: 91.5%;
887
+ margin-left: 2%; }
888
+ .no-flexbox .g-span11--narrow {
889
+ width: 91.66667% !important; }
890
+ .g-offset11--narrow {
891
+ margin-left: 91.66667% !important; }
892
+ .g-span12--narrow {
893
+ -ms-flex-preferred-size: 100% !important;
894
+ flex-basis: 100% !important;
895
+ -webkit-box-flex: 0;
896
+ -ms-flex-positive: 0;
897
+ flex-grow: 0;
898
+ max-width: 100% !important; }
899
+ .g-span12--narrow.g-holdWidth--narrow {
900
+ min-width: 1000px; }
901
+ .g--gutter--scaled .g-span12--narrow.g-holdWidth--narrow {
902
+ min-width: 980px; }
903
+ .g--gutter--scaled .g-span12--narrow {
904
+ -ms-flex-preferred-size: 100% !important;
905
+ flex-basis: 100% !important;
906
+ max-width: 100%;
907
+ margin-left: 0; }
908
+ .no-flexbox .g-span12--narrow {
909
+ width: 100% !important; } }
910
+
911
+ @media (min-width: 750px) {
912
+ .g-span1--mid {
913
+ -ms-flex-preferred-size: 8.33333% !important;
914
+ flex-basis: 8.33333% !important;
915
+ -webkit-box-flex: 0;
916
+ -ms-flex-positive: 0;
917
+ flex-grow: 0;
918
+ max-width: 8.33333% !important; }
919
+ .g-span1--mid.g-holdWidth--mid {
920
+ min-width: 83.33333px; }
921
+ .g--gutter--scaled .g-span1--mid.g-holdWidth--mid {
922
+ min-width: 63.33333px; }
923
+ .g--gutter--scaled .g-span1--mid {
924
+ -ms-flex-preferred-size: 6.5% !important;
925
+ flex-basis: 6.5% !important;
926
+ max-width: 6.5%;
927
+ margin-left: 2%; }
928
+ .no-flexbox .g-span1--mid {
929
+ width: 8.33333% !important; }
930
+ .g-offset1--mid {
931
+ margin-left: 8.33333% !important; }
932
+ .g-span2--mid {
933
+ -ms-flex-preferred-size: 16.66667% !important;
934
+ flex-basis: 16.66667% !important;
935
+ -webkit-box-flex: 0;
936
+ -ms-flex-positive: 0;
937
+ flex-grow: 0;
938
+ max-width: 16.66667% !important; }
939
+ .g-span2--mid.g-holdWidth--mid {
940
+ min-width: 166.66667px; }
941
+ .g--gutter--scaled .g-span2--mid.g-holdWidth--mid {
942
+ min-width: 146.66667px; }
943
+ .g--gutter--scaled .g-span2--mid {
944
+ -ms-flex-preferred-size: 15% !important;
945
+ flex-basis: 15% !important;
946
+ max-width: 15%;
947
+ margin-left: 2%; }
948
+ .no-flexbox .g-span2--mid {
949
+ width: 16.66667% !important; }
950
+ .g-offset2--mid {
951
+ margin-left: 16.66667% !important; }
952
+ .g-span3--mid {
953
+ -ms-flex-preferred-size: 25% !important;
954
+ flex-basis: 25% !important;
955
+ -webkit-box-flex: 0;
956
+ -ms-flex-positive: 0;
957
+ flex-grow: 0;
958
+ max-width: 25% !important; }
959
+ .g-span3--mid.g-holdWidth--mid {
960
+ min-width: 250px; }
961
+ .g--gutter--scaled .g-span3--mid.g-holdWidth--mid {
962
+ min-width: 230px; }
963
+ .g--gutter--scaled .g-span3--mid {
964
+ -ms-flex-preferred-size: 23.5% !important;
965
+ flex-basis: 23.5% !important;
966
+ max-width: 23.5%;
967
+ margin-left: 2%; }
968
+ .no-flexbox .g-span3--mid {
969
+ width: 25% !important; }
970
+ .g-offset3--mid {
971
+ margin-left: 25% !important; }
972
+ .g-span4--mid {
973
+ -ms-flex-preferred-size: 33.33333% !important;
974
+ flex-basis: 33.33333% !important;
975
+ -webkit-box-flex: 0;
976
+ -ms-flex-positive: 0;
977
+ flex-grow: 0;
978
+ max-width: 33.33333% !important; }
979
+ .g-span4--mid.g-holdWidth--mid {
980
+ min-width: 333.33333px; }
981
+ .g--gutter--scaled .g-span4--mid.g-holdWidth--mid {
982
+ min-width: 313.33333px; }
983
+ .g--gutter--scaled .g-span4--mid {
984
+ -ms-flex-preferred-size: 32% !important;
985
+ flex-basis: 32% !important;
986
+ max-width: 32%;
987
+ margin-left: 2%; }
988
+ .no-flexbox .g-span4--mid {
989
+ width: 33.33333% !important; }
990
+ .g-offset4--mid {
991
+ margin-left: 33.33333% !important; }
992
+ .g-span5--mid {
993
+ -ms-flex-preferred-size: 41.66667% !important;
994
+ flex-basis: 41.66667% !important;
995
+ -webkit-box-flex: 0;
996
+ -ms-flex-positive: 0;
997
+ flex-grow: 0;
998
+ max-width: 41.66667% !important; }
999
+ .g-span5--mid.g-holdWidth--mid {
1000
+ min-width: 416.66667px; }
1001
+ .g--gutter--scaled .g-span5--mid.g-holdWidth--mid {
1002
+ min-width: 396.66667px; }
1003
+ .g--gutter--scaled .g-span5--mid {
1004
+ -ms-flex-preferred-size: 40.5% !important;
1005
+ flex-basis: 40.5% !important;
1006
+ max-width: 40.5%;
1007
+ margin-left: 2%; }
1008
+ .no-flexbox .g-span5--mid {
1009
+ width: 41.66667% !important; }
1010
+ .g-offset5--mid {
1011
+ margin-left: 41.66667% !important; }
1012
+ .g-span6--mid {
1013
+ -ms-flex-preferred-size: 50% !important;
1014
+ flex-basis: 50% !important;
1015
+ -webkit-box-flex: 0;
1016
+ -ms-flex-positive: 0;
1017
+ flex-grow: 0;
1018
+ max-width: 50% !important; }
1019
+ .g-span6--mid.g-holdWidth--mid {
1020
+ min-width: 500px; }
1021
+ .g--gutter--scaled .g-span6--mid.g-holdWidth--mid {
1022
+ min-width: 480px; }
1023
+ .g--gutter--scaled .g-span6--mid {
1024
+ -ms-flex-preferred-size: 49% !important;
1025
+ flex-basis: 49% !important;
1026
+ max-width: 49%;
1027
+ margin-left: 2%; }
1028
+ .no-flexbox .g-span6--mid {
1029
+ width: 50% !important; }
1030
+ .g-offset6--mid {
1031
+ margin-left: 50% !important; }
1032
+ .g-span7--mid {
1033
+ -ms-flex-preferred-size: 58.33333% !important;
1034
+ flex-basis: 58.33333% !important;
1035
+ -webkit-box-flex: 0;
1036
+ -ms-flex-positive: 0;
1037
+ flex-grow: 0;
1038
+ max-width: 58.33333% !important; }
1039
+ .g-span7--mid.g-holdWidth--mid {
1040
+ min-width: 583.33333px; }
1041
+ .g--gutter--scaled .g-span7--mid.g-holdWidth--mid {
1042
+ min-width: 563.33333px; }
1043
+ .g--gutter--scaled .g-span7--mid {
1044
+ -ms-flex-preferred-size: 57.5% !important;
1045
+ flex-basis: 57.5% !important;
1046
+ max-width: 57.5%;
1047
+ margin-left: 2%; }
1048
+ .no-flexbox .g-span7--mid {
1049
+ width: 58.33333% !important; }
1050
+ .g-offset7--mid {
1051
+ margin-left: 58.33333% !important; }
1052
+ .g-span8--mid {
1053
+ -ms-flex-preferred-size: 66.66667% !important;
1054
+ flex-basis: 66.66667% !important;
1055
+ -webkit-box-flex: 0;
1056
+ -ms-flex-positive: 0;
1057
+ flex-grow: 0;
1058
+ max-width: 66.66667% !important; }
1059
+ .g-span8--mid.g-holdWidth--mid {
1060
+ min-width: 666.66667px; }
1061
+ .g--gutter--scaled .g-span8--mid.g-holdWidth--mid {
1062
+ min-width: 646.66667px; }
1063
+ .g--gutter--scaled .g-span8--mid {
1064
+ -ms-flex-preferred-size: 66% !important;
1065
+ flex-basis: 66% !important;
1066
+ max-width: 66%;
1067
+ margin-left: 2%; }
1068
+ .no-flexbox .g-span8--mid {
1069
+ width: 66.66667% !important; }
1070
+ .g-offset8--mid {
1071
+ margin-left: 66.66667% !important; }
1072
+ .g-span9--mid {
1073
+ -ms-flex-preferred-size: 75% !important;
1074
+ flex-basis: 75% !important;
1075
+ -webkit-box-flex: 0;
1076
+ -ms-flex-positive: 0;
1077
+ flex-grow: 0;
1078
+ max-width: 75% !important; }
1079
+ .g-span9--mid.g-holdWidth--mid {
1080
+ min-width: 750px; }
1081
+ .g--gutter--scaled .g-span9--mid.g-holdWidth--mid {
1082
+ min-width: 730px; }
1083
+ .g--gutter--scaled .g-span9--mid {
1084
+ -ms-flex-preferred-size: 74.5% !important;
1085
+ flex-basis: 74.5% !important;
1086
+ max-width: 74.5%;
1087
+ margin-left: 2%; }
1088
+ .no-flexbox .g-span9--mid {
1089
+ width: 75% !important; }
1090
+ .g-offset9--mid {
1091
+ margin-left: 75% !important; }
1092
+ .g-span10--mid {
1093
+ -ms-flex-preferred-size: 83.33333% !important;
1094
+ flex-basis: 83.33333% !important;
1095
+ -webkit-box-flex: 0;
1096
+ -ms-flex-positive: 0;
1097
+ flex-grow: 0;
1098
+ max-width: 83.33333% !important; }
1099
+ .g-span10--mid.g-holdWidth--mid {
1100
+ min-width: 833.33333px; }
1101
+ .g--gutter--scaled .g-span10--mid.g-holdWidth--mid {
1102
+ min-width: 813.33333px; }
1103
+ .g--gutter--scaled .g-span10--mid {
1104
+ -ms-flex-preferred-size: 83% !important;
1105
+ flex-basis: 83% !important;
1106
+ max-width: 83%;
1107
+ margin-left: 2%; }
1108
+ .no-flexbox .g-span10--mid {
1109
+ width: 83.33333% !important; }
1110
+ .g-offset10--mid {
1111
+ margin-left: 83.33333% !important; }
1112
+ .g-span11--mid {
1113
+ -ms-flex-preferred-size: 91.66667% !important;
1114
+ flex-basis: 91.66667% !important;
1115
+ -webkit-box-flex: 0;
1116
+ -ms-flex-positive: 0;
1117
+ flex-grow: 0;
1118
+ max-width: 91.66667% !important; }
1119
+ .g-span11--mid.g-holdWidth--mid {
1120
+ min-width: 916.66667px; }
1121
+ .g--gutter--scaled .g-span11--mid.g-holdWidth--mid {
1122
+ min-width: 896.66667px; }
1123
+ .g--gutter--scaled .g-span11--mid {
1124
+ -ms-flex-preferred-size: 91.5% !important;
1125
+ flex-basis: 91.5% !important;
1126
+ max-width: 91.5%;
1127
+ margin-left: 2%; }
1128
+ .no-flexbox .g-span11--mid {
1129
+ width: 91.66667% !important; }
1130
+ .g-offset11--mid {
1131
+ margin-left: 91.66667% !important; }
1132
+ .g-span12--mid {
1133
+ -ms-flex-preferred-size: 100% !important;
1134
+ flex-basis: 100% !important;
1135
+ -webkit-box-flex: 0;
1136
+ -ms-flex-positive: 0;
1137
+ flex-grow: 0;
1138
+ max-width: 100% !important; }
1139
+ .g-span12--mid.g-holdWidth--mid {
1140
+ min-width: 1000px; }
1141
+ .g--gutter--scaled .g-span12--mid.g-holdWidth--mid {
1142
+ min-width: 980px; }
1143
+ .g--gutter--scaled .g-span12--mid {
1144
+ -ms-flex-preferred-size: 100% !important;
1145
+ flex-basis: 100% !important;
1146
+ max-width: 100%;
1147
+ margin-left: 0; }
1148
+ .no-flexbox .g-span12--mid {
1149
+ width: 100% !important; } }
1150
+
1151
+ @media (min-width: 1000px) {
1152
+ .g-span1--wide {
1153
+ -ms-flex-preferred-size: 8.33333% !important;
1154
+ flex-basis: 8.33333% !important;
1155
+ -webkit-box-flex: 0;
1156
+ -ms-flex-positive: 0;
1157
+ flex-grow: 0;
1158
+ max-width: 8.33333% !important; }
1159
+ .g-span1--wide.g-holdWidth--wide {
1160
+ min-width: 83.33333px; }
1161
+ .g--gutter--scaled .g-span1--wide.g-holdWidth--wide {
1162
+ min-width: 63.33333px; }
1163
+ .g--gutter--scaled .g-span1--wide {
1164
+ -ms-flex-preferred-size: 6.5% !important;
1165
+ flex-basis: 6.5% !important;
1166
+ max-width: 6.5%;
1167
+ margin-left: 2%; }
1168
+ .no-flexbox .g-span1--wide {
1169
+ width: 8.33333% !important; }
1170
+ .g-offset1--wide {
1171
+ margin-left: 8.33333% !important; }
1172
+ .g-span2--wide {
1173
+ -ms-flex-preferred-size: 16.66667% !important;
1174
+ flex-basis: 16.66667% !important;
1175
+ -webkit-box-flex: 0;
1176
+ -ms-flex-positive: 0;
1177
+ flex-grow: 0;
1178
+ max-width: 16.66667% !important; }
1179
+ .g-span2--wide.g-holdWidth--wide {
1180
+ min-width: 166.66667px; }
1181
+ .g--gutter--scaled .g-span2--wide.g-holdWidth--wide {
1182
+ min-width: 146.66667px; }
1183
+ .g--gutter--scaled .g-span2--wide {
1184
+ -ms-flex-preferred-size: 15% !important;
1185
+ flex-basis: 15% !important;
1186
+ max-width: 15%;
1187
+ margin-left: 2%; }
1188
+ .no-flexbox .g-span2--wide {
1189
+ width: 16.66667% !important; }
1190
+ .g-offset2--wide {
1191
+ margin-left: 16.66667% !important; }
1192
+ .g-span3--wide {
1193
+ -ms-flex-preferred-size: 25% !important;
1194
+ flex-basis: 25% !important;
1195
+ -webkit-box-flex: 0;
1196
+ -ms-flex-positive: 0;
1197
+ flex-grow: 0;
1198
+ max-width: 25% !important; }
1199
+ .g-span3--wide.g-holdWidth--wide {
1200
+ min-width: 250px; }
1201
+ .g--gutter--scaled .g-span3--wide.g-holdWidth--wide {
1202
+ min-width: 230px; }
1203
+ .g--gutter--scaled .g-span3--wide {
1204
+ -ms-flex-preferred-size: 23.5% !important;
1205
+ flex-basis: 23.5% !important;
1206
+ max-width: 23.5%;
1207
+ margin-left: 2%; }
1208
+ .no-flexbox .g-span3--wide {
1209
+ width: 25% !important; }
1210
+ .g-offset3--wide {
1211
+ margin-left: 25% !important; }
1212
+ .g-span4--wide {
1213
+ -ms-flex-preferred-size: 33.33333% !important;
1214
+ flex-basis: 33.33333% !important;
1215
+ -webkit-box-flex: 0;
1216
+ -ms-flex-positive: 0;
1217
+ flex-grow: 0;
1218
+ max-width: 33.33333% !important; }
1219
+ .g-span4--wide.g-holdWidth--wide {
1220
+ min-width: 333.33333px; }
1221
+ .g--gutter--scaled .g-span4--wide.g-holdWidth--wide {
1222
+ min-width: 313.33333px; }
1223
+ .g--gutter--scaled .g-span4--wide {
1224
+ -ms-flex-preferred-size: 32% !important;
1225
+ flex-basis: 32% !important;
1226
+ max-width: 32%;
1227
+ margin-left: 2%; }
1228
+ .no-flexbox .g-span4--wide {
1229
+ width: 33.33333% !important; }
1230
+ .g-offset4--wide {
1231
+ margin-left: 33.33333% !important; }
1232
+ .g-span5--wide {
1233
+ -ms-flex-preferred-size: 41.66667% !important;
1234
+ flex-basis: 41.66667% !important;
1235
+ -webkit-box-flex: 0;
1236
+ -ms-flex-positive: 0;
1237
+ flex-grow: 0;
1238
+ max-width: 41.66667% !important; }
1239
+ .g-span5--wide.g-holdWidth--wide {
1240
+ min-width: 416.66667px; }
1241
+ .g--gutter--scaled .g-span5--wide.g-holdWidth--wide {
1242
+ min-width: 396.66667px; }
1243
+ .g--gutter--scaled .g-span5--wide {
1244
+ -ms-flex-preferred-size: 40.5% !important;
1245
+ flex-basis: 40.5% !important;
1246
+ max-width: 40.5%;
1247
+ margin-left: 2%; }
1248
+ .no-flexbox .g-span5--wide {
1249
+ width: 41.66667% !important; }
1250
+ .g-offset5--wide {
1251
+ margin-left: 41.66667% !important; }
1252
+ .g-span6--wide {
1253
+ -ms-flex-preferred-size: 50% !important;
1254
+ flex-basis: 50% !important;
1255
+ -webkit-box-flex: 0;
1256
+ -ms-flex-positive: 0;
1257
+ flex-grow: 0;
1258
+ max-width: 50% !important; }
1259
+ .g-span6--wide.g-holdWidth--wide {
1260
+ min-width: 500px; }
1261
+ .g--gutter--scaled .g-span6--wide.g-holdWidth--wide {
1262
+ min-width: 480px; }
1263
+ .g--gutter--scaled .g-span6--wide {
1264
+ -ms-flex-preferred-size: 49% !important;
1265
+ flex-basis: 49% !important;
1266
+ max-width: 49%;
1267
+ margin-left: 2%; }
1268
+ .no-flexbox .g-span6--wide {
1269
+ width: 50% !important; }
1270
+ .g-offset6--wide {
1271
+ margin-left: 50% !important; }
1272
+ .g-span7--wide {
1273
+ -ms-flex-preferred-size: 58.33333% !important;
1274
+ flex-basis: 58.33333% !important;
1275
+ -webkit-box-flex: 0;
1276
+ -ms-flex-positive: 0;
1277
+ flex-grow: 0;
1278
+ max-width: 58.33333% !important; }
1279
+ .g-span7--wide.g-holdWidth--wide {
1280
+ min-width: 583.33333px; }
1281
+ .g--gutter--scaled .g-span7--wide.g-holdWidth--wide {
1282
+ min-width: 563.33333px; }
1283
+ .g--gutter--scaled .g-span7--wide {
1284
+ -ms-flex-preferred-size: 57.5% !important;
1285
+ flex-basis: 57.5% !important;
1286
+ max-width: 57.5%;
1287
+ margin-left: 2%; }
1288
+ .no-flexbox .g-span7--wide {
1289
+ width: 58.33333% !important; }
1290
+ .g-offset7--wide {
1291
+ margin-left: 58.33333% !important; }
1292
+ .g-span8--wide {
1293
+ -ms-flex-preferred-size: 66.66667% !important;
1294
+ flex-basis: 66.66667% !important;
1295
+ -webkit-box-flex: 0;
1296
+ -ms-flex-positive: 0;
1297
+ flex-grow: 0;
1298
+ max-width: 66.66667% !important; }
1299
+ .g-span8--wide.g-holdWidth--wide {
1300
+ min-width: 666.66667px; }
1301
+ .g--gutter--scaled .g-span8--wide.g-holdWidth--wide {
1302
+ min-width: 646.66667px; }
1303
+ .g--gutter--scaled .g-span8--wide {
1304
+ -ms-flex-preferred-size: 66% !important;
1305
+ flex-basis: 66% !important;
1306
+ max-width: 66%;
1307
+ margin-left: 2%; }
1308
+ .no-flexbox .g-span8--wide {
1309
+ width: 66.66667% !important; }
1310
+ .g-offset8--wide {
1311
+ margin-left: 66.66667% !important; }
1312
+ .g-span9--wide {
1313
+ -ms-flex-preferred-size: 75% !important;
1314
+ flex-basis: 75% !important;
1315
+ -webkit-box-flex: 0;
1316
+ -ms-flex-positive: 0;
1317
+ flex-grow: 0;
1318
+ max-width: 75% !important; }
1319
+ .g-span9--wide.g-holdWidth--wide {
1320
+ min-width: 750px; }
1321
+ .g--gutter--scaled .g-span9--wide.g-holdWidth--wide {
1322
+ min-width: 730px; }
1323
+ .g--gutter--scaled .g-span9--wide {
1324
+ -ms-flex-preferred-size: 74.5% !important;
1325
+ flex-basis: 74.5% !important;
1326
+ max-width: 74.5%;
1327
+ margin-left: 2%; }
1328
+ .no-flexbox .g-span9--wide {
1329
+ width: 75% !important; }
1330
+ .g-offset9--wide {
1331
+ margin-left: 75% !important; }
1332
+ .g-span10--wide {
1333
+ -ms-flex-preferred-size: 83.33333% !important;
1334
+ flex-basis: 83.33333% !important;
1335
+ -webkit-box-flex: 0;
1336
+ -ms-flex-positive: 0;
1337
+ flex-grow: 0;
1338
+ max-width: 83.33333% !important; }
1339
+ .g-span10--wide.g-holdWidth--wide {
1340
+ min-width: 833.33333px; }
1341
+ .g--gutter--scaled .g-span10--wide.g-holdWidth--wide {
1342
+ min-width: 813.33333px; }
1343
+ .g--gutter--scaled .g-span10--wide {
1344
+ -ms-flex-preferred-size: 83% !important;
1345
+ flex-basis: 83% !important;
1346
+ max-width: 83%;
1347
+ margin-left: 2%; }
1348
+ .no-flexbox .g-span10--wide {
1349
+ width: 83.33333% !important; }
1350
+ .g-offset10--wide {
1351
+ margin-left: 83.33333% !important; }
1352
+ .g-span11--wide {
1353
+ -ms-flex-preferred-size: 91.66667% !important;
1354
+ flex-basis: 91.66667% !important;
1355
+ -webkit-box-flex: 0;
1356
+ -ms-flex-positive: 0;
1357
+ flex-grow: 0;
1358
+ max-width: 91.66667% !important; }
1359
+ .g-span11--wide.g-holdWidth--wide {
1360
+ min-width: 916.66667px; }
1361
+ .g--gutter--scaled .g-span11--wide.g-holdWidth--wide {
1362
+ min-width: 896.66667px; }
1363
+ .g--gutter--scaled .g-span11--wide {
1364
+ -ms-flex-preferred-size: 91.5% !important;
1365
+ flex-basis: 91.5% !important;
1366
+ max-width: 91.5%;
1367
+ margin-left: 2%; }
1368
+ .no-flexbox .g-span11--wide {
1369
+ width: 91.66667% !important; }
1370
+ .g-offset11--wide {
1371
+ margin-left: 91.66667% !important; }
1372
+ .g-span12--wide {
1373
+ -ms-flex-preferred-size: 100% !important;
1374
+ flex-basis: 100% !important;
1375
+ -webkit-box-flex: 0;
1376
+ -ms-flex-positive: 0;
1377
+ flex-grow: 0;
1378
+ max-width: 100% !important; }
1379
+ .g-span12--wide.g-holdWidth--wide {
1380
+ min-width: 1000px; }
1381
+ .g--gutter--scaled .g-span12--wide.g-holdWidth--wide {
1382
+ min-width: 980px; }
1383
+ .g--gutter--scaled .g-span12--wide {
1384
+ -ms-flex-preferred-size: 100% !important;
1385
+ flex-basis: 100% !important;
1386
+ max-width: 100%;
1387
+ margin-left: 0; }
1388
+ .no-flexbox .g-span12--wide {
1389
+ width: 100% !important; } }
1390
+
1391
+ @media (min-width: 1250px) {
1392
+ .g-span1--huge {
1393
+ -ms-flex-preferred-size: 8.33333% !important;
1394
+ flex-basis: 8.33333% !important;
1395
+ -webkit-box-flex: 0;
1396
+ -ms-flex-positive: 0;
1397
+ flex-grow: 0;
1398
+ max-width: 8.33333% !important; }
1399
+ .g-span1--huge.g-holdWidth--huge {
1400
+ min-width: 83.33333px; }
1401
+ .g--gutter--scaled .g-span1--huge.g-holdWidth--huge {
1402
+ min-width: 63.33333px; }
1403
+ .g--gutter--scaled .g-span1--huge {
1404
+ -ms-flex-preferred-size: 6.5% !important;
1405
+ flex-basis: 6.5% !important;
1406
+ max-width: 6.5%;
1407
+ margin-left: 2%; }
1408
+ .no-flexbox .g-span1--huge {
1409
+ width: 8.33333% !important; }
1410
+ .g-offset1--huge {
1411
+ margin-left: 8.33333% !important; }
1412
+ .g-span2--huge {
1413
+ -ms-flex-preferred-size: 16.66667% !important;
1414
+ flex-basis: 16.66667% !important;
1415
+ -webkit-box-flex: 0;
1416
+ -ms-flex-positive: 0;
1417
+ flex-grow: 0;
1418
+ max-width: 16.66667% !important; }
1419
+ .g-span2--huge.g-holdWidth--huge {
1420
+ min-width: 166.66667px; }
1421
+ .g--gutter--scaled .g-span2--huge.g-holdWidth--huge {
1422
+ min-width: 146.66667px; }
1423
+ .g--gutter--scaled .g-span2--huge {
1424
+ -ms-flex-preferred-size: 15% !important;
1425
+ flex-basis: 15% !important;
1426
+ max-width: 15%;
1427
+ margin-left: 2%; }
1428
+ .no-flexbox .g-span2--huge {
1429
+ width: 16.66667% !important; }
1430
+ .g-offset2--huge {
1431
+ margin-left: 16.66667% !important; }
1432
+ .g-span3--huge {
1433
+ -ms-flex-preferred-size: 25% !important;
1434
+ flex-basis: 25% !important;
1435
+ -webkit-box-flex: 0;
1436
+ -ms-flex-positive: 0;
1437
+ flex-grow: 0;
1438
+ max-width: 25% !important; }
1439
+ .g-span3--huge.g-holdWidth--huge {
1440
+ min-width: 250px; }
1441
+ .g--gutter--scaled .g-span3--huge.g-holdWidth--huge {
1442
+ min-width: 230px; }
1443
+ .g--gutter--scaled .g-span3--huge {
1444
+ -ms-flex-preferred-size: 23.5% !important;
1445
+ flex-basis: 23.5% !important;
1446
+ max-width: 23.5%;
1447
+ margin-left: 2%; }
1448
+ .no-flexbox .g-span3--huge {
1449
+ width: 25% !important; }
1450
+ .g-offset3--huge {
1451
+ margin-left: 25% !important; }
1452
+ .g-span4--huge {
1453
+ -ms-flex-preferred-size: 33.33333% !important;
1454
+ flex-basis: 33.33333% !important;
1455
+ -webkit-box-flex: 0;
1456
+ -ms-flex-positive: 0;
1457
+ flex-grow: 0;
1458
+ max-width: 33.33333% !important; }
1459
+ .g-span4--huge.g-holdWidth--huge {
1460
+ min-width: 333.33333px; }
1461
+ .g--gutter--scaled .g-span4--huge.g-holdWidth--huge {
1462
+ min-width: 313.33333px; }
1463
+ .g--gutter--scaled .g-span4--huge {
1464
+ -ms-flex-preferred-size: 32% !important;
1465
+ flex-basis: 32% !important;
1466
+ max-width: 32%;
1467
+ margin-left: 2%; }
1468
+ .no-flexbox .g-span4--huge {
1469
+ width: 33.33333% !important; }
1470
+ .g-offset4--huge {
1471
+ margin-left: 33.33333% !important; }
1472
+ .g-span5--huge {
1473
+ -ms-flex-preferred-size: 41.66667% !important;
1474
+ flex-basis: 41.66667% !important;
1475
+ -webkit-box-flex: 0;
1476
+ -ms-flex-positive: 0;
1477
+ flex-grow: 0;
1478
+ max-width: 41.66667% !important; }
1479
+ .g-span5--huge.g-holdWidth--huge {
1480
+ min-width: 416.66667px; }
1481
+ .g--gutter--scaled .g-span5--huge.g-holdWidth--huge {
1482
+ min-width: 396.66667px; }
1483
+ .g--gutter--scaled .g-span5--huge {
1484
+ -ms-flex-preferred-size: 40.5% !important;
1485
+ flex-basis: 40.5% !important;
1486
+ max-width: 40.5%;
1487
+ margin-left: 2%; }
1488
+ .no-flexbox .g-span5--huge {
1489
+ width: 41.66667% !important; }
1490
+ .g-offset5--huge {
1491
+ margin-left: 41.66667% !important; }
1492
+ .g-span6--huge {
1493
+ -ms-flex-preferred-size: 50% !important;
1494
+ flex-basis: 50% !important;
1495
+ -webkit-box-flex: 0;
1496
+ -ms-flex-positive: 0;
1497
+ flex-grow: 0;
1498
+ max-width: 50% !important; }
1499
+ .g-span6--huge.g-holdWidth--huge {
1500
+ min-width: 500px; }
1501
+ .g--gutter--scaled .g-span6--huge.g-holdWidth--huge {
1502
+ min-width: 480px; }
1503
+ .g--gutter--scaled .g-span6--huge {
1504
+ -ms-flex-preferred-size: 49% !important;
1505
+ flex-basis: 49% !important;
1506
+ max-width: 49%;
1507
+ margin-left: 2%; }
1508
+ .no-flexbox .g-span6--huge {
1509
+ width: 50% !important; }
1510
+ .g-offset6--huge {
1511
+ margin-left: 50% !important; }
1512
+ .g-span7--huge {
1513
+ -ms-flex-preferred-size: 58.33333% !important;
1514
+ flex-basis: 58.33333% !important;
1515
+ -webkit-box-flex: 0;
1516
+ -ms-flex-positive: 0;
1517
+ flex-grow: 0;
1518
+ max-width: 58.33333% !important; }
1519
+ .g-span7--huge.g-holdWidth--huge {
1520
+ min-width: 583.33333px; }
1521
+ .g--gutter--scaled .g-span7--huge.g-holdWidth--huge {
1522
+ min-width: 563.33333px; }
1523
+ .g--gutter--scaled .g-span7--huge {
1524
+ -ms-flex-preferred-size: 57.5% !important;
1525
+ flex-basis: 57.5% !important;
1526
+ max-width: 57.5%;
1527
+ margin-left: 2%; }
1528
+ .no-flexbox .g-span7--huge {
1529
+ width: 58.33333% !important; }
1530
+ .g-offset7--huge {
1531
+ margin-left: 58.33333% !important; }
1532
+ .g-span8--huge {
1533
+ -ms-flex-preferred-size: 66.66667% !important;
1534
+ flex-basis: 66.66667% !important;
1535
+ -webkit-box-flex: 0;
1536
+ -ms-flex-positive: 0;
1537
+ flex-grow: 0;
1538
+ max-width: 66.66667% !important; }
1539
+ .g-span8--huge.g-holdWidth--huge {
1540
+ min-width: 666.66667px; }
1541
+ .g--gutter--scaled .g-span8--huge.g-holdWidth--huge {
1542
+ min-width: 646.66667px; }
1543
+ .g--gutter--scaled .g-span8--huge {
1544
+ -ms-flex-preferred-size: 66% !important;
1545
+ flex-basis: 66% !important;
1546
+ max-width: 66%;
1547
+ margin-left: 2%; }
1548
+ .no-flexbox .g-span8--huge {
1549
+ width: 66.66667% !important; }
1550
+ .g-offset8--huge {
1551
+ margin-left: 66.66667% !important; }
1552
+ .g-span9--huge {
1553
+ -ms-flex-preferred-size: 75% !important;
1554
+ flex-basis: 75% !important;
1555
+ -webkit-box-flex: 0;
1556
+ -ms-flex-positive: 0;
1557
+ flex-grow: 0;
1558
+ max-width: 75% !important; }
1559
+ .g-span9--huge.g-holdWidth--huge {
1560
+ min-width: 750px; }
1561
+ .g--gutter--scaled .g-span9--huge.g-holdWidth--huge {
1562
+ min-width: 730px; }
1563
+ .g--gutter--scaled .g-span9--huge {
1564
+ -ms-flex-preferred-size: 74.5% !important;
1565
+ flex-basis: 74.5% !important;
1566
+ max-width: 74.5%;
1567
+ margin-left: 2%; }
1568
+ .no-flexbox .g-span9--huge {
1569
+ width: 75% !important; }
1570
+ .g-offset9--huge {
1571
+ margin-left: 75% !important; }
1572
+ .g-span10--huge {
1573
+ -ms-flex-preferred-size: 83.33333% !important;
1574
+ flex-basis: 83.33333% !important;
1575
+ -webkit-box-flex: 0;
1576
+ -ms-flex-positive: 0;
1577
+ flex-grow: 0;
1578
+ max-width: 83.33333% !important; }
1579
+ .g-span10--huge.g-holdWidth--huge {
1580
+ min-width: 833.33333px; }
1581
+ .g--gutter--scaled .g-span10--huge.g-holdWidth--huge {
1582
+ min-width: 813.33333px; }
1583
+ .g--gutter--scaled .g-span10--huge {
1584
+ -ms-flex-preferred-size: 83% !important;
1585
+ flex-basis: 83% !important;
1586
+ max-width: 83%;
1587
+ margin-left: 2%; }
1588
+ .no-flexbox .g-span10--huge {
1589
+ width: 83.33333% !important; }
1590
+ .g-offset10--huge {
1591
+ margin-left: 83.33333% !important; }
1592
+ .g-span11--huge {
1593
+ -ms-flex-preferred-size: 91.66667% !important;
1594
+ flex-basis: 91.66667% !important;
1595
+ -webkit-box-flex: 0;
1596
+ -ms-flex-positive: 0;
1597
+ flex-grow: 0;
1598
+ max-width: 91.66667% !important; }
1599
+ .g-span11--huge.g-holdWidth--huge {
1600
+ min-width: 916.66667px; }
1601
+ .g--gutter--scaled .g-span11--huge.g-holdWidth--huge {
1602
+ min-width: 896.66667px; }
1603
+ .g--gutter--scaled .g-span11--huge {
1604
+ -ms-flex-preferred-size: 91.5% !important;
1605
+ flex-basis: 91.5% !important;
1606
+ max-width: 91.5%;
1607
+ margin-left: 2%; }
1608
+ .no-flexbox .g-span11--huge {
1609
+ width: 91.66667% !important; }
1610
+ .g-offset11--huge {
1611
+ margin-left: 91.66667% !important; }
1612
+ .g-span12--huge {
1613
+ -ms-flex-preferred-size: 100% !important;
1614
+ flex-basis: 100% !important;
1615
+ -webkit-box-flex: 0;
1616
+ -ms-flex-positive: 0;
1617
+ flex-grow: 0;
1618
+ max-width: 100% !important; }
1619
+ .g-span12--huge.g-holdWidth--huge {
1620
+ min-width: 1000px; }
1621
+ .g--gutter--scaled .g-span12--huge.g-holdWidth--huge {
1622
+ min-width: 980px; }
1623
+ .g--gutter--scaled .g-span12--huge {
1624
+ -ms-flex-preferred-size: 100% !important;
1625
+ flex-basis: 100% !important;
1626
+ max-width: 100%;
1627
+ margin-left: 0; }
1628
+ .no-flexbox .g-span12--huge {
1629
+ width: 100% !important; } }
1630
+
1631
+ @media (max-width: 399px) {
1632
+ .g--stack--narrow {
1633
+ -webkit-box-orient: vertical;
1634
+ -webkit-box-direction: normal;
1635
+ -ms-flex-flow: column nowrap;
1636
+ flex-flow: column nowrap; }
1637
+ .g--stack--narrow > .g-col {
1638
+ -ms-flex-preferred-size: auto !important;
1639
+ flex-basis: auto !important;
1640
+ max-width: 100% !important;
1641
+ margin-left: 0; }
1642
+ .no-flexbox .g--stack--narrow > .g-col {
1643
+ width: 100% !important; } }
1644
+
1645
+ @media (max-width: 749px) {
1646
+ .g--stack--mid {
1647
+ -webkit-box-orient: vertical;
1648
+ -webkit-box-direction: normal;
1649
+ -ms-flex-flow: column nowrap;
1650
+ flex-flow: column nowrap; }
1651
+ .g--stack--mid > .g-col {
1652
+ -ms-flex-preferred-size: auto !important;
1653
+ flex-basis: auto !important;
1654
+ max-width: 100% !important;
1655
+ margin-left: 0; }
1656
+ .no-flexbox .g--stack--mid > .g-col {
1657
+ width: 100% !important; } }
1658
+
1659
+ @media (max-width: 999px) {
1660
+ .g--stack--wide {
1661
+ -webkit-box-orient: vertical;
1662
+ -webkit-box-direction: normal;
1663
+ -ms-flex-flow: column nowrap;
1664
+ flex-flow: column nowrap; }
1665
+ .g--stack--wide > .g-col {
1666
+ -ms-flex-preferred-size: auto !important;
1667
+ flex-basis: auto !important;
1668
+ max-width: 100% !important;
1669
+ margin-left: 0; }
1670
+ .no-flexbox .g--stack--wide > .g-col {
1671
+ width: 100% !important; } }
1672
+
1673
+ @media (max-width: 1249px) {
1674
+ .g--stack--huge {
1675
+ -webkit-box-orient: vertical;
1676
+ -webkit-box-direction: normal;
1677
+ -ms-flex-flow: column nowrap;
1678
+ flex-flow: column nowrap; }
1679
+ .g--stack--huge > .g-col {
1680
+ -ms-flex-preferred-size: auto !important;
1681
+ flex-basis: auto !important;
1682
+ max-width: 100% !important;
1683
+ margin-left: 0; }
1684
+ .no-flexbox .g--stack--huge > .g-col {
1685
+ width: 100% !important; } }
1686
+
1687
+ /**
1688
+ * Colour swatches
1689
+ */
1690
+ .sg-swatch {
1691
+ border: 1px solid rgba(0, 0, 0, 0.2);
1692
+ border-radius: 4px;
1693
+ padding: 15px;
1694
+ margin: 15px;
1695
+ text-align: center;
1696
+ -webkit-transition: all 300ms cubic-bezier(0.77, 0, 0.175, 1);
1697
+ transition: all 300ms cubic-bezier(0.77, 0, 0.175, 1);
1698
+ cursor: pointer; }
1699
+ .sg-swatch:hover {
1700
+ border-color: rgba(0, 0, 0, 0.6); }
1701
+ .sg-swatch.is-active {
1702
+ -webkit-animation: sgSwatch 500ms ease-in-out;
1703
+ animation: sgSwatch 500ms ease-in-out; }
1704
+
1705
+ @-webkit-keyframes sgSwatch {
1706
+ 50% {
1707
+ opacity: .3; } }
1708
+
1709
+ @keyframes sgSwatch {
1710
+ 50% {
1711
+ opacity: .3; } }
1712
+
1713
+ .sg-swatch-color {
1714
+ width: 50px;
1715
+ height: 50px;
1716
+ border-radius: 50%;
1717
+ display: inline-block;
1718
+ vertical-align: middle;
1719
+ margin: 0 10px; }
1720
+
1721
+ .sg-swatch-text {
1722
+ font-weight: bold;
1723
+ font-size: 3rem;
1724
+ line-height: 1;
1725
+ display: inline-block;
1726
+ vertical-align: middle;
1727
+ margin: 0 10px; }
1728
+
1729
+ .sg-swatch-var {
1730
+ width: 100%;
1731
+ font-family: Menlo, Monaco, "Courier New", monospace;
1732
+ margin-top: 15px;
1733
+ font-size: 12px;
1734
+ display: block; }
1735
+
1736
+ .sg-color-link-hover {
1737
+ background-color: #fff; }
1738
+ .sg-color-link-hover .sg-swatch-color {
1739
+ background-color: #185380; }
1740
+ .sg-color-link-hover .sg-swatch-text {
1741
+ color: #185380; }
1742
+ .sg-color-link-hover .sg-swatch-var:after {
1743
+ content: "#185380";
1744
+ display: block; }
1745
+
1746
+ .sg-color-primary {
1747
+ background-color: #fff; }
1748
+ .sg-color-primary .sg-swatch-color {
1749
+ background-color: #181830; }
1750
+ .sg-color-primary .sg-swatch-text {
1751
+ color: #181830; }
1752
+ .sg-color-primary .sg-swatch-var:after {
1753
+ content: "#181830";
1754
+ display: block; }
1755
+
1756
+ .sg-color-secondary {
1757
+ background-color: #fff; }
1758
+ .sg-color-secondary .sg-swatch-color {
1759
+ background-color: #fe7c08; }
1760
+ .sg-color-secondary .sg-swatch-text {
1761
+ color: #fe7c08; }
1762
+ .sg-color-secondary .sg-swatch-var:after {
1763
+ content: "#fe7c08";
1764
+ display: block; }
1765
+
1766
+ .sg-color-highlight {
1767
+ background-color: #fff; }
1768
+ .sg-color-highlight .sg-swatch-color {
1769
+ background-color: #288ad6; }
1770
+ .sg-color-highlight .sg-swatch-text {
1771
+ color: #288ad6; }
1772
+ .sg-color-highlight .sg-swatch-var:after {
1773
+ content: "#288ad6";
1774
+ display: block; }
1775
+
1776
+ .sg-color-text {
1777
+ background-color: #f1f1f1; }
1778
+ .sg-color-text .sg-swatch-color {
1779
+ background-color: #444; }
1780
+ .sg-color-text .sg-swatch-text {
1781
+ color: #444; }
1782
+ .sg-color-text .sg-swatch-var:after {
1783
+ content: "#444";
1784
+ display: block; }
1785
+
1786
+ .sg-color-background {
1787
+ background-color: #fff; }
1788
+ .sg-color-background .sg-swatch-color {
1789
+ background-color: #f1f1f1; }
1790
+ .sg-color-background .sg-swatch-text {
1791
+ color: #f1f1f1; }
1792
+ .sg-color-background .sg-swatch-var:after {
1793
+ content: "#f1f1f1";
1794
+ display: block; }
1795
+
1796
+ .sg-color-border {
1797
+ background-color: #fff; }
1798
+ .sg-color-border .sg-swatch-color {
1799
+ background-color: #ddd; }
1800
+ .sg-color-border .sg-swatch-text {
1801
+ color: #ddd; }
1802
+ .sg-color-border .sg-swatch-var:after {
1803
+ content: "#ddd";
1804
+ display: block; }
1805
+
1806
+ .sg-color-link {
1807
+ background-color: #fff; }
1808
+ .sg-color-link .sg-swatch-color {
1809
+ background-color: #288ad6; }
1810
+ .sg-color-link .sg-swatch-text {
1811
+ color: #288ad6; }
1812
+ .sg-color-link .sg-swatch-var:after {
1813
+ content: "#288ad6";
1814
+ display: block; }
1815
+
1816
+ /**
1817
+ * Styleguide styles
1818
+ * Where possible, prefix all classnames with .sg
1819
+ */
1820
+ body {
1821
+ background-color: #fff; }
1822
+
1823
+ /**
1824
+ * Styleguide type styles
1825
+ */
1826
+ .sg-interfaceType, .sg-sectionHeading, .sg-typeSpecimen::after {
1827
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
1828
+ font-weight: 300; }
1829
+
1830
+ .sg-interfaceType--subtle, .sg-typeSpecimen::after {
1831
+ color: #888; }
1832
+
1833
+ .sg-sectionHeading {
1834
+ color: #181830; }
1835
+
1836
+ /**
1837
+ * Styleguide navigation style
1838
+ */
1839
+ /**
1840
+ * Styleguide .page styles
1841
+ */
1842
+ .sg-page {
1843
+ overflow: hidden;
1844
+ padding: 8% 0; }
1845
+
1846
+ .sg-page--start {
1847
+ background-color: #181830;
1848
+ padding: 70px 0 60px;
1849
+ color: #fff; }
1850
+
1851
+ .sg-spacer {
1852
+ padding: 20px; }
1853
+
1854
+ .sg-footer {
1855
+ background-color: #181830;
1856
+ color: #fff;
1857
+ padding: 30px;
1858
+ margin-top: 30px;
1859
+ font-family: Menlo, Monaco, "Courier New", monospace;
1860
+ font-size: 0.6rem; }
1861
+ .sg-footer h1 {
1862
+ margin-bottom: 0.2em; }
1863
+ .sg-footer a {
1864
+ color: #fff;
1865
+ border-bottom: 2px dashed rgba(255, 255, 255, 0.3); }
1866
+ .sg-footer a:hover {
1867
+ border-bottom: 2px solid #fff; }
1868
+ .sg-footer :last-child {
1869
+ margin-bottom: 0; }
1870
+
1871
+ .sg-kickoffLogo {
1872
+ width: 200px;
1873
+ height: 60px;
1874
+ color: #fff; }
1875
+
1876
+ .sg-logo {
1877
+ padding: 1em;
1878
+ text-align: center;
1879
+ color: #181830; }
1880
+ .sg-logo--dark {
1881
+ background-color: #000;
1882
+ color: #fff; }
1883
+ .sg-logo svg {
1884
+ max-width: 100%; }
1885
+
1886
+ /**
1887
+ * Typography
1888
+ */
1889
+ .sg-type {
1890
+ margin-bottom: 1em;
1891
+ overflow-x: auto; }
1892
+
1893
+ code {
1894
+ border: 0;
1895
+ background-color: transparent;
1896
+ font-size: 0.6rem; }
1897
+
1898
+ [data-copy] {
1899
+ cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAWCAYAAAAinad/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA9xpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTYtMTItMzBUMTA6NDQ6MjJaIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxNi0xMi0zMFQxMDo1NDo0NyIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxNi0xMi0zMFQxMDo1NDo0NyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjhERUY1NzlDNkEyMTFFNkE3NUU5RDQ3RUI5OEI5RkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjhERUY1N0FDNkEyMTFFNkE3NUU5RDQ3RUI5OEI5RkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCOERFRjU3N0M2QTIxMUU2QTc1RTlENDdFQjk4QjlGQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCOERFRjU3OEM2QTIxMUU2QTc1RTlENDdFQjk4QjlGQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqrLc8cAAACNSURBVHjaYmJgYHAA4vdA/J9EjAGYgHgBEAswUAGwALE8iPH//3+SNDIyMmJ1GdUAhmEHDhxgUFRUBNuMD6OF331o2EMEYICfn/8/GZEBNpAF3WUfP35kIDUMoS5VoG2YjRo2ahgNDAPlAEa0UuD/aJgRDDOMggOI+bGVpATAQ2wuC4AaSAoAqU8ACDAAGZA8XJlAypoAAAAASUVORK5CYII=) 13 10, auto !important; }
1900
+ [data-copy]:hover, [data-copy]:active {
1901
+ opacity: 0.5; }
1902
+
1903
+ .sg-type-micro .sg-type-item {
1904
+ font-size: 0.64rem; }
1905
+ .sg-type-micro .sg-type-item::after {
1906
+ content: "Name: micro // Size: 12.8px // Use: @include ko-font-size(micro) ";
1907
+ font-size: 0.64rem;
1908
+ display: block;
1909
+ font-weight: normal;
1910
+ font-family: Menlo, Monaco, "Courier New", monospace;
1911
+ opacity: 0.6; }
1912
+
1913
+ .sg-type-smallest .sg-type-item {
1914
+ font-size: 0rem; }
1915
+ .sg-type-smallest .sg-type-item::after {
1916
+ content: "Name: smallest // Size: px // Use: @include ko-font-size(smallest) ";
1917
+ font-size: 0.64rem;
1918
+ display: block;
1919
+ font-weight: normal;
1920
+ font-family: Menlo, Monaco, "Courier New", monospace;
1921
+ opacity: 0.6; }
1922
+
1923
+ .sg-type-smaller .sg-type-item {
1924
+ font-size: 0rem; }
1925
+ .sg-type-smaller .sg-type-item::after {
1926
+ content: "Name: smaller // Size: px // Use: @include ko-font-size(smaller) ";
1927
+ font-size: 0.64rem;
1928
+ display: block;
1929
+ font-weight: normal;
1930
+ font-family: Menlo, Monaco, "Courier New", monospace;
1931
+ opacity: 0.6; }
1932
+
1933
+ .sg-type-small .sg-type-item {
1934
+ font-size: 0.8rem; }
1935
+ .sg-type-small .sg-type-item::after {
1936
+ content: "Name: small // Size: 16px // Use: @include ko-font-size(small) ";
1937
+ font-size: 0.64rem;
1938
+ display: block;
1939
+ font-weight: normal;
1940
+ font-family: Menlo, Monaco, "Courier New", monospace;
1941
+ opacity: 0.6; }
1942
+
1943
+ .sg-type-base .sg-type-item {
1944
+ font-size: 1rem; }
1945
+ .sg-type-base .sg-type-item::after {
1946
+ content: "Name: base // Size: 20px // Use: @include ko-font-size(base) ";
1947
+ font-size: 0.64rem;
1948
+ display: block;
1949
+ font-weight: normal;
1950
+ font-family: Menlo, Monaco, "Courier New", monospace;
1951
+ opacity: 0.6; }
1952
+
1953
+ .sg-type-mid .sg-type-item {
1954
+ font-size: 1.25rem; }
1955
+ .sg-type-mid .sg-type-item::after {
1956
+ content: "Name: mid // Size: 25px // Use: @include ko-font-size(mid) ";
1957
+ font-size: 0.64rem;
1958
+ display: block;
1959
+ font-weight: normal;
1960
+ font-family: Menlo, Monaco, "Courier New", monospace;
1961
+ opacity: 0.6; }
1962
+
1963
+ .sg-type-large .sg-type-item {
1964
+ font-size: 1.5625rem; }
1965
+ .sg-type-large .sg-type-item::after {
1966
+ content: "Name: large // Size: 31.25px // Use: @include ko-font-size(large) ";
1967
+ font-size: 0.64rem;
1968
+ display: block;
1969
+ font-weight: normal;
1970
+ font-family: Menlo, Monaco, "Courier New", monospace;
1971
+ opacity: 0.6; }
1972
+
1973
+ .sg-type-largest .sg-type-item {
1974
+ font-size: 0rem; }
1975
+ .sg-type-largest .sg-type-item::after {
1976
+ content: "Name: largest // Size: px // Use: @include ko-font-size(largest) ";
1977
+ font-size: 0.64rem;
1978
+ display: block;
1979
+ font-weight: normal;
1980
+ font-family: Menlo, Monaco, "Courier New", monospace;
1981
+ opacity: 0.6; }
1982
+
1983
+ .sg-type-jumbo .sg-type-item {
1984
+ font-size: 1.95312rem; }
1985
+ .sg-type-jumbo .sg-type-item::after {
1986
+ content: "Name: jumbo // Size: 39.0625px // Use: @include ko-font-size(jumbo) ";
1987
+ font-size: 0.64rem;
1988
+ display: block;
1989
+ font-weight: normal;
1990
+ font-family: Menlo, Monaco, "Courier New", monospace;
1991
+ opacity: 0.6; }
1992
+
1993
+ .sg-typeSpecimen {
1994
+ margin-bottom: 0;
1995
+ margin-top: 0;
1996
+ -ms-word-wrap: break-word;
1997
+ word-wrap: break-word; }
1998
+ .sg-typeSpecimen::after {
1999
+ display: block;
2000
+ font-size: 0.8rem;
2001
+ margin-top: 5px;
2002
+ border-top: 1px solid #ddd;
2003
+ font-weight: normal; }
2004
+
2005
+ .sg-typeSpecimen--primary {
2006
+ font-size: 1.5rem;
2007
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
2008
+
2009
+ .sg-typeSpecimen--secondary {
2010
+ font-size: 1.5rem;
2011
+ font-family: Georgia, "Times New Roman", Times, serif; }
2012
+
2013
+ .sg-typeSpecimen--giant {
2014
+ font-size: 6rem;
2015
+ line-height: 1; }
2016
+
2017
+ /**
2018
+ * Icons
2019
+ */
2020
+ .icon-sg {
2021
+ display: inline-block;
2022
+ width: 50px;
2023
+ height: 50px;
2024
+ vertical-align: middle;
2025
+ margin-right: 10px;
2026
+ margin-bottom: 10px; }
2027
+
2028
+ .sg-favicon {
2029
+ padding: 5px; }
2030
+ .sg-favicon img {
2031
+ vertical-align: middle;
2032
+ margin-right: 15px; }
2033
+
2034
+ .sg-hr {
2035
+ height: 3px;
2036
+ margin: 56px 0; }
2037
+
2038
+ .sg-hr--subtle {
2039
+ height: 3px;
2040
+ background-color: rgba(179, 179, 179, 0.4); }
2041
+
2042
+ .sg-var-item {
2043
+ color: #fe7c08;
2044
+ margin-right: 10px;
2045
+ display: inline-block; }
2046
+
2047
+ .sg-var--baseFontSize {
2048
+ line-height: 2;
2049
+ font-family: Menlo, Monaco, "Courier New", monospace;
2050
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2051
+ font-size: 0.6rem; }
2052
+ .sg-var--baseFontSize strong {
2053
+ opacity: 0.6;
2054
+ text-transform: uppercase;
2055
+ display: block;
2056
+ -webkit-user-select: none;
2057
+ -moz-user-select: none;
2058
+ -ms-user-select: none;
2059
+ user-select: none; }
2060
+ @media (min-width: 751px) {
2061
+ .sg-var--baseFontSize strong {
2062
+ width: 20%;
2063
+ display: inline-block; } }
2064
+ .sg-var--baseFontSize::after {
2065
+ content: "20"; }
2066
+
2067
+ .sg-var--leadingBase {
2068
+ line-height: 2;
2069
+ font-family: Menlo, Monaco, "Courier New", monospace;
2070
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2071
+ font-size: 0.6rem; }
2072
+ .sg-var--leadingBase strong {
2073
+ opacity: 0.6;
2074
+ text-transform: uppercase;
2075
+ display: block;
2076
+ -webkit-user-select: none;
2077
+ -moz-user-select: none;
2078
+ -ms-user-select: none;
2079
+ user-select: none; }
2080
+ @media (min-width: 751px) {
2081
+ .sg-var--leadingBase strong {
2082
+ width: 20%;
2083
+ display: inline-block; } }
2084
+ .sg-var--leadingBase::after {
2085
+ content: "1.4"; }
2086
+
2087
+ .sg-var--typeScale {
2088
+ line-height: 2;
2089
+ font-family: Menlo, Monaco, "Courier New", monospace;
2090
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2091
+ font-size: 0.6rem; }
2092
+ .sg-var--typeScale strong {
2093
+ opacity: 0.6;
2094
+ text-transform: uppercase;
2095
+ display: block;
2096
+ -webkit-user-select: none;
2097
+ -moz-user-select: none;
2098
+ -ms-user-select: none;
2099
+ user-select: none; }
2100
+ @media (min-width: 751px) {
2101
+ .sg-var--typeScale strong {
2102
+ width: 20%;
2103
+ display: inline-block; } }
2104
+ .sg-var--typeScale::after {
2105
+ content: "1.25"; }
2106
+
2107
+ .sg-var--fontFamilyMono {
2108
+ line-height: 2;
2109
+ font-family: Menlo, Monaco, "Courier New", monospace;
2110
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2111
+ font-size: 0.6rem; }
2112
+ .sg-var--fontFamilyMono strong {
2113
+ opacity: 0.6;
2114
+ text-transform: uppercase;
2115
+ display: block;
2116
+ -webkit-user-select: none;
2117
+ -moz-user-select: none;
2118
+ -ms-user-select: none;
2119
+ user-select: none; }
2120
+ @media (min-width: 751px) {
2121
+ .sg-var--fontFamilyMono strong {
2122
+ width: 20%;
2123
+ display: inline-block; } }
2124
+ .sg-var--fontFamilyMono::after {
2125
+ content: "Menlo, Monaco, Courier New, monospace"; }
2126
+
2127
+ .sg-var--fontFamilySystem {
2128
+ line-height: 2;
2129
+ font-family: Menlo, Monaco, "Courier New", monospace;
2130
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2131
+ font-size: 0.6rem; }
2132
+ .sg-var--fontFamilySystem strong {
2133
+ opacity: 0.6;
2134
+ text-transform: uppercase;
2135
+ display: block;
2136
+ -webkit-user-select: none;
2137
+ -moz-user-select: none;
2138
+ -ms-user-select: none;
2139
+ user-select: none; }
2140
+ @media (min-width: 751px) {
2141
+ .sg-var--fontFamilySystem strong {
2142
+ width: 20%;
2143
+ display: inline-block; } }
2144
+ .sg-var--fontFamilySystem::after {
2145
+ content: "-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif"; }
2146
+
2147
+ .sg-var--fontFamilySans {
2148
+ line-height: 2;
2149
+ font-family: Menlo, Monaco, "Courier New", monospace;
2150
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2151
+ font-size: 0.6rem; }
2152
+ .sg-var--fontFamilySans strong {
2153
+ opacity: 0.6;
2154
+ text-transform: uppercase;
2155
+ display: block;
2156
+ -webkit-user-select: none;
2157
+ -moz-user-select: none;
2158
+ -ms-user-select: none;
2159
+ user-select: none; }
2160
+ @media (min-width: 751px) {
2161
+ .sg-var--fontFamilySans strong {
2162
+ width: 20%;
2163
+ display: inline-block; } }
2164
+ .sg-var--fontFamilySans::after {
2165
+ content: "Helvetica Neue, Helvetica, Arial, sans-serif"; }
2166
+
2167
+ .sg-var--fontFamilySerif {
2168
+ line-height: 2;
2169
+ font-family: Menlo, Monaco, "Courier New", monospace;
2170
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2171
+ font-size: 0.6rem; }
2172
+ .sg-var--fontFamilySerif strong {
2173
+ opacity: 0.6;
2174
+ text-transform: uppercase;
2175
+ display: block;
2176
+ -webkit-user-select: none;
2177
+ -moz-user-select: none;
2178
+ -ms-user-select: none;
2179
+ user-select: none; }
2180
+ @media (min-width: 751px) {
2181
+ .sg-var--fontFamilySerif strong {
2182
+ width: 20%;
2183
+ display: inline-block; } }
2184
+ .sg-var--fontFamilySerif::after {
2185
+ content: "Georgia, Times New Roman, Times, serif"; }
2186
+
2187
+ .sg-var--breakpoints {
2188
+ line-height: 2;
2189
+ font-family: Menlo, Monaco, "Courier New", monospace;
2190
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2191
+ font-size: 0.6rem; }
2192
+ .sg-var--breakpoints strong {
2193
+ opacity: 0.6;
2194
+ text-transform: uppercase;
2195
+ display: block;
2196
+ -webkit-user-select: none;
2197
+ -moz-user-select: none;
2198
+ -ms-user-select: none;
2199
+ user-select: none; }
2200
+ @media (min-width: 751px) {
2201
+ .sg-var--breakpoints strong {
2202
+ width: 20%;
2203
+ display: inline-block; } }
2204
+ .sg-var--breakpoints::after {
2205
+ content: "(narrow: 400px, mid: 750px, wide: 1000px, huge: 1250px)"; }
2206
+
2207
+ .sg-var--layoutWidth {
2208
+ line-height: 2;
2209
+ font-family: Menlo, Monaco, "Courier New", monospace;
2210
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2211
+ font-size: 0.6rem; }
2212
+ .sg-var--layoutWidth strong {
2213
+ opacity: 0.6;
2214
+ text-transform: uppercase;
2215
+ display: block;
2216
+ -webkit-user-select: none;
2217
+ -moz-user-select: none;
2218
+ -ms-user-select: none;
2219
+ user-select: none; }
2220
+ @media (min-width: 751px) {
2221
+ .sg-var--layoutWidth strong {
2222
+ width: 20%;
2223
+ display: inline-block; } }
2224
+ .sg-var--layoutWidth::after {
2225
+ content: "1000"; }
2226
+
2227
+ .sg-var--gridColumns {
2228
+ line-height: 2;
2229
+ font-family: Menlo, Monaco, "Courier New", monospace;
2230
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2231
+ font-size: 0.6rem; }
2232
+ .sg-var--gridColumns strong {
2233
+ opacity: 0.6;
2234
+ text-transform: uppercase;
2235
+ display: block;
2236
+ -webkit-user-select: none;
2237
+ -moz-user-select: none;
2238
+ -ms-user-select: none;
2239
+ user-select: none; }
2240
+ @media (min-width: 751px) {
2241
+ .sg-var--gridColumns strong {
2242
+ width: 20%;
2243
+ display: inline-block; } }
2244
+ .sg-var--gridColumns::after {
2245
+ content: "12"; }
2246
+
2247
+ .sg-var--gridGutter {
2248
+ line-height: 2;
2249
+ font-family: Menlo, Monaco, "Courier New", monospace;
2250
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
2251
+ font-size: 0.6rem; }
2252
+ .sg-var--gridGutter strong {
2253
+ opacity: 0.6;
2254
+ text-transform: uppercase;
2255
+ display: block;
2256
+ -webkit-user-select: none;
2257
+ -moz-user-select: none;
2258
+ -ms-user-select: none;
2259
+ user-select: none; }
2260
+ @media (min-width: 751px) {
2261
+ .sg-var--gridGutter strong {
2262
+ width: 20%;
2263
+ display: inline-block; } }
2264
+ .sg-var--gridGutter::after {
2265
+ content: "20"; }
2266
+
2267
+ /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlZ3VpZGUuY3NzIiwic3R5bGVndWlkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL2Z1bmN0aW9ucy9fZ2V0LXZhbHVlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvZnVuY3Rpb25zL19tYXAtZGVlcC1nZXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9mdW5jdGlvbnMvX211bHRpcGx5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvbWl4aW5zL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX3Jlc3BvbnNpdmUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX2hpZHBpLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvbWl4aW5zL191bml0cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX3ZlcnRpY2FsLWNlbnRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fdXRpbGl0eS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fbW9kdWxlLW5hbWluZy1oZWxwZXJzLnNjc3MiLCJfY29sb3ItcGFsZXR0ZS5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtZ3JpZC5jc3Mvc2Nzcy9pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtZ3JpZC5jc3Mvc2Nzcy9fZ3JpZC12YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLWdyaWQuY3NzL3Njc3MvX2dyaWQtaGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwic3R5bGVndWlkZS9fc3dhdGNoLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOzs7R0FHRztBQ0hIOzs7Ozs7R0FNRztBQWFIOzs7Ozs7Ozs7R0FTRztBQU1IOzs7Ozs7Ozs7R0FTRztBQzNDSDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQ2hCSDs7Ozs7R0FLRztBQXNFSDs7Ozs7O0dBTUc7QUNqRkg7Ozs7Ozs7O0dBUUc7QUNSSDs7Ozs7Ozs7R0FRRztBQ1JIOzs7Ozs7O0dBT0c7QUFjSDs7OztHQUlHO0FBVUg7Ozs7R0FJRztBQVVIOzs7O0dBSUc7QUNyREg7Ozs7R0FJRztBQVdIOzs7R0FHRztBQWFIOzs7R0FHRztBQ2pDSDs7Ozs7OztHQU9HO0FBV0g7O0dBRUc7QUNyQkg7Ozs7R0FJRztBQ0pIOzs7OztHQUtHO0FDTEg7Ozs7Ozs7OztHQVNHO0FBNEZIOztHQUVHO0FDdkdIOzs7Ozs7R0FNRztBQ05IOzs7Ozs7Ozs7O0dBVUc7QUNWSDs7Ozs7Ozs7R0FRRztBQUVILG1DQUFtQztBQUVuQzs7Ozs7OztHQU9HO0FBc0NIOzs7Ozs7O0dBT0c7QUFpQkg7Ozs7OztHQU1HO0FBVUg7OztHQUdHO0FBSUg7OztHQUdHO0FBTUg7OztHQUdHO0FDcEhIOzs7Ozs7Ozs7R0FTRztBQUlILG9D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LDBCQUFpQjtPQUFqQix1QkFBaUI7UUFBakIsc0JBQWlCO1lBQWpCLGtCQUFpQixFQU1qQjtJa0I4VEU7TWxCeFVIO1FBT0UsV0FBVTtRQUNWLHNCQUFxQixFQUV0QixFQUFBO0VBRUQ7SUFDQyxjQUFrQixFQUNsQiIsImZpbGUiOiJzdHlsZWd1aWRlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxyXG4gKiBLaWNrb2ZmIFN0eWxlZ3VpZGVcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqL1xuLyoqXG4gKiBVc2FnZTpcbiAqXG4gKiBrby1nZXRWYWwoMTAwLCAkbWFwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tZ2V0VmFsKG1pZCwgJG1hcCkgLSB1c2VzIGEgU2FzcyBtYXBcbiAqIGtvLWdldFZhbCgkZm9vLCAkbWFwKSAtIHVzZXMgYSBTYXNzIHZhcmlhYmxlXG4gKi9cbi8qKlxuICogR2V0IGJyZWFrcG9pbnRzXG4gKlxuICoga28tYnAoKVxuICpcbiAqIFVzYWdlOlxuICoga28tYnAoMTAwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tYnAobWlkKSAtIHVzZXMgdGhlICRicmVha3BvaW50cyBTYXNzIG1hcFxuICoga28tYnAoJGZvbykgLSB1c2VzIGEgU2FzcyB2YXJpYWJsZVxuICovXG4vKipcbiAqIEdldCB0eXBlIHNpemVcbiAqXG4gKiBrby10eXBlKClcbiAqXG4gKiBVc2FnZTpcbiAqIGtvLXR5cGUoMTAwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tdHlwZShtaWQpIC0gdXNlcyB0aGUgJHR5cGUgU2FzcyBtYXBcbiAqIGtvLXR5cGUoJGZvbykgLSB1c2VzIGEgU2FzcyB2YXJpYWJsZVxuICovXG4vKipcbiAqIFVzYWdlOlxuICpcbiAkZ3JpZC1jb25maWd1cmF0aW9uOiAoXG4gICAnY29sdW1ucyc6IDEyLFxuICAgJ2xheW91dHMnOiAoXG4gICAgICdzbWFsbCc6IDgwMHB4LFxuICAgICAnbWVkaXVtJzogMTAwMHB4LFxuICAgICAnbGFyZ2UnOiAxMjAwcHgsXG4gICApLFxuICk7XG5cbiBkaXYge1xuICAgZm9udC1zaXplOiBrby1tYXAtZGVlcC1nZXQoJGdyaWQtY29uZmlndXJhdGlvbiwgJ2NvbHVtbnMnKTtcbiAgIHdpZHRoOiBrby1tYXAtZGVlcC1nZXQoJGdyaWQtY29uZmlndXJhdGlvbiwgJ2xheW91dHMnLCAnbWVkaXVtJyk7XG4gfVxuICovXG4vKipcbiAqIE1vZHVsYXIgc2NhbGVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVXNhZ2U6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAzLCAkdHlwZS1zY2FsZSlcbiAqIG9yIHdpdGggdGhlIHNob3J0aGFuZCB2ZXJzaW9uOiBrby1tcygzKVxuICovXG4vKipcbiAqIFNob3J0aGFuZCBtb2R1bGFyIHNjYWxlXG4gKiBVc2VzIHRoZSAkZm9udC1zaXplLWJhc2UgYW5kICR0eXBlLXNjYWxlIGZyYW1ld29yayB2YXJpYWJsZXMgc28gdGhhdCB5b3VcbiAqIG9ubHkgbmVlZCB0byBwcm92aWRlIHRoZSBzY2FsZSBpbmNyZW1lbnRcbiAqXG4gKiBlLmcuIGtvLW1zKDUpXG4gKi9cbi8qKlxuICogTXVsdGlwbHlcbiAqID09PT09PT09PT09PT09PT09XG4gKiBNdWx0aXBseSBhbnkgdmFsdWVcbiAqXG4gKiBVc2FnZTpcbiAqIGtvLW11bHRpcGx5KDE1LCAyKVxuICoga28tbXVsdGlwbHkoJGJhc2VsaW5lLCAxLjUpXG4gKi9cbi8qKlxuICogU2FzcyBNaXhpbnNcbiAqIC0gUmVzcG9uc2l2ZVxuICogLSBEaW1lbnNpb25zXG4gKiAtIFBvc2l0aW9uaW5nXG4gKiAtIFV0aWxpdHlcbiAqIC0gRm9ybXNcbiAqIC0gTW9kdWxlIE5hbWluZyBIZWxwZXJzXG4gKi9cbi8qKlxuICogUmVzcG9uc2l2ZSBtZWRpYSBxdWVyeSBtaXhpbnNcbiAqIC0gVGhlc2UgYXJlIHVzZWQgc28gdGhhdCB3ZSBjYW4gZGVmaW5lIHNlcGFyYXRlIG1lZGlhLXF1ZXJ5IGNvbnRlbnRcbiAqIC0gQXJndW1lbnRzIGNhbiB1c2U6XG4gKiAgIC0gYSBuYW1lZCBicmVha3BvaW50IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwLCBlLmcuIG1pZFxuICogICAtIGEgcGl4ZWwgdmFsdWUgZS5nLiA1MDBweFxuICogICAtIGEgdW5pdGxlc3MgdmFsdWUgdGhhdCBpcyBlcWl2YWxlbnQgdG8gYSBwaXhlbCBlLmcuIDUwMFxuICovXG4vKipcbiAqIE1pbi13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMjBlbSkgeyAuLi4gfVxuICogLSBVc2FnZTogQGluY2x1ZGUga28tcmVzcG9uZC1taW4obWlkKSB7IC4uLiB9O1xuICovXG4vKipcbiAqIE1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjBlbSkgeyAuLi4gfVxuICogLSBVc2FnZTogQGluY2x1ZGUga28tcmVzcG9uZC1tYXgobWlkKSB7IC4uLiB9O1xuICovXG4vKipcbiAqIE1pbi1tYXgtd2lkdGggbWVkaWEgcXVlcnk6XG4gKiAtIEVxdWl2YWxlbnQgdG86IEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwZW0pIGFuZCAobWF4LXdpZHRoOiAyMGVtKSB7IC4uLiB9XG4gKiAtIFVzYWdlOiBAaW5jbHVkZSBrby1yZXNwb25kLW1pbi1tYXgobmFycm93LCA2MDApIHsgLi4uIH07XG4gKi9cbi8qKlxuICogIEhpRFBJIG1peGluLlxuICogIEBpbmNsdWRlIGtvLWhpZHBpIHsgLi4uIH07XG4gKiAgRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG4gKi9cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1pbmltdW0gd2lkdGggbWVkaWEgcXVlcnlcbiAqIEBpbmNsdWRlIGtvLWhpZHBpLW1pbihicChtaWQpLCAxLjUpIHsgLi4uIH07XG4gKi9cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1heCB3aWR0aCBtZWRpYSBxdWVyeVxuICogQGluY2x1ZGUga28taGlkcGktbWF4KGJwKG1pZCksIDEuMykgeyAuLi4gfTtcbiAqL1xuLyoqXG4gKiBEaW1lbnNpb25zLWJhc2VkIG1peGluc1xuICogLSBSRU0gY2FsY3VsYXRpb25cbiAqIC0gVHlwb2dyYXBoeSBtaXhpbnMgYmFzZWQgb24gdGhlIFJFTSBtaXhpblxuICogICAtIGZvbnQtc2l6ZVxuICogICAtIGxpbmUtaGVpZ2h0XG4gKiAgIC0gZm9udC1zaXplLWVtc1xuICovXG4vKipcbiAqIFR5cG9ncmFwaHkgbWl4aW5zXG4gKi9cbi8qKlxuICoga28tcG9zaXRpb25cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUga28tcG9zaXRpb24oYWJzb2x1dGUsIDEwcHggMjBweCAzMHB4IDEwcHgpO1xuICovXG4vKipcbiAqIHZlcnRpY2FsLWNlbnRlclxuICogVmVydGljYWxseSBjZW50ZXIgYW55IGVsZW1lbnQuIE5lZWRzIHN1cHBvcnQgZm9yIENTUyB0cmFuZm9ybXMuXG4gKiBVc2FnZTpcbiAqIEBpbmNsdWRlIGtvLXZlcnRpY2FsLWNlbnRlcjtcbiAqL1xuLyoqXG4gKiBVdGlsaXR5IE1peGluc1xuICogLSBjbGVhcmZpeFxuICogLSBmb250LWZhY2VcbiAqIC1cbiAqIC0gc2l6aW5nIHNob3J0Y3V0c1xuICogICAtIHNpemVcbiAqICAgLSBzcXVhcmVcbiAqIC0gcmVzaXphYmxlXG4gKi9cbi8qKlxuICogU2l6aW5nIHNob3J0Y3V0c1xuICovXG4vKipcbiAqIGJlbWlmeSBbbW9kaWZpZWQgZm9yIEtpY2tvZmZdXG4gKiBodHRwczovL2d0aWh1Yi5jb20vZnJhbnpoZWlkbC9iZW1pZnlcbiAqIEZyYW56IEhlaWRsIDIwMTVcbiAqXG4gKiBVc2FnZTogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vbXJtYXJ0aW5lYXUvMGNkMjAxMGJmMjY1ZDcxMmJhZmJcbiAqL1xuLyoqXG4gKiBHbG9iYWwgY29sb3IgcGFsZXR0ZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIEdlbmVyaWMgY29sb3JzXG4gKiAtIENvbG9yIHNjaGVtZVxuICogLSBDb21tb24gY29sb3JzXG4gKiAtIExpbmtzXG4gKiAtIFRleHQgc2VsZWN0aW9uXG4gKiAtIDxocj5cbiAqIC0gQW55IG90aGVycy4uXG4gKi9cbi8qKlxyXG4gKiBWYXJpYWJsZXNcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIC0gVHlwb2dyYXBoeVxyXG4gKiAtIEJyZWFrcG9pbnRzXHJcbiAqIC0gUGF0aHNcclxuICogLSBMYXlvdXQgJiBHcmlkXHJcbiAqIC0gQXBwLXNwZWNpZmljXHJcbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgaW5kZW50YXRpb24gKi9cbi8qKlxyXG4gKiBUeXBvZ3JhcGh5XHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKlxyXG4gKiBCYXNlIHNpemVzOlxyXG4gKiBTZXQgdGhpcyBpbiBwaXhlbHMgKGJ1dCBkbyBub3QgYWRkIHB4KSxcclxuICogdGhlIGZvbnQtc2l6ZSBtaXhpbiB3aWxsIGNvbnZlcnQgdG8gUkVNU1xyXG4gKi9cbi8qKlxyXG4gKiBCcmVha3BvaW50c1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogVGhlcmUgYXJlIG5vIGNvbW1vbiBicmVha3BvaW50cyBzbyB0aGVzZSBhcmUganVzdCBhIHN1Z2dlc3Rpb25zXHJcbiAqIFlvdSdsbCBuZWVkIHRvIGRlZmluZSB5b3VyIG93biBicmVha3BvaW50cyB0byBzdWl0IHlvdXIgZGVzaWduXHJcbiAqIEFkZCB5b3VyIGJyZWFrcG9pbnRzIHRvIHRoaXMgU2FzcyBtYXBcclxuICogVXNlZCBpbiB0aGUgS2lja29mZiBncmlkXHJcbiAqL1xuLyoqXHJcbiAqIEdyaWRcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIFRoZXNlIHZhcmlhYmxlcyB3aWxsIGNvbnRyb2wgdGhlIGdyaWQgbW9kdWxlLlxyXG4gKlxyXG4gKiBpZiB5b3VyIHByb2plY3QgZG9lc250IHVzZSBLaWNrb2Zm4oCZcyBkZWZhdWx0IGdyaWQsIHlvdSBjYW4gZGVsZXRlIHRoZXNlXHJcbiAqL1xuLyoqXHJcbiAqIFBhdGggdmFyaWFibGVzXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKi9cbi8qKlxyXG4gKiBaLWluZGV4IHZhcmlhYmxlc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICovXG4vKipcclxuICogQXBwLXNwZWNpZmljIHZhcmlhYmxlc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICovXG4vKipcbiAqIFRoZSBLaWNrb2ZmIEZsZXhib3ggR3JpZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBEZWZhdWx0IGdyaWQgY2xhc3Nlc1xuICogR3JpZCBndXR0ZXIgb3B0aW9uc1xuICogTW9kaWZpZXIgQ2xhc3NlcyAoY29sdW1uIGhlaWdodCBhbmQgY2VsbCBhbGlnbm1lbnQpXG4gKiBMZWdhY3kgZmFsbGJhY2tzIGZvciBmbGV4Ym94XG4gKiBHcmlkIHNwYW4gY2xhc3Nlc1xuICogQnJlYWtwb2ludCBzdGFja2luZ1xuICovXG4vKiBJbXBvcnQgR3JpZCBoZWxwZXJzIGFuZCBtaXhpbnMgKi9cbi8qKlxuICogR3JpZCBWYXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGhlc2UgYXJlIGRlZmluZWQgaGVyZSBzbyB0aGF0IHRoZSBncmlkIGNhbiBydW4gYXMgYSBzdGFuZGFsb25lIG1vZHVsZSAob3V0c2lkZSBvZiBLaWNrb2ZmKSxcbiAqIGFzIHdlbGwgYXMgYWxsb3dpbmcgdGhlc2UgZmlsZXMgdG8gYmUgZ2VuZXJhdGVkIGludG8gc3RhbmRhcmQgQ1NTLlxuICpcbiAqIFdoZW4gaW1wb3J0aW5nIHRoZSBncmlkIGludG8geW91ciBvd24gcHJvamVjdCwgY29weSB0aGUgdmFyaWFibGVzIGZyb20gdGhpcyBmaWxlIGludG8geW91ciBvd24gdmFyaWFibGVzLnNjc3NcbiAqIFRoZXkgd2lsbCB0aGVuIG92ZXJyaWRlIHRoZSB2YWx1ZXMgc3BlY2lmaWVkIGhlcmUgKGFzIGxvbmcgYXMgdGhlIGdyaWQgaXMgaW1wb3J0ZWQgYmVsb3cgd2hlcmUgeW91ciBvd24gdmFyaWFibGVzIGFyZSBkZWZpbmVkKS5cbiAqL1xuLyoqXG4gKiBLaWNrb2ZmIGdyaWQgaGVscGVyc1xuICovXG4vKipcbiAqIEdyaWQgc3RhY2tpbmdcbiAqIFN0YWNrIGdyaWRzIGJhc2VkIG9uIGEgZ2l2ZW4gYnJlYWtwb2ludFxuICpcbiAqIFVzYWdlOlxuICogLmctLXN0YWNrLS1uYXJyb3dcbiAqIC5nLS1zdGFjay0td2lkZVxuICovXG4vKipcbiAqIEd1dHRlciBDYWxjdWxhdGlvbnNcbiAqIERlZmF1bHQ6IHBlcmNlbnRcbiAqIFVzYWdlOiBrby1ndXR0ZXJDYWxjKCkgb3Iga28tZ3V0dGVyQ2FsYyhmYWxzZSlcbiAqIFdoZW4gc2hvdy11bml0IGlzIHRydWUsIHJldHVybnMgdGhlIHBlcmNlbnRhZ2UsIG90aGVyd2lzZSByZXR1cm4gYSBkZWNpbWFsXG4gKi9cbi8qKlxuICogR3JpZCBjb2x1bW5zIHdpZHRoIGNhbGN1bGF0aW9uc1xuICogVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgb2Ygd29ya2luZyBvdXQgdGhlIGNvbHVtbiB3aWR0aHMgaGFwcGVuc1xuICpcbiAqICRjb2x1bW4tc3BhbjogZGVmaW5lIHRoZSB3aWR0aCBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHJlcXVpcmVkXG4gKiAkc2hvdy11bml0OiBTd2l0Y2ggcmV0dXJuIHZhbHVlIGJldHdlZW4gcGVyY2VudGFnZSAoZGVmYXVsdCkgYW5kIGRlY2ltYWxcbiAqICRpbmNsdWRlLWd1dHRlcnM6IGlmIGd1dHRlcnMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBjYWxjdWxhdGlvbnMuIERlZmF1bHQgPSBmYWxzZVxuICogJGxlZ2FjeS1jYWxjOiBpZiB3ZSBhcmUgd29ya2luZyBvdXQgYSBsZWdhY3kgY29sdW1uIHdpZHRoIGNhbGN1bGF0aW9uLCBvciBub3QuIERlZmF1bHQgPSBmYWxzZVxuICovXG4vKipcbiAqIENvbHVtbiB3aWR0aCBtaXhpblxuICogVXNhZ2U6XG4gKiBAaW5jbHVkZSBjb2x1bW4oMik7XG4gKi9cbi8qKlxuICogQmFzaWMgVXNhZ2U6XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0PGRpdiBjbGFzcz1cImdcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiZy1jb2wgZy1zcGFuNCBnLXNwYW42LS1taWRcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiZy1jb2wgZy1zcGFuOCBnLXNwYW42LS1taWRcIj48L2Rpdj5cblx0PC9kaXY+XG4gKi9cbi5nIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmcgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmctY29sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMCAwO1xuICBtaW4td2lkdGg6IDA7IH1cblxuLyoqXG4gKiBHdXR0ZXIgY2FsY3Mg4oCTIGFwcGxpZWQgdG8gZ3JpZCBjb2x1bW5zIGluIG91ciBncmlkIChkaXJlY3QgZGVzY2VuZGFudHMgb25seSlcbiAqIERlZmF1bHQ6IHBpeGVscyAoY2FuIGxvb2sgYXQgY2hhbmdpbmcgdG8gcGVyY2VudGFnZSlcbiAqIFVzYWdlOiBndXR0ZXJDYWxjKCkgb3IgZ3V0dGVyQ2FsYyhmYWxzZSlcbiAqL1xuLmctLWd1dHRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDsgfVxuICAuZy0tZ3V0dGVyID4gLmctY29sIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDsgfVxuXG4uZy0tZ3V0dGVyLS1zY2FsZWQgPiAuZy1jb2wge1xuICBtYXJnaW4tbGVmdDogMiU7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgPiAuZy1jb2w6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5nLS1zdGFjayA+IC5nLWNvbCB7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uZy0tc3RhY2suZy0tZ3V0dGVyLS1zY2FsZWQgPiAuZy1jb2wge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4vKipcbiAqIC5nLS1lcXVhbEhlaWdodCDigJMgRXF1YWwgSGVpZ2h0IENoaWxkIEVsZW1lbnRzXG4gKi9cbi5nLS1lcXVhbEhlaWdodCA+IC5nLWNvbCB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmctLWVxdWFsSGVpZ2h0ID4gLmctY29sID4gKiB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuXG4vKipcbiAqIEFsaWdubWVudFxuICogTW9kaWZpZXIgY2xhc3NlcyB0byBtb3ZlIG91ciBncmlkIGVsZW1lbnRzIGFyb3VuZFxuICovXG4uZy0tYWxpZ25Ub3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uZy0tYWxpZ25Cb3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLmctLWFsaWduU2VsZkJvdHRvbSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG5cbi5nLS1hbGlnblJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uZy0tYWxpZ25DZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uZy0tYWxpZ25DZW50ZXItLXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qKlxuICogQ2VudGVyaW5nXG4gKiBDZW50ZXJzIGFuIGluZGl2aWR1YWwgY29sdW1uLCByYXRoZXIgdGhhbiB0aGUgZW50aXJlIGdyaWRcbiAqL1xuLmctY29sLS1jZW50ZXJlZCB7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi8qKlxuICogU2hyaW5raW5nIENvbnRlbnRcbiAqIFNocmluayBhIC5nLWNvbCBkb3duIHRvIG9ubHkgdGhlIHNwYWNlIGl0IG5lZWRzIChmbGV4Ym94IG9ubHkpXG4gKlxuICogRWZmZWN0aXZlbHkganVzdCBjaGFuZ2VzIGl04oCZcyB2YWx1ZXMgYmFjayB0byB0aGUgZGVmYXVsdCBmbGV4IHByb3BlcnRpZXNcbiAqL1xuLmctY29sLS1zaHJpbmsge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuXG4vKipcbiAqIEFkZCBmYWxsYmFja3MgZm9yIG5vbi1mbGV4Ym94IHN1cHBvcnRpbmcgYnJvd3NlcnMgKGZvciBleGFtcGxlLCBJRTgvOSlcbiAqL1xuLm5vLWZsZXhib3ggLmcge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5uby1mbGV4Ym94IC5nOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5uby1mbGV4Ym94IC5nLWNvbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGNsZWFyOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5uby1mbGV4Ym94IC5nLS1zdGFjayAuZy1jb2wge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubm8tZmxleGJveCAuZy0tZXF1YWxIZWlnaHQgPiAuZy1jb2wge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIEdyaWQgU3BhbiBjbGFzc2VzIChmb3IgZGlmZmVyZW50IGJyZWFrcG9pbnRzKVxuICpcbiAqIEFwcGxpZWQgYnkgdXNpbmcgLmctc3BhbnggdG8gLmctY29sIGVsZW1lbnRzLCB3aGVyZSB4IGlzIHRoZSBudW1iZXIgb2YgY29sdW1uc1xuICovXG4uZy1zcGFuMSB7XG4gIGZsZXgtYmFzaXM6IDguMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xLmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDgzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA2My4zMzMzM3B4OyB9XG4gIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMSB7XG4gICAgZmxleC1iYXNpczogNi41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNi41JTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3BhbjEge1xuICAgIHdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuMiB7XG4gIGZsZXgtYmFzaXM6IDE2LjY2NjY3JSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjIuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogMTY2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjIuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiAxNDYuNjY2NjdweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjIge1xuICAgIGZsZXgtYmFzaXM6IDE1JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTUlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjMge1xuICBmbGV4LWJhc2lzOiAyNSUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4zLmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogMjMwcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zIHtcbiAgICBmbGV4LWJhc2lzOiAyMy41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMjMuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW4zIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0MyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuNCB7XG4gIGZsZXgtYmFzaXM6IDMzLjMzMzMzJSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjQuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogMzMzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiAzMTMuMzMzMzNweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQge1xuICAgIGZsZXgtYmFzaXM6IDMyJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMzIlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjUge1xuICBmbGV4LWJhc2lzOiA0MS42NjY2NyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW41LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDQxNi42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogMzk2LjY2NjY3cHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41IHtcbiAgICBmbGV4LWJhc2lzOiA0MC41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNDAuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW41IHtcbiAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0NSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuNiB7XG4gIGZsZXgtYmFzaXM6IDUwJSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjYuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogNTAwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA0ODBweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYge1xuICAgIGZsZXgtYmFzaXM6IDQ5JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNDklO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuNiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDYge1xuICBtYXJnaW4tbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLmctc3Bhbjcge1xuICBmbGV4LWJhc2lzOiA1OC4zMzMzMyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW43LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDU4My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogNTYzLjMzMzMzcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43IHtcbiAgICBmbGV4LWJhc2lzOiA1Ny41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNTcuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW43IHtcbiAgICB3aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0NyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuOCB7XG4gIGZsZXgtYmFzaXM6IDY2LjY2NjY3JSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjguZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogNjY2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjguZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA2NDYuNjY2NjdweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3Bhbjgge1xuICAgIGZsZXgtYmFzaXM6IDY2JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNjYlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctc3Bhbjkge1xuICBmbGV4LWJhc2lzOiA3NSUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW45LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDc1MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogNzMwcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45IHtcbiAgICBmbGV4LWJhc2lzOiA3NC41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNzQuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW45IHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0OSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuMTAge1xuICBmbGV4LWJhc2lzOiA4My4zMzMzMyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMC5nLWhvbGRXaWR0aCB7XG4gICAgbWluLXdpZHRoOiA4MzMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA4MTMuMzMzMzNweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwIHtcbiAgICBmbGV4LWJhc2lzOiA4MyUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDgzJTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3BhbjEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0MTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjExIHtcbiAgZmxleC1iYXNpczogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTEuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogOTE2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogODk2LjY2NjY3cHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMSB7XG4gICAgZmxleC1iYXNpczogOTEuNSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDkxLjUlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4uZy1vZmZzZXQxMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuMTIge1xuICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEyLmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDEwMDBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTIuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA5ODBweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW4xMiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDAwcHgpIHtcbiAgLmctc3BhbjEtLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogOC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgIG1pbi13aWR0aDogODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogNjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMS0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDYuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNi41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xLS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MS0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMi0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4yLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDE2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjItLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiAxNDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDE1JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMi0tbmFycm93IHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQyLS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMy0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiAyNSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4zLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiAyMzBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDIzLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDIzLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjMtLW5hcnJvdyB7XG4gICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0My0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjQtLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNC0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiAzMzMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogMzEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiAzMiUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMzIlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjQtLW5hcnJvdyB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NC0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjUtLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogNDEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNS0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiA0MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogMzk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiA0MC41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA0MC41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW41LS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDUtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW42LS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDUwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjYtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgIG1pbi13aWR0aDogNTAwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDQ4MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogNDklICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQ5JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW42LS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDYtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW43LS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjctLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgIG1pbi13aWR0aDogNTgzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDU2My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogNTcuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNTcuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNy0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ3LS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOC0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiA2Ni42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW44LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDY2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjgtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiA2NDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDY2JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2NiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOC0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ4LS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOS0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiA3NSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW45LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDc1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiA3MzBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDc0LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDc0LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjktLW5hcnJvdyB7XG4gICAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0OS0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEwLS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEwLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDgzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogODEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogODMlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDgzJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMC0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMC0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjExLS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjExLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDkxNi42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogODk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogOTEuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogOTEuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTEtLW5hcnJvdyB7XG4gICAgICB3aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MTEtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMi0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEyLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDEwMDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDk4MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEyLS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NTBweCkge1xuICAuZy1zcGFuMS0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMS0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgbWluLXdpZHRoOiA4My4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiA2My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xLS1taWQge1xuICAgICAgZmxleC1iYXNpczogNi41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEtLW1pZCB7XG4gICAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxLS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4yLS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjItLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogMTY2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDE0Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLS1taWQge1xuICAgICAgZmxleC1iYXNpczogMTUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDE1JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4yLS1taWQge1xuICAgICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDItLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4zLS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDI1JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjMtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogMjUwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDIzMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLS1taWQge1xuICAgICAgZmxleC1iYXNpczogMjMuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMjMuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMy0tbWlkIHtcbiAgICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQzLS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNC0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW40LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDMzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiAzMTMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNC0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDMyJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAzMiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNC0tbWlkIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ0LS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNS0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiA0MS42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW41LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDQxNi42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiAzOTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQwLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQwLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjUtLW1pZCB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NS0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjYtLW1pZCB7XG4gICAgZmxleC1iYXNpczogNTAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNi0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgbWluLXdpZHRoOiA1MDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogNDgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYtLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA0OSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNDklO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjYtLW1pZCB7XG4gICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0Ni0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjctLW1pZCB7XG4gICAgZmxleC1iYXNpczogNTguMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNy0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgbWluLXdpZHRoOiA1ODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogNTYzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjctLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA1Ny41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA1Ny41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW43LS1taWQge1xuICAgICAgd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDctLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW44LS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjgtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogNjY2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDY0Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LS1taWQge1xuICAgICAgZmxleC1iYXNpczogNjYlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDY2JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW44LS1taWQge1xuICAgICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDgtLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW45LS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDc1JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjktLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogNzUwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDczMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LS1taWQge1xuICAgICAgZmxleC1iYXNpczogNzQuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNzQuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOS0tbWlkIHtcbiAgICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ5LS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTAtLW1pZCB7XG4gICAgZmxleC1iYXNpczogODMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTAtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogODMzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiA4MTMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAtLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA4MyUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogODMlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEwLS1taWQge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDEwLS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTEtLW1pZCB7XG4gICAgZmxleC1iYXNpczogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTEtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogOTE2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTEtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiA4OTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTEtLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA5MS41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA5MS41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMS0tbWlkIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMS0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEyLS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTItLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogMTAwMHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogOTgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS1taWQge1xuICAgICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTItLW1pZCB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuZy1zcGFuMS0td2lkZSB7XG4gICAgZmxleC1iYXNpczogOC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA4My4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDYzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogNi41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEtLXdpZGUge1xuICAgICAgd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MS0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjItLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjItLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiAxNjYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiAxNDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiAxNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjItLXdpZGUge1xuICAgICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDItLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMy0td2lkZSB7XG4gICAgZmxleC1iYXNpczogMjUlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMy0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDIzMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDIzLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDIzLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjMtLXdpZGUge1xuICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDMtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNC0td2lkZSB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNC0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDMzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDMxMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDMyJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAzMiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNC0td2lkZSB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NC0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW41LS13aWRlIHtcbiAgICBmbGV4LWJhc2lzOiA0MS42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW41LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogNDE2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogMzk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogNDAuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNDAuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNS0td2lkZSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NS0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW42LS13aWRlIHtcbiAgICBmbGV4LWJhc2lzOiA1MCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW42LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogNTAwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogNDgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYtLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogNDklICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQ5JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW42LS13aWRlIHtcbiAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ2LS13aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjctLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjctLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA1ODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiA1NjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA1Ny41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA1Ny41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW43LS13aWRlIHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ3LS13aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjgtLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjgtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA2NjYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiA2NDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA2NiUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNjYlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjgtLXdpZGUge1xuICAgICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDgtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOS0td2lkZSB7XG4gICAgZmxleC1iYXNpczogNzUlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuOS0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDc1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDczMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDc0LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDc0LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjktLXdpZGUge1xuICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDktLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTAtLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEwLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogODMzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDgxMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMC0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA4MyUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogODMlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEwLS13aWRlIHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMC0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMS0td2lkZSB7XG4gICAgZmxleC1iYXNpczogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTEtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA5MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMS0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogODk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDkxLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDkxLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjExLS13aWRlIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMS0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMi0td2lkZSB7XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMi0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDEwMDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogOTgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEyLS13aWRlIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI1MHB4KSB7XG4gIC5nLXNwYW4xLS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDgzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogNjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMS0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA2LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDYuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMS0taHVnZSB7XG4gICAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxLS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMi0taHVnZSB7XG4gICAgZmxleC1iYXNpczogMTYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMi0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDE2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjItLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDE0Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDE1JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMi0taHVnZSB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0Mi0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4zLS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiAyNSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4zLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogMjUwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogMjMwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogMjMuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMjMuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMy0taHVnZSB7XG4gICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0My0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW40LS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW40LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogMzMzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNC0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogMzEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogMzIlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDMyJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW40LS1odWdlIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ0LS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjUtLWh1Z2Uge1xuICAgIGZsZXgtYmFzaXM6IDQxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjUtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA0MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiAzOTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA0MC41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA0MC41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW41LS1odWdlIHtcbiAgICAgIHdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ1LS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjYtLWh1Z2Uge1xuICAgIGZsZXgtYmFzaXM6IDUwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjYtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA1MDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA0ODBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA0OSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNDklO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjYtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDYtLWh1Z2Uge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNy0taHVnZSB7XG4gICAgZmxleC1iYXNpczogNTguMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNy0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDU4My4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjctLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDU2My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDU3LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDU3LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjctLWh1Z2Uge1xuICAgICAgd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDctLWh1Z2Uge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOC0taHVnZSB7XG4gICAgZmxleC1iYXNpczogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuOC0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDY2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjgtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDY0Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDY2JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2NiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOC0taHVnZSB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0OC0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW45LS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiA3NSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW45LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogNzUwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogNzMwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogNzQuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNzQuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOS0taHVnZSB7XG4gICAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0OS0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMC0taHVnZSB7XG4gICAgZmxleC1iYXNpczogODMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTAtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA4MzMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMC0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogODEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDgzJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA4MyU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTAtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDEwLS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjExLS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiA5MS42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDkxNi42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA4OTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTEtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogOTEuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogOTEuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTEtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDExLS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEyLS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEyLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogMTAwMHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA5ODBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTItLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTItLWh1Z2Uge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzOTlweCkge1xuICAuZy0tc3RhY2stLW5hcnJvdyB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLmctLXN0YWNrLS1uYXJyb3cgPiAuZy1jb2wge1xuICAgICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLm5vLWZsZXhib3ggLmctLXN0YWNrLS1uYXJyb3cgPiAuZy1jb2wge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc0OXB4KSB7XG4gIC5nLS1zdGFjay0tbWlkIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAuZy0tc3RhY2stLW1pZCA+IC5nLWNvbCB7XG4gICAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgICAubm8tZmxleGJveCAuZy0tc3RhY2stLW1pZCA+IC5nLWNvbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTk5cHgpIHtcbiAgLmctLXN0YWNrLS13aWRlIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAuZy0tc3RhY2stLXdpZGUgPiAuZy1jb2wge1xuICAgICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLm5vLWZsZXhib3ggLmctLXN0YWNrLS13aWRlID4gLmctY29sIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjQ5cHgpIHtcbiAgLmctLXN0YWNrLS1odWdlIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAuZy0tc3RhY2stLWh1Z2UgPiAuZy1jb2wge1xuICAgICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLm5vLWZsZXhib3ggLmctLXN0YWNrLS1odWdlID4gLmctY29sIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbi8qKlxyXG4gKiBDb2xvdXIgc3dhdGNoZXNcclxuICovXG4uc2ctc3dhdGNoIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIG1hcmdpbjogMTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5zZy1zd2F0Y2g6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5zZy1zd2F0Y2guaXMtYWN0aXZlIHtcbiAgICBhbmltYXRpb246IHNnU3dhdGNoIDUwMG1zIGVhc2UtaW4tb3V0OyB9XG5cbkBrZXlmcmFtZXMgc2dTd2F0Y2gge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IC4zOyB9IH1cblxuLnNnLXN3YXRjaC1jb2xvciB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgMTBweDsgfVxuXG4uc2ctc3dhdGNoLXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgMTBweDsgfVxuXG4uc2ctc3dhdGNoLXZhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNnLWNvbG9yLWxpbmstaG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zZy1jb2xvci1saW5rLWhvdmVyIC5zZy1zd2F0Y2gtY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxODUzODA7IH1cbiAgLnNnLWNvbG9yLWxpbmstaG92ZXIgLnNnLXN3YXRjaC10ZXh0IHtcbiAgICBjb2xvcjogIzE4NTM4MDsgfVxuICAuc2ctY29sb3ItbGluay1ob3ZlciAuc2ctc3dhdGNoLXZhcjphZnRlciB7XG4gICAgY29udGVudDogXCIjMTg1MzgwXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNnLWNvbG9yLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zZy1jb2xvci1wcmltYXJ5IC5zZy1zd2F0Y2gtY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxODE4MzA7IH1cbiAgLnNnLWNvbG9yLXByaW1hcnkgLnNnLXN3YXRjaC10ZXh0IHtcbiAgICBjb2xvcjogIzE4MTgzMDsgfVxuICAuc2ctY29sb3ItcHJpbWFyeSAuc2ctc3dhdGNoLXZhcjphZnRlciB7XG4gICAgY29udGVudDogXCIjMTgxODMwXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNnLWNvbG9yLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLnNnLWNvbG9yLXNlY29uZGFyeSAuc2ctc3dhdGNoLWNvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmU3YzA4OyB9XG4gIC5zZy1jb2xvci1zZWNvbmRhcnkgLnNnLXN3YXRjaC10ZXh0IHtcbiAgICBjb2xvcjogI2ZlN2MwODsgfVxuICAuc2ctY29sb3Itc2Vjb25kYXJ5IC5zZy1zd2F0Y2gtdmFyOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiNmZTdjMDhcIjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc2ctY29sb3ItaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAuc2ctY29sb3ItaGlnaGxpZ2h0IC5zZy1zd2F0Y2gtY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODhhZDY7IH1cbiAgLnNnLWNvbG9yLWhpZ2hsaWdodCAuc2ctc3dhdGNoLXRleHQge1xuICAgIGNvbG9yOiAjMjg4YWQ2OyB9XG4gIC5zZy1jb2xvci1oaWdobGlnaHQgLnNnLXN3YXRjaC12YXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIzI4OGFkNlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zZy1jb2xvci10ZXh0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgfVxuICAuc2ctY29sb3ItdGV4dCAuc2ctc3dhdGNoLWNvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OyB9XG4gIC5zZy1jb2xvci10ZXh0IC5zZy1zd2F0Y2gtdGV4dCB7XG4gICAgY29sb3I6ICM0NDQ7IH1cbiAgLnNnLWNvbG9yLXRleHQgLnNnLXN3YXRjaC12YXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIzQ0NFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zZy1jb2xvci1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAuc2ctY29sb3ItYmFja2dyb3VuZCAuc2ctc3dhdGNoLWNvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyB9XG4gIC5zZy1jb2xvci1iYWNrZ3JvdW5kIC5zZy1zd2F0Y2gtdGV4dCB7XG4gICAgY29sb3I6ICNmMWYxZjE7IH1cbiAgLnNnLWNvbG9yLWJhY2tncm91bmQgLnNnLXN3YXRjaC12YXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiI2YxZjFmMVwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zZy1jb2xvci1ib3JkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zZy1jb2xvci1ib3JkZXIgLnNnLXN3YXRjaC1jb2xvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsgfVxuICAuc2ctY29sb3ItYm9yZGVyIC5zZy1zd2F0Y2gtdGV4dCB7XG4gICAgY29sb3I6ICNkZGQ7IH1cbiAgLnNnLWNvbG9yLWJvcmRlciAuc2ctc3dhdGNoLXZhcjphZnRlciB7XG4gICAgY29udGVudDogXCIjZGRkXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNnLWNvbG9yLWxpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zZy1jb2xvci1saW5rIC5zZy1zd2F0Y2gtY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODhhZDY7IH1cbiAgLnNnLWNvbG9yLWxpbmsgLnNnLXN3YXRjaC10ZXh0IHtcbiAgICBjb2xvcjogIzI4OGFkNjsgfVxuICAuc2ctY29sb3ItbGluayAuc2ctc3dhdGNoLXZhcjphZnRlciB7XG4gICAgY29udGVudDogXCIjMjg4YWQ2XCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXHJcbiAqIFN0eWxlZ3VpZGUgc3R5bGVzXHJcbiAqIFdoZXJlIHBvc3NpYmxlLCBwcmVmaXggYWxsIGNsYXNzbmFtZXMgd2l0aCAuc2dcclxuICovXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4vKipcclxuICogU3R5bGVndWlkZSB0eXBlIHN0eWxlc1xyXG4gKi9cbi5zZy1pbnRlcmZhY2VUeXBlLCAuc2ctc2VjdGlvbkhlYWRpbmcsIC5zZy10eXBlU3BlY2ltZW46OmFmdGVyIHtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnNnLWludGVyZmFjZVR5cGUtLXN1YnRsZSwgLnNnLXR5cGVTcGVjaW1lbjo6YWZ0ZXIge1xuICBjb2xvcjogIzg4ODsgfVxuXG4uc2ctc2VjdGlvbkhlYWRpbmcge1xuICBjb2xvcjogIzE4MTgzMDsgfVxuXG4vKipcclxuICogU3R5bGVndWlkZSBuYXZpZ2F0aW9uIHN0eWxlXHJcbiAqL1xuLyoqXHJcbiAqIFN0eWxlZ3VpZGUgLnBhZ2Ugc3R5bGVzXHJcbiAqL1xuLnNnLXBhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiA4JSAwOyB9XG5cbi5zZy1wYWdlLS1zdGFydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODE4MzA7XG4gIHBhZGRpbmc6IDcwcHggMCA2MHB4O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uc2ctc3BhY2VyIHtcbiAgcGFkZGluZzogMjBweDsgfVxuXG4uc2ctZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgzMDtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDMwcHg7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLnNnLWZvb3RlciBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yZW07IH1cbiAgLnNnLWZvb3RlciBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsgfVxuICAgIC5zZy1mb290ZXIgYTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjsgfVxuICAuc2ctZm9vdGVyIDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5zZy1raWNrb2ZmTG9nbyB7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uc2ctbG9nbyB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzE4MTgzMDsgfVxuICAuc2ctbG9nby0tZGFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuc2ctbG9nbyBzdmcge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKipcclxuICogVHlwb2dyYXBoeVxyXG4gKi9cbi5zZy10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG5cbmNvZGUge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDAuNnJlbTsgfVxuXG5bZGF0YS1jb3B5XSB7XG4gIGN1cnNvcjogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQk1BQUFBV0NBWUFBQUFpbmFkL0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBOXhwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRNNElEYzVMakUxT1RneU5Dd2dNakF4Tmk4d09TOHhOQzB3TVRvd09Ub3dNU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenBrWXowaWFIUjBjRG92TDNCMWNtd3ViM0puTDJSakwyVnNaVzFsYm5Sekx6RXVNUzhpSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWlCNGJXeHVjenB6ZEZKbFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFVtVm1JeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE55QW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRZdE1USXRNekJVTVRBNk5EUTZNakphSWlCNGJYQTZUVzlrYVdaNVJHRjBaVDBpTWpBeE5pMHhNaTB6TUZReE1EbzFORG8wTnlJZ2VHMXdPazFsZEdGa1lYUmhSR0YwWlQwaU1qQXhOaTB4TWkwek1GUXhNRG8xTkRvME55SWdaR002Wm05eWJXRjBQU0pwYldGblpTOXdibWNpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2UWpoRVJVWTFOemxETmtFeU1URkZOa0UzTlVVNVJEUTNSVUk1T0VJNVJrSWlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZRamhFUlVZMU4wRkROa0V5TVRGRk5rRTNOVVU1UkRRM1JVSTVPRUk1UmtJaVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JTWldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEcENPRVJGUmpVM04wTTJRVEl4TVVVMlFUYzFSVGxFTkRkRlFqazRRamxHUWlJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRwQ09FUkZSalUzT0VNMlFUSXhNVVUyUVRjMVJUbEVORGRGUWprNFFqbEdRaUl2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUHFyTGM4Y0FBQUNOU1VSQlZIamFZbUpnWUhBQTR2ZEEvSjlFakFHWWdIZ0JFQXN3VUFHd0FMRThpUEgvLzMrU05ESXlNbUoxR2RVQWhtRUhEaHhnVUZSVUJOdU1ENk9GMzMxbzJFTUVZSUNmbi84L0daRUJOcEFGM1dVZlAzNWtJRFVNb1M1Vm9HMllqUm8yYWhnTkRBUGxBRWEwVXVEL2FKZ1JERE9NZ2dPSStiR1ZwQVRBUTJ3dUM0QWFTQW9BcVU4QUNEQUFHWkE4WEpsQXlwb0FBQUFBU1VWT1JLNUNZSUk9KSAxMyAxMCwgYXV0byAhaW1wb3J0YW50OyB9XG4gIFtkYXRhLWNvcHldOmhvdmVyLCBbZGF0YS1jb3B5XTphY3RpdmUge1xuICAgIG9wYWNpdHk6IDAuNTsgfVxuXG4uc2ctdHlwZS1taWNybyAuc2ctdHlwZS1pdGVtIHtcbiAgZm9udC1zaXplOiAwLjY0cmVtOyB9XG4gIC5zZy10eXBlLW1pY3JvIC5zZy10eXBlLWl0ZW06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIk5hbWU6IG1pY3JvIC8vIFNpemU6IDEyLjhweCAvLyBVc2U6IEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShtaWNybykgXCI7XG4gICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICAgIG9wYWNpdHk6IDAuNjsgfVxuXG4uc2ctdHlwZS1zbWFsbGVzdCAuc2ctdHlwZS1pdGVtIHtcbiAgZm9udC1zaXplOiAwcmVtOyB9XG4gIC5zZy10eXBlLXNtYWxsZXN0IC5zZy10eXBlLWl0ZW06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIk5hbWU6IHNtYWxsZXN0IC8vIFNpemU6IHB4IC8vIFVzZTogQGluY2x1ZGUga28tZm9udC1zaXplKHNtYWxsZXN0KSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlLXNtYWxsZXIgLnNnLXR5cGUtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMHJlbTsgfVxuICAuc2ctdHlwZS1zbWFsbGVyIC5zZy10eXBlLWl0ZW06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIk5hbWU6IHNtYWxsZXIgLy8gU2l6ZTogcHggLy8gVXNlOiBAaW5jbHVkZSBrby1mb250LXNpemUoc21hbGxlcikgXCI7XG4gICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICAgIG9wYWNpdHk6IDAuNjsgfVxuXG4uc2ctdHlwZS1zbWFsbCAuc2ctdHlwZS1pdGVtIHtcbiAgZm9udC1zaXplOiAwLjhyZW07IH1cbiAgLnNnLXR5cGUtc21hbGwgLnNnLXR5cGUtaXRlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTmFtZTogc21hbGwgLy8gU2l6ZTogMTZweCAvLyBVc2U6IEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShzbWFsbCkgXCI7XG4gICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICAgIG9wYWNpdHk6IDAuNjsgfVxuXG4uc2ctdHlwZS1iYXNlIC5zZy10eXBlLWl0ZW0ge1xuICBmb250LXNpemU6IDFyZW07IH1cbiAgLnNnLXR5cGUtYmFzZSAuc2ctdHlwZS1pdGVtOjphZnRlciB7XG4gICAgY29udGVudDogXCJOYW1lOiBiYXNlIC8vIFNpemU6IDIwcHggLy8gVXNlOiBAaW5jbHVkZSBrby1mb250LXNpemUoYmFzZSkgXCI7XG4gICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICAgIG9wYWNpdHk6IDAuNjsgfVxuXG4uc2ctdHlwZS1taWQgLnNnLXR5cGUtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuc2ctdHlwZS1taWQgLnNnLXR5cGUtaXRlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTmFtZTogbWlkIC8vIFNpemU6IDI1cHggLy8gVXNlOiBAaW5jbHVkZSBrby1mb250LXNpemUobWlkKSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlLWxhcmdlIC5zZy10eXBlLWl0ZW0ge1xuICBmb250LXNpemU6IDEuNTYyNXJlbTsgfVxuICAuc2ctdHlwZS1sYXJnZSAuc2ctdHlwZS1pdGVtOjphZnRlciB7XG4gICAgY29udGVudDogXCJOYW1lOiBsYXJnZSAvLyBTaXplOiAzMS4yNXB4IC8vIFVzZTogQGluY2x1ZGUga28tZm9udC1zaXplKGxhcmdlKSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlLWxhcmdlc3QgLnNnLXR5cGUtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMHJlbTsgfVxuICAuc2ctdHlwZS1sYXJnZXN0IC5zZy10eXBlLWl0ZW06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIk5hbWU6IGxhcmdlc3QgLy8gU2l6ZTogcHggLy8gVXNlOiBAaW5jbHVkZSBrby1mb250LXNpemUobGFyZ2VzdCkgXCI7XG4gICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICAgIG9wYWNpdHk6IDAuNjsgfVxuXG4uc2ctdHlwZS1qdW1ibyAuc2ctdHlwZS1pdGVtIHtcbiAgZm9udC1zaXplOiAxLjk1MzEycmVtOyB9XG4gIC5zZy10eXBlLWp1bWJvIC5zZy10eXBlLWl0ZW06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIk5hbWU6IGp1bWJvIC8vIFNpemU6IDM5LjA2MjVweCAvLyBVc2U6IEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShqdW1ibykgXCI7XG4gICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICAgIG9wYWNpdHk6IDAuNjsgfVxuXG4uc2ctdHlwZVNwZWNpbWVuIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgLW1zLXdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkOyB9XG4gIC5zZy10eXBlU3BlY2ltZW46OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4uc2ctdHlwZVNwZWNpbWVuLS1wcmltYXJ5IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmOyB9XG5cbi5zZy10eXBlU3BlY2ltZW4tLXNlY29uZGFyeSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LWZhbWlseTogR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmOyB9XG5cbi5zZy10eXBlU3BlY2ltZW4tLWdpYW50IHtcbiAgZm9udC1zaXplOiA2cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4vKipcclxuICogSWNvbnNcclxuICovXG4uaWNvbi1zZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5zZy1mYXZpY29uIHtcbiAgcGFkZGluZzogNXB4OyB9XG4gIC5zZy1mYXZpY29uIGltZyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cblxuLnNnLWhyIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIG1hcmdpbjogNTZweCAwOyB9XG5cbi5zZy1oci0tc3VidGxlIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTc5LCAxNzksIDE3OSwgMC40KTsgfVxuXG4uc2ctdmFyLWl0ZW0ge1xuICBjb2xvcjogI2ZlN2MwODtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLnNnLXZhci0tYmFzZUZvbnRTaXplIHtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLnNnLXZhci0tYmFzZUZvbnRTaXplIHN0cm9uZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzUxcHgpIHtcbiAgICAgIC5zZy12YXItLWJhc2VGb250U2l6ZSBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS1iYXNlRm9udFNpemU6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIjIwXCI7IH1cblxuLnNnLXZhci0tbGVhZGluZ0Jhc2Uge1xuICBsaW5lLWhlaWdodDogMjtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuc2ctdmFyLS1sZWFkaW5nQmFzZSBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS1sZWFkaW5nQmFzZSBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS1sZWFkaW5nQmFzZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiMS40XCI7IH1cblxuLnNnLXZhci0tdHlwZVNjYWxlIHtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLnNnLXZhci0tdHlwZVNjYWxlIHN0cm9uZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzUxcHgpIHtcbiAgICAgIC5zZy12YXItLXR5cGVTY2FsZSBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS10eXBlU2NhbGU6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIjEuMjVcIjsgfVxuXG4uc2ctdmFyLS1mb250RmFtaWx5TW9ubyB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLWZvbnRGYW1pbHlNb25vIHN0cm9uZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzUxcHgpIHtcbiAgICAgIC5zZy12YXItLWZvbnRGYW1pbHlNb25vIHN0cm9uZyB7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5zZy12YXItLWZvbnRGYW1pbHlNb25vOjphZnRlciB7XG4gICAgY29udGVudDogXCJNZW5sbywgTW9uYWNvLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlXCI7IH1cblxuLnNnLXZhci0tZm9udEZhbWlseVN5c3RlbSB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLWZvbnRGYW1pbHlTeXN0ZW0gc3Ryb25nIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NTFweCkge1xuICAgICAgLnNnLXZhci0tZm9udEZhbWlseVN5c3RlbSBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS1mb250RmFtaWx5U3lzdGVtOjphZnRlciB7XG4gICAgY29udGVudDogXCItYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIEZpcmEgU2FucywgRHJvaWQgU2FucywgSGVsdmV0aWNhIE5ldWUsIHNhbnMtc2VyaWZcIjsgfVxuXG4uc2ctdmFyLS1mb250RmFtaWx5U2FucyB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLWZvbnRGYW1pbHlTYW5zIHN0cm9uZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzUxcHgpIHtcbiAgICAgIC5zZy12YXItLWZvbnRGYW1pbHlTYW5zIHN0cm9uZyB7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5zZy12YXItLWZvbnRGYW1pbHlTYW5zOjphZnRlciB7XG4gICAgY29udGVudDogXCJIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiOyB9XG5cbi5zZy12YXItLWZvbnRGYW1pbHlTZXJpZiB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLWZvbnRGYW1pbHlTZXJpZiBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS1mb250RmFtaWx5U2VyaWYgc3Ryb25nIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnNnLXZhci0tZm9udEZhbWlseVNlcmlmOjphZnRlciB7XG4gICAgY29udGVudDogXCJHZW9yZ2lhLCBUaW1lcyBOZXcgUm9tYW4sIFRpbWVzLCBzZXJpZlwiOyB9XG5cbi5zZy12YXItLWJyZWFrcG9pbnRzIHtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLnNnLXZhci0tYnJlYWtwb2ludHMgc3Ryb25nIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NTFweCkge1xuICAgICAgLnNnLXZhci0tYnJlYWtwb2ludHMgc3Ryb25nIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnNnLXZhci0tYnJlYWtwb2ludHM6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIihuYXJyb3c6IDQwMHB4LCBtaWQ6IDc1MHB4LCB3aWRlOiAxMDAwcHgsIGh1Z2U6IDEyNTBweClcIjsgfVxuXG4uc2ctdmFyLS1sYXlvdXRXaWR0aCB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLWxheW91dFdpZHRoIHN0cm9uZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzUxcHgpIHtcbiAgICAgIC5zZy12YXItLWxheW91dFdpZHRoIHN0cm9uZyB7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5zZy12YXItLWxheW91dFdpZHRoOjphZnRlciB7XG4gICAgY29udGVudDogXCIxMDAwXCI7IH1cblxuLnNnLXZhci0tZ3JpZENvbHVtbnMge1xuICBsaW5lLWhlaWdodDogMjtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuc2ctdmFyLS1ncmlkQ29sdW1ucyBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS1ncmlkQ29sdW1ucyBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS1ncmlkQ29sdW1uczo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiMTJcIjsgfVxuXG4uc2ctdmFyLS1ncmlkR3V0dGVyIHtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLnNnLXZhci0tZ3JpZEd1dHRlciBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS1ncmlkR3V0dGVyIHN0cm9uZyB7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5zZy12YXItLWdyaWRHdXR0ZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIjIwXCI7IH1cbiIsIi8qKlxyXG4gKiBLaWNrb2ZmIFN0eWxlZ3VpZGVcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqL1xyXG5AaW1wb3J0IFwia2lja29mZi11dGlsc1wiOyAvLyBodHRwczovL2dpdGh1Yi5jb20vbXJtYXJ0aW5lYXUva2lja29mZi11dGlscy5zY3NzXHJcbkBpbXBvcnQgXCJpbmNsdWRlLW1lZGlhXCI7IC8vIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxyXG5AaW1wb3J0IFwiY29sb3ItcGFsZXR0ZVwiO1xyXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCJraWNrb2ZmLWdyaWRcIjsgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS9raWNrb2ZmLWdyaWQuY3NzXHJcblxyXG4kc3R5bGVndWlkZS1jb2xvci1wcmltYXJ5OiAkY29sb3ItcHJpbWFyeTtcclxuJHN0eWxlZ3VpZGUtdHlwZTogJGZvbnQtZmFtaWx5LXN5c3RlbTtcclxuXHJcbkBpbXBvcnQgXCJzdHlsZWd1aWRlL3N3YXRjaFwiO1xyXG5cclxuLyoqXHJcbiAqIFN0eWxlZ3VpZGUgc3R5bGVzXHJcbiAqIFdoZXJlIHBvc3NpYmxlLCBwcmVmaXggYWxsIGNsYXNzbmFtZXMgd2l0aCAuc2dcclxuICovXHJcbmJvZHkge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdHlsZWd1aWRlIHR5cGUgc3R5bGVzXHJcbiAqL1xyXG4uc2ctaW50ZXJmYWNlVHlwZSB7XHJcblx0Zm9udC1mYW1pbHk6ICRzdHlsZWd1aWRlLXR5cGU7XHJcblx0Zm9udC13ZWlnaHQ6IDMwMDtcclxufVxyXG5cclxuLnNnLWludGVyZmFjZVR5cGUtLXN1YnRsZSB7XHJcblx0Y29sb3I6ICM4ODg7XHJcbn1cclxuXHJcbi5zZy1zZWN0aW9uSGVhZGluZyB7XHJcblx0QGV4dGVuZCAuc2ctaW50ZXJmYWNlVHlwZTtcclxuXHRjb2xvcjogJHN0eWxlZ3VpZGUtY29sb3ItcHJpbWFyeTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTdHlsZWd1aWRlIG5hdmlnYXRpb24gc3R5bGVcclxuICovXHJcblxyXG4vKipcclxuICogU3R5bGVndWlkZSAucGFnZSBzdHlsZXNcclxuICovXHJcbi5zZy1wYWdlIHtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdHBhZGRpbmc6IDglIDA7XHJcbn1cclxuXHJcbi5zZy1wYWdlLS1zdGFydCB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJHN0eWxlZ3VpZGUtY29sb3ItcHJpbWFyeTtcclxuXHRwYWRkaW5nOiA3MHB4IDAgNjBweDtcclxuXHRjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLnNnLXNwYWNlciB7XHJcblx0cGFkZGluZzogMjBweDtcclxufVxyXG5cclxuLnNnLWZvb3RlciB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogIzE4MTgzMDtcclxuXHRjb2xvcjogI2ZmZjtcclxuXHRwYWRkaW5nOiAzMHB4O1xyXG5cdG1hcmdpbi10b3A6IDMwcHg7XHJcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vO1xyXG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZSgxMik7XHJcblxyXG5cdGgxIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDAuMmVtO1xyXG5cdH1cclxuXHJcblx0YSB7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgcmdiYSgjZmZmLCAwLjMpO1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdDpsYXN0LWNoaWxkIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0fVxyXG59XHJcblxyXG4uc2cta2lja29mZkxvZ28ge1xyXG5cdHdpZHRoOiAyMDBweDtcclxuXHRoZWlnaHQ6IDYwcHg7XHJcblx0Y29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5zZy1sb2dvIHtcclxuXHRwYWRkaW5nOiAxZW07XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuXHJcblx0Ji0tZGFyayB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0fVxyXG5cclxuXHRzdmcge1xyXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUeXBvZ3JhcGh5XHJcbiAqL1xyXG4uc2ctdHlwZSB7XHJcblx0bWFyZ2luLWJvdHRvbTogMWVtO1xyXG5cdG92ZXJmbG93LXg6IGF1dG87XHJcbn1cclxuXHJcbmNvZGUge1xyXG5cdGJvcmRlcjogMDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRAaW5jbHVkZSBrby1mb250LXNpemUoMTIpO1xyXG59XHJcblxyXG5bZGF0YS1jb3B5XSB7XHJcblx0Y3Vyc29yOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCTUFBQUFXQ0FZQUFBQWluYWQvQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUE5eHBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVE00SURjNUxqRTFPVGd5TkN3Z01qQXhOaTh3T1M4eE5DMHdNVG93T1Rvd01TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cGtZejBpYUhSMGNEb3ZMM0IxY213dWIzSm5MMlJqTDJWc1pXMWxiblJ6THpFdU1TOGlJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJaUI0Yld4dWN6cHpkRkpsWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sVW1WbUl5SWdlRzF3T2tOeVpXRjBiM0pVYjI5c1BTSkJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TnlBb1RXRmphVzUwYjNOb0tTSWdlRzF3T2tOeVpXRjBaVVJoZEdVOUlqSXdNVFl0TVRJdE16QlVNVEE2TkRRNk1qSmFJaUI0YlhBNlRXOWthV1o1UkdGMFpUMGlNakF4TmkweE1pMHpNRlF4TURvMU5EbzBOeUlnZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDBpTWpBeE5pMHhNaTB6TUZReE1EbzFORG8wTnlJZ1pHTTZabTl5YldGMFBTSnBiV0ZuWlM5d2JtY2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRamhFUlVZMU56bEROa0V5TVRGRk5rRTNOVVU1UkRRM1JVSTVPRUk1UmtJaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlFqaEVSVVkxTjBGRE5rRXlNVEZGTmtFM05VVTVSRFEzUlVJNU9FSTVSa0lpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwQ09FUkZSalUzTjBNMlFUSXhNVVUyUVRjMVJUbEVORGRGUWprNFFqbEdRaUlnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBDT0VSRlJqVTNPRU0yUVRJeE1VVTJRVGMxUlRsRU5EZEZRams0UWpsR1FpSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcXJMYzhjQUFBQ05TVVJCVkhqYVltSmdZSEFBNHZkQS9KOUVqQUdZZ0hnQkVBc3dVQUd3QUxFOGlQSC8vMytTTkRJeU1tSjFHZFVBaG1FSERoeGdVRlJVQk51TUQ2T0YzMzFvMkVNRVlJQ2ZuLzgvR1pFQk5wQUYzV1VmUDM1a0lEVU1vUzVWb0cyWWpSbzJhaGdOREFQbEFFYTBVdUQvYUpnUkRET01nZ09JK2JHVnBBVEFRMnd1QzRBYVNBb0FxVThBQ0RBQUdaQThYSmxBeXBvQUFBQUFTVVZPUks1Q1lJST0pIDEzIDEwLCBhdXRvICFpbXBvcnRhbnQ7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0b3BhY2l0eTogMC41O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGtvLXNnVHlwZVRlc3QoJHNpemUpIHtcclxuXHQuc2ctdHlwZS1pdGVtIHtcclxuXHRcdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZSgkc2l6ZSk7XHJcblxyXG5cdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRjb250ZW50OiAnTmFtZTogI3skc2l6ZX0gLy8gU2l6ZTogI3trby1nZXRWYWx1ZSgkc2l6ZSwgJHR5cGUpfXB4IC8vIFVzZTogQGluY2x1ZGUga28tZm9udC1zaXplKCN7JHNpemV9KSAnO1xyXG5cdFx0XHRAaW5jbHVkZSBrby1mb250LXNpemUobWljcm8pO1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vO1xyXG5cdFx0XHRvcGFjaXR5OiAwLjY7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLnNnLXR5cGUtbWljcm8geyBAaW5jbHVkZSBrby1zZ1R5cGVUZXN0KG1pY3JvKTsgfVxyXG4uc2ctdHlwZS1zbWFsbGVzdCB7IEBpbmNsdWRlIGtvLXNnVHlwZVRlc3Qoc21hbGxlc3QpOyB9XHJcbi5zZy10eXBlLXNtYWxsZXIgeyBAaW5jbHVkZSBrby1zZ1R5cGVUZXN0KHNtYWxsZXIpOyB9XHJcbi5zZy10eXBlLXNtYWxsIHsgQGluY2x1ZGUga28tc2dUeXBlVGVzdChzbWFsbCk7IH1cclxuLnNnLXR5cGUtYmFzZSB7IEBpbmNsdWRlIGtvLXNnVHlwZVRlc3QoYmFzZSk7IH1cclxuLnNnLXR5cGUtbWlkIHsgQGluY2x1ZGUga28tc2dUeXBlVGVzdChtaWQpOyB9XHJcbi5zZy10eXBlLWxhcmdlIHsgQGluY2x1ZGUga28tc2dUeXBlVGVzdChsYXJnZSk7IH1cclxuLnNnLXR5cGUtbGFyZ2VzdCB7IEBpbmNsdWRlIGtvLXNnVHlwZVRlc3QobGFyZ2VzdCk7IH1cclxuLnNnLXR5cGUtanVtYm8geyBAaW5jbHVkZSBrby1zZ1R5cGVUZXN0KGp1bWJvKTsgfVxyXG5cclxuLnNnLXR5cGVTcGVjaW1lbiB7XHJcblx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRtYXJnaW4tdG9wOiAwO1xyXG5cdC1tcy13b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xyXG5cclxuXHQmOjphZnRlciB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdEBleHRlbmQgLnNnLWludGVyZmFjZVR5cGU7XHJcblx0XHRAZXh0ZW5kIC5zZy1pbnRlcmZhY2VUeXBlLS1zdWJ0bGU7XHJcblx0XHRAaW5jbHVkZSBrby1mb250LXNpemUoMTYpO1xyXG5cdFx0bWFyZ2luLXRvcDogNXB4O1xyXG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XHJcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdH1cclxufVxyXG5cclxuLy8gaDEudHlwZVNwZWNpbWVuOjphZnRlciB7IGNvbnRlbnQ6IFwiRm9udCBzdGFjazogI3skZm9udC1mYW1pbHktaGVhZGluZ3N9XCI7IH1cclxuLy8gcC50eXBlU3BlY2ltZW46OmFmdGVyICB7IGNvbnRlbnQ6IFwiRm9udCBzdGFjazogI3skZm9udC1mYW1pbHktYmFzZX1cIjsgfVxyXG5cclxuLnNnLXR5cGVTcGVjaW1lbi0tcHJpbWFyeSB7XHJcblx0QGluY2x1ZGUga28tZm9udC1zaXplKDMwKTtcclxuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XHJcbn1cclxuXHJcbi5zZy10eXBlU3BlY2ltZW4tLXNlY29uZGFyeSB7XHJcblx0QGluY2x1ZGUga28tZm9udC1zaXplKDMwKTtcclxuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWFsdDtcclxufVxyXG5cclxuLnNnLXR5cGVTcGVjaW1lbi0tZ2lhbnQge1xyXG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZSgxMjApO1xyXG5cdGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEljb25zXHJcbiAqL1xyXG4uaWNvbi1zZyB7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdHdpZHRoOiA1MHB4O1xyXG5cdGhlaWdodDogNTBweDtcclxuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdG1hcmdpbi1yaWdodDogMTBweDtcclxuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4uc2ctZmF2aWNvbiB7XHJcblx0cGFkZGluZzogNXB4O1xyXG5cclxuXHRpbWcge1xyXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdG1hcmdpbi1yaWdodDogMTVweDtcclxuXHR9XHJcbn1cclxuXHJcbi5zZy1ociB7XHJcblx0aGVpZ2h0OiAzcHg7XHJcblx0bWFyZ2luOiAoJGJhc2VsaW5lICogMikgMDtcclxufVxyXG5cclxuLnNnLWhyLS1zdWJ0bGUge1xyXG5cdGhlaWdodDogM3B4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6IGZhZGUtb3V0KCRoci1jb2xvciwgMC42KTtcclxufVxyXG5cclxuQG1peGluIGtvLXNnVmFyKCR2YXIpIHtcclxuXHRsaW5lLWhlaWdodDogMjtcclxuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm87XHJcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoIzAwMCwgMC4xKTtcclxuXHRAaW5jbHVkZSBrby1mb250LXNpemUoMTIpO1xyXG5cclxuXHRzdHJvbmcge1xyXG5cdFx0b3BhY2l0eTogMC42O1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz5taWQnKSB7XHJcblx0XHRcdHdpZHRoOiAyMCU7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCY6OmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6ICcjeyR2YXJ9JztcclxuXHR9XHJcbn1cclxuXHJcbi5zZy12YXItaXRlbSB7XHJcblx0Y29sb3I6ICRjb2xvci1zZWNvbmRhcnk7XHJcblx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLnNnLXZhci0tYmFzZUZvbnRTaXplIHtcclxuXHRAaW5jbHVkZSBrby1zZ1ZhcigkZm9udC1zaXplLWJhc2UpO1xyXG59XHJcblxyXG4uc2ctdmFyLS1sZWFkaW5nQmFzZSB7XHJcblx0QGluY2x1ZGUga28tc2dWYXIoJGxlYWRpbmctYmFzZSk7XHJcbn1cclxuXHJcbi5zZy12YXItLXR5cGVTY2FsZSB7XHJcblx0QGluY2x1ZGUga28tc2dWYXIoJHR5cGUtc2NhbGUpO1xyXG59XHJcblxyXG4uc2ctdmFyLS1mb250RmFtaWx5TW9ubyB7XHJcblx0QGluY2x1ZGUga28tc2dWYXIoJGZvbnQtZmFtaWx5LW1vbm8pO1xyXG59XHJcblxyXG4uc2ctdmFyLS1mb250RmFtaWx5U3lzdGVtIHtcclxuXHRAaW5jbHVkZSBrby1zZ1ZhcigkZm9udC1mYW1pbHktc3lzdGVtKTtcclxufVxyXG5cclxuLnNnLXZhci0tZm9udEZhbWlseVNhbnMge1xyXG5cdEBpbmNsdWRlIGtvLXNnVmFyKCRmb250LWZhbWlseS1zYW5zKTtcclxufVxyXG5cclxuLnNnLXZhci0tZm9udEZhbWlseVNlcmlmIHtcclxuXHRAaW5jbHVkZSBrby1zZ1ZhcigkZm9udC1mYW1pbHktc2VyaWYpO1xyXG59XHJcblxyXG4uc2ctdmFyLS1icmVha3BvaW50cyB7XHJcblx0QGluY2x1ZGUga28tc2dWYXIoJGJyZWFrcG9pbnRzKTtcclxufVxyXG5cclxuLnNnLXZhci0tbGF5b3V0V2lkdGgge1xyXG5cdEBpbmNsdWRlIGtvLXNnVmFyKCRsYXlvdXQtbWF4LXdpZHRoKTtcclxufVxyXG5cclxuLnNnLXZhci0tZ3JpZENvbHVtbnMge1xyXG5cdEBpbmNsdWRlIGtvLXNnVmFyKCRncmlkLWNvbHVtbi1jb3VudCk7XHJcbn1cclxuXHJcbi5zZy12YXItLWdyaWRHdXR0ZXIge1xyXG5cdEBpbmNsdWRlIGtvLXNnVmFyKCRncmlkLWd1dHRlci13aWR0aCk7XHJcbn1cclxuIiwiLyoqXG4gKiBVc2FnZTpcbiAqXG4gKiBrby1nZXRWYWwoMTAwLCAkbWFwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tZ2V0VmFsKG1pZCwgJG1hcCkgLSB1c2VzIGEgU2FzcyBtYXBcbiAqIGtvLWdldFZhbCgkZm9vLCAkbWFwKSAtIHVzZXMgYSBTYXNzIHZhcmlhYmxlXG4gKi9cblxuQGZ1bmN0aW9uIGtvLWdldFZhbHVlKCR2YWwsICRtYXA6ICcnKSB7XG5cdEBpZiB0eXBlLW9mKCR2YWwpID09ICdudW1iZXInIHtcblx0XHRAcmV0dXJuICR2YWw7XG5cdH0gQGVsc2UgaWYgdmFyaWFibGUtZXhpc3RzKCR2YWwpIHtcblx0XHRAcmV0dXJuICR2YWw7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsKTtcblx0fVxufVxuXG5cbi8qKlxuICogR2V0IGJyZWFrcG9pbnRzXG4gKlxuICoga28tYnAoKVxuICpcbiAqIFVzYWdlOlxuICoga28tYnAoMTAwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tYnAobWlkKSAtIHVzZXMgdGhlICRicmVha3BvaW50cyBTYXNzIG1hcFxuICoga28tYnAoJGZvbykgLSB1c2VzIGEgU2FzcyB2YXJpYWJsZVxuICovXG5AZnVuY3Rpb24ga28tYnAoJHZhbCkge1xuXHRAcmV0dXJuIGdldFZhbHVlKCR2YWwsICRicmVha3BvaW50cyk7XG59XG5cblxuLyoqXG4gKiBHZXQgdHlwZSBzaXplXG4gKlxuICoga28tdHlwZSgpXG4gKlxuICogVXNhZ2U6XG4gKiBrby10eXBlKDEwMCkgLSB1c2VzIGFuIGludGVnZXJcbiAqIGtvLXR5cGUobWlkKSAtIHVzZXMgdGhlICR0eXBlIFNhc3MgbWFwXG4gKiBrby10eXBlKCRmb28pIC0gdXNlcyBhIFNhc3MgdmFyaWFibGVcbiAqL1xuQGZ1bmN0aW9uIGtvLXR5cGUoJHZhbCkge1xuXHRAcmV0dXJuIGdldFZhbHVlKCR2YWwsICR0eXBlKTtcbn1cbiIsIi8qKlxuICogVXNhZ2U6XG4gKlxuICRncmlkLWNvbmZpZ3VyYXRpb246IChcbiAgICdjb2x1bW5zJzogMTIsXG4gICAnbGF5b3V0cyc6IChcbiAgICAgJ3NtYWxsJzogODAwcHgsXG4gICAgICdtZWRpdW0nOiAxMDAwcHgsXG4gICAgICdsYXJnZSc6IDEyMDBweCxcbiAgICksXG4gKTtcblxuIGRpdiB7XG4gICBmb250LXNpemU6IGtvLW1hcC1kZWVwLWdldCgkZ3JpZC1jb25maWd1cmF0aW9uLCAnY29sdW1ucycpO1xuICAgd2lkdGg6IGtvLW1hcC1kZWVwLWdldCgkZ3JpZC1jb25maWd1cmF0aW9uLCAnbGF5b3V0cycsICdtZWRpdW0nKTtcbiB9XG4gKi9cblxuQGZ1bmN0aW9uIGtvLW1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuXHRAZWFjaCAka2V5IGluICRrZXlzIHtcblx0XHQkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuXG5cdFx0QGlmIG5vdCAkbWFwIHtcblx0XHRcdEBlcnJvciAnVGhlIHZhbHVlIGAjeyRrZXl9YCBkb2VzbuKAmXQgZXhpc3QgaW4gdGhlIG1hcC4nO1xuXHRcdH1cblx0fVxuXG5cdEByZXR1cm4gJG1hcDtcbn1cbiIsIi8qKlxuICogTW9kdWxhciBzY2FsZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBVc2FnZToga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsIDMsICR0eXBlLXNjYWxlKVxuICogb3Igd2l0aCB0aGUgc2hvcnRoYW5kIHZlcnNpb246IGtvLW1zKDMpXG4gKi9cblxuLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW4gICAgICAgICAgIDogMS42MTg7XG4kbWlub3Itc2Vjb25kICAgICA6IDEuMDY3O1xuJG1ham9yLXNlY29uZCAgICAgOiAxLjEyNTtcbiRtaW5vci10aGlyZCAgICAgIDogMS4yO1xuJG1ham9yLXRoaXJkICAgICAgOiAxLjI1O1xuJHBlcmZlY3QtZm91cnRoICAgOiAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoIDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aCAgICA6IDEuNTtcbiRtaW5vci1zaXh0aCAgICAgIDogMS42O1xuJG1ham9yLXNpeHRoICAgICAgOiAxLjY2NztcbiRtaW5vci1zZXZlbnRoICAgIDogMS43Nzg7XG4kbWFqb3Itc2V2ZW50aCAgICA6IDEuODc1O1xuJG9jdGF2ZSAgICAgICAgICAgOiAyO1xuJG1ham9yLXRlbnRoICAgICAgOiAyLjU7XG4kbWFqb3ItZWxldmVudGggICA6IDIuNjY3O1xuJG1ham9yLXR3ZWxmdGggICAgOiAzO1xuJGRvdWJsZS1vY3RhdmUgICAgOiA0O1xuXG5cbkBmdW5jdGlvbiBrby1tb2R1bGFyLXNjYWxlKCR2YWx1ZSwgJGluY3JlbWVudCwgJHJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vKipcbiAqIFNob3J0aGFuZCBtb2R1bGFyIHNjYWxlXG4gKiBVc2VzIHRoZSAkZm9udC1zaXplLWJhc2UgYW5kICR0eXBlLXNjYWxlIGZyYW1ld29yayB2YXJpYWJsZXMgc28gdGhhdCB5b3VcbiAqIG9ubHkgbmVlZCB0byBwcm92aWRlIHRoZSBzY2FsZSBpbmNyZW1lbnRcbiAqXG4gKiBlLmcuIGtvLW1zKDUpXG4gKi9cbkBmdW5jdGlvbiBrby1tcygkaW5jcmVtZW50KSB7XG5cdEByZXR1cm4ga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsICRpbmNyZW1lbnQsICR0eXBlLXNjYWxlKTtcbn1cbiIsIi8qKlxuICogTXVsdGlwbHlcbiAqID09PT09PT09PT09PT09PT09XG4gKiBNdWx0aXBseSBhbnkgdmFsdWVcbiAqXG4gKiBVc2FnZTpcbiAqIGtvLW11bHRpcGx5KDE1LCAyKVxuICoga28tbXVsdGlwbHkoJGJhc2VsaW5lLCAxLjUpXG4gKi9cbkBmdW5jdGlvbiBrby1tdWx0aXBseSgkaW5pdGlhbCwgJG11bHRpcGx5KSB7XG5cdEByZXR1cm4gJG11bHRpcGx5ICogJGluaXRpYWw7XG59XG4iLCIvKipcbiAqIFNhc3MgTWl4aW5zXG4gKiAtIFJlc3BvbnNpdmVcbiAqIC0gRGltZW5zaW9uc1xuICogLSBQb3NpdGlvbmluZ1xuICogLSBVdGlsaXR5XG4gKiAtIEZvcm1zXG4gKiAtIE1vZHVsZSBOYW1pbmcgSGVscGVyc1xuICovXG5cbi8vIFJlc3BvbnNpdmUgbWl4aW5zXG5AaW1wb3J0IFwicmVzcG9uc2l2ZVwiO1xuQGltcG9ydCBcImhpZHBpXCI7XG5cbi8vIFNpemluZyBtaXhpbnNcbi8vIEZvbnQtc2l6aW5nLCBSRU0gbWl4aW5zIGFuZCBvdGhlciBzaXppbmcgbWl4aW5zXG5AaW1wb3J0IFwidW5pdHNcIjtcblxuLy8gUG9zaXRpb25pbmcgbWl4aW5zXG5AaW1wb3J0IFwicG9zaXRpb25cIjtcbkBpbXBvcnQgXCJ2ZXJ0aWNhbC1jZW50ZXJcIjtcblxuLy8gVXRpbGl0eSBtaXhpbnMgLSBDbGVhcmZpeCBhbmQgb3RoZXIgaGVscGVyc1xuQGltcG9ydCBcInV0aWxpdHlcIjtcblxuLy8gTW9kdWxlIG5hbWluZyBoZWxwZXJzXG5AaW1wb3J0IFwibW9kdWxlLW5hbWluZy1oZWxwZXJzXCI7XG4iLCIvKipcbiAqIFJlc3BvbnNpdmUgbWVkaWEgcXVlcnkgbWl4aW5zXG4gKiAtIFRoZXNlIGFyZSB1c2VkIHNvIHRoYXQgd2UgY2FuIGRlZmluZSBzZXBhcmF0ZSBtZWRpYS1xdWVyeSBjb250ZW50XG4gKiAtIEFyZ3VtZW50cyBjYW4gdXNlOlxuICogICAtIGEgbmFtZWQgYnJlYWtwb2ludCBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCwgZS5nLiBtaWRcbiAqICAgLSBhIHBpeGVsIHZhbHVlIGUuZy4gNTAwcHhcbiAqICAgLSBhIHVuaXRsZXNzIHZhbHVlIHRoYXQgaXMgZXFpdmFsZW50IHRvIGEgcGl4ZWwgZS5nLiA1MDBcbiAqL1xuXG4vLyAkbXEtYmFzZSB2YXJpYWJsZTpcbi8vXG4vLyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGJyb3dzZXJzIGRvIG5vdCBjYWxjdWxhdGUgZW0tYmFzZWRcbi8vIG1lZGlhIHF1ZXJpZXMgY29ycmVjdGx5LiBJdCBpcyBzZXQgdG8gMTYgYmVjYXVzZSB3ZSB0aGlua1xuLy8gdGhlIG1ham9yaXR5IG9mIHVzZXJzIHdpbGwgaGF2ZSB0aGVpciBicm93c2VyIHNldCB0byAxMDAlXG4vLyB6b29tIGxldmVsLlxuLy9cbi8vIFNlZSBiZWxvdyBmb3IgYW4gZXhwbGFuYXRpb246XG4vLyBodHRwOi8vd3d3LmZpbGFtZW50Z3JvdXAuY29tL2xhYi9ob3ctd2UtbGVhcm5lZC10by1sZWF2ZS1ib2R5LWZvbnQtc2l6ZS1hbG9uZS5odG1sXG4kbXEtYmFzZTogMTY7XG5cblxuLyoqXG4gKiBNaW4td2lkdGggbWVkaWEgcXVlcnk6XG4gKiAtIEVxdWl2YWxlbnQgdG86IEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDIwZW0pIHsgLi4uIH1cbiAqIC0gVXNhZ2U6IEBpbmNsdWRlIGtvLXJlc3BvbmQtbWluKG1pZCkgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLXJlc3BvbmQtbWluKCR3aWR0aCkge1xuXHQkd2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCR3aWR0aCkpLCAkbXEtYmFzZSk7XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHdpZHRoLWVtKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuXG4vKipcbiAqIE1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjBlbSkgeyAuLi4gfVxuICogLSBVc2FnZTogQGluY2x1ZGUga28tcmVzcG9uZC1tYXgobWlkKSB7IC4uLiB9O1xuICovXG5AbWl4aW4ga28tcmVzcG9uZC1tYXgoJHdpZHRoKSB7XG5cdCR3aWR0aC1lbToga28tZW0oa28tc3RyaXAtdW5pdHMoa28tYnAoJHdpZHRoKSksICRtcS1iYXNlKTtcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGgtZW0pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogTWluLW1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTBlbSkgYW5kIChtYXgtd2lkdGg6IDIwZW0pIHsgLi4uIH1cbiAqIC0gVXNhZ2U6IEBpbmNsdWRlIGtvLXJlc3BvbmQtbWluLW1heChuYXJyb3csIDYwMCkgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLXJlc3BvbmQtbWluLW1heCgkbWluLXdpZHRoLCAkbWF4LXdpZHRoKSB7XG5cdCRtaW4td2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCRtaW4td2lkdGgpKSwgJG1xLWJhc2UpO1xuXHQkbWF4LXdpZHRoLWVtOiBrby1lbShrby1zdHJpcC11bml0cyhrby1icCgkbWF4LXdpZHRoKSksICRtcS1iYXNlKTtcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluLXdpZHRoLWVtKSBhbmQgKG1heC13aWR0aDogJG1heC13aWR0aC1lbSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCIvKipcbiAqICBIaURQSSBtaXhpbi5cbiAqICBAaW5jbHVkZSBrby1oaWRwaSB7IC4uLiB9O1xuICogIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuICovXG5AbWl4aW4ga28taGlkcGkoJHJhdGlvOiAxLjI1KSB7XG5cdEBtZWRpYSBwcmludCxcblx0XHQoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuXHRcdChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCksXG5cdFx0KG1pbi1yZXNvbHV0aW9uOiAjeyRyYXRpbyo5Nn1kcGkpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1pbmltdW0gd2lkdGggbWVkaWEgcXVlcnlcbiAqIEBpbmNsdWRlIGtvLWhpZHBpLW1pbihicChtaWQpLCAxLjUpIHsgLi4uIH07XG4gKi9cbkBtaXhpbiBrby1oaWRwaS1taW4oJHdpZHRoLCAkcmF0aW86IDEuMjUpIHtcblx0JHdpZHRoLWVtOiBrby1lbShrby1zdHJpcC11bml0cyhrby1icCgkd2lkdGgpKSwgJG1xLWJhc2UpO1xuXG5cdEBtZWRpYSBwcmludCxcblx0XHRzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR3aWR0aC1lbSkgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG5cdFx0c2NyZWVuIGFuZCAobWluLXdpZHRoOiAkd2lkdGgtZW0pIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvfWRwcHgpLFxuXHRcdHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHdpZHRoLWVtKSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAjeyRyYXRpbyo5Nn1kcGkpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1heCB3aWR0aCBtZWRpYSBxdWVyeVxuICogQGluY2x1ZGUga28taGlkcGktbWF4KGJwKG1pZCksIDEuMykgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLWhpZHBpLW1heCgkd2lkdGgsICRyYXRpbzogMS4yNSkge1xuXHQkd2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCR3aWR0aCkpLCAkbXEtYmFzZSk7XG5cblx0QG1lZGlhIHByaW50LFxuXHRcdHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHdpZHRoLWVtKSBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcblx0XHRzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR3aWR0aC1lbSkgYW5kIChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCksXG5cdFx0c2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGgtZW0pIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvKjk2fWRwaSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCIvLy8gQGdyb3VwIHVuaXRzXG4vKipcbiAqIERpbWVuc2lvbnMtYmFzZWQgbWl4aW5zXG4gKiAtIFJFTSBjYWxjdWxhdGlvblxuICogLSBUeXBvZ3JhcGh5IG1peGlucyBiYXNlZCBvbiB0aGUgUkVNIG1peGluXG4gKiAgIC0gZm9udC1zaXplXG4gKiAgIC0gbGluZS1oZWlnaHRcbiAqICAgLSBmb250LXNpemUtZW1zXG4gKi9cblxuLy8gUkVNXG4vLyBAaW5jbHVkZSBrby1yZW0obWFyZ2luLCAkZm9udC1zaXplLWJhc2UpO1xuQG1peGluIGtvLXJlbSgkcHJvcGVydHksICRzaXplVmFsdWU6ICRmb250LXNpemUtYmFzZSkge1xuXHQkcmVtVmFsdWU6IChrby1zdHJpcC11bml0cygkc2l6ZVZhbHVlKSAvICRmb250LXNpemUtYmFzZSk7XG5cdC8vICN7JHByb3BlcnR5fTogY2VpbCgkc2l6ZVZhbHVlKSArIHB4O1xuXHQjeyRwcm9wZXJ0eX06ICN7JHJlbVZhbHVlfXJlbTtcbn1cblxuXG4vKipcbiAqIFR5cG9ncmFwaHkgbWl4aW5zXG4gKi9cblxuLy8gUkVNIGZvbnQgc2l6ZVxuLy8gQGluY2x1ZGUga28tZm9udC1zaXplKDE2KTtcbi8vIEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShsYXJnZSk7XG4vLyBAaW5jbHVkZSBrby1mb250LXNpemUoJHR5cGUtanVtYm8pO1xuQG1peGluIGtvLWZvbnQtc2l6ZSgkc2l6ZVZhbHVlOiAkZm9udC1zaXplLWJhc2UpIHtcblx0JHR5cGU6ICgpICFkZWZhdWx0O1xuXHQvLyBAZGVidWcgJHNpemVWYWx1ZTtcblx0QGluY2x1ZGUga28tcmVtKGZvbnQtc2l6ZSwga28tZ2V0VmFsdWUoJHNpemVWYWx1ZSwgJHR5cGUpKTtcbn1cblxuXG4vLyBSRU0gbGluZSBoZWlnaHRcbi8vIEBpbmNsdWRlIGtvLWxpbmUtaGVpZ2h0KDE2KTtcbkBtaXhpbiBrby1saW5lLWhlaWdodCgkc2l6ZVZhbHVlOiAkbGluZS1oZWlnaHQtYmFzZSkge1xuXHRAaW5jbHVkZSBrby1yZW0obGluZS1oZWlnaHQsICRzaXplVmFsdWUpO1xufVxuXG5cbi8vIEVNIGZvbnQgc2l6ZVxuLy8gQGluY2x1ZGUga28tZm9udC1zaXplLWVtcygyMCwgMTYpO1xuQG1peGluIGtvLWZvbnQtc2l6ZS1lbXMoJHRhcmdldC1weC1zaXplLCAkY29udGV4dC1weC1zaXplOiAkZm9udC1zaXplLWJhc2UpIHtcblx0Zm9udC1zaXplOiAoJHRhcmdldC1weC1zaXplIC8gJGNvbnRleHQtcHgtc2l6ZSkgKiAxZW07XG59XG4iLCIvKipcbiAqIGtvLXBvc2l0aW9uXG4gKiBVc2FnZTpcbiAqIEBpbmNsdWRlIGtvLXBvc2l0aW9uKGFic29sdXRlLCAxMHB4IDIwcHggMzBweCAxMHB4KTtcbiAqL1xuQG1peGluIGtvLXBvc2l0aW9uICgkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IDAgMCAwIDApIHtcblxuXHRAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuXHRcdCRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuXHRcdCRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuXHQkdG9wOiBudGgoJGNvb3JkaW5hdGVzLCAxKTtcblx0JHJpZ2h0OiBudGgoJGNvb3JkaW5hdGVzLCAyKTtcblx0JGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyk7XG5cdCRsZWZ0OiBudGgoJGNvb3JkaW5hdGVzLCA0KTtcblxuXHRwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG5cdEBpZiAkdG9wID09IGF1dG8ge1xuXHRcdHRvcDogJHRvcDtcblx0fSBAZWxzZSBpZiBub3QodW5pdGxlc3MoJHRvcCkpIHtcblx0XHR0b3A6ICR0b3A7XG5cdH1cblxuXHRAaWYgJHJpZ2h0ID09IGF1dG8ge1xuXHRcdHJpZ2h0OiAkcmlnaHQ7XG5cdH0gQGVsc2UgaWYgbm90KHVuaXRsZXNzKCRyaWdodCkpIHtcblx0XHRyaWdodDogJHJpZ2h0O1xuXHR9XG5cblx0QGlmICRib3R0b20gPT0gYXV0byB7XG5cdFx0Ym90dG9tOiAkYm90dG9tO1xuXHR9IEBlbHNlIGlmIG5vdCh1bml0bGVzcygkYm90dG9tKSkge1xuXHRcdGJvdHRvbTogJGJvdHRvbTtcblx0fVxuXG5cdEBpZiAkbGVmdCA9PSBhdXRvIHtcblx0XHRsZWZ0OiAkbGVmdDtcblx0fSBAZWxzZSBpZiBub3QodW5pdGxlc3MoJGxlZnQpKSB7XG5cdFx0bGVmdDogJGxlZnQ7XG5cdH1cbn1cbiIsIi8qKlxuICogdmVydGljYWwtY2VudGVyXG4gKiBWZXJ0aWNhbGx5IGNlbnRlciBhbnkgZWxlbWVudC4gTmVlZHMgc3VwcG9ydCBmb3IgQ1NTIHRyYW5mb3Jtcy5cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUga28tdmVydGljYWwtY2VudGVyO1xuICovXG5AbWl4aW4ga28tdmVydGljYWwtY2VudGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuIiwiLyoqXG4gKiBVdGlsaXR5IE1peGluc1xuICogLSBjbGVhcmZpeFxuICogLSBmb250LWZhY2VcbiAqIC1cbiAqIC0gc2l6aW5nIHNob3J0Y3V0c1xuICogICAtIHNpemVcbiAqICAgLSBzcXVhcmVcbiAqIC0gcmVzaXphYmxlXG4gKi9cblxuLy8gQ2xlYXJmaXhcbi8vIGh0dHA6Ly93d3cuY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLyBPdGhlciBrby1jbGVhcmZpeCBvcHRpb25zOiBodHRwczovL2dpdGh1Yi5jb20vc3R1YmJvcm5lbGxhL29vY3NzL2Jsb2IvbWFzdGVyL29vY3NzL3NyYy9jb21wb25lbnRzL3V0aWxzL19jbGVhcmZpeC1tZS5zY3NzXG5AbWl4aW4ga28tY2xlYXJmaXgge1xuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG59XG5cblxuXG4vLyBAZm9udC1mYWNlXG4vLyBAaW5jbHVkZSBrby1mb250LWZhY2UocHJveGltYS1ub3ZhLCAvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YSwgbm9ybWFsLCBpdGFsaWMsIGZhbHNlKTtcbkBtaXhpbiBrby1mb250LWZhY2UoJGZhbWlseS1uYW1lLCAkZm9udC1wYXRoLCAkZm9udC13ZWlnaHQ6IG5vcm1hbCwgJGZvbnQtc3R5bGU6IG5vcm1hbCkge1xuXHRAZm9udC1mYWNlIHtcblx0XHRmb250LWZhbWlseTogJGZhbWlseS1uYW1lO1xuXHRcdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LmVvdCcpO1xuXHRcdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0XHR1cmwoJyN7JGZvbnQtcGF0aH0ud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdFx0dXJsKCcjeyRmb250LXBhdGh9LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcblx0XHRcdHVybCgnI3skZm9udC1wYXRofS5zdmcjI3skZmFtaWx5LW5hbWV9JykgZm9ybWF0KCdzdmcnKTtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuXHRcdGZvbnQtc3R5bGU6ICRmb250LXN0eWxlO1xuXHR9XG59XG5cbi8vIENlbnRyZS1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcbi8vIEBpbmNsdWRlIGtvLWNlbnRlci1ibG9ja1xuQG1peGluIGtvLWNlbnRlci1ibG9jaygpIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4vLyBJbnB1dCBwbGFjZWhvbGRlciB0ZXh0XG5AbWl4aW4ga28tcGxhY2Vob2xkZXIoJGNvbG9yOiBsaWdodGVuKCMwMDAsIDcwJSkpIHtcblx0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdFx0Y29sb3I6ICRjb2xvcjtcblx0fVxuXG5cdDotbW96LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG5cblx0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG59XG5cbi8vIFRleHQgc2VsZWN0aW9uXG5AbWl4aW4ga28tdGV4dC1zZWxlY3Rpb24oJGNvbG9yLXNlbGVjdGlvbiwgJGNvbG9yLXNlbGVjdGlvbi1iZykge1xuXHQ6Oi1tb3otc2VsZWN0aW9uIHtcblx0XHRjb2xvcjogJGNvbG9yLXNlbGVjdGlvbjtcblx0XHRiYWNrZ3JvdW5kOiAkY29sb3Itc2VsZWN0aW9uLWJnO1xuXHRcdHRleHQtc2hhZG93OiBub25lO1xuXHR9XG5cblx0OjpzZWxlY3Rpb24ge1xuXHRcdGNvbG9yOiAkY29sb3Itc2VsZWN0aW9uO1xuXHRcdGJhY2tncm91bmQ6ICRjb2xvci1zZWxlY3Rpb24tYmc7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdH1cbn1cblxuLy8gVmVydGljYWwgYWxpZ25cbi8vIEBpbmNsdWRlIGtvLXZlcnRpY2FsLWFsaWduKDUwcHgpO1xuQG1peGluIGtvLXZlcnRpY2FsLWFsaWduKCRhcmd1bWVudCkge1xuXHRsaW5lLWhlaWdodDogJGFyZ3VtZW50O1xuXHRoZWlnaHQ6ICRhcmd1bWVudDtcbn1cblxuLy8gVGV4dCB0cnVuY2F0aW9uXG4vLyBAaW5jbHVkZSBrby10cnVuY2F0ZSgzMDBweCk7XG4vLyBAaW5jbHVkZSBrby10cnVuY2F0ZSgxMDAlKTtcbkBtaXhpbiBrby10cnVuY2F0ZSgkdHJ1bmNhdGlvbi1ib3VuZGFyeSkge1xuXHRtYXgtd2lkdGg6ICR0cnVuY2F0aW9uLWJvdW5kYXJ5O1xuXHRAaW5jbHVkZSBrby10ZXh0LW92ZXJmbG93KCk7XG59XG5cbi8vIFRleHQgb3ZlcmZsb3dcbi8vIEBpbmNsdWRlIGtvLXRleHQtb3ZlcmZsb3coKTtcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcbkBtaXhpbiBrby10ZXh0LW92ZXJmbG93IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cblxuLyoqXG4gKiBTaXppbmcgc2hvcnRjdXRzXG4gKi9cblxuLy8gQGluY2x1ZGUga28tc2l6ZSgxMHB4LCAzMHB4KTtcbkBtaXhpbiBrby1zaXplKCR3aWR0aDogNXB4LCAkaGVpZ2h0OiA1cHgpIHtcblx0aGVpZ2h0OiAkaGVpZ2h0O1xuXHR3aWR0aDogJHdpZHRoO1xufVxuXG5cbi8vIEBpbmNsdWRlIGtvLXNxdWFyZSg1MHB4KTtcbkBtaXhpbiBrby1zcXVhcmUoJHNpemU6IDVweCkge1xuXHRAaW5jbHVkZSBrby1zaXplKCRzaXplLCAkc2l6ZSk7XG59XG5cblxuLy8gTWFrZSBhbnkgZWxlbWVudCByZXNpemFibGUgZm9yIHByb3RvdHlwaW5nXG4vLyBAaW5jbHVkZSBrby1yZXNpemFibGUoKTtcbkBtaXhpbiBrby1yZXNpemFibGUoJGRpcmVjdGlvbjogYm90aCkge1xuXHRyZXNpemU6ICRkaXJlY3Rpb247IC8vIE9wdGlvbnMgYXJlIGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG5cdG92ZXJmbG93OiBhdXRvOyAvLyBTYWZhcmkgZml4XG59XG5cbiIsIi8qKlxuICogYmVtaWZ5IFttb2RpZmllZCBmb3IgS2lja29mZl1cbiAqIGh0dHBzOi8vZ3RpaHViLmNvbS9mcmFuemhlaWRsL2JlbWlmeVxuICogRnJhbnogSGVpZGwgMjAxNVxuICpcbiAqIFVzYWdlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS8wY2QyMDEwYmYyNjVkNzEyYmFmYlxuICovXG5cblxuXG4vLyBDT05GSUdcbi8vID09PT09PVxuXG4vLyBPdXRwdXQgY29tYmluZWQgc3RhdGUgc2VsZWN0b3JzIGxpa2U6XG4vLyAgICAuYmxvY2stZWxlbWVudC5pcy1hY3RpdmUge31cbi8vIFNldCB0byBmYWxzZSB0byBvdXRwdXQgc2luZ2xlLCBub24tY29tYmluZWQgc3RhdGUgbW9kaWZpZXJzOlxuLy8gICAgLmJsb2NrLWVsZW1lbnQtLWlzLWFjdGl2ZSB7fVxuJGNvbWJpbmVkLXN0YXRlLXNlbGVjdG9yczogdHJ1ZTtcblxuLy8gLmJsb2NrW3NlcGFyYXRvcl1lbGVtZW50OlxuJGVsZW1lbnQtc2VwYXJhdG9yOiBcIi1cIjtcblxuLy8gLmJsb2NrW3NlcGFyYXRvcl1tb2RpZmllcjpcbiRtb2RpZmllci1zZXBhcmF0b3I6IFwiLS1cIjtcblxuLy8gVGhlIGRlZmF1bHQgcHJlZml4IGZvciBzdGF0ZSBtb2RpZmllciBzZWxlY3RvcnMsIHdpbGwgYmUgY29tYmluZWQgd2l0aCAkbW9kaWZpZXItc2VwYXJhdG9yOlxuJHN0YXRlLXByZWZpeDogXCJpc1wiO1xuXG5cblxuXG4vLyBNaXhpbnNcbi8vIEBpbmNsdWRlIGtvLWJsb2NrKCdmb3JtJykge31cbkBtaXhpbiBrby1ibG9jaygkbmFtZSkge1xuXHQuI3skbmFtZX0ge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLWVsZW1lbnQoJ2l0ZW0nKSB7fVxuQG1peGluIGtvLWVsZW1lbnQoJG5hbWUpIHtcblx0QGF0LXJvb3Qge1xuXHRcdCYjeyRlbGVtZW50LXNlcGFyYXRvcn0jeyRuYW1lfSB7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cdH1cbn1cblxuLy8gQGluY2x1ZGUga28tbW9kaWZpZXIoJ3N0YWNrZWQnKSB7fVxuQG1peGluIGtvLW1vZGlmaWVyKCRuYW1lKSB7XG5cdEBhdC1yb290IHtcblx0XHQmI3skbW9kaWZpZXItc2VwYXJhdG9yfSN7JG5hbWV9IHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fVxufVxuXG4vLyBAaW5jbHVkZSBrby1zdGF0ZSgnYWN0aXZlJykge31cbi8vIEBpbmNsdWRlIGtvLXN0YXRlKCduYXYnLCAnaGFzJykge31cbkBtaXhpbiBrby1zdGF0ZSgkc3RhdGUsICRwcmVmaXg6ICRzdGF0ZS1wcmVmaXgpIHtcblx0QGlmICRjb21iaW5lZC1zdGF0ZS1zZWxlY3RvcnMgPT0gdHJ1ZSB7XG5cdFx0QGF0LXJvb3Qge1xuXHRcdFx0Ji4jeyRwcmVmaXh9LSN7JHN0YXRlfSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRAZWxzZSB7XG5cdFx0QGF0LXJvb3Qge1xuXHRcdFx0JiN7JG1vZGlmaWVyLXNlcGFyYXRvcn0jeyRwcmVmaXh9LSN7JHN0YXRlfSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuXG4vLyBBbGlhc2VzXG4vLyBAaW5jbHVkZSBrby1jb21wb25lbnQoJ2Zvcm0nKSB7fVxuQG1peGluIGtvLWNvbXBvbmVudCgkbmFtZSkge1xuXHRAaW5jbHVkZSBrby1ibG9jaygkbmFtZSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLWNoaWxkKCdpdGVtJykge31cbkBtaXhpbiBrby1jaGlsZCgkbmFtZSkge1xuXHRAaW5jbHVkZSBrby1lbGVtZW50KCRuYW1lKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLy8gQGluY2x1ZGUga28tc3ViY29tcG9uZW50KCdpdGVtJykge31cbkBtaXhpbiBrby1zdWJjb21wb25lbnQoJG5hbWUpIHtcblx0QGluY2x1ZGUga28tZWxlbWVudCgkbmFtZSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLXN1YignaXRlbScpIHt9XG5AbWl4aW4ga28tc3ViKCRuYW1lKSB7XG5cdEBpbmNsdWRlIGtvLWVsZW1lbnQoJG5hbWUpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuIiwiLyoqXG4gKiBHbG9iYWwgY29sb3IgcGFsZXR0ZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIEdlbmVyaWMgY29sb3JzXG4gKiAtIENvbG9yIHNjaGVtZVxuICogLSBDb21tb24gY29sb3JzXG4gKiAtIExpbmtzXG4gKiAtIFRleHQgc2VsZWN0aW9uXG4gKiAtIDxocj5cbiAqIC0gQW55IG90aGVycy4uXG4gKi9cblxuLy8gR2VuZXJpYyBjb2xvcnNcbiRibHVlICAgICAgICAgICAgICAgICAgICAgICAgIDogIzI4OGFkNjtcbiRncmVlbiAgICAgICAgICAgICAgICAgICAgICAgIDogIzE2Yzk4ZDtcbiRyZWQgICAgICAgICAgICAgICAgICAgICAgICAgIDogI2ZhNWU1YjtcbiR5ZWxsb3cgICAgICAgICAgICAgICAgICAgICAgIDogI2ZlZWY2ZDtcbiRvcmFuZ2UgICAgICAgICAgICAgICAgICAgICAgIDogI2ZlN2MwODtcbiRwaW5rICAgICAgICAgICAgICAgICAgICAgICAgIDogI2ZmNzA4ZTtcbiRwdXJwbGUgICAgICAgICAgICAgICAgICAgICAgIDogIzhlNDRhZDtcbiRncmF5ICAgICAgICAgICAgICAgICAgICAgICAgIDogIzk1YTVhNjtcblxuJGRhcmsgICAgICAgICAgICAgICAgICAgICAgICAgOiAjMDAwO1xuJGJyaWdodCAgICAgICAgICAgICAgICAgICAgICAgOiAjZmZmO1xuXG4kY29sb3Ita2lja29mZi1ibHVlICAgICAgICAgICA6ICMxODE4MzA7XG4kY29sb3Ita2lja29mZi1vcmFuZ2UgICAgICAgICA6ICNmZTdjMDg7XG5cbi8vIENvbG9yIFNjaGVtZVxuJGNvbG9yLXByaW1hcnkgICAgICAgICAgICAgICAgOiAjMTgxODMwO1xuJGNvbG9yLXNlY29uZGFyeSAgICAgICAgICAgICAgOiAkb3JhbmdlO1xuJGNvbG9yLWhpZ2hsaWdodCAgICAgICAgICAgICAgOiAkYmx1ZTtcblxuLy8gQ29tbW9uIGNvbG9yc1xuJGNvbG9yLXRleHQgICAgICAgICAgICAgICAgICAgOiAjNDQ0O1xuJGNvbG9yLWJnICAgICAgICAgICAgICAgICAgICAgOiAjZjFmMWYxO1xuJGNvbG9yLWJvcmRlciAgICAgICAgICAgICAgICAgOiAjZGRkO1xuXG5cbi8vIExpbmtzXG4kY29sb3ItbGluay1kZWZhdWx0ICAgICAgICAgICA6ICRjb2xvci1oaWdobGlnaHQ7XG4kY29sb3ItbGluay12aXNpdGVkICAgICAgICAgICA6ICRjb2xvci1saW5rLWRlZmF1bHQ7XG4kY29sb3ItbGluay1ob3ZlciAgICAgICAgICAgICA6IGRhcmtlbigkY29sb3ItbGluay1kZWZhdWx0LCAyMCUpO1xuJGNvbG9yLWxpbmstYWN0aXZlICAgICAgICAgICAgOiBkYXJrZW4oJGNvbG9yLWxpbmstZGVmYXVsdCwgMjAlKTtcblxuLy8gVGV4dCBTZWxlY3Rpb25cbiRjb2xvci1zZWxlY3Rpb24gICAgICAgICAgICAgIDogI2ZmZjtcbiRjb2xvci1zZWxlY3Rpb24tYmcgICAgICAgICAgIDogJGNvbG9yLXByaW1hcnk7XG5cblxuLy8gPGhyPiBib3JkZXIgY29sb3JcbiRoci1jb2xvciAgICAgICAgICAgICAgICAgICAgIDogbGlnaHRlbigjMDAwLCA3MCUpO1xuXG4vLyAzcmQgcGFydHkgYnJhbmQgY29sb3JzIC0gZmluZCBtb3JlIGF0IGJyYW5kY29sb3JzLm5ldFxuJGNvbG9yLXR3aXR0ZXIgICAgICAgICAgICAgICAgOiAjNTVhY2VlO1xuJGNvbG9yLWZhY2Vib29rICAgICAgICAgICAgICAgOiAjM2I1OTk4O1xuJGNvbG9yLXlvdXR1YmUgICAgICAgICAgICAgICAgOiAjY2QyMDFmO1xuJGNvbG9yLXBpbnRlcmVzdCAgICAgICAgICAgICAgOiAjYmQwODFjO1xuJGNvbG9yLWluc3RhZ3JhbSAgICAgICAgICAgICAgOiAjZTQ0MDVmO1xuJGNvbG9yLXdoYXRzYXBwICAgICAgICAgICAgICAgOiAjMjVkMzY2O1xuIiwiLyoqXHJcbiAqIFZhcmlhYmxlc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogLSBUeXBvZ3JhcGh5XHJcbiAqIC0gQnJlYWtwb2ludHNcclxuICogLSBQYXRoc1xyXG4gKiAtIExheW91dCAmIEdyaWRcclxuICogLSBBcHAtc3BlY2lmaWNcclxuICovXHJcblxyXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBpbmRlbnRhdGlvbiAqL1xyXG5cclxuLyoqXHJcbiAqIFR5cG9ncmFwaHlcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqXHJcbiAqIEJhc2Ugc2l6ZXM6XHJcbiAqIFNldCB0aGlzIGluIHBpeGVscyAoYnV0IGRvIG5vdCBhZGQgcHgpLFxyXG4gKiB0aGUgZm9udC1zaXplIG1peGluIHdpbGwgY29udmVydCB0byBSRU1TXHJcbiAqL1xyXG4kZm9udC1zaXplLWJhc2UgICAgICAgICAgIDogMjA7XHJcbiRmb250LXNpemUtYmFzZS1weCAgICAgICAgOiAkZm9udC1zaXplLWJhc2UgKiAxcHg7XHJcbiRmb250LXNpemUtYmFzZS1uYXJyb3cgICAgOiAkZm9udC1zaXplLWJhc2UgLSAyO1xyXG4kZm9udC1zaXplLWJhc2UtbmFycm93LXB4IDogJGZvbnQtc2l6ZS1iYXNlLW5hcnJvdyAqIDFweDtcclxuXHJcbiRsZWFkaW5nLWJhc2UgICAgICAgICAgICAgOiAxLjQ7XHJcbiRsaW5lLWhlaWdodC1iYXNlICAgICAgICAgOiByb3VuZCgkZm9udC1zaXplLWJhc2UgKiAkbGVhZGluZy1iYXNlKTsgLy8gMjAgKiAxLjRcclxuJGJhc2VsaW5lICAgICAgICAgICAgICAgICA6ICRsaW5lLWhlaWdodC1iYXNlICogMXB4O1xyXG5cclxuJHR5cGUtc2NhbGUgICAgICAgICAgICAgICA6IDEuMjU7IC8vIE1ham9yIHRoaXJkXHJcblxyXG4kdHlwZTogKFxyXG5cdG1pY3JvICAgICAgICAgICAgICAgICAgIDoga28tbXMoLTIpLFxyXG5cdHNtYWxsICAgICAgICAgICAgICAgICAgIDoga28tbXMoLTEpLCAvLyBoNSwgaDZcclxuXHRiYXNlICAgICAgICAgICAgICAgICAgICA6IGtvLW1zKDApLCAgLy8gcCwgaDRcclxuXHRtaWQgICAgICAgICAgICAgICAgICAgICA6IGtvLW1zKDEpLCAgLy8gaDNcclxuXHRsYXJnZSAgICAgICAgICAgICAgICAgICA6IGtvLW1zKDIpLCAgLy8gaDJcclxuXHRqdW1ibyAgICAgICAgICAgICAgICAgICA6IGtvLW1zKDMpICAgLy8gaDFcclxuKTtcclxuXHJcbi8vIFVzZWZ1bCB0byBzZXQgaGVyZSB3aGVuIGJvbGQgd2ViZm9udHMgY29tZSBhcyA0MDAgZm9udC13ZWlnaHQuXHJcbiRmb250LXdlaWdodC1ib2xkICAgICAgICAgOiBib2xkO1xyXG5cclxuLy8gRm9udCBzdGFja3NcclxuJGZvbnQtZmFtaWx5LXN5c3RlbSAgICAgICA6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XHJcbiRmb250LWZhbWlseS1zYW5zICAgICAgICAgOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiRmb250LWZhbWlseS1zZXJpZiAgICAgICAgOiBHZW9yZ2lhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWY7XHJcbiRmb250LWZhbWlseS1tb25vICAgICAgICAgOiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcclxuXHJcbiRmb250LWZhbWlseS1iYXNlICAgICAgICAgOiAkZm9udC1mYW1pbHktc3lzdGVtO1xyXG4kZm9udC1mYW1pbHktYWx0ICAgICAgICAgIDogJGZvbnQtZmFtaWx5LXNlcmlmO1xyXG5cclxuJGZvbnQtZmFtaWx5LWhlYWRpbmdzICAgICA6ICRmb250LWZhbWlseS1iYXNlOyAvLyB1c2luZyBpbmhlcml0IHdpbGwgdXNlICRmb250LWZhbWlseS1iYXNlIGZvciBhbGwgaGVhZGluZ3NcclxuJGZvbnQtd2VpZ2h0LWhlYWRpbmdzICAgICA6IGJvbGQ7ICAgIC8vIGluc3RlYWQgb2YgYnJvd3NlciBkZWZhdWx0LCBib2xkXHJcbiRsaW5lLWhlaWdodC1oZWFkaW5ncyAgICAgOiAxLjE7XHJcblxyXG5cclxuLyoqXHJcbiAqIEJyZWFrcG9pbnRzXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBUaGVyZSBhcmUgbm8gY29tbW9uIGJyZWFrcG9pbnRzIHNvIHRoZXNlIGFyZSBqdXN0IGEgc3VnZ2VzdGlvbnNcclxuICogWW91J2xsIG5lZWQgdG8gZGVmaW5lIHlvdXIgb3duIGJyZWFrcG9pbnRzIHRvIHN1aXQgeW91ciBkZXNpZ25cclxuICogQWRkIHlvdXIgYnJlYWtwb2ludHMgdG8gdGhpcyBTYXNzIG1hcFxyXG4gKiBVc2VkIGluIHRoZSBLaWNrb2ZmIGdyaWRcclxuICovXHJcbiRicmVha3BvaW50czogKFxyXG5cdG5hcnJvdyAgICAgICAgICAgICAgICAgIDogNDAwcHgsXHJcblx0bWlkICAgICAgICAgICAgICAgICAgICAgOiA3NTBweCxcclxuXHR3aWRlICAgICAgICAgICAgICAgICAgICA6IDEwMDBweCxcclxuXHRodWdlICAgICAgICAgICAgICAgICAgICA6IDEyNTBweFxyXG4pO1xyXG5cclxuXHJcbi8vIFNldHVwIGxheW91dCBtYXgtd2lkdGhcclxuJGxheW91dC1tYXJnaW4gICAgICAgICAgICAgICAgOiAwOyAvLyBbaW4gcGl4ZWxzXSBTcGFjZSBvdXRzaWRlIHRoZSBncmlkXHJcbiRsYXlvdXQtbWF4LXdpZHRoICAgICAgICAgICAgIDogMTAwMDsgLy8gW2luIHBpeGVsc11cclxuJGxheW91dC1taW4td2lkdGggICAgICAgICAgICAgOiA5NjA7ICAvLyBbaW4gcGl4ZWxzXSBNaW5pbXVtIHdpZHRoIGZvciBsYXlvdXQgaW4gPElFOVxyXG4kbGF5b3V0LW1heC13aWR0aC0taHVnZSAgICAgICA6IDExMDA7IC8vIFtpbiBwaXhlbHNdXHJcbiRsYXlvdXQtbWluLXdpZHRoLS1odWdlICAgICAgIDogMTEwMDsgLy8gW2luIHBpeGVsc10gTWluaW11bSB3aWR0aCBmb3IgbGF5b3V0IGluIDxJRTlcclxuXHJcblxyXG4vKipcclxuICogR3JpZFxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogVGhlc2UgdmFyaWFibGVzIHdpbGwgY29udHJvbCB0aGUgZ3JpZCBtb2R1bGUuXHJcbiAqXHJcbiAqIGlmIHlvdXIgcHJvamVjdCBkb2VzbnQgdXNlIEtpY2tvZmbigJlzIGRlZmF1bHQgZ3JpZCwgeW91IGNhbiBkZWxldGUgdGhlc2VcclxuICovXHJcblxyXG4kZ3JpZC1jb2x1bW4tY291bnQgICAgICAgIDogMTI7IC8vIFRvdGFsIGNvbHVtbiBjb3VudFxyXG4kZ3JpZC1ndXR0ZXItd2lkdGggICAgICAgIDogMjA7IC8vIFtpbiBwaXhlbHNdXHJcblxyXG4vL1NldHRpbmdzIGhlcmUgb3ZlcnJpZGUgJiBhZmZlY3QgdGhlIGdyaWQgY2xhc3NlcyBvdXRwdXRcclxuJHJlc3BvbnNpdmUtZ3JpZC1zaXplcyAgICA6IHRydWU7IC8vIERpc2FibGUgdGhpcyBpZiB5b3UgZG9uJ3Qgd2FudCBncmlkIHNpemVzIGZvciBlYWNoIGJyZWFrcG9pbnRcclxuJHVzZS1sZWdhY3ktZ3JpZCAgICAgICAgICA6IHRydWU7IC8vIERpc2FibGUgdGhpcyBpcyB5b3Ugb27igJl0IHdhbnQgdG8gb3V0cHV0IC5uby1mbGV4Ym94IGNsYXNzZXMgZm9yIG9sZGVyIGJyb3dzZXJzIHRvIHVzZVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQYXRoIHZhcmlhYmxlc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICovXHJcbiRpbWctcGF0aCAgICAgICAgICAgICAgICAgOiBcIi9hc3NldHMvZGlzdC9pbWdcIjsgLy8gVXNhZ2U6IGJhY2tncm91bmQ6IHVybCgnI3skaW1nLXBhdGh9L2ltZy5qcGcnKSAwIDAgbm8tcmVwZWF0O1xyXG5cclxuXHJcbi8qKlxyXG4gKiBaLWluZGV4IHZhcmlhYmxlc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICovXHJcbiR6LWxvdyAgICAgICAgICAgICAgICAgICAgICAgOiAxMDtcclxuJHotbWlkICAgICAgICAgICAgICAgICAgICAgICA6IDEwMDtcclxuJHotaGlnaCAgICAgICAgICAgICAgICAgICAgICA6IDEwMDA7XHJcblxyXG5cclxuLyoqXHJcbiAqIEFwcC1zcGVjaWZpYyB2YXJpYWJsZXNcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqL1xyXG4kZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZyAgIDogY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcclxuJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbiA6IDMwMG1zO1xyXG4kZGVmYXVsdC10cmFuc2l0aW9uICAgICAgICAgIDogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gJGRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmc7XHJcblxyXG4vLyBBZGQgeW91ciBvd24gOilcclxuIiwiLyoqXG4gKiBUaGUgS2lja29mZiBGbGV4Ym94IEdyaWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRGVmYXVsdCBncmlkIGNsYXNzZXNcbiAqIEdyaWQgZ3V0dGVyIG9wdGlvbnNcbiAqIE1vZGlmaWVyIENsYXNzZXMgKGNvbHVtbiBoZWlnaHQgYW5kIGNlbGwgYWxpZ25tZW50KVxuICogTGVnYWN5IGZhbGxiYWNrcyBmb3IgZmxleGJveFxuICogR3JpZCBzcGFuIGNsYXNzZXNcbiAqIEJyZWFrcG9pbnQgc3RhY2tpbmdcbiAqL1xuXG5AaW1wb3J0IFwia2lja29mZi11dGlsc1wiOyAvLyBodHRwczovL2dpdGh1Yi5jb20vVHJ5S2lja29mZi9raWNrb2ZmLXV0aWxzLnNjc3NcblxuLyogSW1wb3J0IEdyaWQgaGVscGVycyBhbmQgbWl4aW5zICovXG5AaW1wb3J0ICdncmlkLXZhcmlhYmxlcyc7XG5AaW1wb3J0IFwiaW5jbHVkZS1tZWRpYVwiOyAvLyBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbkBpbXBvcnQgJ2dyaWQtaGVscGVycyc7XG5cbi8qKlxuICogQmFzaWMgVXNhZ2U6XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0PGRpdiBjbGFzcz1cImdcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiZy1jb2wgZy1zcGFuNCBnLXNwYW42LS1taWRcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiZy1jb2wgZy1zcGFuOCBnLXNwYW42LS1taWRcIj48L2Rpdj5cblx0PC9kaXY+XG4gKi9cbi5nIHtcblx0ZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyAvLyBmb3JjZSBkaXNwbGF5OiBmbGV4LCBhcyBvdGhlcndpc2UgbWF5IGNsYXNoIHdpdGggb3RoZXIgY29tcG9uZW50cyBkaXNwbGF5IHByb3BlcnRpZXMgKGFuZCB0aGUgZ3JpZCB3b27igJl0IHdvcmspXG5cdGZsZXgtd3JhcDogd3JhcDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblxuXHQvLyBhbnkgaW1hZ2UgaW4gdGhlIGdyaWQgc2hvdWxkIGhhdmUgYSBtYXgtd2lkdGggb2YgaXTigJlzIGNvbnRhaW5lclxuICAgICYgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuXHQuZy1jb2wge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0Ly8gQnkgZGVmYXVsdCwgZXZlbmx5IGRpc3RyaWJ1dGUgY29sdW1uc1xuXHRcdC8vIG4uYi4gdG8gc3VwcG9ydCBub24tZmxleGJveCBicm93c2VycywgeW91IHNob3VsZCBhbHdheXMgYWRkIC5nLXNwYW54XG5cdFx0ZmxleDogMSAwIDA7XG5cdFx0bWluLXdpZHRoOiAwOyAvLyB0aGlzIGlzIHRvIG1ha2Ugc3VyZSB0aGF0IGxvbmcgd29yZHMgZG9u4oCZdCBnZXQgY3V0IG9mZiwgYnV0IHdyYXAgYXMgZXhwZWN0ZWRcblx0fVxuXG4vKipcbiAqIEd1dHRlciBjYWxjcyDigJMgYXBwbGllZCB0byBncmlkIGNvbHVtbnMgaW4gb3VyIGdyaWQgKGRpcmVjdCBkZXNjZW5kYW50cyBvbmx5KVxuICogRGVmYXVsdDogcGl4ZWxzIChjYW4gbG9vayBhdCBjaGFuZ2luZyB0byBwZXJjZW50YWdlKVxuICogVXNhZ2U6IGd1dHRlckNhbGMoKSBvciBndXR0ZXJDYWxjKGZhbHNlKVxuICovXG5cbi8vIFR3byB0eXBlcyBvZiBndXR0ZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC5nLS1ndXR0ZXJcbi8vIFVzZXMgcGFkZGluZyBhbmQgZml4ZWQgZ3V0dGVyIHB4IHZhbHVlcy5cbi8vIFByb3MgPSBNYXJnaW5zIHdpbGwgYmUgZXF1YWwgdG8geW91ciAkZ3JpZC1ndXR0ZXItd2lkdGggKGV2ZW4gYXQgbGFyZ2VyL3NtYWxsZXIgY29udGFpbmVyIHNpemVzKSwgaWYgdGhhdOKAmXMgd2hhdCB5b3UgcmVxdWlyZVxuLy8gQ29ucyA9IENhbuKAmXQgc2V0IGEgYm9yZGVyIGRpcmVjdGx5IHRvIGdyaWQgY29udGFpbmVycywgYXMgdXNlcyBuZWdhdGl2ZSBtYXJnaW5zLiAgTmVlZCBleHRyYSBlbGVtZW50IHRvIGdldCB0aGUgZGVzaXJlZCBlZmZlY3RcblxuJGctZ3V0dGVyLWhhbGY6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSArIHB4O1xuXG4uZy0tZ3V0dGVyIHtcblx0bWFyZ2luLWxlZnQ6IC0kZy1ndXR0ZXItaGFsZjtcblx0bWFyZ2luLXJpZ2h0OiAtJGctZ3V0dGVyLWhhbGY7XG5cblx0JiA+IC5nLWNvbCB7XG5cdFx0cGFkZGluZy1sZWZ0OiAkZy1ndXR0ZXItaGFsZjtcblx0XHRwYWRkaW5nLXJpZ2h0OiAkZy1ndXR0ZXItaGFsZjtcblx0fVxufVxuXG4vLyAuZy0tZ3V0dGVyLS1zY2FsZWRcbi8vIFVzZXMgbWFyZ2luIGFuZCBwZXJjZW50YWdlIHZhbHVlcy4gIFNjYWxlcyB0aGUgbWFyZ2luIGFzIHRoZSB2aWV3cG9ydCBnZXRzIHNtYWxsZXIgKGZvciBSV0QpXG4vLyBQcm8gPSBHb29kIGZvciB3aGVuIHlvdXIgY29udGFpbmVyIGlzIGFsd2F5cyB0aGUgJGxheW91dC1tYXgtd2lkdGguICBNZWFucyBjYW4gYXBwbHkgYm9yZGVycyB0byBncmlkIGVsZW1lbnRzIHdpdGhvdXQgbW9yZSBtYXJrdXBcbi8vIENvbnMgPSBJZiBjb250YWluZXIgaXNu4oCZdCBzYW1lIHNpemUgYXMgJGxheW91dC1tYXgtd2lkdGgsIHRoZSBndXR0ZXJzIHdpbGwgYWxzbyBzY2FsZSAoc28gbGFyZ2VyIGNvbnRhaW5lciB3aWR0aCA9PT0gbGFyZ2VyIGd1dHRlcnMgYW5kIHZpY2UgdmVyc2EpXG5cbi5nLS1ndXR0ZXItLXNjYWxlZCB7XG5cdCYgPiAuZy1jb2wge1xuXHRcdG1hcmdpbi1sZWZ0OiBrby1ndXR0ZXJDYWxjKCk7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cdH1cbn1cblxuLmctLXN0YWNrIHtcblx0JiA+IC5nLWNvbCB7XG5cdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbiAgICAmLmctLWd1dHRlci0tc2NhbGVkID4gLmctY29sIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxufVxuXG5cbi8qKlxuICogLmctLWVxdWFsSGVpZ2h0IOKAkyBFcXVhbCBIZWlnaHQgQ2hpbGQgRWxlbWVudHNcbiAqL1xuLmctLWVxdWFsSGVpZ2h0IHtcblx0PiAuZy1jb2wge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQmID4gKiB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKlxuICogQWxpZ25tZW50XG4gKiBNb2RpZmllciBjbGFzc2VzIHRvIG1vdmUgb3VyIGdyaWQgZWxlbWVudHMgYXJvdW5kXG4gKi9cbi5nLS1hbGlnblRvcCAgICAgICAgeyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuLmctLWFsaWduQm90dG9tICAgICB7IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuLmctLWFsaWduU2VsZkJvdHRvbSB7IGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG4uZy0tYWxpZ25SaWdodCAgICAgIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuLmctLWFsaWduQ2VudGVyICAgICB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4uZy0tYWxpZ25DZW50ZXItLXYgIHsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG5cbi8qKlxuICogQ2VudGVyaW5nXG4gKiBDZW50ZXJzIGFuIGluZGl2aWR1YWwgY29sdW1uLCByYXRoZXIgdGhhbiB0aGUgZW50aXJlIGdyaWRcbiAqL1xuLmctY29sLS1jZW50ZXJlZCB7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4vKipcbiAqIFNocmlua2luZyBDb250ZW50XG4gKiBTaHJpbmsgYSAuZy1jb2wgZG93biB0byBvbmx5IHRoZSBzcGFjZSBpdCBuZWVkcyAoZmxleGJveCBvbmx5KVxuICpcbiAqIEVmZmVjdGl2ZWx5IGp1c3QgY2hhbmdlcyBpdOKAmXMgdmFsdWVzIGJhY2sgdG8gdGhlIGRlZmF1bHQgZmxleCBwcm9wZXJ0aWVzXG4gKi9cbi5nLWNvbC0tc2hyaW5rIHtcblx0ZmxleDogMCAxIGF1dG87XG59XG5cblxuLyoqXG4gKiBBZGQgZmFsbGJhY2tzIGZvciBub24tZmxleGJveCBzdXBwb3J0aW5nIGJyb3dzZXJzIChmb3IgZXhhbXBsZSwgSUU4LzkpXG4gKi9cbkBpZiAkdXNlLWxlZ2FjeS1ncmlkIHtcblx0Lm5vLWZsZXhib3gge1xuXHRcdC5nIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IC8vIG5lZWQgdGhpcyBmb3Igb2xkIFNhZmFyaSwgYXMgaXQgdGhpbmtzIGl0IHVuZGVyc3RhbmRzIGZsZXhib3ggYnV0IGRvZXNu4oCZdCByZWFsbHlcblx0XHRcdEBpbmNsdWRlIGtvLWNsZWFyZml4O1xuXHRcdH1cblxuXHRcdC5nLWNvbCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1pbi1oZWlnaHQ6IDFweDtcblx0XHRcdGNsZWFyOiBub25lO1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHR9XG5cblx0XHQuZy0tc3RhY2sgLmctY29sIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5nLS1lcXVhbEhlaWdodCB7XG5cdFx0XHQ+IC5nLWNvbCB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrOyAvLyBhZ2FpbiBuZWVkIHRvIG92ZXJpZGUgb2xkIHNhZmFyaSB0aGlua2luZyBpdCBrbm93cyBmbGV4Ym94LCB3aGVuIGl0IGRvZXNu4oCZdCByZWFsbHlcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ly9lbmQgLm5vLWZsZXhib3hcbn1cblxuXG5cbi8qKlxuICogR3JpZCBTcGFuIGNsYXNzZXMgKGZvciBkaWZmZXJlbnQgYnJlYWtwb2ludHMpXG4gKlxuICogQXBwbGllZCBieSB1c2luZyAuZy1zcGFueCB0byAuZy1jb2wgZWxlbWVudHMsIHdoZXJlIHggaXMgdGhlIG51bWJlciBvZiBjb2x1bW5zXG4gKi9cblxuQGluY2x1ZGUga28tZ3JpZFNwYW5IZWxwZXI7IC8vIERlZmF1bHQgc2l6ZXNcblxuLy8gUmVzcG9uc2l2ZSBzaXplcyBvbmx5IGdlbmVyYXRlZCBpZiAkcmVzcG9uc2l2ZS1ncmlkLXNpemVzID09IHRydWVcbkBpZiAkcmVzcG9uc2l2ZS1ncmlkLXNpemVzIHtcblx0Ly9sb29wIHRocm91Z2ggb3VyIGJyZWFrcG9pbnRzXG5cdEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj0jeyR2YWx1ZX0nKSB7XG5cdFx0XHRAaW5jbHVkZSBrby1ncmlkU3BhbkhlbHBlcigkbmFtZSk7XG5cdFx0fVxuXHR9XG59XG5cbkBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcblx0LmctLXN0YWNrLS0jeyRuYW1lfSB7XG5cdFx0QGluY2x1ZGUga28tZ3JpZC1zdGFjaygkbmFtZSk7XG5cdH1cbn1cbiIsIi8qKlxuICogR3JpZCBWYXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGhlc2UgYXJlIGRlZmluZWQgaGVyZSBzbyB0aGF0IHRoZSBncmlkIGNhbiBydW4gYXMgYSBzdGFuZGFsb25lIG1vZHVsZSAob3V0c2lkZSBvZiBLaWNrb2ZmKSxcbiAqIGFzIHdlbGwgYXMgYWxsb3dpbmcgdGhlc2UgZmlsZXMgdG8gYmUgZ2VuZXJhdGVkIGludG8gc3RhbmRhcmQgQ1NTLlxuICpcbiAqIFdoZW4gaW1wb3J0aW5nIHRoZSBncmlkIGludG8geW91ciBvd24gcHJvamVjdCwgY29weSB0aGUgdmFyaWFibGVzIGZyb20gdGhpcyBmaWxlIGludG8geW91ciBvd24gdmFyaWFibGVzLnNjc3NcbiAqIFRoZXkgd2lsbCB0aGVuIG92ZXJyaWRlIHRoZSB2YWx1ZXMgc3BlY2lmaWVkIGhlcmUgKGFzIGxvbmcgYXMgdGhlIGdyaWQgaXMgaW1wb3J0ZWQgYmVsb3cgd2hlcmUgeW91ciBvd24gdmFyaWFibGVzIGFyZSBkZWZpbmVkKS5cbiAqL1xuXG4kYnJlYWtwb2ludHM6IGtvLW1hcC10by1lbSgoXG5cdG5hcnJvdyAgICAgICAgICAgICAgICAgIDogNDAwcHgsXG5cdG1pZCAgICAgICAgICAgICAgICAgICAgIDogNzUwcHgsXG5cdHdpZGUgICAgICAgICAgICAgICAgICAgIDogMTAwMHB4LFxuXHRodWdlICAgICAgICAgICAgICAgICAgICA6IDEyNTBweFxuKSwgMTYpICFkZWZhdWx0O1xuXG5cbi8vIFNldHVwIGxheW91dCBtYXgtd2lkdGhcbiRsYXlvdXQtbWF4LXdpZHRoICAgICAgICAgICAgIDogMTAwMCAhZGVmYXVsdDsgLy8gW2luIHBpeGVsc11cblxuLy8gR3JpZCBzcGVjaWZpYyB2YXJpYWJsZXNcbiRncmlkLWNvbHVtbi1jb3VudCAgICAgICAgOiAxMiAgICAhZGVmYXVsdDsgLy8gVG90YWwgY29sdW1uIGNvdW50XG4kZ3JpZC1ndXR0ZXItd2lkdGggICAgICAgIDogMjAgICAgIWRlZmF1bHQ7IC8vIFtpbiBwaXhlbHNdXG5cbi8vU2V0dGluZ3MgaGVyZSBvdmVycmlkZSAmIGFmZmVjdCB0aGUgZ3JpZCBjbGFzc2VzIG91dHB1dFxuJHJlc3BvbnNpdmUtZ3JpZC1zaXplcyAgICA6IHRydWUgICFkZWZhdWx0OyAvLyBEaXNhYmxlIHRoaXMgaWYgeW91IGRvbid0IHdhbnQgZ3JpZCBzaXplcyBmb3IgZWFjaCBicmVha3BvaW50XG4kdXNlLWxlZ2FjeS1ncmlkICAgICAgICAgIDogdHJ1ZSAgIWRlZmF1bHQ7IC8vIERpc2FibGUgdGhpcyBpZiB5b3UgZG9u4oCZdCB3YW50IHRvIG91dHB1dCAubm8tZmxleGJveCBjbGFzc2VzIGZvciBvbGRlciBicm93c2VycyB0byB1c2VcbiIsIi8qKlxuICogS2lja29mZiBncmlkIGhlbHBlcnNcbiAqL1xuXG5AbWl4aW4ga28tZ3JpZFNwYW5IZWxwZXIoJGJyZWFrcG9pbnQ6IG51bGwpIHtcblx0JHN1ZmZpeDogbnVsbDtcblxuXHRAaWYgJGJyZWFrcG9pbnQge1xuXHRcdCRzdWZmaXg6IC0tI3skYnJlYWtwb2ludH07XG5cdH1cblxuXHRAZm9yICRpIGZyb20gMSB0byAkZ3JpZC1jb2x1bW4tY291bnQgKyAxIHtcblx0XHQkY29sLXdpZHRoOiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRpLCB0cnVlKTtcblx0XHQkY29sLXdpZHRoLWd1dHRlcmVkOiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRpLCB0cnVlLCB0cnVlKTtcblxuXHRcdC5nLXNwYW4jeyRpfSN7JHN1ZmZpeH0ge1xuXHRcdFx0ZmxleC1iYXNpczogJGNvbC13aWR0aCAhaW1wb3J0YW50O1xuXHRcdFx0ZmxleC1ncm93OiAwO1xuXHRcdFx0Ly8gbmVlZCB0aGlzIG5leHQgbGluZSBmb3IgYSB3ZWlyZCBJRTkvMTAvMTEgYnVnLCB3aGVyZSBhZGRpbmcgcGFkZGluZyB0byBhIGZsZXgtaXRlbSBjYW4gdGhyb3cgb3V0IHRoZSBmbGV4LWJhc2lzIGFuZCB3cmFwIHRoZSBjb2x1bW5zIGluY29ycmVjdGx5XG5cdFx0XHQvLyBzZWUgdGhpcyBmb3IgbW9yZSBkZXRhaWwg4oCTIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzNcblx0XHRcdG1heC13aWR0aDogJGNvbC13aWR0aCAhaW1wb3J0YW50O1xuXG5cdFx0XHQvLyBtYXliZSBoYXZlIGFuIG9wdGlvbiB0byBpbmNsdWRlIHRoaXMgaW4gYSB2YXJpYWJsZVxuXHRcdFx0Ji5nLWhvbGRXaWR0aCN7JHN1ZmZpeH0ge1xuXHRcdFx0XHRAaW5jbHVkZSBrby1waXhlbE1pbldpZHRoKCRpKTtcblxuXHRcdFx0XHQuZy0tZ3V0dGVyLS1zY2FsZWQgJiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUga28tcGl4ZWxNaW5XaWR0aCgkaSwgdHJ1ZSk7IC8vIGdldCB0aGUgaG9sZC13aWR0aCBtaW51cyB0aGUgZ3V0dGVyXG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmctLWd1dHRlci0tc2NhbGVkICYge1xuXHRcdFx0XHRmbGV4LWJhc2lzOiAkY29sLXdpZHRoLWd1dHRlcmVkICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC8vIG5lZWQgdGhpcyBuZXh0IGxpbmUgZm9yIGEgd2VpcmQgSUU5LzEwLzExIGJ1Zywgd2hlcmUgYWRkaW5nIHBhZGRpbmcgdG8gYSBmbGV4LWl0ZW0gY2FuIHRocm93IG91dCB0aGUgZmxleC1iYXNpcyBhbmQgd3JhcCB0aGUgY29sdW1ucyBpbmNvcnJlY3RseVxuXHRcdFx0XHQvLyBzZWUgdGhpcyBmb3IgbW9yZSBkZXRhaWwg4oCTIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzNcblx0XHRcdFx0bWF4LXdpZHRoOiAkY29sLXdpZHRoLWd1dHRlcmVkO1xuXG5cdFx0XHRcdEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IGtvLWd1dHRlckNhbGMoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRAZWxzZSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QGlmICR1c2UtbGVnYWN5LWdyaWQge1xuXG5cdFx0XHRcdC8vIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBtb2Rlcm5penIgb3IgYW5vdGhlciBkZXRlY3Rpb24gbWVjaGFuaXNtXG5cdFx0XHRcdC5uby1mbGV4Ym94ICYge1xuXHRcdFx0XHRcdHdpZHRoOiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRpLCB0cnVlKSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cblx0XHRcdH1cblx0XHRcdC8vIEBpZiAkdXNlLWxlZ2FjeS1ncmlkXG5cblx0XHR9XG5cdFx0QGlmICRpIDwgMTIge1xuXHRcdFx0Lmctb2Zmc2V0I3skaX0jeyRzdWZmaXh9IHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6ICRjb2wtd2lkdGggIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBHcmlkIHN0YWNraW5nXG4gKiBTdGFjayBncmlkcyBiYXNlZCBvbiBhIGdpdmVuIGJyZWFrcG9pbnRcbiAqXG4gKiBVc2FnZTpcbiAqIC5nLS1zdGFjay0tbmFycm93XG4gKiAuZy0tc3RhY2stLXdpZGVcbiAqL1xuQG1peGluIGtvLWdyaWQtc3RhY2soJGJyZWFrcG9pbnQ6ICd3aWRlJykge1xuXHRAaW5jbHVkZSBtZWRpYSgnPCN7JGJyZWFrcG9pbnR9Jykge1xuXHRcdGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcblxuXHRcdCYgPiAuZy1jb2wge1xuXHRcdFx0ZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDsgLy8gZ2V0IHJpZCBvZiBhbnkgZ3JpZCBtYXJnaW5zIGlmIHRoZXJlIGFyZSBhbnlcblxuXHRcdFx0QGlmICR1c2UtbGVnYWN5LWdyaWQge1xuXHRcdFx0XHQubm8tZmxleGJveCAmIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogR3V0dGVyIENhbGN1bGF0aW9uc1xuICogRGVmYXVsdDogcGVyY2VudFxuICogVXNhZ2U6IGtvLWd1dHRlckNhbGMoKSBvciBrby1ndXR0ZXJDYWxjKGZhbHNlKVxuICogV2hlbiBzaG93LXVuaXQgaXMgdHJ1ZSwgcmV0dXJucyB0aGUgcGVyY2VudGFnZSwgb3RoZXJ3aXNlIHJldHVybiBhIGRlY2ltYWxcbiAqL1xuQGZ1bmN0aW9uIGtvLWd1dHRlckNhbGMoJHNob3ctdW5pdDogdHJ1ZSkge1xuXHRAaWYgJHNob3ctdW5pdCA9PSB0cnVlIHtcblx0XHRAcmV0dXJuIHBlcmNlbnRhZ2Uoa28tc3RyaXAtdW5pdHMoJGdyaWQtZ3V0dGVyLXdpZHRoKSAvIGtvLXN0cmlwLXVuaXRzKCRsYXlvdXQtbWF4LXdpZHRoKSk7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gJGdyaWQtZ3V0dGVyLXdpZHRoIC8gJGxheW91dC1tYXgtd2lkdGg7XG5cdH1cbn1cblxuXG5cbi8qKlxuICogR3JpZCBjb2x1bW5zIHdpZHRoIGNhbGN1bGF0aW9uc1xuICogVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgb2Ygd29ya2luZyBvdXQgdGhlIGNvbHVtbiB3aWR0aHMgaGFwcGVuc1xuICpcbiAqICRjb2x1bW4tc3BhbjogZGVmaW5lIHRoZSB3aWR0aCBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHJlcXVpcmVkXG4gKiAkc2hvdy11bml0OiBTd2l0Y2ggcmV0dXJuIHZhbHVlIGJldHdlZW4gcGVyY2VudGFnZSAoZGVmYXVsdCkgYW5kIGRlY2ltYWxcbiAqICRpbmNsdWRlLWd1dHRlcnM6IGlmIGd1dHRlcnMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBjYWxjdWxhdGlvbnMuIERlZmF1bHQgPSBmYWxzZVxuICogJGxlZ2FjeS1jYWxjOiBpZiB3ZSBhcmUgd29ya2luZyBvdXQgYSBsZWdhY3kgY29sdW1uIHdpZHRoIGNhbGN1bGF0aW9uLCBvciBub3QuIERlZmF1bHQgPSBmYWxzZVxuICovXG5AZnVuY3Rpb24ga28tZ3JpZENvbHVtbldpZHRoQ2FsYygkY29sdW1uLXNwYW46IDEsICRzaG93LXVuaXQ6IHRydWUsICRpbmNsdWRlLWd1dHRlcnM6IGZhbHNlKSB7XG5cdCRudW1iZXItb2YtYmxvY2tzLWluLWNvbnRhaW5lciA6ICRncmlkLWNvbHVtbi1jb3VudCAvICRjb2x1bW4tc3Bhbjtcblx0JHRvdGFsLXdpZHRoLW9mLWFsbC1ibG9ja3MgICAgIDogMTtcblxuXHQvLyB3aGVuIGluY2x1ZGluZyBndXR0ZXJzLCB3ZSBuZWVkIHRvIGFkanVzdCBvdXIgJSB3aWR0aCBvciBmbGV4LWJhc2lzIGFwcHJvcHJpYXRlbHlcblx0QGlmICRpbmNsdWRlLWd1dHRlcnMge1xuXHRcdCR0b3RhbC13aWR0aC1vZi1hbGwtZ3V0dGVycyAgICA6IGtvLWd1dHRlckNhbGMoZmFsc2UpICogKCRudW1iZXItb2YtYmxvY2tzLWluLWNvbnRhaW5lciAtIDEpO1xuXHRcdCR0b3RhbC13aWR0aC1vZi1hbGwtYmxvY2tzICAgICA6IDEgLSAkdG90YWwtd2lkdGgtb2YtYWxsLWd1dHRlcnM7XG5cdH1cblxuXHQkd2lkdGgtb2YtYS1zaW5nbGUtYmxvY2sgICAgICAgOiAkdG90YWwtd2lkdGgtb2YtYWxsLWJsb2NrcyAvICRudW1iZXItb2YtYmxvY2tzLWluLWNvbnRhaW5lcjtcblxuXHRAaWYgJHNob3ctdW5pdCA9PSB0cnVlIHtcblx0XHRAcmV0dXJuIHBlcmNlbnRhZ2Uoa28tc3RyaXAtdW5pdHMoJHdpZHRoLW9mLWEtc2luZ2xlLWJsb2NrKSk7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gJHdpZHRoLW9mLWEtc2luZ2xlLWJsb2NrO1xuXHR9XG59XG5cbkBtaXhpbiBrby1waXhlbE1pbldpZHRoKCRjb2x1bW4tc3BhbjogMSwgJG1pbnVzR3V0dGVyOiBmYWxzZSkge1xuXHRAaWYgJG1pbnVzR3V0dGVyID09IHRydWUge1xuXHRcdG1pbi13aWR0aDogKCRsYXlvdXQtbWF4LXdpZHRoICoga28tZ3JpZENvbHVtbldpZHRoQ2FsYygkY29sdW1uLXNwYW4sIGZhbHNlKSkgLSAoJGxheW91dC1tYXgtd2lkdGggKiBrby1ndXR0ZXJDYWxjKGZhbHNlKSkgKyBweDtcblx0fVxuXHRAZWxzZSB7XG5cdFx0bWluLXdpZHRoOiAoJGxheW91dC1tYXgtd2lkdGggKiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRjb2x1bW4tc3BhbiwgZmFsc2UpKSArIHB4O1xuXHR9XG59XG5cblxuLyoqXG4gKiBDb2x1bW4gd2lkdGggbWl4aW5cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUgY29sdW1uKDIpO1xuICovXG5AbWl4aW4gY29sdW1uKCRjb2x1bW4tc3BhbjogMSkge1xuXHR3aWR0aDoga28tZ3JpZENvbHVtbldpZHRoQ2FsYygkY29sdW1uLXNwYW4sIHRydWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQXJvdW5kT3BlcmF0b3JcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxyXG4gKiBDb2xvdXIgc3dhdGNoZXNcclxuICovXHJcbi5zZy1zd2F0Y2gge1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoIzAwMCwgLjIpO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRwYWRkaW5nOiAxNXB4O1xyXG5cdG1hcmdpbjogMTVweDtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0dHJhbnNpdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbjtcclxuXHRjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG5cdCY6aG92ZXIge1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiByZ2JhKCMwMDAsIC42KTtcclxuXHR9XHJcblxyXG5cdCYuaXMtYWN0aXZlIHtcclxuXHRcdGFuaW1hdGlvbjogc2dTd2F0Y2ggNTAwbXMgZWFzZS1pbi1vdXQ7XHJcblx0fVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNnU3dhdGNoIHtcclxuXHQ1MCUgeyBvcGFjaXR5OiAuMzsgfVxyXG59XHJcblxyXG4uc2ctc3dhdGNoLWNvbG9yIHtcclxuXHR3aWR0aDogNTBweDtcclxuXHRoZWlnaHQ6IDUwcHg7XHJcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdG1hcmdpbjogMCAxMHB4O1xyXG59XHJcblxyXG4uc2ctc3dhdGNoLXRleHQge1xyXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZSg2MCk7XHJcblx0bGluZS1oZWlnaHQ6IDE7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0bWFyZ2luOiAwIDEwcHg7XHJcbn1cclxuXHJcbi5zZy1zd2F0Y2gtdmFyIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm87XHJcblx0bWFyZ2luLXRvcDogMTVweDtcclxuXHRmb250LXNpemU6IDEycHg7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbkBtaXhpbiBrby1zd2F0Y2goJGNvbG9yLCAkYmc6ICNmZmYpIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XHJcblxyXG5cdC5zZy1zd2F0Y2gtY29sb3Ige1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG5cdH1cclxuXHJcblx0LnNnLXN3YXRjaC10ZXh0IHtcclxuXHRcdGNvbG9yOiAkY29sb3I7XHJcblx0fVxyXG5cclxuXHQuc2ctc3dhdGNoLXZhciB7XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDogJyN7JGNvbG9yfSc7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLnNnLWNvbG9yLWxpbmstaG92ZXIge1xyXG5cdEBpbmNsdWRlIGtvLXN3YXRjaCgkY29sb3ItbGluay1ob3Zlcik7XHJcbn1cclxuLnNnLWNvbG9yLXByaW1hcnkge1xyXG5cdEBpbmNsdWRlIGtvLXN3YXRjaCgkY29sb3ItcHJpbWFyeSk7XHJcbn1cclxuLnNnLWNvbG9yLXNlY29uZGFyeSB7XHJcblx0QGluY2x1ZGUga28tc3dhdGNoKCRjb2xvci1zZWNvbmRhcnkpO1xyXG59XHJcbi5zZy1jb2xvci1oaWdobGlnaHQge1xyXG5cdEBpbmNsdWRlIGtvLXN3YXRjaCgkY29sb3ItaGlnaGxpZ2h0KTtcclxufVxyXG4uc2ctY29sb3ItdGV4dCB7XHJcblx0QGluY2x1ZGUga28tc3dhdGNoKCRjb2xvci10ZXh0LCAkY29sb3ItYmcpO1xyXG59XHJcbi5zZy1jb2xvci1iYWNrZ3JvdW5kIHtcclxuXHRAaW5jbHVkZSBrby1zd2F0Y2goJGNvbG9yLWJnKTtcclxufVxyXG4uc2ctY29sb3ItYm9yZGVyIHtcclxuXHRAaW5jbHVkZSBrby1zd2F0Y2goJGNvbG9yLWJvcmRlcik7XHJcbn1cclxuLnNnLWNvbG9yLWxpbmsge1xyXG5cdEBpbmNsdWRlIGtvLXN3YXRjaCgkY29sb3ItbGluay1kZWZhdWx0KTtcclxufVxyXG4iXX0= */