theme.css 71 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. @font-face { font-family: "lato"; src: url("../fonts/lato/Lato-Regular.eot"); src: url("../fonts/lato/Lato-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/lato/Lato-Regular.woff") format("woff"), url("../fonts/lato/Lato-Regular.ttf") format("truetype"), url("../fonts/lato/Lato-Regular.svg#lato") format("svg"); }
  2. @font-face { font-family: "syne"; src: url("../fonts/syne/Syne-Bold.eot"); src: url("../fonts/syne/Syne-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/syne/Syne-Bold.woff") format("woff"), url("../fonts/syne/Syne-Bold.ttf") format("truetype"), url("../fonts/syne/Syne-Bold.svg#syne") format("svg"); }
  3. @font-face { font-family: "Avara"; src: url("../fonts/avara/Avara-Bold_Italic_web.eot"); src: url("../fonts/avara/Avara-Bold_Italic_web.eot?#iefix") format("embedded-opentype"), url("../fonts/avara/Avara-Bold_Italic_web.woff") format("woff"), url("../fonts/avara/Avara-Bold_Italic_web.ttf") format("truetype"), url("../fonts/avara/Avara-Bold_Italic_web.svg#Avara") format("svg"); }
  4. @font-face { font-family: "playfairdisplay-regularitalic"; src: url("../fonts/playfair/playfairdisplay-regularitalic.eot"); src: url("../fonts/playfair/playfairdisplay-regularitalic.eot?#iefix") format("embedded-opentype"), url("../fonts/playfair/playfairdisplay-regularitalic.woff") format("woff"), url("../fonts/playfair/playfairdisplay-regularitalic.ttf") format("truetype"), url("../fonts/playfair/playfairdisplay-regularitalic.svg#playfairdisplay-regularitalic") format("svg"); }
  5. /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
  6. /* Document ========================================================================== */
  7. /** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. */
  8. html { margin: 0; padding: 0; line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ font-size: 16px; }
  9. /* Sections ========================================================================== */
  10. /** Remove the margin in all browsers. */
  11. body { margin: 0; padding: 0; }
  12. /** Render the `main` element consistently in IE. */
  13. main { display: block; }
  14. /** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */
  15. h1 { font-size: auto; margin: 0; }
  16. /* Grouping content ========================================================================== */
  17. /** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */
  18. hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ }
  19. /** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */
  20. pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ }
  21. /* Text-level semantics ========================================================================== */
  22. /** Remove the gray background on active links in IE 10. */
  23. p { margin: 0; }
  24. ul { list-style: none; }
  25. ul, li { margin: 0; padding: 0; }
  26. a { background-color: transparent; color: black; text-decoration: none; }
  27. /** 1. Remove the bottom border in Chrome 57- 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */
  28. abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ -webkit-text-decoration: underline dotted; text-decoration: underline dotted; /* 2 */ }
  29. /** Add the correct font weight in Chrome, Edge, and Safari. */
  30. b, strong { font-weight: bolder; }
  31. /** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */
  32. code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ }
  33. /** Add the correct font size in all browsers. */
  34. small { font-size: 80%; }
  35. /** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */
  36. sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
  37. sub { bottom: -0.25em; }
  38. sup { top: -0.5em; }
  39. /* Embedded content ========================================================================== */
  40. /** Remove the border on images inside links in IE 10. */
  41. img { border-style: none; width: 100%; height: 100%; vertical-align: bottom; }
  42. /* Forms ========================================================================== */
  43. /** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. */
  44. button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ }
  45. /** Show the overflow in IE. 1. Show the overflow in Edge. */
  46. button, input { /* 1 */ overflow: visible; }
  47. /** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */
  48. button, select { /* 1 */ text-transform: none; }
  49. /** Correct the inability to style clickable types in iOS and Safari. */
  50. button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
  51. /** Remove the inner border and padding in Firefox. */
  52. button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }
  53. /** Restore the focus styles unset by the previous rule. */
  54. button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
  55. /** Correct the padding in Firefox. */
  56. fieldset { padding: 0.35em 0.75em 0.625em; }
  57. /** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */
  58. legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ }
  59. /** Add the correct vertical alignment in Chrome, Firefox, and Opera. */
  60. progress { vertical-align: baseline; }
  61. /** Remove the default vertical scrollbar in IE 10+. */
  62. textarea { overflow: auto; }
  63. /** 1. Add the correct box sizing in IE 10. 2. Remove the padding in IE 10. */
  64. [type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }
  65. /** Correct the cursor style of increment and decrement buttons in Chrome. */
  66. [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }
  67. /** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */
  68. [type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ }
  69. /** Remove the inner padding in Chrome and Safari on macOS. */
  70. [type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
  71. /** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */
  72. ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ }
  73. /* Interactive ========================================================================== */
  74. /* Add the correct display in Edge, IE 10+, and Firefox. */
  75. details { display: block; }
  76. /* Add the correct display in all browsers. */
  77. summary { display: list-item; }
  78. /* Misc ========================================================================== */
  79. /** Add the correct display in IE 10+. */
  80. template { display: none; }
  81. /** Add the correct display in IE 10. */
  82. [hidden] { display: none; }
  83. h1, h2, h3, p, ul, li, a, span { font-family: "lato"; font-weight: lighter; }
  84. header a { font-size: 2.5rem; line-height: 3rem; }
  85. .home p { font-size: 2.5rem; line-height: 3rem; }
  86. .home #text_figli strong { position: relative; }
  87. .home #text_figli strong::after { display: block; position: absolute; content: ""; width: 100%; height: 1px; background: black; bottom: 0; }
  88. .home #text_figli a { position: relative; }
  89. .home #text_figli a#publique { font-family: "playfairdisplay-regularitalic"; }
  90. .home #text_figli a#sociale { font-family: "syne"; }
  91. .home #text_figli a#culturelle { font-family: "Avara"; }
  92. .home #text_figli #item .e-content p { font-size: 1rem; line-height: 1.2rem; }
  93. #item h2 { width: auto; line-height: 4rem !important; font-size: 4rem !important; font-weight: normal !important; }
  94. #item span { font-size: 1rem; }
  95. #item.publique h2 { font-family: "playfairdisplay-regularitalic"; }
  96. #item.publique span { font-family: "playfairdisplay-regularitalic"; font-weight: normal; }
  97. #item.sociale h2 { font-family: "syne"; }
  98. #item.sociale span { font-family: "syne"; font-weight: normal; }
  99. #item.culturelle h2 { font-family: "Avara"; }
  100. #item.culturelle span { font-family: "Avara"; font-weight: normal; }
  101. a.publique, span.publique { font-family: "playfairdisplay-regularitalic"; }
  102. a.sociale, span.sociale { font-family: "syne"; }
  103. a.culturelle, span.culturelle { font-family: "Avara"; }
  104. .sidebar-right ul, .sidebar-right a { font-size: 0.7rem; line-height: 0.9rem; }
  105. .other_projets h3 { font-size: 2.5rem; margin: 0; }
  106. .card h2 { margin: 0; font-size: 1rem; }
  107. #text_figli { z-index: 999; }
  108. #text_figli p > a { z-index: 999; }
  109. #text_figli p > a:before, #text_figli p > a:after { content: ""; position: absolute; bottom: -1px; width: 0px; height: 1px; margin: 1px 0 0; transition: all 0.2s ease-in-out; transition-duration: 0.3s; opacity: 0; background-color: black; }
  110. #text_figli p > a::before { left: 50%; }
  111. #text_figli p > a:after { right: 50%; }
  112. #text_figli p > a:hover { cursor: pointer; }
  113. #text_figli p > a:hover:before, #text_figli p > a:hover:after { width: 100%; opacity: 1; }
  114. #text_figli p > a:hover:before, #text_figli p > a:hover:after { width: 50%; }
  115. .circle_hover { position: absolute; width: 0px; height: 0px; background: lightblue; border-radius: 500px; transform: translate(-50%, -50%); z-index: 0; transition: height .2s, width .2s; }
  116. .circle_hover.open { width: 200px; height: 200px; transition: height .5s, width .5s; }
  117. .circle_hover.publique { background: lightyellow; }
  118. .circle_hover.sociale { background: lightgreen; }
  119. .circle_hover.culturelle { background: lightblue; }
  120. header { position: fixed; top: 0; left: 0; margin: 0 0 0 0.5rem; padding: 0.5rem 0; width: calc( 80% - 0.5rem); border-bottom: 1px solid black; }
  121. * { box-sizing: border-box; }
  122. html, body, header { background: #f9f9f9fe; }
  123. body #start { width: calc(( 100% / 2 ) - (1rem / 2)); margin: 0.5rem auto auto 0.5rem; }
  124. body #start #text_figli p a.marg { margin-right: 0.5rem; }
  125. body #start #text_figli #item_list { width: 80vw; margin-top: 0.5rem; }
  126. body #start #text_figli #item_list .card { width: calc((100% / 5) - ( 0.5rem * 2)); display: inline-block; vertical-align: top; position: relative; margin: 0 0.5rem 0.5rem 0; height: 100%; }
  127. body #start #text_figli #item_list .card > .card-image.open a img { filter: grayscale(0); transition: filter 0.3s ease; }
  128. body #start #text_figli #item_list .card a { display: block; border-radius: 5px; overflow: auto; }
  129. body #start #text_figli #item_list .card a img { filter: grayscale(1); transition: filter 0.3s ease; }
  130. body #start #text_figli #item_list .card .card-header { width: 100%; padding: 0.5rem; -ms-flex-wrap: wrap; flex-wrap: wrap; display: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; }
  131. body #start #text_figli #item_list .card .card-header > * { font-size: 0.8rem; line-height: 1rem; margin-right: 0.5rem; }
  132. body #start #text_figli #item_list .card:hover a { display: block; }
  133. body #start #text_figli #item_list .card:hover a img { filter: grayscale(0); transition: filter 0.3s ease; }
  134. body #start #text_figli #item_list .card:hover .card-header { display: -ms-inline-flexbox; display: inline-flex; position: absolute; bottom: 0; }
  135. body #start #text_figli #item_list .card:last-of-type { vertical-align: baseline !important; }
  136. body #start #text_figli #item_list .card #item { width: calc( 500% + ( 0.5rem * 4)); padding: 2rem; margin-top: 0.5rem; border-radius: 5px; }
  137. body #start #text_figli #item_list .card #item .content-title { margin: 0 auto 0 auto; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-align: baseline; align-items: baseline; }
  138. body #start #text_figli #item_list .card #item .content-title a { display: block; }
  139. body #start #text_figli #item_list .card #item .e-content { margin: 1rem auto 2rem auto; }
  140. body #start #text_figli #item_list .card #item .e-content p { font-size: 1rem; line-height: 1.2rem; }
  141. body #start #text_figli #item_list .card #item.publique { background: lightyellow; }
  142. body #start #text_figli #item_list .card #item.sociale { background: lightgreen; }
  143. body #start #text_figli #item_list .card #item.culturelle { background: lightblue; }
  144. body #start #text_figli #item_list.publique .card:hover .card-header { background: lightyellow; }
  145. body #start #text_figli #item_list.sociale .card:hover .card-header { background: lightgreen; }
  146. body #start #text_figli #item_list.culturelle .card:hover .card-header { background: lightblue; }
  147. body:not(.home) #start { margin-top: calc( 2rem + 3rem); }
  148. .sidebar-right { position: fixed; width: 15%; height: 100%; right: 0; top: 0; display: -ms-inline-flexbox; display: inline-flex; }
  149. .sidebar-right .list-projets { margin: auto; }
  150. .sidebar-right .list-projets ul { margin: 0.5rem 0.5rem 0px 0; text-align: right; }
  151. .sidebar-right .list-projets ul:nth-child(1) { margin-top: 0; }
  152. .sidebar-right .list-projets ul li:hover a { color: black; }
  153. .sidebar-right .list-projets ul a { color: grey; }
  154. .sidebar-right .list-projets ul a::before { content: " "; width: 5px; height: 5px; display: inline-block; border-radius: 5px; vertical-align: middle; margin-right: 5px; }
  155. .sidebar-right .list-projets ul a#culturelle::before { background: lightblue; }
  156. .sidebar-right .list-projets ul a#sociale::before { background: lightgreen; }
  157. .sidebar-right .list-projets ul a#publique::before { background: lightyellow; }
  158. .sidebar-right .list-projets ul a.active { color: black; }
  159. #item_list { display: -ms-inline-flexbox; display: inline-flex; -ms-flex-wrap: wrap; flex-wrap: wrap; width: 100%; }
  160. #item_list .card { width: calc(( 100% / 2 ) - (1rem / 2)); }
  161. #item_list .card:nth-child(odd) { margin-right: 1rem; }
  162. #item_list .card .card-header { z-index: 999; display: -ms-inline-flexbox; display: inline-flex; width: 100%; }
  163. #item_list .card .card-header > * { margin-right: 0.5rem; }
  164. #item .e-content { columns: 300px 2; margin-bottom: 0.5rem; }
  165. #item .card-image img:not(:last-of-type) { margin-bottom: 0.5rem; }
  166. .other_projets { border-top: 1px solid black; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; margin-top: 1rem; margin-bottom: 1rem; }
  167. .other_projets h3 { margin: 1rem 0 0.5rem 0; width: 100%; }
  168. .other_projets .card { width: calc(( 100% / 3 ) - (1rem / 3)); }
  169. .other_projets .card:nth-child(-1n+3) { margin-right: 0.5rem; }
  170. .other_projets .card .card-header { display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; }
  171. .other_projets .card .card-header > * { margin-right: 0.5rem; }
  172. @media screen and (max-width: 1024px) { body #start { width: 80%; }
  173. body #start #text_figli #item_list .card { width: calc(( 100% / 3 ) - 0.5rem); }
  174. body #start #text_figli #item_list .card #item { width: calc(300% + (.5rem * 2)); } }
  175. @media screen and (max-width: 414px) { body #start { width: calc( 100% - 0.5rem); }
  176. body #start #text_figli p { font-size: 1.7rem; line-height: 2.3rem; }
  177. body #start #text_figli #item_list { width: calc( 100% - 0.5rem); }
  178. body #start #text_figli #item_list .card { width: calc(100%); margin: 0 0 0.5rem 0; }
  179. body #start #text_figli #item_list .card #item { width: 100%; padding: 1rem; }
  180. body #start #text_figli #item_list .card #item .content-title h2 { font-size: 2rem !important; line-height: 2.5rem !important; }
  181. body #start #text_figli #item_list .card #item .content-title > div { line-height: 1rem; }
  182. body .sidebar-right { display: none; } }
  183. /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwiY29uZmlndXJhdGlvbnMvX2ZvbnRzLnNjc3MiLCJjb25maWd1cmF0aW9ucy9fdmFyaWFibGUuc2NzcyIsImNvbmZpZ3VyYXRpb25zL19leHRlbmQuc2NzcyIsInRoZW1lL19yZXNldC5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsInRoZW1lL19hbmltYXRpb24uc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19zdGFydC5zY3NzIiwidGhlbWUvX3NpZGViYXIuc2NzcyIsInRoZW1lL19ibG9nLnNjc3MiLCJ0aGVtZS9faXRlbS5zY3NzIiwidGhlbWUvX21vYmlsZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgJ2NvbmZpZ3VyYXRpb25zL19mb250cyc7XG5AaW1wb3J0ICdjb25maWd1cmF0aW9ucy9fdmFyaWFibGUnO1xuQGltcG9ydCAnY29uZmlndXJhdGlvbnMvX2V4dGVuZCc7XG5AaW1wb3J0ICd0aGVtZS9yZXNldCc7XG5AaW1wb3J0ICd0aGVtZS90eXBvZ3JhcGh5JztcblxuQGltcG9ydCAndGhlbWUvYW5pbWF0aW9uJztcbkBpbXBvcnQgJ3RoZW1lL2hlYWRlcic7XG5AaW1wb3J0ICd0aGVtZS9zdGFydCc7XG5AaW1wb3J0ICd0aGVtZS9zaWRlYmFyJztcbkBpbXBvcnQgJ3RoZW1lL2Jsb2cnO1xuQGltcG9ydCAndGhlbWUvaXRlbSc7XG5AaW1wb3J0ICd0aGVtZS9tb2JpbGUnO1xuIiwiLy8gRm9udCBGYW1pbHlcbiRmb250LWZhbWlseS1kZWZhdWx0OiAgXHRcdFx0XCJSYWxld2F5XCIsIFwiSGVsdmV0aWNhXCIsIFwiVGFob21hXCIsIFwiR2VuZXZhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1oZWFkZXI6ICBcdFx0XHRcIk1vbnRzZXJyYXRcIiwgXCJIZWx2ZXRpY2FcIiwgXCJUYWhvbWFcIiwgXCJHZW5ldmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LW1vbm86IFx0XHRcdFx0XCJJbmNvbnNvbGF0YVwiLCBtb25vc3BhY2U7XG4kZm9udC1mYW1pbHktc2VyaWY6XHRcdFx0XHRcIkdlb3JnaWFcIiwgXCJUaW1lc1wiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBzZXJpZjtcbi8vIEBmb250LWZhY2VcblxuJGxhdG86IFwibGF0b1wiO1xuJGZhbWlseTogXCJsYXRvXCI7XG4kZmlsZS1yZWd1bGFyOiBcIkxhdG8tUmVndWxhclwiO1xuJGNhdGVnb3J5OiBcInNhbnMtc2VyaWZcIjtcblxuQG1peGluIGZvbnQtZmFjZSgkbGF0bywgJGZpbGUtcmVndWxhciwgJGZhbWlseSwgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5ICsgXCIvXCIgKyAkZmlsZS1yZWd1bGFyO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRsYXRvfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJGxhdG8gKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRsYXRvfSB7XG4gICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgIEBpZiAkY2F0ZWdvcnkgIT0gXCJcIiB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGxhdG99XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skbGF0b31cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJHN5bmU6IFwic3luZVwiO1xuJGZhbWlseS1ib2xkOiBcInN5bmVcIjtcbiRmaWxlLWJvbGQ6IFwiU3luZS1Cb2xkXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHN5bmUsICRmaWxlLWJvbGQsICRmYW1pbHktYm9sZCwgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LWJvbGQgKyBcIi9cIiArICRmaWxlLWJvbGQ7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHN5bmV9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgIH1cblxuICAgICUjeyRzeW5lfSB7XG4gICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgIEBpZiAkY2F0ZWdvcnkgIT0gXCJcIiB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHN5bmV9XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skc3luZX1cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJGF2YXJhOiBcIkF2YXJhXCI7XG4kZmFtaWx5LWJvbGQtaXRhbGljOiBcImF2YXJhXCI7XG4kZmlsZS1ib2xkLWl0YWxpYzogXCJBdmFyYS1Cb2xkX0l0YWxpY193ZWJcIjtcblxuQG1peGluIGZvbnQtZmFjZSgkYXZhcmEsICRmaWxlLWJvbGQtaXRhbGljLCAkZmFtaWx5LWJvbGQtaXRhbGljLCAkY2F0ZWdvcnk6XCJcIikge1xuICAgICRmaWxlcGF0aDogXCIuLi9mb250cy9cIiArICRmYW1pbHktYm9sZC1pdGFsaWMgKyBcIi9cIiArICRmaWxlLWJvbGQtaXRhbGljO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRhdmFyYX1cIjtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90XCIpO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi50dGZcIikgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnN2ZyNcIiArICRhdmFyYSArIFwiXCIpIGZvcm1hdCgnc3ZnJyk7XG4gICAgfVxuXG4gICAgJSN7JGF2YXJhfSB7XG4gICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgIEBpZiAkY2F0ZWdvcnkgIT0gXCJcIiB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGF2YXJhfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGF2YXJhfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kcGxheWZhaXI6IFwicGxheWZhaXJkaXNwbGF5LXJlZ3VsYXJpdGFsaWNcIjtcbiRmYW1pbHktaXRhbGljOiBcInBsYXlmYWlyXCI7XG4kZmlsZS1pdGFsaWM6IFwicGxheWZhaXJkaXNwbGF5LXJlZ3VsYXJpdGFsaWNcIjtcblxuQG1peGluIGZvbnQtZmFjZSgkcGxheWZhaXIsICRmaWxlLWl0YWxpYywgJGZhbWlseS1pdGFsaWMsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1pdGFsaWMgKyBcIi9cIiArICRmaWxlLWl0YWxpYztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skcGxheWZhaXJ9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkcGxheWZhaXIgKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRwbGF5ZmFpcn0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcGxheWZhaXJ9XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcGxheWZhaXJ9XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW5jbHVkZSBmb250LWZhY2UoJGxhdG8sICRmaWxlLXJlZ3VsYXIsICRmYW1pbHksICRjYXRlZ29yeSk7Ly8xXG5AaW5jbHVkZSBmb250LWZhY2UoJHN5bmUsICRmaWxlLWJvbGQsICRmYW1pbHktYm9sZCwgJGNhdGVnb3J5KTsvLzJcbkBpbmNsdWRlIGZvbnQtZmFjZSgkYXZhcmEsICRmaWxlLWJvbGQtaXRhbGljLCAkZmFtaWx5LWJvbGQtaXRhbGljLCAkY2F0ZWdvcnkpOy8vMlxuQGluY2x1ZGUgZm9udC1mYWNlKCRwbGF5ZmFpciwgJGZpbGUtaXRhbGljLCAkZmFtaWx5LWl0YWxpYywgJGNhdGVnb3J5KTsvLzJcblxuLy8gZm9udC1zaXplXG4kdHh0LWZpZ2xpOiAyLjVyZW07XG5cbi8vIGxpbmUtaGVpZ2h0XG4kRmxob21lOiAzcmVtO1xuXG4kbWFyZzogMC41cmVtO1xuJG1hcmdJOiAxcmVtO1xuJFdpOiA4MCU7XG5cbiRXaTUwOiBjYWxjKCggMTAwJSAvIDIgKSAtICgjeyRtYXJnSX0gLyAyKSk7XG4kV2kzMzogY2FsYygoIDEwMCUgLyAzICkgLSAoI3skbWFyZ0l9IC8gMykpO1xuXG4vLyBtb2JpbGVcbiR0eHQtZmlnbGktbTogMS41cmVtO1xuXG4vLyBsaW5lLWhlaWdodFxuJEZsaG9tZS1tOiAycmVtO1xuJFdpLW06IGNhbGMoIDEwMCUgLSAwLjVyZW0pO1xuJFdpODAtbTogODAlO1xuJFdpMzMtbTogY2FsYygoIDEwMCUgLyAzICkgLSAwLjVyZW0pO1xuXG5cbi8vIHRhYmxldHRlXG4kdHh0LWZpZ2xpLXQ6IDIuNXJlbTtcblxuLy8gbGluZS1oZWlnaHRcbiRGbGhvbWUtdDogM3JlbTtcblxuLy8gY29sb3JcbiRjb2xvcl9wdWJsaXF1ZTogbGlnaHR5ZWxsb3c7XG4kY29sb3Jfc29jaWFsZTogbGlnaHRncmVlbjtcbiRjb2xvcl9jdWx0dXJlbGxlOiBsaWdodGJsdWU7XG4iLCIiLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiBhdXRvO1xuICBtYXJnaW46MDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xucHtcbiBtYXJnaW46IDA7XG59XG5cbnVse1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxudWwsbGl7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogYmxhY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiaDEsIGgyLCBoMywgcCwgdWwsIGxpLCBhLCBzcGFue1xuICBmb250LWZhbWlseTogJGxhdG87XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuXG5oZWFkZXJ7XG4gIGF7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lO1xuICB9XG59XG5cbi5ob21le1xuICBwe1xuICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaTtcbiAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgfVxuICAjdGV4dF9maWdsaXtcbiAgICBzdHJvbmd7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICBhe1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgJjpudGgtY2hpbGQoMSl7XG4gICAgICB9XG4gICAgICAmI3B1YmxpcXVle1xuICAgICAgICBmb250LWZhbWlseTogJHBsYXlmYWlyO1xuICAgICAgfVxuICAgICAgJiNzb2NpYWxle1xuICAgICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgICB9XG4gICAgICAmI2N1bHR1cmVsbGV7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG4gICAgICB9XG4gICAgfVxuICAgICNpdGVte1xuICAgICAgLmUtY29udGVudHtcbiAgICAgICAgcHtcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4jaXRlbXtcbiAgaDJ7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbGluZS1oZWlnaHQ6IDRyZW0haW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogNHJlbSFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbCFpbXBvcnRhbnQ7XG4gIH1cbiAgc3BhbntcbiAgICBmb250LXNpemU6IDFyZW07XG4gfVxuICYucHVibGlxdWV7XG4gICBoMntcbiAgICAgZm9udC1mYW1pbHk6ICRwbGF5ZmFpcjtcbiAgIH1cbiAgIHNwYW57XG4gICAgIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG4gICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICB9XG4gfVxuICYuc29jaWFsZXtcbiAgIGgye1xuICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICB9XG4gICBzcGFue1xuICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICB9XG4gfVxuICAmLmN1bHR1cmVsbGV7XG4gICAgaDJ7XG4gICAgICBmb250LWZhbWlseTogJGF2YXJhO1xuICAgIH1cbiAgICBzcGFue1xuICAgICAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuICB9XG59XG5cbmEucHVibGlxdWUsIHNwYW4ucHVibGlxdWV7XG4gIGZvbnQtZmFtaWx5OiAkcGxheWZhaXI7XG59XG5cbmEuc29jaWFsZSwgc3Bhbi5zb2NpYWxle1xuICBmb250LWZhbWlseTogJHN5bmU7XG59XG5cbmEuY3VsdHVyZWxsZSwgc3Bhbi5jdWx0dXJlbGxle1xuICBmb250LWZhbWlseTogJGF2YXJhO1xufVxuXG4uc2lkZWJhci1yaWdodHtcbiAgdWwsIGF7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuOXJlbTtcbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgaDN7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uY2FyZHtcbiAgaDJ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuIiwiJGFuaW1hdGU6IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4jdGV4dF9maWdsaXtcbiAgei1pbmRleDogOTk5O1xuICBwe1xuICAgICYgPiBhe1xuICAgICAgei1pbmRleDogOTk5O1xuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IDFweCAwIDA7XG4gICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRlO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIH1cbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgICAgJjphZnRlcntcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jaXJjbGVfaG92ZXJ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG4gIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHotaW5kZXg6IDA7XG4gIHRyYW5zaXRpb246IGhlaWdodCAuMnMsIHdpZHRoIC4ycztcbiAgJi5vcGVue1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAuNXMsIHdpZHRoIC41cztcbiAgfVxuICAmLnB1YmxpcXVle1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wdWJsaXF1ZTtcbiAgfVxuICAmLnNvY2lhbGV7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG4gIH1cbiAgJi5jdWx0dXJlbGxle1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICB9XG59XG4iLCJoZWFkZXJ7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IDAgMCAwICRtYXJnO1xuICBwYWRkaW5nOiAkbWFyZyAwO1xuICB3aWR0aDogY2FsYyggI3skV2l9IC0gI3skbWFyZ30gKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO1xufVxuIiwiKntcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaHRtbCwgYm9keSwgaGVhZGVye1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5ZmU7XG59XG5cbmJvZHl7XG4gICNzdGFydHtcbiAgICAgIHdpZHRoOiAkV2k1MDtcbiAgICAgIG1hcmdpbjogJG1hcmcgYXV0byBhdXRvICRtYXJnO1xuICAgICAgI3RleHRfZmlnbGl7XG4gICAgICAgIHAge1xuICAgICAgICAgIGF7XG4gICAgICAgICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAmLm1hcmd7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICNpdGVtX2xpc3R7XG4gICAgICAgICAgd2lkdGg6IDgwdnc7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAuY2FyZHtcbiAgICAgICAgICB3aWR0aDogY2FsYygoMTAwJSAvIDUpIC0gKCAjeyRtYXJnfSAqIDIpICk7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbjogMCAkbWFyZyAkbWFyZyAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAmID4gLmNhcmQtaW1hZ2V7XG4gICAgICAgICAgICAmLm9wZW57XG4gICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMCk7XG4gICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBhe1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjNzIGVhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogJG1hcmc7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICYgPiAqe1xuICAgICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDApO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3Qtb2YtdHlwZXtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICNpdGVte1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoIDUwMCUgKyAoICN7JG1hcmd9ICogNCkgKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAwIGF1dG87XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5lLWNvbnRlbnR7XG4gICAgICAgICAgICAgIG1hcmdpbjogMXJlbSBhdXRvIDJyZW0gYXV0bztcbiAgICAgICAgICAgICAgcHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5wdWJsaXF1ZXtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zb2NpYWxlO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmN1bHR1cmVsbGV7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnB1YmxpcXVle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wdWJsaXF1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNvY2lhbGV7XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NvY2lhbGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5jdWx0dXJlbGxle1xuICAgICAgICAgIC5jYXJke1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgLmNhcmQtaGVhZGVye1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9jdWx0dXJlbGxlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICY6bm90KC5ob21lKXtcbiAgICAjc3RhcnR7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKCAycmVtICsgICN7JEZsaG9tZX0pO1xuICAgIH1cbiAgfVxufVxuIiwiLnNpZGViYXItcmlnaHR7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDE1JTtcbiAgaGVpZ2h0OiAxMDAlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgLmxpc3QtcHJvamV0c3tcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdWx7XG4gICAgICAmOm50aC1jaGlsZCgxKXtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICAgIG1hcmdpbjogJG1hcmcgJG1hcmcgMHB4IDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGxpe1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGF7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBjb2xvcjogZ3JleTtcbiAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgICAgICYjY3VsdHVyZWxsZXtcbiAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3VsdHVyZWxsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJiNzb2NpYWxle1xuICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc29jaWFsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJiNwdWJsaXF1ZXtcbiAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3B1YmxpcXVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZXtcbiAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiNpdGVtX2xpc3R7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAuY2FyZHtcbiAgICB3aWR0aDogJFdpNTA7XG4gICAgJjpudGgtY2hpbGQob2RkKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdJO1xuICAgIH1cbiAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICB6LWluZGV4OiA5OTk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogJG1hcmc7XG4gICAgICAmID4gKiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIjaXRlbXtcbiAgLmUtY29udGVudHtcbiAgICAtd2Via2l0LWNvbHVtbnM6IDMwMHB4IDI7XG4gICAgLW1vei1jb2x1bW5zOiAzMDBweCAyO1xuICAgICAgICBjb2x1bW5zOiAzMDBweCAyO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnO1xuICAgIH1cbiAgLmNhcmQtaW1hZ2V7XG4gICAgaW1nOm5vdCg6bGFzdC1vZi10eXBlKXtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnO1xuICAgIH1cbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6ICRtYXJnSTtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdJO1xuICBoM3tcbiAgICBtYXJnaW46IDFyZW0gMCAkbWFyZyAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jYXJke1xuICAgIHdpZHRoOiAkV2kzMztcbiAgICAmOm50aC1jaGlsZCgtMW4rMyl7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgIH1cbiAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgJiA+ICp7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpe1xuICBib2R5e1xuICAgICNzdGFydHtcbiAgICAgIHdpZHRoOiAkV2k4MC1tO1xuICAgICAgI3RleHRfZmlnbGl7XG4gICAgICAgICNpdGVtX2xpc3R7XG4gICAgICAgICAgLmNhcmR7XG4gICAgICAgICAgICB3aWR0aDogJFdpMzMtbTtcbiAgICAgICAgICAgICNpdGVte1xuICAgICAgICAgICAgICB3aWR0aDogY2FsYygzMDAlICsgKC41cmVtICogMikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MTRweCkge1xuICBib2R5e1xuXG4gICAgI3N0YXJ0e1xuICAgICAgd2lkdGg6ICRXaS1tO1xuICAgICAgI3RleHRfZmlnbGl7XG4gICAgICAgIHB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuM3JlbTtcbiAgICAgICAgfVxuICAgICAgICAjaXRlbV9saXN0e1xuICAgICAgICAgIHdpZHRoOiAkV2ktbTtcbiAgICAgICAgICAuY2FyZHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC41cmVtIDA7XG4gICAgICAgICAgICAjaXRlbXtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgIC5jb250ZW50LXRpdGxle1xuICAgICAgICAgICAgICAgIGgye1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMi41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYgPiBkaXZ7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuc2lkZWJhci1yaWdodHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4vLyAgIGJvZHl7XG4vLyAgICAgI3N0YXJ0e1xuLy8gICAgICAgd2lkdGg6ICRXaS1tO1xuLy8gICAgICAgI3RleHRfZmlnbGl7XG4vLyAgICAgICAgICNpdGVtX2xpc3R7XG4vLyAgICAgICAgICAgLmNhcmR7XG4vLyAgICAgICAgICAgICB3aWR0aDogJFdpLW07XG4vLyAgICAgICAgICAgICAjaXRlbXtcbi8vICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICguNXJlbSAqIDMpKTtcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgIH1cbi8vXG4vL1xuLy8gICAvLyB0eXBvZ3JhcGhpZVxuLy8gICBoZWFkZXJ7XG4vLyAgICAgYXtcbi8vICAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS1tO1xuLy8gICAgICAgbGluZS1oZWlnaHQ6ICRGbGhvbWUtbTtcbi8vICAgICB9XG4vLyAgIH1cbi8vICAgLmhvbWV7XG4vLyAgICAgcHtcbi8vICAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS1tIWltcG9ydGFudDtcbi8vICAgICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lLW0haW1wb3J0YW50O1xuLy8gICAgIH1cbi8vICAgfVxuLy8gICAub3RoZXJfcHJvamV0c3tcbi8vICAgICBoM3tcbi8vICAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS1tO1xuLy8gICAgIH1cbi8vICAgfVxuLy9cbi8vICAgLy8gbWVwXG4vLyAgIGhlYWRlcntcbi8vICAgICB3aWR0aDogY2FsYyggI3skV2ktbX0gLSAoI3skbWFyZ30gKiAyKSApO1xuLy8gICB9XG4vL1xuLy8gICBib2R5e1xuLy8gICAgICNzdGFydHtcbi8vICAgICAgICAgd2lkdGg6IGNhbGMoICN7JFdpLW19IC0gKCN7JG1hcmd9ICogMikgKTtcbi8vICAgICB9XG4vLyAgICAgJjpub3QoLmhvbWUpe1xuLy8gICAgICAgI3N0YXJ0e1xuLy8gICAgICAgICBtYXJnaW4tdG9wOiAkRmxob21lO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgICAuc2lkZWJhci1yaWdodHtcbi8vICAgICAgIGRpc3BsYXk6IG5vbmU7XG4vLyAgICAgfVxuLy8gICB9XG4vL1xuLy8gICAjaXRlbV9saXN0e1xuLy8gICAgIC5jYXJke1xuLy8gICAgICAgd2lkdGg6IGNhbGMoICN7JFdpLW19ICApIWltcG9ydGFudDtcbi8vICAgICAgICY6bnRoLWNoaWxkKG9kZCl7XG4vLyAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vICAgICAgIH1cbi8vICAgICAgIC5jYXJkLWhlYWRlcntcbi8vICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmc7XG4vLyAgICAgICAgICYgPiAqIHtcbi8vICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICB9XG4vL1xuLy8gICAub3RoZXJfcHJvamV0c3tcbi8vICAgICBtYXJnaW4tdG9wOiAkbWFyZ0k7XG4vLyAgICAgLmNhcmR7XG4vLyAgICAgICB3aWR0aDogJFdpLW07XG4vLyAgICAgICAmOm50aC1jaGlsZCgtMW4rMyl7XG4vLyAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuLy8gICBib2R5e1xuLy8gICAgICNzdGFydHtcbi8vICAgICAgIHdpZHRoOiAkV2k4MC1tO1xuLy8gICAgICAgI3RleHRfZmlnbGl7XG4vLyAgICAgICAgICNpdGVtX2xpc3R7XG4vLyAgICAgICAgICAgLmNhcmR7XG4vLyAgICAgICAgICAgICB3aWR0aDogJFdpMzMtbTtcbi8vICAgICAgICAgICAgICNpdGVte1xuLy8gICAgICAgICAgICAgICB3aWR0aDogY2FsYygzMDAlICsgKC41cmVtICogMykpO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy9cbi8vICAgLy8gdHlwb2dyYXBoaWVcbi8vICAgaGVhZGVye1xuLy8gICAgIGF7XG4vLyAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbi8vICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuLy8gICAgIH1cbi8vICAgfVxuLy8gICAvLyAuaG9tZXtcbi8vICAgLy8gICBwe1xuLy8gICAvLyAgICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpLXQhaW1wb3J0YW50O1xuLy8gICAvLyAgICAgbGluZS1oZWlnaHQ6ICRGbGhvbWUtdCFpbXBvcnRhbnQ7XG4vLyAgIC8vICAgfVxuLy8gICAvLyB9XG4vLyAgIC5vdGhlcl9wcm9qZXRze1xuLy8gICAgIGgze1xuLy8gICAgICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpLXQ7XG4vLyAgICAgfVxuLy8gICB9XG4vL1xuLy8gICBib2R5e1xuLy8gICAgICY6bm90KC5ob21lKXtcbi8vICAgICAgICNzdGFydHtcbi8vICAgICAgICAgbWFyZ2luLXRvcDogNXJlbTtcbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgIH1cbi8vXG4vLyAgICNpdGVtX2xpc3R7XG4vLyAgICAgLmNhcmR7XG4vLyAgICAgICB3aWR0aDogY2FsYyggI3skV2ktbX0gICk7XG4vLyAgICAgICAmOm50aC1jaGlsZChvZGQpe1xuLy8gICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLyAgICAgICB9XG4vLyAgICAgICAuY2FyZC1oZWFkZXJ7XG4vLyAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnO1xuLy8gICAgICAgICAmID4gKiB7XG4vLyAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbi8vICAgICAgICAgfVxuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy8gfVxuLy9cbi8vIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgxMnB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbi8vICAgLy8gdHlwb2dyYXBoaWVcbi8vICAgaGVhZGVye1xuLy8gICAgIGF7XG4vLyAgICAgICBmb250LXNpemU6ICR0eHQtZmlnbGktbTtcbi8vICAgICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lLW07XG4vLyAgICAgfVxuLy8gICB9XG4vLyAgIC5ob21le1xuLy8gICAgIHB7XG4vLyAgICAgICBmb250LXNpemU6ICR0eHQtZmlnbGktbSFpbXBvcnRhbnQ7XG4vLyAgICAgICBsaW5lLWhlaWdodDogJEZsaG9tZS1tIWltcG9ydGFudDtcbi8vICAgICB9XG4vLyAgIH1cbi8vICAgLm90aGVyX3Byb2pldHN7XG4vLyAgICAgaDN7XG4vLyAgICAgICBmb250LXNpemU6ICR0eHQtZmlnbGktbTtcbi8vICAgICB9XG4vLyAgIH1cbi8vXG4vLyAgIC8vIG1lcFxuLy8gICBoZWFkZXJ7XG4vLyAgICAgd2lkdGg6IGNhbGMoICN7JFdpLW19IC0gKCN7JG1hcmd9ICogMikgKTtcbi8vICAgfVxuLy9cbi8vICAgYm9keXtcbi8vICAgICAjc3RhcnR7XG4vLyAgICAgICAgIHdpZHRoOiBjYWxjKCAjeyRXaS1tfSAtICgjeyRtYXJnfSAqIDIpICk7XG4vLyAgICAgfVxuLy8gICAgICY6bm90KC5ob21lKXtcbi8vICAgICAgICNzdGFydHtcbi8vICAgICAgICAgbWFyZ2luLXRvcDogJEZsaG9tZTtcbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgICAgLnNpZGViYXItcmlnaHR7XG4vLyAgICAgICBkaXNwbGF5OiBub25lO1xuLy8gICAgIH1cbi8vICAgfVxuLy9cbi8vICAgI2l0ZW1fbGlzdHtcbi8vICAgICAuY2FyZHtcbi8vICAgICAgIHdpZHRoOiAkV2k1MDtcbi8vICAgICAgICY6bnRoLWNoaWxkKG9kZCl7XG4vLyAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdJO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy9cbi8vICAgLm90aGVyX3Byb2pldHN7XG4vLyAgICAgLmNhcmR7XG4vLyAgICAgICB3aWR0aDogJFdpMzM7XG4vLyAgICAgICAmOm50aC1jaGlsZCgtMW4rMyl7XG4vLyAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG4vL1xuLy8gQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTEwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4vLyAgIGhlYWRlcntcbi8vICAgICBhe1xuLy8gICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4vLyAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcbi8vICAgICB9XG4vLyAgIH1cbi8vICAgLmhvbWV7XG4vLyAgICAgcHtcbi8vICAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS10IWltcG9ydGFudDtcbi8vICAgICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lLXQhaW1wb3J0YW50O1xuLy8gICAgIH1cbi8vICAgfVxuLy8gICAub3RoZXJfcHJvamV0c3tcbi8vICAgICBoM3tcbi8vICAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS10O1xuLy8gICAgIH1cbi8vICAgfVxuLy8gICBib2R5e1xuLy8gICAgICY6bm90KC5ob21lKXtcbi8vICAgICAgICNzdGFydHtcbi8vICAgICAgICAgbWFyZ2luLXRvcDogNXJlbTtcbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NjBweCkge1xuLy8gICBoZWFkZXJ7XG4vLyAgICAgYXtcbi8vICAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS1tO1xuLy8gICAgICAgbGluZS1oZWlnaHQ6ICRGbGhvbWUtbTtcbi8vICAgICB9XG4vLyAgIH1cbi8vICAgLmhvbWV7XG4vLyAgICAgcHtcbi8vICAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS1tIWltcG9ydGFudDtcbi8vICAgICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lLW0haW1wb3J0YW50O1xuLy8gICAgIH1cbi8vICAgfVxuLy8gICAub3RoZXJfcHJvamV0c3tcbi8vICAgICBoM3tcbi8vICAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS1tO1xuLy8gICAgIH1cbi8vICAgfVxuLy9cbi8vICAgYm9keXtcbi8vICAgICAmOm5vdCguaG9tZSl7XG4vLyAgICAgICAjc3RhcnR7XG4vLyAgICAgICAgIG1hcmdpbi10b3A6ICRGbGhvbWU7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG4vL1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQ2dHSSxVQUFVLEdBQ04sV0FBVyxFQUFFLE1BQWMsRUFDM0IsR0FBRyxFQUFFLHFDQUF1QixFQUM1QixHQUFHLEVBQUUsNENBQThCLENBQUMsMkJBQTJCLEVBQ3pELHNDQUF3QixDQUFDLGNBQWMsRUFDdkMscUNBQXVCLENBQUUsa0JBQWtCLEVBQzNDLDBDQUF5QyxDQUFDLGFBQWE7O0FBTmpFLFVBQVUsR0FDTixXQUFXLEVBQUUsTUFBYyxFQUMzQixHQUFHLEVBQUUsa0NBQXVCLEVBQzVCLEdBQUcsRUFBRSx5Q0FBOEIsQ0FBQywyQkFBMkIsRUFDekQsbUNBQXdCLENBQUMsY0FBYyxFQUN2QyxrQ0FBdUIsQ0FBRSxrQkFBa0IsRUFDM0MsdUNBQXlDLENBQUMsYUFBYTs7QUFOakUsVUFBVSxHQUNOLFdBQVcsRUFBRSxPQUFjLEVBQzNCLEdBQUcsRUFBRSwrQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLHNEQUE4QixDQUFDLDJCQUEyQixFQUN6RCxnREFBd0IsQ0FBQyxjQUFjLEVBQ3ZDLCtDQUF1QixDQUFFLGtCQUFrQixFQUMzQyxxREFBeUMsQ0FBQyxhQUFhOztBQU5qRSxVQUFVLEdBQ04sV0FBVyxFQUFFLCtCQUFjLEVBQzNCLEdBQUcsRUFBRSwwREFBdUIsRUFDNUIsR0FBRyxFQUFFLGlFQUE4QixDQUFDLDJCQUEyQixFQUN6RCwyREFBd0IsQ0FBQyxjQUFjLEVBQ3ZDLDBEQUF1QixDQUFFLGtCQUFrQixFQUMzQyx3RkFBeUMsQ0FBQyxhQUFhOztBR3RHckUsNEVBQTRFO0FBRTVFLHlGQUNnRjtBQUVoRix3SEFHRztBQUVILEFBQUEsSUFBSSxDQUFDLEVBQ0gs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 */