theme.css 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  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: 3.5rem; line-height: 4rem; }
  85. .home p { font-size: 3.5rem; line-height: 4rem; }
  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:nth-child(2) { font-family: "playfairdisplay-regularitalic"; }
  90. .home #text_figli a:nth-child(3) { font-family: "syne"; }
  91. .home #text_figli a:nth-child(4) { font-family: "Avara"; }
  92. #item .content-title { display: -ms-flexbox; display: flex; margin: 0.5rem 0; }
  93. #item .content-title > * { margin-right: 0.5rem; font-size: 1.15rem; }
  94. #item .content-title h2 { margin: 0 0.5rem 0 0; }
  95. a.publique, span.publique { font-family: "playfairdisplay-regularitalic"; }
  96. a.sociale, span.sociale { font-family: "syne"; }
  97. a.culturelle, span.culturelle { font-family: "Avara"; }
  98. .sidebar-right ul, .sidebar-right a { font-size: 0.8rem; line-height: 1.25rem; }
  99. .other_projets h3 { font-size: 3.5rem; margin: 0; }
  100. .card h2 { margin: 0; font-size: 1rem; }
  101. 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; }
  102. html, body, header { background: #f9f9f9fe; }
  103. body #start { width: calc( 80% - 0.5rem); margin: 0.5rem auto auto 0.5rem; }
  104. body #start #text_figli p a { position: relative; }
  105. body #start #text_figli p a::after { display: block; content: ''; position: absolute; top: 0; left: 0; transform: translate(-25%, -65%); z-index: 999; }
  106. body #start #text_figli p a.marg { margin-right: 0.5rem; }
  107. body #start #text_figli .card { width: calc(100% / 4); height: auto; overflow: hidden; display: inline-block; vertical-align: top; line-height: 0; margin-right: 0.5rem; position: relative; margin-top: 0.5rem; }
  108. body #start #text_figli .card .card-header { display: none; }
  109. body #start #text_figli .card .card-header > * { font-size: 0.8rem; line-height: 1rem; margin-right: 0.5rem; }
  110. body #start #text_figli .card:hover .card-header { width: 100%; background: rgba(255, 255, 255, 0.5); padding: 0.5rem; display: -ms-inline-flexbox; display: inline-flex; -ms-flex-wrap: wrap; flex-wrap: wrap; position: absolute; transform: translateY(-100%); }
  111. body #start #text_figli .card:last-child { vertical-align: baseline; }
  112. body:not(.home) #start { margin-top: calc( 2rem + 4rem); }
  113. .sidebar-right { position: fixed; width: 20%; height: 100%; right: 0; top: 0; display: -ms-inline-flexbox; display: inline-flex; }
  114. .sidebar-right .list-projets { margin: auto; }
  115. .sidebar-right .list-projets ul { margin: 0.5rem 0.5rem 0px 0; text-align: right; }
  116. .sidebar-right .list-projets ul:nth-child(1) { margin-top: 0; }
  117. .sidebar-right .list-projets ul li:hover a { color: black; }
  118. .sidebar-right .list-projets ul a { color: grey; }
  119. #item_list { display: -ms-inline-flexbox; display: inline-flex; -ms-flex-wrap: wrap; flex-wrap: wrap; width: 100%; }
  120. #item_list .card { width: calc(( 100% / 2 ) - (1rem / 2)); }
  121. #item_list .card:nth-child(odd) { margin-right: 1rem; }
  122. #item_list .card .card-header { display: -ms-inline-flexbox; display: inline-flex; width: 100%; margin-bottom: 0.5rem; }
  123. #item_list .card .card-header > * { margin-right: 0.5rem; }
  124. #item .card-image img { margin-bottom: 0.5rem; }
  125. .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; }
  126. .other_projets h3 { margin: 1rem 0 0.5rem 0; width: 100%; }
  127. .other_projets .card { width: calc(( 100% / 3 ) - (1rem / 3)); }
  128. .other_projets .card:nth-child(-1n+3) { margin-right: 0.5rem; }
  129. .other_projets .card .card-header { display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; }
  130. .other_projets .card .card-header > * { margin-right: 0.5rem; }
  131. @media screen and (max-width: 414px) { header a { font-size: 1.5rem; line-height: 2rem; }
  132. .home p { font-size: 1.5rem !important; line-height: 2rem !important; }
  133. .other_projets h3 { font-size: 1.5rem; }
  134. header { width: calc( 100% - (0.5rem * 2)); }
  135. body #start { width: calc( 100% - (0.5rem * 2)); }
  136. body:not(.home) #start { margin-top: 4rem; }
  137. body .sidebar-right { display: none; }
  138. #item_list .card { width: calc( 100%); }
  139. #item_list .card:nth-child(odd) { margin-right: 0; }
  140. #item_list .card .card-header { margin-bottom: 0.5rem; }
  141. #item_list .card .card-header > * { margin-right: 0.5rem; }
  142. .other_projets { margin-top: 1rem; }
  143. .other_projets .card { width: 100%; }
  144. .other_projets .card:nth-child(-1n+3) { margin-right: 0; } }
  145. @media screen and (max-width: 768px) and (orientation: portrait) { header a { font-size: 2.5rem; line-height: 3rem; }
  146. .home p { font-size: 2.5rem !important; line-height: 3rem !important; }
  147. .other_projets h3 { font-size: 2.5rem; }
  148. body:not(.home) #start { margin-top: 5rem; }
  149. #item_list .card { width: calc( 100%); }
  150. #item_list .card:nth-child(odd) { margin-right: 0; }
  151. #item_list .card .card-header { margin-bottom: 0.5rem; }
  152. #item_list .card .card-header > * { margin-right: 0.5rem; } }
  153. @media screen and (max-width: 812px) and (orientation: landscape) { header a { font-size: 1.5rem; line-height: 2rem; }
  154. .home p { font-size: 1.5rem !important; line-height: 2rem !important; }
  155. .other_projets h3 { font-size: 1.5rem; }
  156. header { width: calc( 100% - (0.5rem * 2)); }
  157. body #start { width: calc( 100% - (0.5rem * 2)); }
  158. body:not(.home) #start { margin-top: 4rem; }
  159. body .sidebar-right { display: none; }
  160. #item_list .card { width: calc(( 100% / 2 ) - (1rem / 2)); }
  161. #item_list .card:nth-child(odd) { margin-right: 1rem; }
  162. .other_projets .card { width: calc(( 100% / 3 ) - (1rem / 3)); }
  163. .other_projets .card:nth-child(-1n+3) { margin-right: 0.5rem; } }
  164. @media screen and (max-width: 910px) and (orientation: portrait) { header a { font-size: 2.5rem; line-height: 3rem; }
  165. .home p { font-size: 2.5rem !important; line-height: 3rem !important; }
  166. .other_projets h3 { font-size: 2.5rem; }
  167. body:not(.home) #start { margin-top: 5rem; } }
  168. @media screen and (max-width: 660px) { header a { font-size: 1.5rem; line-height: 2rem; }
  169. .home p { font-size: 1.5rem !important; line-height: 2rem !important; }
  170. .other_projets h3 { font-size: 1.5rem; }
  171. body:not(.home) #start { margin-top: 4rem; } }
  172. /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwiY29uZmlndXJhdGlvbnMvX2ZvbnRzLnNjc3MiLCJjb25maWd1cmF0aW9ucy9fdmFyaWFibGUuc2NzcyIsImNvbmZpZ3VyYXRpb25zL19leHRlbmQuc2NzcyIsInRoZW1lL19yZXNldC5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19zdGFydC5zY3NzIiwidGhlbWUvX3NpZGViYXIuc2NzcyIsInRoZW1lL19ibG9nLnNjc3MiLCJ0aGVtZS9faXRlbS5zY3NzIiwidGhlbWUvX21vYmlsZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgJ2NvbmZpZ3VyYXRpb25zL19mb250cyc7XG5AaW1wb3J0ICdjb25maWd1cmF0aW9ucy9fdmFyaWFibGUnO1xuQGltcG9ydCAnY29uZmlndXJhdGlvbnMvX2V4dGVuZCc7XG5AaW1wb3J0ICd0aGVtZS9yZXNldCc7XG5AaW1wb3J0ICd0aGVtZS90eXBvZ3JhcGh5JztcblxuQGltcG9ydCAndGhlbWUvaGVhZGVyJztcbkBpbXBvcnQgJ3RoZW1lL3N0YXJ0JztcbkBpbXBvcnQgJ3RoZW1lL3NpZGViYXInO1xuQGltcG9ydCAndGhlbWUvYmxvZyc7XG5AaW1wb3J0ICd0aGVtZS9pdGVtJztcbkBpbXBvcnQgJ3RoZW1lL21vYmlsZSc7IFxuIiwiLy8gRm9udCBGYW1pbHlcbiRmb250LWZhbWlseS1kZWZhdWx0OiAgXHRcdFx0XCJSYWxld2F5XCIsIFwiSGVsdmV0aWNhXCIsIFwiVGFob21hXCIsIFwiR2VuZXZhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1oZWFkZXI6ICBcdFx0XHRcIk1vbnRzZXJyYXRcIiwgXCJIZWx2ZXRpY2FcIiwgXCJUYWhvbWFcIiwgXCJHZW5ldmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LW1vbm86IFx0XHRcdFx0XCJJbmNvbnNvbGF0YVwiLCBtb25vc3BhY2U7XG4kZm9udC1mYW1pbHktc2VyaWY6XHRcdFx0XHRcIkdlb3JnaWFcIiwgXCJUaW1lc1wiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBzZXJpZjtcbi8vIEBmb250LWZhY2VcblxuJGxhdG86IFwibGF0b1wiO1xuJGZhbWlseTogXCJsYXRvXCI7XG4kZmlsZS1yZWd1bGFyOiBcIkxhdG8tUmVndWxhclwiO1xuJGNhdGVnb3J5OiBcInNhbnMtc2VyaWZcIjtcblxuQG1peGluIGZvbnQtZmFjZSgkbGF0bywgJGZpbGUtcmVndWxhciwgJGZhbWlseSwgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5ICsgXCIvXCIgKyAkZmlsZS1yZWd1bGFyO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRsYXRvfVwiO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3RcIik7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnR0ZlwiKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIuc3ZnI1wiICsgJGxhdG8gKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRsYXRvfSB7XG4gICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgIEBpZiAkY2F0ZWdvcnkgIT0gXCJcIiB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGxhdG99XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skbGF0b31cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJHN5bmU6IFwic3luZVwiO1xuJGZhbWlseS1ib2xkOiBcInN5bmVcIjtcbiRmaWxlLWJvbGQ6IFwiU3luZS1Cb2xkXCI7XG5cbkBtaXhpbiBmb250LWZhY2UoJHN5bmUsICRmaWxlLWJvbGQsICRmYW1pbHktYm9sZCwgJGNhdGVnb3J5OlwiXCIpIHtcbiAgICAkZmlsZXBhdGg6IFwiLi4vZm9udHMvXCIgKyAkZmFtaWx5LWJvbGQgKyBcIi9cIiArICRmaWxlLWJvbGQ7XG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIiN7JHN5bmV9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgIH1cblxuICAgICUjeyRzeW5lfSB7XG4gICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgIEBpZiAkY2F0ZWdvcnkgIT0gXCJcIiB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JHN5bmV9XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skc3luZX1cIjtcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJGF2YXJhOiBcIkF2YXJhXCI7XG4kZmFtaWx5LWJvbGQtaXRhbGljOiBcImF2YXJhXCI7XG4kZmlsZS1ib2xkLWl0YWxpYzogXCJBdmFyYS1Cb2xkX0l0YWxpY193ZWJcIjtcblxuQG1peGluIGZvbnQtZmFjZSgkYXZhcmEsICRmaWxlLWJvbGQtaXRhbGljLCAkZmFtaWx5LWJvbGQtaXRhbGljLCAkY2F0ZWdvcnk6XCJcIikge1xuICAgICRmaWxlcGF0aDogXCIuLi9mb250cy9cIiArICRmYW1pbHktYm9sZC1pdGFsaWMgKyBcIi9cIiArICRmaWxlLWJvbGQtaXRhbGljO1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRhdmFyYX1cIjtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90XCIpO1xuICAgICAgICBzcmM6IHVybCgkZmlsZXBhdGggKyBcIi5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi50dGZcIikgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgICAgdXJsKCRmaWxlcGF0aCArIFwiLnN2ZyNcIiArICRhdmFyYSArIFwiXCIpIGZvcm1hdCgnc3ZnJyk7XG4gICAgfVxuXG4gICAgJSN7JGF2YXJhfSB7XG4gICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgIEBpZiAkY2F0ZWdvcnkgIT0gXCJcIiB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGF2YXJhfVwiLCAjeyRjYXRlZ29yeX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcIiN7JGF2YXJhfVwiO1xuICAgICAgICAgICAgICAgIHdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4kcGxheWZhaXI6IFwicGxheWZhaXJkaXNwbGF5LXJlZ3VsYXJpdGFsaWNcIjtcbiRmYW1pbHktaXRhbGljOiBcInBsYXlmYWlyXCI7XG4kZmlsZS1pdGFsaWM6IFwicGxheWZhaXJkaXNwbGF5LXJlZ3VsYXJpdGFsaWNcIjtcblxuQG1peGluIGZvbnQtZmFjZSgkcGxheWZhaXIsICRmaWxlLWl0YWxpYywgJGZhbWlseS1pdGFsaWMsICRjYXRlZ29yeTpcIlwiKSB7XG4gICAgJGZpbGVwYXRoOiBcIi4uL2ZvbnRzL1wiICsgJGZhbWlseS1pdGFsaWMgKyBcIi9cIiArICRmaWxlLWl0YWxpYztcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skcGxheWZhaXJ9XCI7XG4gICAgICAgIHNyYzogdXJsKCRmaWxlcGF0aCArIFwiLmVvdFwiKTtcbiAgICAgICAgc3JjOiB1cmwoJGZpbGVwYXRoICsgXCIuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi53b2ZmXCIpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICAgICB1cmwoJGZpbGVwYXRoICsgXCIudHRmXCIpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgICAgIHVybCgkZmlsZXBhdGggKyBcIi5zdmcjXCIgKyAkcGxheWZhaXIgKyBcIlwiKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cblxuICAgICUjeyRwbGF5ZmFpcn0ge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBAaWYgJGNhdGVnb3J5ICE9IFwiXCIge1xuICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcGxheWZhaXJ9XCIsICN7JGNhdGVnb3J5fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBmYW1pbHk6IFwiI3skcGxheWZhaXJ9XCI7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW5jbHVkZSBmb250LWZhY2UoJGxhdG8sICRmaWxlLXJlZ3VsYXIsICRmYW1pbHksICRjYXRlZ29yeSk7Ly8xXG5AaW5jbHVkZSBmb250LWZhY2UoJHN5bmUsICRmaWxlLWJvbGQsICRmYW1pbHktYm9sZCwgJGNhdGVnb3J5KTsvLzJcbkBpbmNsdWRlIGZvbnQtZmFjZSgkYXZhcmEsICRmaWxlLWJvbGQtaXRhbGljLCAkZmFtaWx5LWJvbGQtaXRhbGljLCAkY2F0ZWdvcnkpOy8vMlxuQGluY2x1ZGUgZm9udC1mYWNlKCRwbGF5ZmFpciwgJGZpbGUtaXRhbGljLCAkZmFtaWx5LWl0YWxpYywgJGNhdGVnb3J5KTsvLzJcblxuLy8gZm9udC1zaXplXG4kdHh0LWZpZ2xpOiAzLjVyZW07XG5cbi8vIGxpbmUtaGVpZ2h0XG4kRmxob21lOiA0cmVtO1xuXG4kbWFyZzogMC41cmVtO1xuJG1hcmdJOiAxcmVtO1xuJFdpOiA4MCU7XG5cbiRXaTUwOiBjYWxjKCggMTAwJSAvIDIgKSAtICgjeyRtYXJnSX0gLyAyKSk7XG4kV2kzMzogY2FsYygoIDEwMCUgLyAzICkgLSAoI3skbWFyZ0l9IC8gMykpO1xuXG5cbi8vIG1vYmlsZVxuJHR4dC1maWdsaS1tOiAxLjVyZW07XG5cbi8vIGxpbmUtaGVpZ2h0XG4kRmxob21lLW06IDJyZW07XG4kV2ktbToxMDAlO1xuXG4vLyB0YWJsZXR0ZVxuJHR4dC1maWdsaS10OiAyLjVyZW07XG5cbi8vIGxpbmUtaGVpZ2h0XG4kRmxob21lLXQ6IDNyZW07XG4iLCIiLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiBhdXRvO1xuICBtYXJnaW46MDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xucHtcbiBtYXJnaW46IDA7XG59XG5cbnVse1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxudWwsbGl7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogYmxhY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiaDEsIGgyLCBoMywgcCwgdWwsIGxpLCBhLCBzcGFue1xuICBmb250LWZhbWlseTogJGxhdG87XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuXG5oZWFkZXJ7XG4gIGF7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lO1xuICB9XG59XG5cbi5ob21le1xuICBwe1xuICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaTtcbiAgICBsaW5lLWhlaWdodDogJEZsaG9tZTtcbiAgfVxuICAjdGV4dF9maWdsaXtcbiAgICBzdHJvbmd7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmOjphZnRlcntcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICBhe1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgJjpudGgtY2hpbGQoMSl7XG4gICAgICB9XG4gICAgICAmOm50aC1jaGlsZCgyKXtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRwbGF5ZmFpcjtcbiAgICAgIH1cbiAgICAgICY6bnRoLWNoaWxkKDMpe1xuICAgICAgICBmb250LWZhbWlseTogJHN5bmU7XG4gICAgICB9XG4gICAgICAmOm50aC1jaGlsZCg0KXtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRhdmFyYTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI2l0ZW17XG4gIC5jb250ZW50LXRpdGxle1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAkbWFyZyAwO1xuICAgICYgPiAqIHtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgfVxuICAgIGgye1xuICAgICAgbWFyZ2luOiAwICRtYXJnIDAgMDtcbiAgICB9XG4gIH1cbn1cblxuYS5wdWJsaXF1ZSwgc3Bhbi5wdWJsaXF1ZXtcbiAgZm9udC1mYW1pbHk6ICRwbGF5ZmFpcjtcbn1cblxuYS5zb2NpYWxlLCBzcGFuLnNvY2lhbGV7XG4gIGZvbnQtZmFtaWx5OiAkc3luZTtcbn1cblxuYS5jdWx0dXJlbGxlLCBzcGFuLmN1bHR1cmVsbGV7XG4gIGZvbnQtZmFtaWx5OiAkYXZhcmE7XG59XG5cbi5zaWRlYmFyLXJpZ2h0e1xuICB1bCwgYXtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgfVxufVxuXG4ub3RoZXJfcHJvamV0c3tcbiAgaDN7XG4gICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uY2FyZHtcbiAgaDJ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuIiwiaGVhZGVye1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiAwIDAgMCAkbWFyZztcbiAgcGFkZGluZzogJG1hcmcgMDtcbiAgd2lkdGg6IGNhbGMoICN7JFdpfSAtICN7JG1hcmd9ICk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbiIsImh0bWwsIGJvZHksIGhlYWRlcntcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOWZlO1xufVxuXG5ib2R5e1xuICAjc3RhcnR7XG4gICAgICB3aWR0aDogY2FsYyggI3skV2l9IC0gI3skbWFyZ30gKTtcbiAgICAgIG1hcmdpbjogJG1hcmcgYXV0byBhdXRvICRtYXJnO1xuICAgICAgI3RleHRfZmlnbGl7XG4gICAgICAgIHAge1xuICAgICAgICAgIGF7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjUlLC02NSUpO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gJjpob3ZlcntcbiAgICAgICAgICAgIC8vICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICAvLyAgICAgY29udGVudDogdXJsKCcvdXNlci90aGVtZXMvZmlndXJlc2xpYnJlcy9pbWFnZXMvb3ZhbGUuc3ZnJyk7XG4gICAgICAgICAgICAvLyAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAvLyAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgLy8gICAgIHRvcDogMDtcbiAgICAgICAgICAgIC8vICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAmLm1hcmd7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jYXJke1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA0KTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZztcbiAgICAgICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgJiA+ICp7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIC5jYXJkLWhlYWRlcntcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICAgICAgICAgICAgcGFkZGluZzogJG1hcmc7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICB9XG4gICY6bm90KC5ob21lKXtcbiAgICAjc3RhcnR7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKCAycmVtICsgICN7JEZsaG9tZX0pO1xuICAgIH1cbiAgfVxufVxuIiwiLnNpZGViYXItcmlnaHR7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDIwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgLmxpc3QtcHJvamV0c3tcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdWx7XG4gICAgICAmOm50aC1jaGlsZCgxKXtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICAgIG1hcmdpbjogJG1hcmcgJG1hcmcgMHB4IDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGxpe1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGF7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhe1xuICAgICAgICBjb2xvcjogZ3JleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiNpdGVtX2xpc3R7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAuY2FyZHtcbiAgICB3aWR0aDogJFdpNTA7XG4gICAgJjpudGgtY2hpbGQob2RkKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdJO1xuICAgIH1cbiAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmc7XG4gICAgICAmID4gKiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIjaXRlbXtcbiAgLmNhcmQtaW1hZ2V7XG4gICAgaW1ne1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmc7XG4gICAgfVxuICB9XG59XG5cbi5vdGhlcl9wcm9qZXRze1xuICBib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogJG1hcmdJO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ0k7XG4gIGgze1xuICAgIG1hcmdpbjogMXJlbSAwICRtYXJnIDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNhcmR7XG4gICAgd2lkdGg6ICRXaTMzO1xuICAgICY6bnRoLWNoaWxkKC0xbiszKXtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmc7XG4gICAgfVxuICAgIC5jYXJkLWhlYWRlcntcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAmID4gKntcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxNHB4KSB7XG4gIC8vIHR5cG9ncmFwaGllXG4gIGhlYWRlcntcbiAgICBhe1xuICAgICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpLW07XG4gICAgICBsaW5lLWhlaWdodDogJEZsaG9tZS1tO1xuICAgIH1cbiAgfVxuICAuaG9tZXtcbiAgICBwe1xuICAgICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpLW0haW1wb3J0YW50O1xuICAgICAgbGluZS1oZWlnaHQ6ICRGbGhvbWUtbSFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIC5vdGhlcl9wcm9qZXRze1xuICAgIGgze1xuICAgICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpLW07XG4gICAgfVxuICB9XG5cbiAgLy8gbWVwXG4gIGhlYWRlcntcbiAgICB3aWR0aDogY2FsYyggI3skV2ktbX0gLSAoI3skbWFyZ30gKiAyKSApO1xuICB9XG5cbiAgYm9keXtcbiAgICAjc3RhcnR7XG4gICAgICAgIHdpZHRoOiBjYWxjKCAjeyRXaS1tfSAtICgjeyRtYXJnfSAqIDIpICk7XG4gICAgfVxuICAgICY6bm90KC5ob21lKXtcbiAgICAgICNzdGFydHtcbiAgICAgICAgbWFyZ2luLXRvcDogJEZsaG9tZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLnNpZGViYXItcmlnaHR7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICNpdGVtX2xpc3R7XG4gICAgLmNhcmR7XG4gICAgICB3aWR0aDogY2FsYyggI3skV2ktbX0gICk7XG4gICAgICAmOm50aC1jaGlsZChvZGQpe1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnO1xuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5vdGhlcl9wcm9qZXRze1xuICAgIG1hcmdpbi10b3A6ICRtYXJnSTtcbiAgICAuY2FyZHtcbiAgICAgIHdpZHRoOiAkV2ktbTtcbiAgICAgICY6bnRoLWNoaWxkKC0xbiszKXtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIC8vIHR5cG9ncmFwaGllXG4gIGhlYWRlcntcbiAgICBhe1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICB9XG4gIH1cbiAgLmhvbWV7XG4gICAgcHtcbiAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS10IWltcG9ydGFudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lLXQhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICAub3RoZXJfcHJvamV0c3tcbiAgICBoM3tcbiAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS10O1xuICAgIH1cbiAgfVxuXG4gIGJvZHl7XG4gICAgJjpub3QoLmhvbWUpe1xuICAgICAgI3N0YXJ0e1xuICAgICAgICBtYXJnaW4tdG9wOiA1cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNpdGVtX2xpc3R7XG4gICAgLmNhcmR7XG4gICAgICB3aWR0aDogY2FsYyggI3skV2ktbX0gICk7XG4gICAgICAmOm50aC1jaGlsZChvZGQpe1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICAuY2FyZC1oZWFkZXJ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnO1xuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cblxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MTJweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC8vIHR5cG9ncmFwaGllXG4gIGhlYWRlcntcbiAgICBhe1xuICAgICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpLW07XG4gICAgICBsaW5lLWhlaWdodDogJEZsaG9tZS1tO1xuICAgIH1cbiAgfVxuICAuaG9tZXtcbiAgICBwe1xuICAgICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpLW0haW1wb3J0YW50O1xuICAgICAgbGluZS1oZWlnaHQ6ICRGbGhvbWUtbSFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIC5vdGhlcl9wcm9qZXRze1xuICAgIGgze1xuICAgICAgZm9udC1zaXplOiAkdHh0LWZpZ2xpLW07XG4gICAgfVxuICB9XG5cbiAgLy8gbWVwXG4gIGhlYWRlcntcbiAgICB3aWR0aDogY2FsYyggI3skV2ktbX0gLSAoI3skbWFyZ30gKiAyKSApO1xuICB9XG5cbiAgYm9keXtcbiAgICAjc3RhcnR7XG4gICAgICAgIHdpZHRoOiBjYWxjKCAjeyRXaS1tfSAtICgjeyRtYXJnfSAqIDIpICk7XG4gICAgfVxuICAgICY6bm90KC5ob21lKXtcbiAgICAgICNzdGFydHtcbiAgICAgICAgbWFyZ2luLXRvcDogJEZsaG9tZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLnNpZGViYXItcmlnaHR7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICNpdGVtX2xpc3R7XG4gICAgLmNhcmR7XG4gICAgICB3aWR0aDogJFdpNTA7XG4gICAgICAmOm50aC1jaGlsZChvZGQpe1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnSTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAub3RoZXJfcHJvamV0c3tcbiAgICAuY2FyZHtcbiAgICAgIHdpZHRoOiAkV2kzMztcbiAgICAgICY6bnRoLWNoaWxkKC0xbiszKXtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTEwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIGhlYWRlcntcbiAgICBhe1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICB9XG4gIH1cbiAgLmhvbWV7XG4gICAgcHtcbiAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS10IWltcG9ydGFudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lLXQhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICAub3RoZXJfcHJvamV0c3tcbiAgICBoM3tcbiAgICAgIGZvbnQtc2l6ZTogJHR4dC1maWdsaS10O1xuICAgIH1cbiAgfVxuICBib2R5e1xuICAgICY6bm90KC5ob21lKXtcbiAgICAgICNzdGFydHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjYwcHgpIHtcbiAgaGVhZGVye1xuICAgIGF7XG4gICAgICBmb250LXNpemU6ICR0eHQtZmlnbGktbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkRmxob21lLW07XG4gICAgfVxuICB9XG4gIC5ob21le1xuICAgIHB7XG4gICAgICBmb250LXNpemU6ICR0eHQtZmlnbGktbSFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogJEZsaG9tZS1tIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLm90aGVyX3Byb2pldHN7XG4gICAgaDN7XG4gICAgICBmb250LXNpemU6ICR0eHQtZmlnbGktbTtcbiAgICB9XG4gIH1cblxuICBib2R5e1xuICAgICY6bm90KC5ob21lKXtcbiAgICAgICNzdGFydHtcbiAgICAgICAgbWFyZ2luLXRvcDogJEZsaG9tZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNnR0ksVUFBVSxHQUNOLFdBQVcsRUFBRSxNQUFjLEVBQzNCLEdBQUcsRUFBRSxxQ0FBdUIsRUFDNUIsR0FBRyxFQUFFLDRDQUE4QixDQUFDLDJCQUEyQixFQUN6RCxzQ0FBd0IsQ0FBQyxjQUFjLEVBQ3ZDLHFDQUF1QixDQUFFLGtCQUFrQixFQUMzQywwQ0FBeUMsQ0FBQyxhQUFhOztBQU5qRSxVQUFVLEdBQ04sV0FBVyxFQUFFLE1BQWMsRUFDM0IsR0FBRyxFQUFFLGtDQUF1QixFQUM1QixHQUFHLEVBQUUseUNBQThCLENBQUMsMkJBQTJCLEVBQ3pELG1DQUF3QixDQUFDLGNB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 */